10.StateFull StateLess
🔥 Phân biệt Firewall Stateful & Stateless – Cực dễ hiểu cho AWS, thi cert & đi làm¶
PHẦN 1: Ôn lại Networking – TCP/IP có gì liên quan?¶
- TCP/IP: Mỗi kết nối TCP gồm nhiều gói tin (packet), mỗi packet có:
- Source IP & port (máy gửi)
- Destination IP & port (máy nhận)
- Port nổi tiếng: HTTP (80), HTTPS (443)
- Ephemeral port: Khi client kết nối, nó chọn port tạm thời (random, thường 1024-65535)
Cách nhìn đúng về traffic¶
- Client (Bob) dùng ephemeral port → gửi request đến server port 443 (HTTPS)
- Server trả về: từ port 443 → đúng ephemeral port của Bob
- Một kết nối thực ra là:
- Request: client → server (ephemeral → well-known port)
- Response: server → client (well-known port → ephemeral)
Lưu ý: Outbound hay inbound là do "GÓC NHÌN"
- Với client: Request là outbound, response là inbound
- Với server: Request là inbound, response là outbound
PHẦN 2: Stateless Firewall – “Ngố” và phiền phức¶
Stateless firewall là gì?¶
- Không nhớ trạng thái kết nối, chỉ biết packet này vào hay ra, port nào, IP nào.
- Muốn cho phép 1 kết nối → phải tạo 2 rule:
- 1 rule cho request (inbound hoặc outbound)
- 1 rule cho response (outbound hoặc inbound – ngược chiều)
- VD:
- Bob kết nối tới server port 443 (HTTPS), stateless firewall:
- server Phải allow inbound 443 (cho request)
- server Phải allow outbound ephemeral port (cho response)
- Bob kết nối tới server port 443 (HTTPS), stateless firewall:
- Kết quả:
- Nếu server vừa nhận connection, vừa tải update (outbound), phải có cả rule inbound & outbound cho cả hai chiều.
- Phải allow cả dải port ephemeral (1024-65535) cho response vì không biết trước client dùng port nào → kém bảo mật, dễ sai sót.
PHẦN 3: Stateful Firewall – “Thông minh” và bảo mật hơn¶
Stateful firewall là gì?¶
- Nhớ trạng thái kết nối!
- Khi thấy packet request được allow, nó tự động allow response về.
- Chỉ cần 1 rule cho 1 chiều:
- VD: Cho phép inbound TCP 443 (request), response về ephemeral port được tự động allow (không cần viết rule riêng)
- Tăng bảo mật, giảm nhầm lẫn, dễ quản lý
- Không cần mở cả dải port ephemeral cho response
- Giảm số rule phải viết, giảm lỗi
PHẦN 4: So sánh thực tế & ứng dụng AWS¶
Tính năng | Stateless Firewall | Stateful Firewall |
---|---|---|
Nhớ trạng thái | ❌ Không | ✅ Có |
Quy tắc response | Phải viết riêng | Tự động được allow |
Quản lý port ephemeral | Phải mở cả dải | Không cần mở rộng |
Bảo mật | Kém hơn | Tốt hơn |
Tỷ lệ lỗi/lầm | Dễ sai | Ít lỗi hơn |
AWS áp dụng | NACL (Network ACL) | Security Group |
PHẦN 5: Checklist kiến thức đi thi & đi làm¶
- [x] Stateless: không nhớ trạng thái, mỗi chiều 1 rule
- [x] Stateful: nhớ trạng thái, chỉ cần 1 rule (còn lại tự động)
- [x] Response luôn về ephemeral port – stateless phải mở rộng, stateful không cần
- [x] AWS: NACL là stateless, Security Group là stateful
PHẦN 6: Câu hỏi exam/phỏng vấn¶
- Phân biệt firewall stateful và stateless?
- Muốn cho phép EC2 nhận inbound HTTP, cần mấy rule với NACL và với Security Group?
- Tại sao stateless phải allow cả dải ephemeral port khi cho response?
- AWS sử dụng loại nào cho Security Group/NACL?
Tóm lại:
- Stateless firewall = nhiều rule, dễ sai, bảo mật yếu
- Stateful firewall = ít rule, tự động allow response, bảo mật tốt, dễ quản lý
- Trong AWS: NACL = stateless, Security Group = stateful
Đọc lại trước khi làm network security AWS hoặc đi thi SAA!