Bài 10: Firewall và quản lý port Linux
Bài này giúp anh hiểu port, service listen, UFW/firewalld và cách mở/đóng truy cập an toàn trên server.
- Port là gì và cách kiểm tra port đang mở.
- Dùng UFW trên Ubuntu/Debian.
- Dùng firewalld trên Rocky/Alma/RHEL.
- Tránh tự khóa SSH khi bật firewall.
1. Port là gì?
Port giống “cửa” của service. SSH thường 22, HTTP 80, HTTPS 443, MySQL 3306, PostgreSQL 5432. Không phải port nào cũng nên public ra Internet.
2. Kiểm tra port đang listen
ss -tulpn sudo ss -tulpn | grep LISTEN
LISTEN nghĩa là service đang chờ kết nối. Cột local address cho biết service bind trên IP nào.
3. Lab với UFW
sudo ufw status verbose sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable sudo ufw status numbered
Nếu SSH port không phải 22, phải allow đúng port trước khi enable.
4. Lab với firewalld
sudo firewall-cmd --state sudo firewall-cmd --list-all sudo firewall-cmd --add-service=http --permanent sudo firewall-cmd --add-service=https --permanent sudo firewall-cmd --reload
5. Tình huống thực tế
# UFW giới hạn SSH theo IP ví dụ sudo ufw allow from 1.2.3.4 to any port 22 proto tcp
6. Lỗi thường gặp
- Bật firewall trước khi allow SSH.
- Mở database ra public.
- Service không chạy nhưng tưởng firewall chặn.
- Firewall mở nhưng cloud security group vẫn chặn.
7. Quy trình debug port không vào được
- Service có chạy không:
systemctl status. - Port có listen không:
ss -tulpn. - Firewall OS có allow không.
- Cloud security group có allow không.
- DNS có trỏ đúng IP không.
8. Bài tập
- Liệt kê các port đang listen trên máy lab.
- Xác định service nào dùng port 22/80/443.
- Viết rule firewall chỉ mở SSH và HTTP/HTTPS.
