Я настраиваю 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).