Miklix

Cách thiết lập tường lửa trên máy chủ Ubuntu

Đã xuất bản: lúc 21:35:25 UTC 15 tháng 2, 2025

Bài viết này giải thích và cung cấp một số ví dụ về cách thiết lập tường lửa trên GNU/Linux bằng ufw, viết tắt của Uncomplicated FireWall - và cái tên này rất phù hợp, đây thực sự là một cách rất dễ dàng để đảm bảo bạn không mở nhiều cổng hơn mức cần thiết.


Trang này được dịch máy từ tiếng Anh để có thể tiếp cận được với nhiều người nhất có thể. Thật không may, dịch máy vẫn chưa phải là công nghệ hoàn thiện, do đó có thể xảy ra lỗi. Nếu bạn thích, bạn có thể xem phiên bản tiếng Anh gốc tại đây:

How to Set Up a Firewall on Ubuntu Server

Thông tin trong bài đăng này dựa trên Ubuntu Server 14.04 x64. Có thể đúng hoặc không đúng với các phiên bản khác. (Cập nhật: Tôi có thể xác nhận rằng thông tin trong bài đăng này về cơ bản vẫn hợp lệ và hoạt động được kể từ Ubuntu Server 24.04, tuy nhiên trong 10 năm qua, ufw đã trở nên "thông minh" hơn một chút khi có các cấu hình cho các ứng dụng máy chủ phổ biến (ví dụ: bạn có thể bật "Nginx full" thay vì các cổng 80 và 443 riêng biệt) và việc tắt/bật toàn bộ tường lửa để áp dụng các quy tắc mới không còn cần thiết nữa)

Khi tôi mới bắt đầu với máy chủ GNU/Linux (Ubuntu), việc thiết lập tường lửa liên quan đến việc tạo và duy trì thủ công một tệp cấu hình phức tạp cho iptables. Tuy nhiên, gần đây tôi đã khám phá ra ufw , viết tắt của Uncomplicated Firewall – và thực sự là như vậy :-)

Bản cài đặt Ubuntu Server 14.04 của tôi đã cài đặt ufw, nhưng nếu chưa có, bạn chỉ cần cài đặt nó từ kho lưu trữ:

sudo apt-get install ufw

UFW thực ra chỉ là một công cụ đơn giản hóa cấu hình iptables – đằng sau hậu trường, iptables và tường lửa hạt nhân Linux vẫn thực hiện việc lọc, do đó ufw không kém hơn cũng không an toàn hơn những thứ này. Tuy nhiên, vì ufw giúp cấu hình tường lửa chính xác dễ dàng hơn nhiều, nên nó có thể giảm nguy cơ lỗi của con người và do đó có thể an toàn hơn đối với những người quản trị thiếu kinh nghiệm.

Nếu máy chủ của bạn được cấu hình với IPv6 cũng như IPv4, hãy đảm bảo rằng điều này cũng được bật cho UFW. Chỉnh sửa tệp /etc/default/ufw và tìm dòng có nội dung IPV6=yes . Trên bản cài đặt của tôi, nó đã có ở đó, nhưng nếu không hoặc nếu nó nói là không, bạn nên chỉnh sửa nó

Sau đó chỉ cần sử dụng dấu nhắc lệnh để bật các cổng bạn muốn mở. Nếu bạn kết nối với máy chủ của mình qua ssh, hãy đảm bảo cho phép điều đó hoặc nó có thể làm gián đoạn kết nối của bạn và có thể khóa bạn khỏi máy chủ khi bạn kích hoạt nó – tùy thuộc vào việc bạn có quyền truy cập vật lý vào máy chủ hay không, điều này có thể hơi bất tiện ;-)

Ví dụ, nếu bạn sử dụng ssh trên cổng chuẩn 22 và đang cấu hình máy chủ web hỗ trợ cả kết nối không được mã hóa (HTTP trên cổng 80) và được mã hóa (HTTPS trên cổng 443), bạn sẽ đưa ra các lệnh sau để cấu hình ufw:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Nếu bạn cần thêm quy tắc, chỉ cần thêm chúng như trên.

Nếu bạn có địa chỉ IP tĩnh và chỉ cần có thể kết nối qua ssh từ một vị trí, bạn cũng có thể hạn chế kết nối ssh tới một địa chỉ gốc duy nhất như sau:

sudo ufw allow from 192.168.0.1 to any port 22

Tất nhiên, hãy nhập địa chỉ IP của bạn vào.

Khi hoàn tất, hãy kích hoạt ufw bằng cách nhập:

sudo ufw enable

Và bạn đã hoàn tất! Tường lửa đang chạy và sẽ tự động khởi động khi bạn khởi động lại máy chủ :-)

Nếu bạn thực hiện thay đổi đối với cấu hình ufw, bạn có thể cần phải tắt và bật lại để thay đổi có hiệu lực, như sau:

sudo ufw disable
sudo ufw enable

Để xem cấu hình hiện tại, chỉ cần nhập:

sudo ufw status

Nếu ufw không được bật, thông báo “không hoạt động” sẽ chỉ hiển thị, nếu không, nó sẽ liệt kê các quy tắc hiện được xác định.

Chia sẻ trên BlueskyChia sẻ trên FacebookChia sẻ trên LinkedInChia sẻ trên TumblrChia sẻ trên XChia sẻ trên LinkedInGhim trên Pinterest

Mikkel Bang Christensen

Về tác giả

Mikkel Bang Christensen
Mikkel là người sáng lập và chủ sở hữu của miklix.com. Ông có hơn 20 năm kinh nghiệm làm lập trình viên máy tính/nhà phát triển phần mềm chuyên nghiệp và hiện đang làm việc toàn thời gian cho một tập đoàn CNTT lớn của Châu Âu. Khi không viết blog, ông dành thời gian rảnh rỗi cho nhiều sở thích, thú vui và hoạt động, có thể được phản ánh ở một mức độ nào đó trong nhiều chủ đề được đề cập trên trang web này.