Налаштування DMZ за допомогою VLAN
DMZ — це концепція безпеки. Вона полягає в розділенні внутрішньої мережі (LAN) принаймні на дві частини: мережу користувачів (LAN) і зону DMZ. Зазвичай зона DMZ ізольована: з Інтернету дозволено доступ лише до певних портів у зоні DMZ, тоді як сама зона DMZ не має права ініціювати з'єднання до WAN чи LAN. Таким чином, навіть якщо сервер у DMZ буде зламаний, шкода обмежується цією зоною. Мета DMZ — створити окремий набір правил файрволу, який суворо регулює вхідний і вихідний трафік DMZ.
Публічні сервери завжди є найуразливішою частиною будь-якої мережі, навіть якщо вони:
- налаштовані та захищені професійно,
- регулярно оновлюються,
- та ретельно моніторяться (журнали відправляються поштою і переглядаються).
Багато шкідливих сканерів у мережі перевіряють відомі TCP-порти, намагаючись використати вразливості. Наприклад, Apache — один із найпоширеніших вебсерверів — має численні POV (точки вразливості). Див. базу CVE щодо вразливостей Apache або вразливості Apache 2.4.
Докладніше про поділ вашої LAN-секції на кілька мереж (типово це один міст):
Додавання VLAN
Можна налаштувати правила файрволу просто на основі IP-адрес публічних серверів (див. NAT для публічного сервера в LAN), але це менш безпечно. Якщо зловмисник отримає доступ до публічного сервера — усі інші вузли можуть опинитися під загрозою.
Більш безпечне рішення — створити окрему VLAN для DMZ, додати її в нову зону файрволу і налаштувати правила лише для цієї зони.
Нижче приклад конфігурації перемикача (switch), який присвоює порти VLAN відповідно до зон DMZ.
Пристрої в DMZ мають бути підключені через дротовий Ethernet (а не Wi-Fi): це і продуктивніше, і легше для VLAN-конфігурації.
Налаштуйте перемикач у /etc/config/network або через LuCI → Network → Switch.
Цей приклад заснований на референсній топології.
Пристрій STA-server2 — це публічний вебсервер з доступом з Інтернету.
Для перевірки портів перемикача використовуйте:
swconfig list swconfig dev switch0 show
Зверніть увагу, що фізичне маркування портів на корпусі може не відповідати їх номерам у системі.
Відповідність портів (приклад для Atheros/Qualcomm):
- 0 — WAN
- 1–4 — порти GigE LAN
- 5 — eth1 (до CPU)
- 6 — eth0 (до CPU і WLAN)
WLAN (2.4GHz 802.11n) також працює через eth0.
Типовий `/etc/config/network` має такі VLAN:
config switch option name 'switch0' option reset '1' option enable_vlan '1' config switch_vlan option device 'switch0' option vlan '1' option ports '0 5' config switch_vlan option device 'switch0' option vlan '2' option ports '1 2 3 4 6'
Щоб виділити DMZ, перенаправте порт 1 до окремої VLAN:
config switch_vlan
option device 'switch0'
option vlan '102'
option ports '2 3 4 6t'
list comment 'vlan102: LAN порти'
config switch_vlan
option device 'switch0'
option vlan '103'
option ports '1 6t'
list comment 'vlan103: DMZ в LAN'
Обов'язково вказуйте тегування (6t) для CPU (і WLAN, якщо потрібно).
Уникайте використання параметра `vid`, оскільки за замовчуванням він дорівнює `vlan` — додаткове вказування може призвести до помилок.
Для деяких комутаторів (Realtek/Atheros) слід очищати ARL-кеш після зміни VLAN, інакше пакети можуть бути відкинуті через неправильне MAC-відображення.
Додайте інтерфейс для DMZ:
config 'interface' dmz option 'ifname' eth0.103 option 'proto' static option 'ipaddr' 192.168.30.1 option 'netmask' 255.255.255.0
Значення `ifname` — це `<інтерфейс>.<vlan>`. Підмережа повинна бути унікальною.
Служби (Services)
Після налаштування файрволу DNS буде доступний, а от DHCP потрібно налаштувати вручну в /etc/config/dhcp:
config dhcp 'dmz' option interface 'dmz' option start '50' option limit '70' option leasetime '12h'
Також бажано закріпити публічний сервер через статичний DHCP:
config host option name 'STA-server2' option dns '1' option mac '24:B6:FD:24:59:B9' option ip '192.168.30.20' option leasetime '12h'
Налаштування файрволу
Найважливіше — це налаштування правил файрволу. Кожна VLAN має бути окремою зоною:
config 'zone' option 'name' 'dmz' option 'input' 'REJECT' option 'output' 'REJECT' option 'forward' 'REJECT' option 'network' 'dmz'
Наступний крок — дозволити:
1. HTTP/HTTPS із WAN до STA-server2
2. DHCPDISCOVER / DHCPOFFER
3. DNS із DMZ
4. SSH з LAN до DMZ (для обслуговування)
# Переадресація HTTP(S) config redirect option target 'DNAT' option src 'wan' option src_dport '80 443' option proto 'tcp' option family 'ipv4' option dest 'dmz' option dest_ip '192.168.30.20' option dest_port '80' option name 'DNAT-HTTP-WAN-DMZ' option enabled '1' # DHCPDISCOVER config 'rule' option src 'dmz' option proto 'udp' option family 'ipv4' option src_port 68 option dest_port 67 option target 'ACCEPT' option name 'ACCEPT-DHCPDISCOVER-DMZ' option enabled '1' # DHCPOFFER config 'rule' option dest 'dmz' option proto 'udp' option family 'ipv4' option src_port 67 option dest_port 68 option target 'ACCEPT' option name 'ACCEPT-DHCPOFFER-DMZ' option enabled '1' # DNS config 'rule' option src 'dmz' option proto 'tcp udp' option dest 'wan' option dest_port 53 option target 'ACCEPT' option name 'ACCEPT-DNS-DMZ-WAN' option enabled '1' # SSH із LAN config rule option src 'lan' option dest 'dmz' option proto 'tcp' option family 'ipv4' option dest_port '22' option target 'ACCEPT' option name 'ACCEPT-SSH-LAN-DMZ' option enabled '1'
Якщо ви хочете отримати доступ до LuCI з WAN, але порт 80 вже використовується — використовуйте інший порт (наприклад, 8080):
config redirect
option target 'DNAT'
option src 'wan'
option src_dport '8080'
option proto 'tcp'
option family 'ipv4'
option dest_port '80'
option name 'DNAT-HTTP-WAN-DEVICE'
option enabled '1'