И так, многим наверное приходилось иметь дело с настройками firewall-а на DIR-320, но, к сожалению, исчерпывающей информации нет в инструкции к данной модели. Хочу внести свои 5 копеек в общее дело, и поделиться опытом настройки файервола своего маршрутизатора.
Предварительные сведения:
1. Версия прошивки: v1.20_943j (бета)
2. Возможно, данная инструкция подойдет и для других похожих устройств
3. Приведенный ниже пример подразумевает, что изначально в списках port forwarding и firewall нет ни одной записи (по крайней мере активной)
Требования к знаниями для освоения инструкции:
1. Тривиальное понимание работы механизма Port Forwarding
2. Знание подсетей и групп IP - адресаций крайне желательно
3. Знание iptables не помешает
Преамбула.
Ниже я привожу пошаговую инструкцию на примере настройки правила Port Forwarding для переброски пакетов с внешней сети WAN, с порта 5000 на внутреннюю сетку, порт 3389 (RDP) с последующей фильтрацией исходящих IP адресов на уровне межсетевого экрана DIR-320, но для начала необходимо уяснить и запомнить несколько простых правил логики работы экрана:
1. Условно, в роутере есть два файервола, первый из которых работает до обработки правил в разделе port forwarding, а второй - после него.
2. Оба файервола используют ОДИН общий список правил (далее ACL), который и доступен через веб-интерфейс, в разделе Firewall/DMZ.
3. В ACL приоритезация правил происходит сверху вниз, т.о., более верхнее правило имеет приоритет выше, чем более нижний. Входящий пакет поочередно сравнивается с правилами в порядке убывания ACL, и, если найдено условие, удовлетворяющее маршруту пакета, то остальные правила в ACL игнорируются и обработка пакета происходит согласно выставленным действиям в совпадающем правиле.
4. Если не было найдено ни одного совпадающего условия за весь проход ACL, пакет пропускается дальше в сеть.
Осталось дело за малым:
1. В списке Port Forwarding прописывается правило:
Name: RDP
IP Address: 192.168.0.2
Public port: 5000
Private port: 3389
Traffic Type: Any
2. Сохраняем и идем в раздел Firewall
3. Тут мы видим, что в самом начале ACL появилось нередактируемое правило типа этого:
Name: RDP
Interface: WAN -> LAN (-> указываю направление пакета)
Source IP: * (любой адрес)
Destination IP: 192.168.0.2
Protocol: TCP
Port: 5000
Action: ALLOW
Обратите внимание на номер порта - 5000, он был указан в качестве Public порта в Port Forwarding. Так вот, это правило будет обрабатываться первым файерволом, так как он стоит "до" обработчиком port forwarding. Для этого правила все условия жестко заданы, и поэтому, за дальнейшее продвижение пакета будем отвечать второй файервол, который находится уже "после" обработчика port forwarding.
4. Теперь в ACL прописываем правило, разрешающее получения пакета от IP адресов 200.10.20.0/24 (группа адресов 200.10.20.1-200.10.20.254), но в качестве конечного порта указываем 3389 (не забываем, что это правило будет обрабатываться вторым файерволом). Имеем следующее:
Name: RDP-ALLOW
Interface: WAN -> LAN
Start Source IP: 200.10.20.1
End Source IP: 200.10.20.254
Start Destination IP: 192.168.0.2
End Destination IP: 192.168.0.2
Protocol: TCP
Port: 3389
Action: ALLOW
5. Одного лишь предыдущего правила не достаточно, так как согласно п. 4 в описании логики работы файервола, пакеты с др. отличных от 200.10.20.0/24 начальных адресов будут беспрепятственно проникать во внутреннюю сеть. Таким образом, для ограничения получения пакетов с др. адресов необходимо также прописать следующее по порядку исключающее правило. Выглядит это так:
Name: RDP-DENY
Interface: WAN -> LAN
Start Source IP: * (т.е., любой адрес)
End Source IP: *
Start Destination IP: 192.168.0.2
End Destination IP: 192.168.0.2
Protocol: TCP
Port: 3389
Action: DENY
Согласно этому правилу файервол будет резать все пакеты, которые приходят с назначенных начальных адресов (на практике, это все пространство адресов IPv4).
Если все правила вписаны, то получим следующий условный алгоритм:
1. Из внешней сети на WAN порт поступают два пакета от соответственных адресов 100.10.20.1 и 200.10.20.1 на порт назначения 5000
2. Оба пакета поступают на вход первого файервола и успешно пропускаются им согласно самому первому правилу в ACL (вспоминаем то автоматически созданное нередактируемое правило) и передаются обработчику port forwarding
3. Обработчик port forwarding принимает пакеты и замещает номер порта 5000 на 3389 согласно созданному нами правилу переброски портов в списке port forwarding
4. Теперь на смену приходит второй файервол, который, согласно третьему по счету правилу (нередактируемое правило тоже считаем), в ACL вырезает пакет, поступивший от адреса 100.10.20.1, а второй пакет успешно минует файервол и поступает во внутреннюю сеть, согласно правилу под номером 2 по счету.
В принципе все. Имея эту информацию вы можете аналогичным образом настроить необходимые вам правила, как вкупе с port forwarding, так без него.
Удачи всем!
P.S. Если тема актуальна, то предлагаю ее прилепить и добавить в Полезные Настройки или FAQ!