CodeGym /Các khóa học /Docker SELF /Cài đặt tường lửa (`ufw`, `iptables`)

Cài đặt tường lửa (`ufw`, `iptables`)

Docker SELF
Mức độ , Bài học
Có sẵn

Cài đặt tường lửa ufw, iptables

1. UFW: Uncomplicated Firewall

Tại sao cần tường lửa?

Hãy tưởng tượng server của bạn giống như một ngôi nhà đầy những thứ có giá trị (tất nhiên là dữ liệu). Nếu bạn để cửa mở toang, ai cũng có thể vào, lấy "bữa trưa dữ liệu" của bạn, sau đó để lại bát đĩa bẩn (hoặc thậm chí tệ hơn). Tường lửa chính là những cánh cửa mà bạn có thể kiểm soát: ai được phép vào, qua cổng nào và trong điều kiện nào.

Linux cung cấp hai công cụ chính để cấu hình tường lửa: ufw (Uncomplicated Firewall, nghĩa là "tường lửa đơn giản") và iptables. Hãy cùng xem chúng hoạt động như thế nào và khác nhau ở điểm gì.

UFW là gì?

UFW là công cụ để cấu hình tường lửa, được thiết kế với ý tưởng "hãy làm cho nó đơn giản". Nó rất phù hợp cho những người muốn nhanh chóng thiết lập các quy tắc cơ bản mà không cần phải đụng vào những chi tiết phức tạp.

Cài đặt và bật UFW

UFW thường được cài sẵn trong hầu hết các bản phân phối Debian/Ubuntu. Nếu nó bị thiếu, cài đặt nó bằng lệnh sau:

sudo apt update
sudo apt install ufw

Kích hoạt UFW:

sudo ufw enable

Kiểm tra trạng thái:

sudo ufw status

Lần đầu tiên chạy, trạng thái có thể sẽ là "inactive". Sau khi kích hoạt, nó sẽ chuyển thành "active".

Cấu hình các quy tắc UFW

Bây giờ là phần thú vị nhất — cấu hình các quy tắc để xác định lưu lượng nào được phép thông qua, và lưu lượng nào sẽ bị chặn.

Cho phép kết nối SSH (port 22):

sudo ufw allow 22

Mở truy cập đến máy chủ web (port 80):

sudo ufw allow 80

Mở HTTPS (port 443):

sudo ufw allow 443

Đóng truy cập đến port không cần thiết (ví dụ, port 8080):

sudo ufw deny 8080

Xóa quy tắc:

Nếu bạn thay đổi ý định, hãy xóa quy tắc bằng số thứ tự, được chỉ định bởi lệnh sudo ufw status numbered. Ví dụ:

sudo ufw delete 1

Kiểm tra và thử nghiệm

Để chắc chắn mọi thứ hoạt động đúng cách, kiểm tra trạng thái một lần nữa:

sudo ufw status

Bạn sẽ thấy danh sách tất cả các quy tắc đang hoạt động.


2. IPTABLES: kiểm soát nhiều hơn, khả năng linh hoạt hơn

iptables là gì?

Nếu UFW là "cửa đơn giản có khóa", thì iptables là "bảo vệ thông minh", cho phép bạn cấu hình mọi thứ. Nó cung cấp khả năng kiểm soát hoàn toàn về lưu lượng, bao gồm định tuyến, lọc theo các tiêu chí khác nhau và thậm chí khả năng sửa đổi các gói tin.

Các khái niệm chính của iptables

  1. Bảng (Tables) — là tập hợp các chức năng để xử lý gói tin mạng.
    • filter: xử lý và lọc gói tin (ví dụ: cho phép hoặc chặn).
    • nat: chuyển đổi địa chỉ/cổng (ví dụ cho router).
  2. Dây chuyền (Chains) — là các quy tắc được áp dụng cho các gói tin.
    • INPUT: dành cho lưu lượng đi vào.
    • OUTPUT: dành cho lưu lượng đi ra.
    • FORWARD: dành cho lưu lượng chuyển tiếp.
  3. Mục tiêu (Targets) — là hành động được thực hiện trên gói tin.
    • ACCEPT: cho phép gói tin.
    • DROP: bỏ gói tin.
    • REJECT: bỏ gói tin và gửi thông báo.

Cùng xem cách cấu hình các quy tắc của iptables nhé.

Xem các quy tắc hiện tại

Để xem các quy tắc đã được cấu hình, chạy lệnh sau:

sudo iptables -L

Bạn có thể thêm -v hoặc -n để xem thông tin chi tiết về gói tin và địa chỉ IP.

Tạo quy tắc với iptables

Quy tắc đơn giản: cho phép SSH (cổng 22):

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Chặn truy cập vào cổng 8080:

sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

Hạn chế truy cập theo địa chỉ IP:

Nếu bạn muốn chỉ một máy tính cụ thể với IP nhất định có thể kết nối với server của bạn, còn tất cả các máy khác thì không:

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

Xóa các quy tắc

Để xóa một quy tắc, bạn cần biết số thứ tự của nó. Tìm số thứ tự với lệnh:

sudo iptables -L --line-numbers

Và sau đó xóa nó:

sudo iptables -D INPUT <rule_number>

Lưu các quy tắc

Các quy tắc iptables mặc định sẽ "quên" khi hệ thống khởi động lại. Để tránh điều này, hãy lưu chúng:

sudo iptables-save > /etc/iptables/rules.v4

Sau đó bạn có thể khôi phục lại các quy tắc bằng lệnh sau:

sudo iptables-restore < /etc/iptables/rules.v4

3. UFW hay IPTABLES: chọn cái nào?

UFW và iptables đều làm cùng một nhiệm vụ — bảo vệ server của bạn. Vậy công cụ nào nên chọn?

  • UFW — là công cụ đơn giản để cài đặt bảo mật cơ bản. Nếu bạn không muốn tìm hiểu vào chi tiết thấp cấp hoặc chỉ muốn cài nhanh tường lửa, hãy chọn UFW.
  • Iptables — là công cụ mạnh để cấu hình phức tạp hơn. Nếu bạn có hạ tầng phức tạp (ví dụ như NAT, routing), bạn sẽ cần iptables.

À, UFW thực ra hoạt động "trên" iptables. Nó chỉ đơn giản tạo ra các quy tắc iptables giúp bạn. Vì vậy, nếu bạn đã hiểu iptables, bạn tự động hiểu cách UFW làm việc bên trong.


4. Ví dụ thực hành: bảo vệ server

Ví dụ 1: bảo vệ SSH và web server với UFW

  1. Đảm bảo rằng UFW đã được cài đặt và kích hoạt:
sudo ufw enable
  1. Cho phép truy cập SSH và web server:
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
  1. Kiểm tra các quy tắc đang hoạt động:
sudo ufw status

Ví dụ 2: chặn lưu lượng không cần thiết với iptables

  1. Cho phép truy cập SSH:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  1. Cho phép lưu lượng web:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  1. Chặn tất cả các lưu lượng khác:
sudo iptables -A INPUT -j DROP

Hôm nay bạn đã học cách bảo vệ server bằng UFW và iptables. Cả hai công cụ đều mạnh mẽ và hữu ích, chỉ cần nhớ rằng UFW là "người bạn hàng ngày" của bạn, còn iptables là "công cụ mạnh mẽ trong tay của một người thợ lành nghề". Hãy cấu hình tường lửa, kiểm tra cài đặt của bạn, và để server của bạn là một pháo đài vững chắc, không phải là nơi ai cũng có thể đi qua.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION