🌐 VI | EN

Tách Guest Wi‑Fi bằng VLAN và firewall trên OpenWrt

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

Đổi tên SSID không tạo ra mạng khách an toàn. Cần tách guest ở network/VLAN, cấp DHCP riêng, gắn SSID vào đúng interface và đặt firewall chỉ cho đi Internet.

1. Mô hình và điều kiện

Ví dụ dùng:

  • Management/LAN: VLAN 10, 192.168.1.0/24.
  • Guest: VLAN 20, 192.168.20.0/24.
  • Uplink giữa router, switch và AP là trunk mang VLAN cần thiết.

Switch/AP phải hỗ trợ VLAN tagging. Tên br-lan, eth0.20, br-guest và menu DSA phụ thuộc target; phải đối chiếu /etc/config/network thay vì chép mù.

2. Backup và khảo sát

sysupgrade -b /tmp/guest-vlan-backup.tar.gzcp /etc/config/network /tmp/network.beforecp /etc/config/wireless /tmp/wireless.beforecp /etc/config/dhcp /tmp/dhcp.beforecp /etc/config/firewall /tmp/firewall.beforeuci show networkuci show wirelessuci show dhcpuci show firewall

Nếu sửa qua SSH, dùng cáp LAN/console và có sẵn địa chỉ recovery.

3. Tạo network guest

Trên target dùng bridge/VLAN đúng layout. Ví dụ logical interface:

config interface 'guest'        option device 'br-guest'        option proto 'static'        option ipaddr '192.168.20.1'        option netmask '255.255.255.0'

Nếu DSA yêu cầu VLAN filtering hoặc bridge-vlan, cấu hình phải theo switch topology của target. Không biến br-guest thành tên giả rồi mong OpenWrt tự tạo bridge.

Áp dụng network sau khi kiểm tra syntax:

uci show networkuci changes networkuci commit network/etc/init.d/network reload

4. Cấp DHCP cho guest

config dhcp 'guest'        option interface 'guest'        option start '100'        option limit '150'        option leasetime '12h'

Kiểm tra section DHCP không trùng và reload:

uci show dhcp.guestuci commit dhcp/etc/init.d/dnsmasq reload

5. Tạo SSID và gắn vào guest

Mở /etc/config/wireless hoặc LuCI Network > Wireless, tạo SSID riêng và đặt option network 'guest'. Ví dụ phần network của radio:

config wifi-iface        option device 'radio0'        option mode 'ap'        option ssid 'Guest-WiFi'        option encryption 'sae-mixed'        option key '[WIFI_PASSWORD]'        option network 'guest'

Thay [WIFI_PASSWORD] bằng secret thật trên thiết bị; không ghi vào repo. Nếu client cũ không hỗ trợ sae-mixed, chọn encryption phù hợp release và khả năng client.

uci show wirelessuci commit wirelesswifi reload

6. Firewall chỉ cho guest ra WAN

Tạo zone guest với input reject, output accept, forward reject, rồi forwarding duy nhất tới wan:

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'

Cho phép DHCP/DNS tới router bằng rule giới hạn port, sau đó chặn forwarding tới LAN. Không tạo guest -> lan chỉ để test rồi quên xóa.

uci show firewalluci changes firewalluci commit firewall/etc/init.d/firewall reload

7. Kiểm tra end-to-end

  1. Nối client vào SSID Guest-WiFi.
  2. Xác nhận địa chỉ 192.168.20.x, gateway 192.168.20.1 và DNS.
  3. Kiểm tra Internet:
ping -c 3 1.1.1.1nslookup openwrt.org 192.168.20.1
  1. Xác nhận guest không truy cập 192.168.1.1, NAS, switch management hoặc SSH LAN.
  2. Test cả Wi‑Fi và cổng trunk. VLAN native/untagged sai có thể làm mất LAN hoặc đưa guest vào nhầm mạng.
  3. Trên router kiểm tra:
ip addrip routelogread -e dnsmasqfw4 print 2>/dev/null || iptables-save

8. Khôi phục

Nếu VLAN sai làm mất LuCI, dùng cáp/console và khôi phục từng file:

cp /tmp/network.before /etc/config/networkcp /tmp/wireless.before /etc/config/wirelesscp /tmp/dhcp.before /etc/config/dhcpcp /tmp/firewall.before /etc/config/firewall/etc/init.d/network restart/etc/init.d/dnsmasq restart/etc/init.d/firewall restartwifi reload
Quảng cáo

Nguồn

Nguồn: OpenWrt Guest Wi‑Fi extras.

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...