Ở bài viết này, BKHOST sẽ cùng bạn tìm ra câu trả lời cho câu hỏi “Làm thế nào để thiết lập và định cấu hình Firewall với UFW trong Ubuntu 20.04 LTS?”.
Ok, hãy cùng bắt đầu ngay thôi nào.
UFW là gì?
UFW viết tắt của Uncomplicated FireWall, hay còn được biết đến là một giao diện hướng tới quá trình đơn giản hóa trình cấu hình tường lửa.
Việc đảm bảo trang mạng với firewall đơn giản là rất dễ và luôn được khuyến khích.
Các bước thiết lập và định cấu hình Firewall với UFW trong Ubuntu 20.04 LTS
Bước 1 – Thiết lập các chính sách UFW
Để xem trạng thái của UFW, ta gõ như sau:
{{EJS0}}
Ví dụ như sau:
{{EJS1}}
Các chính xác mặc định của firewall đều hoạt động tốt ở 2 giao diện máy chủ và máy để bàn. Điểm mạnh của chính sách này là việc chúng ta có thể đóng tất cả các port trên máy chủ và chỉ mở các port yêu cầu từng cái một. Dưới đây là cách mà chúng ta chặn tất cả các kết nối đến và chỉ cho phép các kết nối đi từ hộp Ubuntu 20.04 LTS:
{{EJS2}}
Cho phép hỗ trợ IPv6
Bạn cần đảm bảo rằng lệnh IPV6=yes xuất hiện trong /etc/default/ufw file. Ví dụ như sau:
{{EJS3}}
Bước 2 – Mở kết nối SSH TCP port 22
Bước tiếp theo là cho phép các đầu vào SSH ports. Chúng ta có thể dễ dàng mở SSH TCP port 22 bằng UFW theo cách sau:
{{EJS4}}
Nếu bạn đang chạy SSH trong TCP port 2222 hay TCP port 2323, chúng ta làm như sau:
{{EJS5}}
Một số sysadmins có địa chỉ IP tĩnh (như 202.54.2.5) tại nhà hoặc văn phòng. Trong trường hợp này, chỉ cho phép SSH truy cập từ địa chỉ IP tĩnh như 202.54.2.5 đến máy chủ Ubuntu địa chỉ IP 172.24.13.45:
{{EJS6}}
Để giới hạn SSH port, ta chạy lệnh:
{{EJS7}}
Bước 3 – Mở firewall
Hiện tại chúng ta đã mở cấu hình cơ bản, hay nói cách khác, firewall sẽ hạn chế tất cả lượng truy cập ngoại trừ SSH port 22. Thao tác đó được thực hiện bởi lệnh sau:
{{EJS8}}
Hãy nhớ rằng, một khi UFW được bật, nó cũng chạy trên hệ thống khởi động lại. Chúng ta có thể xác minh dễ dàng bằng cách sử dụng lệnh SystemCTL như sau:
Bạn muốn tắt UFW based firewall? Hãy thử cách sau:
{{EJS9}}
Nếu bạn cần dừng tường lửa và vô hiệu hóa khi khởi động hệ thống, dùng lệnh:
{{EJS10}}
Output sau đó sẽ hiển thị như sau:
{{EJS11}}
Bước 4 – Mở kết nối/port cổng đến cụ thể
Chúng tôi sẽ cho bạn biết thêm một số quy tắc. Giả sử bạn muốn mở các cổng và cho phép địa chỉ IP với UFW. Cú pháp để mở cổng TCP 80 và 443 như sau:
{{EJS12}}
Mở UDP/1194 (OpenVPN) server:
{{EJS13}}
Cho phép port ranges thông qua UFW
Chúng ta cũng có thể cho phép port ranges, TCP và UDP 3000 đến 4000:
{{EJS14}}
Ở ví dụ sau, nếu bạn muốn cho phép tất cả các kết nối từ địa chỉ IP 104.22.10.214, dùng dòng lệnh sau:
{{EJS15}}
Nếu muốn cho phép các kết nối từ địa chỉ IP 104.22.11.213 đến port 25:
{{EJS16}}
Chúng ta cũng có thể thể lập dest IP 222.222.222.222 cho port 25:
{{EJS17}}
Cho phép kết nối trên giao diện xác định
Chỉ mở port 22 cho giao diện WG0:
{{EJS18}}
Giả sử bạn muốn cho phép kết nối cho TCP port 3306 trên giao diện LXDBR0 từ 10.105.28.22, hãy thêm:
{{EJS19}}
Thêm sub/net thay vì địa chỉ IP đơn lẻ:
{{EJS20}}
Bước 5 – Khóa hoặc từ chối kết nối/port đầu vào
Bạn có muốn đóng các port hay chặn một địa chỉ IP cụ thể không? Nếu có, cú pháp sau đây chính là cách từ chối truy cập. Nói cách khác, cách từ chối truy cập đến port 25, ta có thể làm như sau:
Nếu bạn chắc chắn muốn từ chối tất cả truy cập từ địa chỉ IP 203.5.1.43, dùng dòng lệnh sau:
{{EJS21}}
Từ chối tất cả truy cập từ địa chỉ IP/subnet 103.13.42.13/29:
{{EJS22}}
Nếu bạn muốn từ chối truy cập từ địa chỉ IP 1.1.1.2 (địa chỉ IP xấu) đến port 22, thử cách sau:
{{EJS23}}
Bước 6 – Xác nhận trạng thái của UFW
Dùng lệnh trạng thái như sau:
{{EJS24}}
{{EJS25}}
Nếu bạn muốn xem status dài, hãy thử như sau:
{{EJS26}}
Xóa quy tắc trên Ubuntu 20.04 LTS UFW
Chúng ta đã hiểu được cách thêm, từ chối cũng như liệt kê các quy tắc của firewall. Bây giờ, hãy cùng tìm hiểu cách xóa bớt những quy tắc không mong muốn. Cú pháp liệt kê các quy tắc hiện có trong định dạng danh sách được đánh số như sau:
{{EJS27}}
{{EJS28}}
Ví dụ muốn xóa quy tắc thứ 6, ta gõ dòng lệnh:
{{EJS29}}
Các lệnh định cấu hình firewall với UFW khác
Chúng ta hãy cùng nhau học thêm một số lệnh quan trọng khác:
Reset UFW
{{EJS30}}
Reload UFW
{{EJS31}}
Xem firewall logs
Để đặt mặc định các mục UFW được nhập vào file /var/log/ufw.log, dùng nixcmd[name_missing] – contact @ webmaster@cyberciti.biz với URL /more command/tail và các lệnh khác để xem UFW logs:
{{EJS32}}
In danh sách tất cả các địa chỉ IP đang cố gắng đăng nhập qua SSH port nhưng bị chặn bởi UFW:
{{EJS33}}
Hiển thị danh sách các quy tắc:
{{EJS34}}
Output như sau:
{{EJS35}}
Thiết lập IP Masquerading với UFW
Đầu tiên, hãy chỉnh lại /etc/ufw/sysctl.conf và đảm bảo là bạn có dòng như sau:
{{EJS36}}
Tiếp theo thêm đầu của /etc/ufw/befor.rules/file], trước phần *Bộ lọc cho giao diện 10.0.0.0/8 và wg0:
{{EJS37}}
Lưu và đóng file lại. Cuối cùng, thêm UFW route để cho phép lưu lượng dữ liệu:
{{EJS38}}
Thiết lập phương thức lọc dữ liệu Egress filtering
Giả sử bạn muốn chặn các địa chỉ RFC1918 khỏi giao diện ETH0 trên VM được kết nối với Internet. Thêm các quy tắc ufw route để từ chối lưu lượng dữ liệu:
{{EJS39}}
Lời kết
Qua bài hướng dẫn nhanh này, bạn đã học được cách bảo vệ máy chủ Ubuntu Linux 20.04 LTS hay desktop của mình bằng UFW.
Nếu bạn còn bất cứ câu hỏi nào, hãy để lại bình luận ở bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.