Cài đặt Firewall với UFW trên Ubuntu và Debian Cloud Server
Một trong những bảo mật đầu tiên trong việc bảo vệ server là firewall. Trong quá khứ, việc này thường được thực hiện với các công cụ phức tạp. Có nhiều chức năng được tích hợp trong các tiện ích này, iptables là ứng dụng phổ biến nhất hiện nay, nhưng chúng đòi hỏi user phải nỗ lực nhiều để học và hiểu. Vì vậy, UFW là một giải pháp thay thế dễ sử dụng hơn nhiều.UFW là gì?
UFW, hay Firewall đơn giản, dựa trên iptables. Mục tiêu của nó là làm cho việc quản lý firewall của bạn trở nên đơn giản. Nó được hỗ trợ tốt và phổ biến trong cộng đồng Linux — thậm chí được cài đặt theo mặc định trong rất nhiều bản phân phối. Đây là một cách tuyệt vời để bắt đầu bảo vệ server.
Trước khi bắt đầu
Đầu tiên, bạn cần đảm bảo UFW đã được cài đặt. Nó được cài đặt theo mặc định trong Ubuntu, nhưng nếu vì lý do nào đó không có, bạn có thể cài đặt với apt-get :
sudo apt-get install ufw
Kiểm tra trạng thái
Bạn có thể kiểm tra trạng thái của UFW bằng lệnh:
sudo ufw status
Ngay bây giờ, nó có thể chưa hoạt động. Khi nào ufw hoạt động, bạn sẽ nhận được danh sách các rule (luật) tương tự như sau:
Status: active To Action From -- ------ ---- 22 ALLOW Anywhere
Sử dụng IPv6 với UFW
Nếu VPS của bạn được cấu hình cho IPv6, hãy đảm bảo UFW được cấu hình để hỗ trợ IPv6 để cấu hình cả luật firewall IPv4 và IPv6 của bạn. Để thực hiện việc này, hãy mở cấu hình UFW bằng lệnh sau:
sudo vi /etc/default/ufw
Sau đó, hãy đảm bảo "IPV6" được đặt thành "yes", như sau:
IPV6=yes
Lưu và đóng. Sau đó, khởi động lại firewall của bạn bằng các lệnh sau:
sudo ufw disable sudo ufw enable
Bây giờ UFW sẽ cấu hình firewall cho cả IPv4 và IPv6.
Cài đặt mặc định
Mặc định UFW từ chối tất cả các kết nối đến và cho phép tất cả các kết nối đi. Nghĩa là nó chặn mọi truy cập từ ngoài, và cho mọi ứng dụng bên trong truy cập ra ngoài, có vẻ phù hợp với máy tính cá nhân, nhưng với server thì ta cần cho phép một số dịch vụ được truy cập từ ngoài. Để đặt các giá trị mặc định với UFW, bạn sẽ sử dụng các lệnh sau:
sudo ufw default deny incoming
và
sudo ufw default allow outgoing
Lưu ý: nếu bạn muốn hạn chế mạnh nhất, thì chặn nốt đường đi ra, nhưng rất hiếm khi cần như vậy:
sudo ufw default deny outgoing
Cho phép kết nối
Cú pháp khá đơn giản. Bạn thay đổi các rule (luật) firewall bằng cách đưa ra các lệnh trong terminal. Nếu ta bật firewall bây giờ, nó sẽ từ chối tất cả các kết nối đến. Nếu bạn được kết nối qua SSH với server của bạn, đó sẽ là một vấn đề vì bạn sẽ bị khóa server. Hãy bật kết nối SSH với server để có thể điều khiển server từ xa với SSH:
sudo ufw allow ssh
Như bạn thấy, cú pháp để thêm dịch vụ khá đơn giản. UFW đi kèm với một số giá trị mặc định cho các mục đích sử dụng phổ biến. Lệnh SSH ở trên là một ví dụ. Về cơ bản nó chỉ là viết tắt của:
sudo ufw allow 22/tcp
Lệnh này cho phép kết nối trên cổng 22 bằng giao thức TCP. Nếu server SSH đang chạy trên cổng 2222, ta có thể bật kết nối bằng lệnh sau:
sudo ufw allow 2222/tcp
Các kết nối khác mà ta có thể cần
Ví dụ nếu ta đang có một web server có quyền truy cập FTP, ta có thể cần các lệnh sau:
sudo ufw allow www
hoặc sudo ufw allow 80/tcp
sudo ufw allow ftp
hoặc sudo ufw allow 21/tcp
Để cho phép các cổng 21, 80 chấp nhận kết nối từ ngoài.
Dãy cổng (port)
Bạn cũng có thể chỉ định phạm vi cổng với UFW. Để cho phép các cổng từ 1000 đến 2000, hãy sử dụng lệnh:
sudo ufw allow 1000:2000/tcp
Nếu bạn muốn UDP:
sudo ufw allow 1000:2000/udp
Các địa chỉ IP
Bạn cũng có thể chỉ định địa chỉ IP. Ví dụ: nếu tôi muốn cho phép kết nối từ một địa chỉ IP cụ thể (giả sử địa chỉ cơ quan hoặc nhà riêng của tôi), tôi sẽ sử dụng lệnh này:
sudo ufw allow from 192.168.255.255
Từ chối kết nối
Cài đặt mặc định là từ chối tất cả các kết nối đến.
Sau đó ta có thể cho phép, hoặc từ chối trên một cổng, dịch vụ cụ thể, như sau:
sudo ufw allow 80/tcp
sẽ cho phép truy cập vào cổng 80 trong khi:
sudo ufw deny 80/tcp
sẽ từ chối quyền truy cập vào cổng 80.
Xóa luật
Có hai tùy chọn để xóa các rule (luật). Cách đơn giản nhất là sử dụng cú pháp sau:
sudo ufw delete allow ssh
Như bạn thấy, ta sử dụng lệnh "xóa" và nhập các rule (luật) bạn muốn loại bỏ sau đó. Các ví dụ khác bao gồm:
sudo ufw delete allow 80/tcp
hoặc là
sudo ufw delete allow 1000:2000/tcp
Điều này có thể trở nên phức tạp khi bạn có các rule (luật) dài và phức tạp.
Một giải pháp đơn giản hơn gồm hai bước :
sudo ufw status numbered
sẽ có UFW liệt kê tất cả các rule (luật) hiện tại trong một danh sách được đánh số. Sau đó, ta chạy lệnh:
sudo ufw delete [number]
trong đó “[number]” là số dòng từ lệnh trước.
Bật Firewall UFW
Lệnh sau sẽ bật firewall:
sudo ufw enable
Bạn sẽ thấy dấu nhắc lệnh nếu mọi việc diễn ra tốt đẹp. Bạn có thể kiểm tra trạng thái các rule (luật) bằng lệnh:
sudo ufw status
hoặc là
sudo ufw status verbose
sẽ cho chi tiết hơn.
Để tắt UFW, hãy sử dụng lệnh sau:
sudo ufw disable
Đặt lại mọi thứ
Nếu bạn cần đặt lại các rule (luật) của server về cài đặt mặc định của chúng, bạn có thể thực hiện việc này bằng lệnh lệnh sau:
sudo ufw reset
Kết luận
Đến đây bạn sẽ có một server được cấu hình đúng cách để hạn chế quyền truy cập vào một tập hợp con các cổng hoặc địa chỉ IP.
Các tin trước
Cơ bản nhất về MYSQL trên Ubuntu CentOS 2012-06-12