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

Перенаправление портов на IIS в Linux

Я пытаюсь настроить переадресацию портов в Linux-сервере на веб-сервер IIS во внутренней сети. Веб-сервер находится на Windows 2003 Server.

В моем Linux-боксе есть:

Мой веб-сервер находится на интерфейсе eth2 (192.168.0.6)

Я делаю переадресацию порта для порта 80 безрезультатно. Я использую тот же набор правил для перенаправления на другой веб-сервер, и он работает.

Веб-приложение доступно во внутренней сети, но не для внешних пользователей.

iptables -t nat -A PREROUTING -p tcp -i eth0 -d $PUBLIC_IP --dport 80 -j DNAT --to 192.168.0.6:80
iptables -A FORWARD -p tcp -i eth0 -o eth2 -d 192.168.0.6 --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -t filter -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -t filter -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Любые идеи?

Спасибо всем за ответы. Проблема была обнаружена в конфигурации сети на сервере IIS. По какой-то причине шлюз по умолчанию не был настроен ... ну, Лисон узнал, не верьте тому, что вам говорят другие.

Правила, которые я использовал изначально, работают.

Мне всегда везло с IIS и iptables, используя следующий скрипт:

$ IPTABLES -P INPUT DROP $ IPTABLES -P OUTPUT DROP $ IPTABLES -P FORWARD DROP

$ IPTABLES -t nat -A PREROUTING -j DNAT -p tcp -d $ EXT_IP --dport $ WWW_PORT --to-destination $ WWW_IP $ IPTABLES -t nat -A POSTROUTING -o $ EXT_IFACE -j MASQUERADE

$ IPTABLES -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT $ IPTABLES -A INPUT -p all -i $ LO_IFACE -j ACCEPT $ IPTABLES -A INPUT -p all -s $ LO_IP -j ACCEPT

$ IPTABLES -A OUTPUT -m состояние --state УСТАНОВЛЕНО, СВЯЗАННО -j ПРИНЯТЬ

$ IPTABLES -A FORWARD -m состояние! --state NEW -j DROP $ IPTABLES -A FORWARD -m state --state ESTABLISHED, RELATED -j ACCEPT $ IPTABLES -A FORWARD -p tcp -i $ EXT_IFACE -s $ ANY -d $ WWW_IP --dport $ WWW_PORT - j ПРИНЯТЬ

$ IPTABLES -A FORWARD -p all -i $ INT_IFACE -j ACCEPT

Я не думаю, что вам нужно использовать MASQUERADE. Попробуйте вместо этого использовать SNAT.

возможно, это не соответствует вашей модели безопасности, но вы можете изучить возможность установки apache и использования его прокси-модуля для маршрутизации трафика на ваш веб-сервер IIS. Кроме того, вы можете настроить его для фильтрации всех URL-адресов, кроме строго определенных вами, что сделает вашу установку IIS более безопасной.

Файл конфигурации Apache:

       <Proxy *>
               # deny most all requests
               Order deny,allow
               # allow from your internal network
               Allow from 192.168.x.x
       </Proxy>

       ProxyPass /yoursite http://internal_site/yoursite