Маршрутизация к вторичной локальной сети с Shorewall
Я настраиваю Shorewall (4.4.26.1) и пытаюсь выяснить маршрутизацию между двумя сегментами локальной сети для хорошей части дня. Пришло время обратиться за помощью.
((INTERNET))
|
|
[shorewall]
| |
| |
(LAN1) (LAN2)
У меня есть три NIC: WAN (Интернет), LAN1 и LAN2. WAN-to-LAN работает как через NAT, так и через DNAT (задано в masq). 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
... в маске, но это не работает ($LAN2_IF преобразуется в eth2, который является интерфейсом LAN2).
Мой вопрос: какова самая простая конфигурация Shorewall для пересылки трафика между двумя сегментами LAN с разными адресами, которые подключены к отдельным сетевым картам? Поможет указатель на документацию или другую ссылку, пример конфигурации с пустыми руками был бы еще лучше. Я просматривал документацию Shorewall по маршрутизации, но еще не нашел подходящего описания (например, я бы предпочел не связывать интерфейсы LAN, поскольку они должны оставаться разделенными: LAN2 не должен иметь доступа ни к Интернет или LAN1).
Спасибо за любой совет!
2 ответа
Похоже, у вас есть проблема с маршрутизацией, которая не имеет ничего общего с Shorewall. Отключите Shorewall и сначала настройте маршрутизацию.
Шлюз должен иметь IP-адрес в каждом из сегментов ЛВС и маршрут для диапазона ЛВС в этом интерфейсе. Например:
$ 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).