Kiến thức Hữu ích 😍

Thiết Lập Tường Lửa UFW Trên Ubuntu 20.04 | Hướng Dẫn Chi Tiết


Trong thế giới số hiện nay, việc bảo vệ máy chủ khỏi các mối đe dọa trên không gian mạng là một ưu tiên hàng đầu. Tường lửa đóng vai trò như một người lính gác cổng, kiểm soát mọi kết nối ra vào hệ thống của bạn, đảm bảo chỉ những truy cập hợp lệ mới được phép đi qua. Đây là lớp phòng thủ đầu tiên và quan trọng nhất giúp ngăn chặn các cuộc tấn công trái phép, bảo vệ dữ liệu nhạy cảm và duy trì sự ổn định cho máy chủ. Nếu không có tường lửa, máy chủ của bạn sẽ phơi bày trước vô số nguy cơ bảo mật. Đây chính là lý do vì sao Firewall là gì luôn là kiến thức cần thiết cho người quản trị hệ thống.

Đối với người dùng Ubuntu, UFW (Uncomplicated Firewall) là một công cụ tuyệt vời. Đúng như tên gọi, UFW đơn giản hóa quá trình cấu hình và quản lý tường lửa, giúp ngay cả những người mới bắt đầu cũng có thể thiết lập các quy tắc bảo mật một cách nhanh chóng. Thay vì phải làm việc với cú pháp phức tạp của iptables, bạn có thể sử dụng các lệnh ngắn gọn, dễ hiểu để bảo vệ hệ thống. Sử dụng UFW trên Ubuntu 20.04 không chỉ giúp tăng cường an ninh mà còn tiết kiệm thời gian quản trị. Bài viết này của AZWEB sẽ hướng dẫn bạn chi tiết từng bước, từ cài đặt đến cấu hình nâng cao.

Các bước cài đặt UFW trên Ubuntu 20.04

Trước khi đi sâu vào cấu hình, chúng ta cần đảm bảo UFW đã sẵn sàng trên hệ thống của bạn. Quá trình này rất nhanh chóng và đơn giản, chỉ bao gồm vài bước kiểm tra và cài đặt cơ bản.

Kiểm tra trạng thái UFW trên hệ thống

Hầu hết các phiên bản Ubuntu hiện đại đều được cài đặt sẵn UFW. Tuy nhiên, để chắc chắn, bạn nên kiểm tra trạng thái của nó trước. Thao tác này giúp bạn biết được UFW đã có trên hệ thống hay chưa và nó đang hoạt động hay không.

Bạn có thể kiểm tra bằng cách mở terminal và chạy lệnh sau:

sudo ufw status

Nếu UFW đã được cài đặt và đang tắt, bạn sẽ nhận được thông báo: Status: inactive. Nếu nó chưa được cài đặt, terminal sẽ hiển thị lỗi không tìm thấy lệnh. Việc kiểm tra này đảm bảo bạn không thực hiện các bước thừa thãi và có cái nhìn tổng quan về trạng thái ban đầu của tường lửa.

Hình minh họa

Hướng dẫn cài đặt và kích hoạt UFW

Nếu kết quả kiểm tra cho thấy UFW chưa được cài đặt, bạn có thể dễ dàng bổ sung nó bằng một lệnh duy nhất. Hệ thống quản lý gói apt của Ubuntu sẽ tự động tải và cài đặt phiên bản mới nhất.

Để cài đặt UFW, hãy chạy lệnh:

sudo apt update
sudo apt install ufw

Sau khi cài đặt thành công, UFW vẫn ở trạng thái inactive (không hoạt động). Để kích hoạt nó, bạn sử dụng lệnh:

sudo ufw enable

Hệ thống sẽ cảnh báo rằng việc kích hoạt tường lửa có thể làm gián đoạn các kết nối hiện tại, đặc biệt là SSH. Hãy nhấn yEnter để xác nhận. Sau khi kích hoạt, bạn có thể kiểm tra lại trạng thái bằng lệnh sudo ufw status để chắc chắn rằng nó đã hoạt động (Status: active).

