я настраиваю сервер Ubuntu 11.10 в качестве брандмауэра для сети, в которой работает несколько разных веб-сайтов SSL. Идея довольно распространена: все публичные IP-адреса для каждого сайта псевдонимы к публичному интерфейсу на брандмауэре и используют iptables/NAT для пересылки подключений к веб-серверам. У меня дьявольское время, чтобы заставить эту довольно простую вещь работать.
скажем, у меня есть интерфейс публичного лица на брандмауэре:
eth0 25.25.25.25
и я хочу псевдоним a новый IP на интерфейсе:
ifconfig eth0:0 25.25.25.26
затем я вижу, что интерфейс создан, и я могу пинговать его с других хостов. Пока все хорошо. Теперь у меня есть веб-сервер, сидящий на стороне DMZ сети, доступный брандмауэру, но не публике. Скажем, внутренний web-сервер 172.16.2.1. Поэтому я создаю правило NAT следующим образом:
в iptables -Т физ -это следующее -Я как eth0 -д 25.25.25.26 -й ДНАТ --назначение 172.16.2.1
Он просто не хочет работать. Если я запускаю tcpdump на публичном интерфейсе, он будет видеть входящий трафик, но iptables просто не будет NAT его к месту назначения.
он будет работать нормально, если я использую не псевдоним IP, например 25.25.25.25. Я читал, что iptables не любит работать с виртуальными интерфейсами и игнорирует их. Это нормально, но он все равно должен работать с "eth0" вместо "eth0:0". В моем случае iptables не жалуется, если я пытаюсь использовать "eth0: 0", но это не имеет никакого значения.
Я я использую OpenBSD уже давно, поэтому мне удобно настраивать то же самое с pf. Но много лет назад я делал это с коробкой RedHat, и она отлично работала. Что-то изменилось? Должен быть способ сделать это. Я видел несколько примеров от других людей, говорящих, что вам просто нужно убедиться, что вы указываете основное устройство (eth0) вместо использования eth0:0. Но у меня ничего не осталось.
О, и чтобы исключить, что это просто проблема фильтрации, я полностью отключил все правила фильтрации:
iptables -F
iptables -X
iptables -P FORWARD ACCEPT
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
какие идеи? Я конечно не новичок, когда дело доходит до в iptables, но эта проблема заставляет меня чувствовать себя как один.