Назад | Перейти на главную страницу

Маршрутизация во вторичную локальную сеть с помощью Shorewall

Я настраиваю Shorewall (4.4.26.1) и большую часть дня пытаюсь вычислить маршрутизацию между двумя сегментами LAN. Пора попросить о помощи.

 ((INTERNET))
      |
      |
 [shorewall]
   |     |
   |     |
(LAN1) (LAN2)

У меня есть три NIC: WAN (Интернет), LAN1 и LAN2. WAN-to-LAN работает на входящем через NAT и исходящем через DNAT (устанавливается в маске). LAN2 не должен (и в настоящее время не имеет) доступа к Интернету, но он должен быть доступен из LAN1. В настоящее время я могу подключиться к LAN2 с брандмауэра, но не с серверов в LAN1 (что является проблемой). Необходимые правила существуют, но очевидно, что маршрутизация не работает (когда я отключаю правила брандмауэра, я сразу получаю сообщение «В соединении отказано» при SSH-соединении с сервера в LAN1; когда правила включены, SSH просто зависает, а traceroute не работает. не выходить за пределы межсетевого экрана). LAN1 находится в адресном пространстве 172.0.0.0, а LAN2 - в адресном пространстве 10.0.0.0.

В настоящее время у меня есть:

$LAN2_IF                 10.0.0.0/24

..in masq, но это не работает ($ LAN2_IF преобразуется в eth2, который является интерфейсом LAN2).

У меня вопрос: Какова простейшая конфигурация Shorewall для пересылки трафика между двумя сегментами LAN с разными адресами, подключенными к отдельным сетевым адаптерам? Указатель на документацию или другую справочную информацию может помочь, пример конфигурации с голыми костями был бы еще лучше. Я просматривал документацию Shorewall по маршрутизации, но еще не нашел подходящего описания (например, я бы предпочел не соединять интерфейсы LAN, поскольку они должны оставаться разделенными: LAN2 должен не иметь доступ к Интернету или LAN1).

Спасибо за любой совет!

Похоже, у вас проблема с маршрутизацией, которая не имеет ничего общего с Shorewall. Отключите Shorewall и сначала настройте правильную маршрутизацию.

Шлюз должен иметь IP-адрес в каждом из сегментов LAN и маршрут для диапазона LAN на этом интерфейсе. Например:

$ ip -one addr
2: eth0    inet 172.16.0.1/24
3: eth1    inet 10.0.0.1/24
$ ip route
172.16.0.0/24 dev eth0
10.0.0.0/24 dev eth1

Клиенты в LAN1 и LAN2 должны иметь соответствующий IP-адрес на шлюзе, установленный в качестве шлюза по умолчанию (172.16.0.1 для клиентов в LAN1 и 10.0.0.1 для клиентов в LAN2). Убедитесь, что клиенты в обеих локальных сетях могут пинговать обе IP-адреса на шлюзе. Затем попробуйте выполнить эхо-запрос между клиентами в разных локальных сетях.

Когда маршрутизация заработает, вы можете настроить Shorewall. Вы хотите разместить две локальные сети в разных зонах (например, lan1 содержащий eth0, и lan2 содержащий eth1). Затем настройте соответствующие политики:

fw      all     ACCEPT
lan1    all     ACCEPT
lan2    fw      ACCEPT
lan2    lan1    ACCEPT
all     all     REJECT

Между LAN1 и LAN2 не должно быть маскировки.

Я понимаю, что это не проблема Вилле, но образец конфигурации с тремя интерфейсами (включенный в дистрибутив Shorewall), вероятно, является каноническим ответом на ваш вопрос. Он устанавливает lan и dmz в качестве имен зон, но вы можете установить для них все, что хотите (в данном случае lan и lan2).