Hướng dẫn thiết lập và cấu hình UFW để bảo vệ hệ thống

Sau khi đã cài đặt và kích hoạt UFW, bước tiếp theo là thiết lập các quy tắc để nó biết phải làm gì với các kết nối. Đây là phần quan trọng nhất, quyết định mức độ bảo mật của máy chủ.

Thiết lập các quy tắc cơ bản cho phép và từ chối kết nối

Một nguyên tắc bảo mật cơ bản là “chặn tất cả, chỉ cho phép những gì cần thiết”. Chúng ta sẽ áp dụng nguyên tắc này với UFW. Đầu tiên, hãy thiết lập quy tắc mặc định là từ chối tất cả các kết nối đến (incoming) và cho phép tất cả các kết nối đi (outgoing).

Chạy các lệnh sau:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Với cấu hình này, máy chủ của bạn sẽ tự động chặn mọi yêu cầu kết nối từ bên ngoài, trong khi vẫn cho phép các ứng dụng bên trong máy chủ kết nối ra internet. Đây là một cấu hình nền tảng an toàn, từ đó bạn sẽ mở dần các cổng cần thiết cho dịch vụ của mình.

Hình minh họa

Cấu hình nâng cao với UFW (cổng, giao thức, IP cụ thể)

UFW cho phép bạn tạo ra các quy tắc rất chi tiết để kiểm soát truy cập một cách linh hoạt. Bạn có thể mở hoặc đóng các cổng cụ thể, giới hạn truy cập theo giao thức (TCP/UDP), hoặc thậm chí chỉ cho phép các địa chỉ IP nhất định kết nối.

Ví dụ, để mở cổng 80 cho máy chủ web (giao thức TCP), bạn dùng lệnh:

sudo ufw allow 80/tcp

Nếu bạn muốn cho phép một địa chỉ IP cụ thể (ví dụ: 192.168.1.100) truy cập vào tất cả các cổng, bạn có thể sử dụng:

sudo ufw allow from 192.168.1.100

Bạn cũng có thể kết hợp các quy tắc. Ví dụ, chỉ cho phép IP 192.168.1.100 kết nối đến cổng 22 (SSH):

sudo ufw allow from 192.168.1.100 to any port 22

Sự linh hoạt này giúp bạn xây dựng một hệ thống phòng thủ vững chắc, tùy chỉnh theo đúng nhu cầu sử dụng của mình. Bạn có thể tham khảo thêm về Ids là gì để hiểu về các hệ thống phát hiện xâm nhập tích hợp cùng với tường lửa nhằm bảo vệ hệ thống toàn diện hơn.

Cách bật, tắt và quản lý các quy tắc của tường lửa

Việc quản lý UFW hàng ngày như bật, tắt hay chỉnh sửa quy tắc là rất quan trọng để duy trì an ninh và thích ứng với các thay đổi của hệ thống. May mắn là UFW cung cấp các lệnh đơn giản cho những công việc này.

Hình minh họa

Bật/tắt UFW nhanh chóng bằng lệnh

Trong quá trình bảo trì hoặc khắc phục sự cố, bạn có thể cần tạm thời tắt tường lửa. Để tắt UFW, bạn chỉ cần chạy lệnh:

sudo ufw disable

Sau khi hoàn tất công việc, hãy nhớ bật lại nó ngay lập tức để bảo vệ máy chủ:

sudo ufw enable

Nếu bạn muốn xóa toàn bộ các quy tắc đã thiết lập và đưa UFW về trạng thái mặc định ban đầu, hãy sử dụng lệnh reset. Lệnh này sẽ vô hiệu hóa UFW và xóa tất cả các quy tắc bạn đã tạo.

sudo ufw reset

Lệnh này rất hữu ích khi bạn muốn làm lại cấu hình từ đầu nhưng hãy cẩn thận vì nó sẽ xóa sạch mọi thiết lập trước đó.

Quản lý quy tắc hiện có – sửa đổi, xóa, kiểm tra

