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

Конфигурация iptables для работы с apache2 mod_proxy

У меня есть такая конфигурация iptables:

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT

Также у меня есть виртуальный хост apache:

<VirtualHost *:80>
    ServerName wiki.myite.com
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://localhost:8901/
    ProxyPassReverse /  http://localhost:8901/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
</VirtualHost>

Мой основной домен www.mysite.com хорошо работает с этой конфигурацией (я не использую перенаправление прокси на нем). Но мой виртуальный хост wiki.mysite.com не отвечает.

Пожалуйста, помогите мне настроить конфигурацию iptables, чтобы wiki.mysite.com тоже работал. Я думаю, мне нужно настроить параметры пересылки iptables, но я не знаю как.

Обновить:

У меня 1 сервер с 1 IP. На сервере у меня apache2.2 на 80 порте. Также у меня есть tomcat6 на порту 8901. В apache я настроил пересылку домена wiki.mysite.com на tomcat (mysite.com:8901).

Я хочу защитить свой сервер, отключив все порты, кроме 80, 22 и 443.

Что ж, если вы перенаправляете на порт 8901 и не отметили свой интерфейс lo как «доверенный», принимая все от него, то вы, вероятно, просто блокируете себя на своем собственном брандмауэре.

Предполагая, что вы настроили сайт для правильного прослушивания 8901, вы должны добавить еще одну строку:

iptables -A INPUT -p tcp --dport 8901 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8901 -j ACCEPT

Или просто добавьте:

iptables -A INPUT -i lo -j ACCEPT

Таким образом, ваша машина будет знать, что принимать пакеты localhost на всех портах.

Я решаю эту проблему, добавляя в конфигурацию iptables следующий код:

iptables -A INPUT -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT

Я открыл все порты с localhost и на localhost.

Похоже Сатанинский щенок сказал, но:

iptables -A INPUT -i lo -j ACCEPT 

открыл все порты для всех.