Monday, June 16, 2014

20 Cách Giúp Tăng Cường Bảo Mật Cho Linux Server – Phần 1

Bảo mật cho máy chủ Linux của bạn là điều hết sức quan trọng để bảo vệ dữ liệu, các sở hữu trí tuệ, và cả thời gian, tiền bạc khỏi “bàn tay đen” của các hacker. Trong phần đầu tiên của loạt bài viết về bảo mật Linux server, tôi sẽ giới thiệu tới các bạn 20 thủ thuật giúp tăng cường an ninh cho Linux server.


#1: Mã hóa dữ liệu được truyền đi

Tất cả các dữ liệu gửi qua môi trường mạng đều có nguy cơ bị hacker tóm được (sniff) ngay trên đường truyền. Vì vậy, bất cứ khi nào có thể bạn nên mã hóa dữ liệu được truyền đi với thuật toán mã hóa và mật khẩu đủ mạnh hay sử dụng các chứng thư số (certificate).

- Sử dụng các chương trình scp, ssh, rsync hoặc sftp để truyền file qua mạng. Với 2 công cụ fuse và sshfs, bạn cũng có thể mount các file system nằm trên server ở xa (remote server file system) một cách an toàn thông qua SSH.
GnuPG giúp mã hóa dữ liệu và tạo chữ ký số cho file, thêm vào đó là tính năng quản lý khóa mã hóa tiện lợi.

- Fugu là một frontend có giao diện đồ họa cho SFTP. SFTP cũng giống với FTP, chỉ khác là SFTP sẽ mã hóa toàn bộ phiên làm việc, có nghĩa rằng cả mật khẩu và các dữ liệu khác sẽ được mã hóa trước khi gửi đi. Và như vậy dù cho hacker có tóm được dữ liệu đó cũng không thể nào đọc được thông tin đã được mã hóa bởi SFTP. Một tùy chọn khác là FileZilla – chương trình client chạy trên nhiều nền tảng như Linux, Windows… (cross-platform), hỗ trợ các giao thức như FTP, FTPS (FTP over SSL/TSL), SFTP (SSH FTP)…

- OpenVPN chương trình SSL/VPN nhẹ nhàng, hiệu quả.

- Lighttpd SSL (Secure Server Layer) Https <= xem thêm cách cài đặt và cấu hình

- Apache SSL (Secure Server Layer) Https (mod_ssl) <= xem thêm cách cài đặt và cấu hình.


#1.1: Tránh sử dụng FTP, Telnet, và Rlogin / Rsh

Bất kỳ ai nằm trên cùng một mạng với bạn đều có thể sử dụng một trình bắt gói tin (packet sniffer) để tóm lấy các thông tin (như thông số cấu hình mạng, username, password, câu lệnh, file…) chưa được mã hóa được gửi bởi các chương trình như FTP, Telnet, Rlogin/Rsh. Giải pháp chung cho vấn đề này là chuyển sang sử dụng các chương trình nhưOpenSSH , SFTP, hoặc FTPS. Đối với Fedora/CentOS/RHEL, gõ câu lệnh sau để xóa bỏ NIS, rsh và các dịch vụ lỗi thời khác:

# yum erase inetd xinetd ypserv tftp-server telnet-server rsh-serve

#2: Giảm tối thiểu các gói phần mềm được cài đặt

Bạn có thật sự cần cài đặt hết tất cả các loại web service (Apache, IIS…) không? Hãy tránh cài đặt các gói phần mềm không cần thiết để tránh nguy cơ lỗ hổng ẩn chứa trong các phần mềm đó bị khai thác. Sử dụng các trình quản lý gói như yum, rpm, apt-get, dpkg… để xem tất cả các gói đã cài trên hệ thống. Sau đó, xóa bỏ các gói không cần thiết.


Đối với Redhat-based Distro

# yum list installed
# yum list packageName
# yum remove packageName
Hoặc với Debian-based Distro
# dpkg –list
# dpkg –info packageName
# apt-get remove packageName
#3: Mỗi dịch vụ mạng chạy trên một hệ thống thực (hoặc máy ảo) riêng biệt
Nếu có thể, bạn nên chạy các dịch vụ mạng khác nhau trên các server tách biệt nhau. Điều này giúp giảm thiểu rủi ro các dịch vụ sẽ bị “chết chùm” khi chúng nằm trên cùng một server. Ví dụ, nếu một hacker có thể khai thác thành công một lỗ hổng của phần mềm như Apache, hắn sẽ có toàn quyền truy cập vào server và gây ảnh hưởng cho các dịch vụ khác như MySQL, e-mail nằm trên cùng server với Apache. Xem thêm cách cài đặt và cấu hình môi trường ảo hóa trên Linux:


Install and Setup XEN Virtualization Software on CentOS Linux 5

How To Setup OpenVZ under RHEL / CentOS Linux


#4: Cập nhật đầy đủ và thường xuyên cho Linux kernel và các phần mềm khác

áp dụng các bản vá bảo mật là một công việc quan trọng trong kế hoạch bảo trì Linux sever. Linux cung cấp tất cả các công cụ cần thiết để đảm bảo hệ thống của bạn luôn được cập nhật, đồng thời giúp nâng cấp dễ dàng giữa các phiên bản. Bạn nên kiểm duyệt và áp dụng tất cả các bản cập nhật ngay khi có thể. Một lần nữa, sử dụng yum, apt-get… để thực hiện việc cập nhật này.

# yum update
hoặc
# apt-get update && apt-get upgrade
Bạn có thể cấu hình cho Red hat / CentOS / Fedora để nhận thông báo về các bản cập nhật mới qua email (xem thêm update notification via email), dưới Debian / Ubuntu có thể sử dụng apticron. Một tùy chọn khác để cài đặt tất cả các bản cập nhật là sử dụng cron (xem thêm all security updates ).


#5: Sử dụng Linux Security Extensions

Có nhiều công cụ giúp bảo vệ Linux trước các lỗi bảo mật như cấu hình hệ thống lỏng lẻo, tạo kẽ hở cho kẻ xâm nhập, các chương trình bị tấn công… Nếu có thể, bạn nên sử dụng SELinux và các security extension khác để quản lý chặt chẽ các chương trình và mạng (xem thêm SELinux and other Linux security). Ví dụ, SELinux cung cấp khá nhiều các chính sách bảo mật khác nhau dành cho Linux kernel.


#5.1: SELinux

Khuyến khích các bạn sử dụng cơ chế Mandatory Access Control (MAC) mà SELinux cung cấp. Theo chuẩn DAC (Discretionary Access Control), một ứng dụng (hoặc tiến trình) được khởi chạy bởi người dùng nào đó thì ứng dụng này có các quyền hạn trên các đối tượng (file, socket,…) giống với quyền hạn của người dùng đã khởi chạy nó. Việc chạy MAC giúp bảo vệ hệ thống khỏi bị phá hoại bởi các chương trình độc hại (hoặc chứa lỗi). Giải thích chi tiết cấu hình cho SELinux có trong kho tài liệu chính thức của Redhat.


nguồn:
http://root.vn/

No comments:

Post a Comment