Khi hệ thống của bạn thay đổi, bạn sẽ cần thêm, sửa hoặc xóa các quy tắc tường lửa. Để xem danh sách các quy tắc hiện có cùng với số thứ tự của chúng, hãy dùng lệnh:

sudo ufw status numbered

Kết quả sẽ hiển thị một danh sách được đánh số, giúp bạn dễ dàng xác định quy tắc cần thao tác.

Hình minh họa

Để xóa một quy tắc, bạn có thể dùng số thứ tự của nó. Ví dụ, để xóa quy tắc số 3:

sudo ufw delete 3

Hệ thống sẽ yêu cầu bạn xác nhận trước khi xóa. Bạn cũng có thể xóa quy tắc bằng cách chỉ định lại chính quy tắc đó, ví dụ:

sudo ufw delete allow 80/tcp

Việc quản lý quy tắc một cách thường xuyên giúp tường lửa của bạn luôn gọn gàng, hiệu quả và phù hợp với yêu cầu bảo mật hiện tại. Nếu muốn tìm hiểu sâu hơn về các hình thức tấn công qua mạng và các giải pháp phòng thủ, bạn có thể xem thêm Phishing là gì hoặc Xss là gì.

Quản lý các kết nối cho phép hoặc chặn bằng UFW

Một trong những chức năng cốt lõi của tường lửa là quyết định dịch vụ nào được phép hoạt động và kết nối nào cần bị chặn. UFW giúp bạn thực hiện điều này một cách trực quan.

Cho phép kết nối dịch vụ phổ biến (SSH, HTTP, HTTPS)

Để máy chủ của bạn có thể hoạt động, bạn cần mở các cổng cho những dịch vụ cần thiết. Ba dịch vụ phổ biến nhất là SSH (để quản trị từ xa), HTTP (cho web không mã hóa), và HTTPS (cho web có mã hóa).

Điều quan trọng nhất là phải luôn cho phép kết nối SSH trước khi kích hoạt UFW, nếu không bạn sẽ bị khóa ngoài máy chủ của mình.

sudo ufw allow ssh

Lệnh này tương đương với sudo ufw allow 22/tcp. Tiếp theo, nếu bạn đang vận hành một trang web, hãy mở cổng cho HTTP và HTTPS:

sudo ufw allow http
sudo ufw allow https

Những lệnh này tương đương với việc mở cổng 80 và 443. UFW nhận diện tên các dịch vụ phổ biến, giúp cú pháp trở nên dễ nhớ hơn. Giao thức HTTPS cũng là chủ đề quan trọng liên quan đến bảo mật web, bạn có thể đọc thêm về Https là gìTls là gì để hiểu hơn về cách mã hóa dữ liệu truyền tải an toàn.

Hình minh họa

Chặn kết nối không mong muốn và hạn chế rủi ro tấn công

Bên cạnh việc cho phép các kết nối hợp lệ, bạn cũng cần chủ động chặn các truy cập đáng ngờ để giảm thiểu rủi ro. Ví dụ, nếu bạn phát hiện một địa chỉ IP đang cố gắng tấn công hệ thống, bạn có thể chặn nó ngay lập tức.

Để chặn một địa chỉ IP cụ thể, ví dụ 203.0.113.10:

sudo ufw deny from 203.0.113.10

Một hình thức tấn công phổ biến là brute force vào cổng SSH. UFW có một tính năng đặc biệt để hạn chế loại tấn công này. Lệnh limit sẽ chặn một địa chỉ IP nếu nó cố gắng kết nối quá nhiều lần trong một khoảng thời gian ngắn.

sudo ufw limit ssh

Quy tắc này sẽ cho phép kết nối SSH nhưng sẽ tự động chặn các IP có dấu hiệu tấn công. Đây là một biện pháp bảo mật thông minh và hiệu quả. Nếu bạn muốn tìm hiểu thêm về các loại mã độc có thể tấn công vào hệ thống của mình, hãy tham khảo Malware là gì, Ransomware là gìTrojan là gì.

