DiepNV88
VIP Members
-
24/09/2013
-
369
-
1.552 bài viết
Tips nâng cao an ninh máy chủ Linux !
Chào anh em bài trước mình đã đưa ra danh sách cần thiết để nâng cao an ninh trên máy chủ Windows. Với những quản trị viên cũng có thể dựa trên danh sách đó xây dựng checklist security cho đơn vị của mình đang làm việc hoặc tham khảo bổ sung kiến thức. Tất nhiên bài viết của mình chỉ mang tính tham khảo vì sẽ có nhiều tài liệu khác nhau cho vấn đề này.
Bài này mình không đưa ra những chỉ mục như phần Windows mà chỉ liệt kê các tips để nâng cao an ninh máy chủ Linux nếu muốn xây dựng checklist các bạn có thể tham khảo chỉ mục bài bên Windows.
Encrypt Data Communication For Linux Server
Trong quá trình remote control chúng ta nên sử dụng sshd, sftp để thực thi mã và truyền file.
Sử dụng OPEN VPN khi tạo mạng riêng an toàn giữa các máy chủ internet hoặc để tạo mạng LAN riêng tư nhằm mục đích remote control, working.
Tránh sử dụng các dịch vụ không mã hóa kém an toàn
FTP, telnet, rsh là các dịch vụ thường sử dụng khi cấu hình mạng. Tên người dùng và mật khẩu có thể bị capture dễ dàng trên đường truyền.
Giải pháp cho vấn đề này là sử dụng các dịch vụ thay thế có mã hóa như OpenSSH, SFTP or FTPS, sshd ...
Minimize Software to Minimize Vulnerability in Linux
Một máy chủ web có cần thiết phải cài đầy đủ hệ điều hành như distro của nhà phát triển OS đó không. Tất nhiên bạn sẽ không cần dùng đến tất cả các ứng dụng trên bản distro Linux nào đó mà chỉ cần cài tối thiểu mà bộ cài cho phép.
Ví dụ một máy chủ web chạy centos chỉ cần cài minimize phần base còn bỏ check hết các mục như desktop, các gói ứng dụng khác. Khi buid máy chủ chúng ta sẽ tiếp tục cài những gói cần thiết để nó hoạt động đúng mục đích chứ không cần thiết phải cài đầy đủ như bộ cài cung cấp.
Một dịch vụ chạy trên một máy chủ.
Các dịch vụ mạng khác nhau nên chạy trên các máy chủ riêng biệt để tránh trường hợp máy chủ web bị tấn công có thể ảnh hưởng tới các dịch vụ khác như database, email, backup .... Giải pháp ảo hóa giải quyết triệt để vấn đề này và tận dụng được sức mạnh phần cứng server.
Auto update phần mềm và nhân Linux
Luôn luôn áp dụng các bản vá an ninh là một phần quan trọng trong việc bảo trì máy chủ linux. Linux cung cấp sẵn các công cụ cần thiết để giữ hco hệ thống luôn cập nhật và dễ dàng nâng cấp các phiên bản.
Use Linux Security Extensions
Linux đi kèm với các bản vá khác nhau có thể được sử dụng để chống lại các chương trình bị cấu hình sai hoặc bị xâm nhập. Nếu có thể chúng ta có thể sử dụng SELinux và các phần an ninh mở rộng khác để thực thi các chính sách an ninh cho máy chủ Linux.
SELinux
ELinux (Security-Enhanced Linux) là một mô đun bảo mật ở nhân của Linux, cung cấp cơ chế hỗ trợ các chính sách bảo mật kiểm soát truy cập (access control) , bao gồm các điều khiển truy nhập bắt buộc theo phong cách Bộ Quốc phòng Hoa Kỳ (MAC).
SELinux có 3 chế độ hoạt động cơ bản, trong đó Enforcing là chế độ mặc định khi cài đặt. Tuy nhiên, có một bộ định tính bổ sung của các mục tiêu hoặc các ml kiểm soát cách các quy tắc SELinux phổ biến được áp dụng, với mục tiêu là mức độ ít nghiêm ngặt hơn.
Enforcing: Chế độ mặc định sẽ cho phép và thực thi chính sách bảo mật SELinux trên hệ thống, từ chối các hành động truy cập và ghi nhật ký
Permissive: Trong chế độ Permissive, SELinux được kích hoạt nhưng sẽ không thực thi chính sách bảo mật, chỉ cảnh báo và ghi lại các hành động. Chế độ Permissive hữu ích cho việc khắc phục sự cố SELinux
Disabled: SELinux bị vô hiệu hóa hoặc bị tắt đi.
Tài khoản người dùng Linux phải đi kèm chính sách mật khẩu mạnh
Cấu hình chính sách mật khẩu đảm bảo các yếu tố tối thiểu 8 ký tự ,có chữ số, ký tự đặc biệt, chữ viết hoa viết thường. Quan trọng nhất là phải dễ nhớ tránh trường hợp đặt xong quên luôn lại phải reset mật khẩu.
Bảo vệ quyền truy cập vào bảng điều khiển vật lý của máy chủ Linux như cổng usb, CD, card net. Cấu hình bios tắt tính năng khởi động từ các thiết bị cắm ngoài như usb, cd-dvd. Tất cả máy chủ phải được khóa trong tủ rách và chỉ cá nhân có thẩm quyền mới được tiếp cận.
Vô hiệu hóa khởi động cùng hệ thống các dịch vụ không cần thiết
Việc vô hiệu hóa các dịch vụ không cần thiết khởi động cùng hệ thống giúp hệ thống chạy nhanh hơn mặc dù không đáng kể nhưng quan trọng là hạn chế dịch vụ running sẽ hạn chế được các lỗ hổng (không chạy thì không có cửa khai thác chui vào hệ thống).
Tìm kiếm và đóng tất cả các port không sử dụng
Để dễ dàng thực hiện tips này các bạn chỉ cần bật iptables và đóng tất cả các port lại chỉ mở các port dịch vụ, remote cần thiết.
Logging
Cấu hình và thu thập log của tất cả các hành động login fail nhằm tìm kiếm và chặn các nỗ lực tấn công vào hệ thống. Tất cả nhật ký log nằm trong var/log
Một số logfile chú ý:
System Accounting with auditd
Bản kiểm toán được cung cấp để đánh giá hệ thống. Nó chịu trách nhiệm ghi hồ sơ kiểm toán vào đĩa. Trong khi khởi động, các quy tắc trong /etc/audit.rules được đọc bởi daemon này. Bạn có thể mở tệp /etc/audit.rules và thực hiện các thay đổi như thiết lập vị trí nhật ký tệp kiểm tra và tùy chọn khác. Với Auditd, bạn có thể trả lời những câu hỏi sau:
Backup
Ai cũng biết vai trò của việc Backup và khôi phục dữ liệu trong thời đại bùng nổ của các cuộc tấn công mạng thì việc đảm bảo tính toàn vẹn của dữ liệu là vô cùng cần thiết.
Bài này mình không đưa ra những chỉ mục như phần Windows mà chỉ liệt kê các tips để nâng cao an ninh máy chủ Linux nếu muốn xây dựng checklist các bạn có thể tham khảo chỉ mục bài bên Windows.
Encrypt Data Communication For Linux Server
Tất cả dữ liệu truyền qua mạng đều có thể giám sát vậy nên mã hóa dữ liệu bằng mật khẩu, key, certificates là cần thiết để đảm bảo tính an toàn của data trên đường truyền.Trong quá trình remote control chúng ta nên sử dụng sshd, sftp để thực thi mã và truyền file.
Sử dụng OPEN VPN khi tạo mạng riêng an toàn giữa các máy chủ internet hoặc để tạo mạng LAN riêng tư nhằm mục đích remote control, working.
Tránh sử dụng các dịch vụ không mã hóa kém an toàn
FTP, telnet, rsh là các dịch vụ thường sử dụng khi cấu hình mạng. Tên người dùng và mật khẩu có thể bị capture dễ dàng trên đường truyền.
Giải pháp cho vấn đề này là sử dụng các dịch vụ thay thế có mã hóa như OpenSSH, SFTP or FTPS, sshd ...
Minimize Software to Minimize Vulnerability in Linux
Một máy chủ web có cần thiết phải cài đầy đủ hệ điều hành như distro của nhà phát triển OS đó không. Tất nhiên bạn sẽ không cần dùng đến tất cả các ứng dụng trên bản distro Linux nào đó mà chỉ cần cài tối thiểu mà bộ cài cho phép.
Ví dụ một máy chủ web chạy centos chỉ cần cài minimize phần base còn bỏ check hết các mục như desktop, các gói ứng dụng khác. Khi buid máy chủ chúng ta sẽ tiếp tục cài những gói cần thiết để nó hoạt động đúng mục đích chứ không cần thiết phải cài đầy đủ như bộ cài cung cấp.
Một dịch vụ chạy trên một máy chủ.
Các dịch vụ mạng khác nhau nên chạy trên các máy chủ riêng biệt để tránh trường hợp máy chủ web bị tấn công có thể ảnh hưởng tới các dịch vụ khác như database, email, backup .... Giải pháp ảo hóa giải quyết triệt để vấn đề này và tận dụng được sức mạnh phần cứng server.
Auto update phần mềm và nhân Linux
Luôn luôn áp dụng các bản vá an ninh là một phần quan trọng trong việc bảo trì máy chủ linux. Linux cung cấp sẵn các công cụ cần thiết để giữ hco hệ thống luôn cập nhật và dễ dàng nâng cấp các phiên bản.
Use Linux Security Extensions
Linux đi kèm với các bản vá khác nhau có thể được sử dụng để chống lại các chương trình bị cấu hình sai hoặc bị xâm nhập. Nếu có thể chúng ta có thể sử dụng SELinux và các phần an ninh mở rộng khác để thực thi các chính sách an ninh cho máy chủ Linux.
SELinux
ELinux (Security-Enhanced Linux) là một mô đun bảo mật ở nhân của Linux, cung cấp cơ chế hỗ trợ các chính sách bảo mật kiểm soát truy cập (access control) , bao gồm các điều khiển truy nhập bắt buộc theo phong cách Bộ Quốc phòng Hoa Kỳ (MAC).
SELinux có 3 chế độ hoạt động cơ bản, trong đó Enforcing là chế độ mặc định khi cài đặt. Tuy nhiên, có một bộ định tính bổ sung của các mục tiêu hoặc các ml kiểm soát cách các quy tắc SELinux phổ biến được áp dụng, với mục tiêu là mức độ ít nghiêm ngặt hơn.
Enforcing: Chế độ mặc định sẽ cho phép và thực thi chính sách bảo mật SELinux trên hệ thống, từ chối các hành động truy cập và ghi nhật ký
Permissive: Trong chế độ Permissive, SELinux được kích hoạt nhưng sẽ không thực thi chính sách bảo mật, chỉ cảnh báo và ghi lại các hành động. Chế độ Permissive hữu ích cho việc khắc phục sự cố SELinux
Disabled: SELinux bị vô hiệu hóa hoặc bị tắt đi.
Tài khoản người dùng Linux phải đi kèm chính sách mật khẩu mạnh
Cấu hình chính sách mật khẩu đảm bảo các yếu tố tối thiểu 8 ký tự ,có chữ số, ký tự đặc biệt, chữ viết hoa viết thường. Quan trọng nhất là phải dễ nhớ tránh trường hợp đặt xong quên luôn lại phải reset mật khẩu.
- Thiết lập thời gian tối thiểu mật khẩu còn hiệu lực sau đó người dùng phải đổi mật khẩu của mình.
- Yêu cầu người dùng thay đổi mật khẩu khi đăng nhập lần đầu.
- Tìm kiếm vô hiệu hóa các tài khoản không còn sử dụng.
- Ngăn không cho sử dụng lại mật khẩu cũ.
- Khóa tài khoản người dùng đăng nhập thất bại theo số lần qui định.
- Khóa tất cả tài khoản mật khẩu NULL.
- Đảm bảo không có tài khoản thường nào có UID=0
- Tắt login Root, sử dụng sudo khi thực thi các lệnh cần thiết.
Bảo vệ quyền truy cập vào bảng điều khiển vật lý của máy chủ Linux như cổng usb, CD, card net. Cấu hình bios tắt tính năng khởi động từ các thiết bị cắm ngoài như usb, cd-dvd. Tất cả máy chủ phải được khóa trong tủ rách và chỉ cá nhân có thẩm quyền mới được tiếp cận.
Vô hiệu hóa khởi động cùng hệ thống các dịch vụ không cần thiết
Việc vô hiệu hóa các dịch vụ không cần thiết khởi động cùng hệ thống giúp hệ thống chạy nhanh hơn mặc dù không đáng kể nhưng quan trọng là hạn chế dịch vụ running sẽ hạn chế được các lỗ hổng (không chạy thì không có cửa khai thác chui vào hệ thống).
Tìm kiếm và đóng tất cả các port không sử dụng
Để dễ dàng thực hiện tips này các bạn chỉ cần bật iptables và đóng tất cả các port lại chỉ mở các port dịch vụ, remote cần thiết.
Logging
Cấu hình và thu thập log của tất cả các hành động login fail nhằm tìm kiếm và chặn các nỗ lực tấn công vào hệ thống. Tất cả nhật ký log nằm trong var/log
Một số logfile chú ý:
- /var/log/messages : General message and system related stuff
- /var/log/auth.log : Authenication logs
- /var/log/kern.log : Kernel logs
- /var/log/cron.log : Crond logs (cron job)
- /var/log/maillog : Mail server logs
- /var/log/qmail/ : Qmail log directory (more files inside this directory)
- /var/log/httpd/ : Apache access and error logs directory
- /var/log/lighttpd/ : Lighttpd access and error logs directory
- /var/log/boot.log : System boot log
- /var/log/mysqld.log : MySQL database server log file
- /var/log/secure or /var/log/auth.log : Authentication log
- /var/log/utmp or /var/log/wtmp : Login records file
- /var/log/yum.log : Yum command log file.
Bản kiểm toán được cung cấp để đánh giá hệ thống. Nó chịu trách nhiệm ghi hồ sơ kiểm toán vào đĩa. Trong khi khởi động, các quy tắc trong /etc/audit.rules được đọc bởi daemon này. Bạn có thể mở tệp /etc/audit.rules và thực hiện các thay đổi như thiết lập vị trí nhật ký tệp kiểm tra và tùy chọn khác. Với Auditd, bạn có thể trả lời những câu hỏi sau:
- Sự kiện khởi động và tắt hệ thống (khởi động lại / tạm dừng).
- Ngày và giờ của sự kiện.
- Người dùng có thể phản hồi lại sự kiện (chẳng hạn như cố gắng truy cập tệp /path/to/topsecret.dat).
- Loại sự kiện (chỉnh sửa, truy cập, xóa, ghi, cập nhật tệp và lệnh).
- Sự kiện thành công hay thất bại.
- Ghi lại các sự kiện Sửa đổi ngày và giờ.
- Tìm hiểu xem ai đã thực hiện các thay đổi để sửa đổi cài đặt mạng của hệ thống.
- Ghi lại các sự kiện sửa đổi thông tin người dùng / nhóm.
- Xem ai đã thực hiện thay đổi đối với tệp, v.v
Ai cũng biết vai trò của việc Backup và khôi phục dữ liệu trong thời đại bùng nổ của các cuộc tấn công mạng thì việc đảm bảo tính toàn vẹn của dữ liệu là vô cùng cần thiết.
- Backup các file cấu hình hệ thống để áp dụng cho máy chủ cài đặt lần sau.
- Backup database, code bằng các sử dụng crontab tự động backup sang máy chủ khác cùng mạng private.
- Luôn cố gắng mã hóa các dữ liệu nhạy cảm khi backup.
Chỉnh sửa lần cuối bởi người điều hành: