Thứ ba, 25/06/2013 | 00:00 GMT+7

Cách thiết lập firewall với UFW trên server cloud Ubuntu và Debian


Giới thiệu

Một trong những tuyến phòng thủ đầu tiên trong việc bảo vệ server cloud của bạn là firewall đang hoạt động. Trong quá khứ, điều này thường được thực hiện thông qua các tiện ích phức tạp và phức tạp. Có rất nhiều chức năng được tích hợp trong các tiện ích này, iptables đang 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 rất nhiều để tìm hiểu và hiểu chúng. Luật firewall không phải là thứ bạn muốn tự đoán.

Vì vậy, UFW là một giải pháp thay thế dễ sử dụng hơn đáng kể.

UFW là gì?

UFW, hay Tường lửa không phức tạp, là giao diện user của iptables. Mục tiêu chính của nó là làm cho việc quản lý drop-dead firewall của bạn trở nên đơn giản và cung cấp một giao diện dễ sử dụng. 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. Vì vậy, đó là một cách tốt để bắt đầu bảo vệ server của bạn.

Trước khi ta bắt đầu

Đầu tiên, rõ ràng là bạn muốn đảm bảo UFW đã được cài đặt. Nó phải đượ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 gói bằng aptitude hoặc apt-get bằng các lệnh sau:

sudo aptitude install ufw

hoặc là

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ể sẽ cho bạn biết nó không hoạt động. Khi nào ufw hoạt động, bạn sẽ nhận được danh sách các luật hiện tại 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 đó, đảm bảo "IPV6" được đặt thành "có", như sau:

IPV6=yes

Lưu và thoát. 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, khi thích hợp.

Cài đặt mặc định

Một trong những điều sẽ giúp cài đặt bất kỳ firewall nào dễ dàng hơn là xác định một số luật mặc định để cho phép và từ chối kết nối. Mặc định của UFW là 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. Điều này nghĩa là bất kỳ ai cố gắng truy cập server cloud của bạn sẽ không thể kết nối, trong khi bất kỳ ứng dụng nào trong server sẽ có thể tiếp cận thế giới bên ngoài. Để đặt các giá trị mặc định được sử dụng bở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ế hơn một chút, bạn cũng có thể từ chối tất cả các yêu cầu gửi đi. Sự cần thiết của điều này còn nhiều tranh cãi, nhưng nếu bạn có một server cloud công khai, nó có thể giúp ngăn chặn bất kỳ loại kết nối shell nào từ xa. Nó làm cho firewall của bạn trở nên cồng kềnh hơn để quản lý vì bạn cũng sẽ phải cài đặt các luật cho tất cả các kết nối gửi đi. Bạn có thể đặt cài đặt này làm mặc định với những điều sau:

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 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 cloud của bạn , đó sẽ là một vấn đề vì bạn sẽ bị khóa server của bạn . Hãy bật kết nối SSH với server của ta để ngăn điều đó xảy ra:

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 của ta ở 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 của ta đ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

Bây giờ là thời điểm tốt để cho phép một số kết nối khác mà ta có thể cần. Nếu ta đang bảo vệ 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

Số dặm bay của bạn sẽ khác nhau tùy theo các cổng và dịch vụ bạn cần mở. Có thể sẽ có một chút thử nghiệm cần thiết. Ngoài ra, bạn muốn đảm bảo bạn đã cho phép kết nối SSH của bạn .

Dãy cổng

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 các 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 của ta là từ chối tất cả các kết nối đến. Điều này làm cho các luật firewall dễ quản lý hơn vì ta chỉ cho phép một cách có chọn lọc các cổng và địa chỉ IP nhất định. Tuy nhiên, nếu bạn muốn lật nó và mở tất cả các cổng của server (không được khuyến khích ), bạn có thể cho phép tất cả các kết nối và sau đó từ chối một cách hạn chế các cổng mà bạn không muốn cấp quyền truy cập bằng cách thay thế “allow” bằng “từ chối” trong các lệnh trên. Ví dụ:

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 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 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 luật dài và phức tạp.

Một giải pháp thay thế đơn giản hơn gồm hai bước là nhập:

sudo ufw status numbered

sẽ có UFW liệt kê tất cả các luật hiện tại trong một danh sách được đánh số. Sau đó, ta ra lệnh:

sudo ufw delete [number]

trong đó “[number]” là số dòng từ lệnh trước đó.

Bật nó lên

Sau khi ta đã đưa UFW đến nơi ta muốn, ta có thể bật nó lên bằng lệnh này (hãy nhớ: nếu bạn đang kết nối qua SSH, hãy đảm bảo bạn đã đặt cổng SSH của bạn , thường là cổng 22, được phép nhận kết nối):

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 luật của bạn ngay bây giờ bằng lệnh :

sudo ufw status

hoặc là

sudo ufw status verbose

để hiển thị kỹ nhất.

Để tắt UFW, hãy sử dụng lệnh sau:

sudo ufw disable

Đặt lại mọi thứ

Nếu vì bất kỳ lý do gì, bạn cần đặt lại các luật của server cloud 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 cloud đượ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.


Tags:

Các tin liên quan

Cách cài đặt Gerrit trên Ubuntu Cloud Server
2013-06-18
Cách cài đặt diễn đàn Vanilla trên Ubuntu 12.10
2013-06-14
Cách giới hạn mức sử dụng CPU trên Ubuntu 12.10
2013-06-08
Cách cài đặt diễn đàn phpBB® trên Ubuntu 12.10
2013-06-06
Cách cài đặt Simple Machines® trên Ubuntu 12.10
2013-06-06
Cách thiết lập Red5 trên Ubuntu 12.10
2013-05-31
Cách thiết lập Tiki Wiki trên Ubuntu 12.10
2013-05-31
Cách cài đặt Webmin trên Ubuntu Cloud Server
2013-05-07
Cách tạo plugin Nagios với Bash trên Ubuntu 12.10
2013-04-29
Cách tạo plugin Nagios với Perl trên Ubuntu 12.10
2013-04-29