Kiểm tra trạng thái và bảo trì tường lửa hiệu quả

Thiết lập tường lửa không phải là công việc làm một lần rồi quên. Bạn cần thường xuyên kiểm tra và bảo trì để đảm bảo nó luôn hoạt động đúng cách và bảo vệ hệ thống của bạn một cách tối ưu.

Để xem trạng thái chi tiết của UFW, bao gồm các quy tắc mặc định, danh sách quy tắc và trạng thái ghi nhật ký (logging), hãy sử dụng tùy chọn verbose:

sudo ufw status verbose

Lệnh này cung cấp một cái nhìn tổng quan và đầy đủ về cấu hình hiện tại của tường lửa.

Để theo dõi hoạt động của tường lửa, bạn nên bật tính năng ghi nhật ký. Nó sẽ ghi lại thông tin về các kết nối bị chặn hoặc được cho phép, giúp bạn phát hiện các hoạt động bất thường.

sudo ufw logging on

Nhật ký của UFW thường được lưu tại /var/log/ufw.log. Bạn có thể xem tệp này bằng các lệnh như tail hoặc less để kiểm tra các truy cập gần đây. Việc kiểm tra nhật ký định kỳ là một phần quan trọng của công tác bảo trì, giúp bạn phát hiện sớm các mối đe dọa tiềm tàng. Điều này có thể liên quan đến việc giám sát các Botnet là gì hay các Lỗ hổng bảo mật có thể bị khai thác.

Hình minh họa

Lưu ý khi sử dụng UFW để bảo mật máy chủ Ubuntu

UFW là một công cụ mạnh mẽ, nhưng nếu sử dụng không cẩn thận, nó có thể gây ra sự cố không mong muốn. Dưới đây là một vài lưu ý quan trọng mà AZWEB khuyên bạn nên ghi nhớ để đảm bảo quá trình cấu hình diễn ra suôn sẻ.

Đầu tiên, hãy luôn sao lưu cấu hình hiện tại trước khi thực hiện những thay đổi lớn. Bạn có thể sao chép các tệp cấu hình của UFW để có thể khôi phục lại nếu cần.

Quan trọng nhất, luôn đảm bảo rằng bạn đã tạo quy tắc cho phép kết nối SSH (sudo ufw allow ssh) trước khi bật UFW bằng lệnh sudo ufw enable. Nếu quên bước này, bạn sẽ ngay lập tức bị mất kết nối và không thể truy cập vào máy chủ từ xa.

Một sai lầm phổ biến khác là tắt UFW khi gặp sự cố mà không có kế hoạch rõ ràng. Việc tắt tường lửa sẽ khiến máy chủ của bạn không được bảo vệ. Thay vì tắt hoàn toàn, hãy cố gắng xác định quy tắc gây ra sự cố và chỉnh sửa nó. Cuối cùng, hãy kiểm tra kỹ các quy tắc sau khi thêm hoặc sửa đổi để đảm bảo chúng hoạt động đúng như bạn mong đợi và không vô tình chặn các dịch vụ quan trọng.

Các vấn đề phổ biến và cách khắc phục

Ngay cả với một công cụ đơn giản như UFW, bạn vẫn có thể gặp phải một số vấn đề. Dưới đây là hai sự cố thường gặp nhất và cách để bạn khắc phục chúng.

Hình minh họa

Không thể kết nối SSH sau khi bật UFW

Đây là vấn đề kinh điển nhất. Bạn vừa bật UFW và ngay lập tức bị ngắt kết nối SSH. Nguyên nhân gần như chắc chắn là do bạn chưa tạo quy tắc cho phép truy cập qua cổng 22.

Để khắc phục, bạn cần truy cập vào máy chủ thông qua một phương thức khác, chẳng hạn như bảng điều khiển (console) do nhà cung cấp dịch vụ hosting, VPS như AZWEB cung cấp. Sau khi đăng nhập, hãy chạy lệnh sau để mở cổng SSH:

