Разделение LAN и WLAN
From DD-WRT Wiki
English • Deutsch • Español • Français • Italiano • 日本語 • Polski • Português • Русский • Svenska • 中文(中国大陆) • 中文(台灣) • |
Contents |
[edit] Введение
В этом руководстве объясняется, как отделить беспроводной интерфейс от локальной сети, чтобы они находились в разных подсетях. После этого вы сможете управлять связью и маршрутизацией между интерфейсами с помощью
команд iptables.
Если маршрутизатор настроен как беспроводная точка доступа (т.е. отключен доступ к глобальной сети по интерфейсу WAN), нужно обязательно задать адреса шлюза и локального DNS-сервера, как рекомендовано в руководстве
Wireless Access Point. Это также относится к клиентским узлам WDS (но не к главному узлу WDS), которые подключены к другому маршрутизатору, который выполняет для них маршрутизацию. В отдельных частях этого руководства даются альтернативные инструкции для беспроводной точки доступа WAP.
Примечание. Если вы разделяете виртуальные интерфейсы, используйте инструкции из руководства Multiple WLANs.
[edit] Подготовка
Перейдите на страницу Administration → Commands, введите приведенную ниже команду и нажмите кнопку Run Commands, чтобы из ответа узнать фактическое имя интерфейса. Например, если название интерфейса, который
вы хотите отделить, wl1 - измените команду соответствующим образом: wl0 → wl1.
nvram get wl0_ifname
Перед началом ознакомьтесь с незначительной ошибкой 1853 при создании моста и исправлении ошибки, которое было введено в наборе изменений 16181. Это руководство НЕ будет изменено, чтобы отразить изменения при создании моста, пока изменения не повлияют на рекомендуемые сборки.
[edit] Конфигурация
[edit] Шаг 1. Отделение беспроводного интерфейса от кабельной локальной сети
- Перейдите на страницу Setup → Networking.
- Нажмите кнопку Add в разделе Create Bridge.
- Введите "br1" в пустое поле ввода, которое находится слева от всех опций, которые только что появились.
- Нажмите кнопку Apply Settings внизу страницы, и появятся новые поля ввода.
- Установите IP Address, который находится в неиспользуемой подсети. Т.е. 192.168.2.1.
- Установите маску подсети Subnet Mask в значение 255.255.255.0.
- Снова нажмите кнопку Apply Settings, чтобы IP-адрес был назначен интерфейсу br1, прежде чем продолжить.
- Нажмите кнопку Add в разделе Assign to Bridge.
- Выберите br1 в появившемся левом раскрывающемся меню, а в среднем меню выберите название беспроводного интерфейса, который вы обнаружили во время подготовки.
- Нажмите кнопку Apply Settings, и беспроводной интерфейс теперь будет перемещен с br0 на br1.
Примечание. На рисунке ниже показан виртуальный беспроводной интерфейс, назначенный br1 вместо физического интерфейса. Обязательно назначьте свой физический интерфейс в соответствии с инструкциями.
[edit] Шаг 2: Добавление DHCP для интерфейса отделенной беспроводной локальной сети
- Нажмите кнопку Add в разделе Multiple DHCP Server.
- Выберите интерфейс br1 беспроводной сети в появившемся левом раскрывающемся меню.
- Нажмите кнопку Apply Settings, чтобы завершить включение DHCP-сервера для беспроводного интерфейса.
Если в разделе Basic Setup отключен DHCP-сервер для основной локальной сети, описанный выше метод множественного DHCP (Multiple DHCP) не будет работать. Вместо этого вам нужно будет использовать дополнительные параметры DNSMasq в разделе Additional DNSMasq Options.
Перейдите на вкладку Services и найдите раздел DNSMasq. Убедитесь, что DNSMasq включен. Настройте следующие параметры в соответствии со своей средой (пропустите строки комментариев, начинающиеся с '#') и добавьте их в
текстовую область Additional DNSMasq Options.
# Включение DHCP на интерфейсе br1 interface=br1 # Задание шлюза по умолчанию для клиентов br1 dhcp-option=br1,3,192.168.2.1 # Задать диапазон DHCP и время аренды по умолчанию в 24 часа для клиентов br1 dhcp-range=br1,192.168.2.100,192.168.2.150,255.255.255.0,24h
Если вы хотите использовать разные DNS-серверы для WAP, вы можете использовать следующую опцию DNSMasq независимо от того, какой метод конфигурации DHCP вы использовали:
dhcp-option=br1,6,[DNS IP 1],[DNS IP 2]
Теперь вы должны иметь возможность подключиться к отделенному беспроводному интерфейсу и получить аренду DHCP с IP-адресом в подсети 192.168.2.0/24. Убедитесь, что вы можете подключиться к нему, получить
аренду DHCP и подключиться к IP-адресу маршрутизатора 192.168.2.1, прежде чем предпринимать какие-либо дальнейшие действия. Если порт WAN активен (т.е. маршрутизатор не настроен как беспроводная точка доступа WAP без прямого доступа к глобальной сети), также должен быть доступ в Интернет. Если вы создаете WAP, то вы должны либо использовать команды iptables для WAP в следующем разделе, либо создать маршруты по всей сети.
[edit] Шаг 3: Контроль доступа
Теперь, когда беспроводная сеть WLAN отделена от кабельной локальной сети, можно начать ограничивать доступ к ней. Вот несколько команд iptables, которые вы можете сохранить в своем сценарии брандмауэра (firewall script)
на странице Administration → Commands. Эти команды написаны в том же порядке, в котором они должны быть записаны в сценарий. Изменение порядка может повлиять на их работу. Комбинируйте их так, как вам нравится,
просто сохраняйте их в том порядке, в котором они отображаются на этой странице.
Если у вас есть какие-либо проблемы со сценарием брандмауэра, создайте тему на форуме и подробно опишите, что пытаетесь сделать и что должен делать сценарий.
Включить NAT на порте WAN, чтобы исправить ошибку в сборках более 17000.
iptables -t nat -I POSTROUTING -o `get_wanface` -j SNAT --to `nvram get wan_ipaddr`
Разрешить br1 доступ к br0, глобальной сети WAN и любым другим подсетям (требуется, если включен брандмауэр SPI)
iptables -I FORWARD -i br1 -m state --state NEW -j ACCEPT iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Запретить доступ из br1 к br0 (не использовать на WAP)
iptables -I FORWARD -i br1 -o br0 -m state --state NEW -j DROP
Запретить доступ из br0 к br1
iptables -I FORWARD -i br0 -o br1 -m state --state NEW -j DROP
Запретить доступ из br1 к порту WAN (запретить доступ в Интернет!)
iptables -I FORWARD -i br1 -o `get_wanface` -j DROP
Запретить доступ из br1 к подсети WAN (всё ещё есть Интернет, не использовать на WAP)
iptables -I FORWARD -i br1 -d `nvram get wan_ipaddr`/`nvram get wan_netmask` -m state --state NEW -j DROP
Запретить доступ из br1 к подсети br0, но передавать трафик через br0 в Интернет (для WAP - порт WAN отключен)
iptables -I FORWARD -i br1 -d `nvram get lan_ipaddr`/`nvram get lan_netmask` -m state --state NEW -j DROP
Включить NAT для трафика, направляемого из br0, чтобы у br1 была возможность подключения (для WAP - отключен порт WAN)
iptables -t nat -I POSTROUTING -o br0 -j SNAT --to `nvram get lan_ipaddr`
Запретить доступ из br1 к локальным сокетам маршрутизатора (к программному обеспечению, запущенному на маршрутизаторе)
iptables -I INPUT -i br1 -m state --state NEW -j DROP
Разрешить доступ из br1 к DHCP на маршрутизаторе
iptables -I INPUT -i br1 -p udp --dport 67 -j ACCEPT
Разрешить доступ из br1 к DNS на маршрутизаторе
iptables -I INPUT -i br1 -p udp --dport 53 -j ACCEPT iptables -I INPUT -i br1 -p tcp --dport 53 -j ACCEPT
[edit] Ссылки
- Separate_LAN_and_WLAN_(light) - облегченная версия
- V24: WLAN separate from LAN, with independent DHCP - аналогичное руководство
- WLAN separate from LAN, with independent dhcp, etc - метод командной строки (устаревший)
- Multiple WLANs - для разделения виртуальных беспроводных интерфейсов