Trang chủ / Chuyên đề / Cài đặt Firewall với UFW trên Ubuntu và Debian Cloud Server
Thứ ba, 25/06/2013 | 00:00 GMT+7

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

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