🌐 VI | EN

Tổ chức interface và firewall zone trên OpenWrt

Nghia Phan
Nghia Phan
🌐 English version Bài viết kỹ thuật Lượt xem

Firewall OpenWrt áp policy theo zone, không chỉ theo port. Một zone có thể chứa một hoặc nhiều logical network interface; forwarding quyết định traffic được đi từ zone này sang zone khác.

1. Chuẩn bị

  1. Backup:
sysupgrade -b /tmp/firewall-network-backup.tar.gzcp /etc/config/firewall /tmp/firewall.beforecp /etc/config/network /tmp/network.before
  1. Xác định release và firewall backend:
ubus call system boarduci show firewalluci show network

OpenWrt mới thường dùng firewall4/nftables; hệ thống cũ có thể dùng firewall3/iptables. Không trộn cú pháp hoặc lệnh kiểm tra giữa hai backend.

2. Mô hình zone cơ bản

  • lan: tin cậy, được truy cập router và forward ra WAN.
  • wan: mạng ngoài, mặc định không cho kết nối mới vào router.
  • guest: mạng không tin cậy, chỉ forward ra Internet.

Xem zone và forwarding hiện tại:

uci show firewall | grep -E 'zone|forwarding|rule'fw4 print 2>/dev/null || iptables-save

3. Khai báo zone guest

Chỉ thực hiện sau khi interface guest đã tồn tại trong /etc/config/network:

config zone        option name 'guest'        list network 'guest'        option input 'REJECT'        option output 'ACCEPT'        option forward 'REJECT'config forwarding        option src 'guest'        option dest 'wan'

Nếu đã có zone cùng tên, không tạo bản sao. Dùng uci show firewall để xác định section và sửa đúng section.

4. Cho phép DHCP/DNS tới router

Guest thường cần DHCP và DNS nhưng không nên mở toàn bộ input:

config rule        option name 'Guest-DHCP'        option src 'guest'        option proto 'udp'        option dest_port '67-68'        option target 'ACCEPT'config rule        option name 'Guest-DNS'        option src 'guest'        option proto 'tcp udp'        option dest_port '53'        option target 'ACCEPT'

Tên section/rule có thể khác. Hãy đặt rule đúng vị trí và kiểm tra thứ tự sau khi commit.

5. Chặn guest vào mạng quản trị

Nếu guest không được truy cập RFC1918/LAN, tạo rule rõ ràng theo thiết kế của bạn; đừng dùng một ACCEPT rộng hơn để “sửa lỗi mạng”. Ví dụ chặn tới subnet LAN mẫu:

config rule        option name 'Reject-Guest-to-LAN'        option src 'guest'        option dest 'lan'        option dest_ip '192.168.1.0/24'        option target 'REJECT'

Nếu mô hình có nhiều subnet quản trị, phải liệt kê từng boundary hoặc thiết kế zone phù hợp. Không coi RFC1918 là danh sách đầy đủ nếu mạng nội bộ dùng dải khác.

6. Áp dụng an toàn

  1. Kiểm tra syntax và thay đổi:
uci changes firewalluci show firewall
  1. Nếu sai, hoàn tác trước commit:
uci revert firewall
  1. Commit và reload:
uci commit firewall/etc/init.d/firewall reload

Trên hệ thống firewall4, xem ruleset:

fw4 printnft list ruleset

Trên hệ thống cũ:

iptables-save

7. Kiểm tra từ client

Guest client phải nhận đúng subnet, gateway và DNS. Kiểm tra:

ip addrip routenslookup openwrt.org 192.168.20.1ping -c 3 1.1.1.1

Sau đó kiểm tra các kết quả âm tính: không mở được 192.168.1.1, NAS, switch management hoặc SSH của LAN; không có kết nối mới từ WAN vào LuCI/SSH.

8. Khôi phục và cảnh báo

Rule ACCEPT từ WAN tới mọi port có thể phơi LuCI/SSH ra Internet. Không dùng 0.0.0.0/0 và toàn bộ port nếu chưa hiểu direction. Nếu mất truy cập sau reload, dùng console/LAN recovery và khôi phục:

cp /tmp/firewall.before /etc/config/firewalluci commit firewall/etc/init.d/firewall restart
Quảng cáo

Nguồn

Nguồn: OpenWrt Firewall and network interfaces.

Bình Luận & Thảo Luận

Góp ý, hỏi đáp và chia sẻ suy nghĩ của bạn

Markdown & QQ Emoji
Đang tải khung bình luận...