sudo ufw allow ssh

Sau đó, bạn có thể thử kết nối lại qua SSH. Để tránh tình trạng này, hãy luôn nhớ quy tắc vàng: “Cho phép SSH trước, kích hoạt UFW sau”.

Các quy tắc UFW không hoạt động như mong đợi

Đôi khi, bạn đã thêm một quy tắc nhưng nó lại không có hiệu lực. Nguyên nhân có thể do thứ tự của các quy tắc hoặc xung đột với các quy tắc khác. UFW xử lý các quy tắc theo thứ tự chúng xuất hiện trong danh sách.

Để gỡ lỗi, hãy sử dụng lệnh sudo ufw status numbered để xem thứ tự các quy tắc. Có thể một quy tắc “chặn” (deny) ở vị trí cao hơn đang ngăn chặn quy tắc “cho phép” (allow) của bạn hoạt động. Trong trường hợp đó, bạn cần xóa quy tắc cũ và thêm lại quy tắc mới ở vị trí phù hợp hơn. Ngoài ra, hãy kiểm tra xem có dịch vụ tường lửa nào khác (như iptables được cấu hình thủ công) đang chạy song song và gây xung đột hay không.

Thực hành tốt nhất khi sử dụng UFW cho Ubuntu 20.04

Để tối ưu hóa việc sử dụng UFW và xây dựng một hệ thống phòng thủ vững chắc, bạn nên tuân thủ một số nguyên tắc thực hành tốt nhất. Những mẹo này sẽ giúp cấu hình của bạn luôn an toàn, gọn gàng và dễ quản lý.

Luôn kiểm tra kỹ trạng thái tường lửa (sudo ufw status) sau mỗi lần thay đổi để đảm bảo các quy tắc đã được áp dụng đúng cách. Hãy giữ cho bộ quy tắc của bạn càng đơn giản càng tốt. Chỉ mở những cổng thực sự cần thiết theo nguyên tắc “đặc quyền tối thiểu”. Điều này giúp giảm bề mặt tấn công của hệ thống.

Sử dụng tính năng ghi nhật ký (sudo ufw logging on) để theo dõi các hoạt động đáng ngờ. Việc thường xuyên xem lại nhật ký có thể giúp bạn phát hiện các nỗ lực xâm nhập sớm. Cuối cùng, thay vì mở một cổng cho tất cả mọi người, hãy cố gắng giới hạn quyền truy cập theo địa chỉ IP cụ thể nếu có thể. Ví dụ, chỉ cho phép IP từ văn phòng của bạn truy cập vào cổng SSH.

Hình minh họa

Kết luận

Qua bài viết này, AZWEB đã cùng bạn tìm hiểu chi tiết về UFW – một công cụ tường lửa mạnh mẽ nhưng lại vô cùng thân thiện trên Ubuntu 20.04. Việc sử dụng UFW không chỉ giúp bạn bảo vệ máy chủ của mình khỏi các cuộc tấn công trái phép mà còn mang lại sự an tâm khi vận hành hệ thống. Từ việc cài đặt cơ bản, thiết lập quy tắc, quản lý kết nối cho đến khắc phục sự cố, UFW đã chứng tỏ được sự hiệu quả và đơn giản của mình.

Bảo mật là một hành trình liên tục, không phải là một điểm đến. Chúng tôi khuyến khích bạn áp dụng ngay những kiến thức trong bài viết này để thiết lập lớp phòng thủ đầu tiên cho máy chủ của mình. Sau khi đã thành thạo UFW, bạn có thể tìm hiểu sâu hơn về các công cụ bảo mật nâng cao khác hoặc viết các kịch bản (scripts) để tự động hóa việc quản lý tường lửa, đưa hệ thống của bạn lên một tầm cao mới về an ninh và hiệu quả. Ngoài ra, việc tìm hiểu thêm về Mã hóa là gì2fa là gì cũng sẽ giúp bạn tăng cường hơn nữa khả năng bảo mật tổng thể của hệ thống.

Đánh giá