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

IPtables блокирует порт 8080, но не для localhost

В настоящее время у меня есть приложение, работающее на 8080 через mod_proxy.

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

Мне нужно заблокировать TCP 8080, но не для локального хоста, как это можно сделать с помощью IPtables?

Это сработает:

iptables -A INPUT ! -s 127.0.0.1 -p tcp -m tcp --dport 8080 -j DROP

Вы можете попробовать следующее:

// accept all tcp on port 8080 from localhost  
iptables -I INPUT 1 -i lo -p tcp --dport 8080 -j ACCEPT  

[...] all your other rules  
// drop all other packets  
iptables -A INPUT -j DROP  

Если вы хотите разрешить также 1 (или более) внешний / другой IP-адрес, вы можете использовать это:

// accept tcp on port 8080 from allowed_ip  
iptables -I INPUT 3 -i eth0 -p tcp --dport 8080 -s allowed_ip -j ACCEPT

Сообщите мне, как это происходит :)

Другой подход: при прослушивании сервера 8080 привязка только к localhost: для apache это выглядит следующим образом:

Listen 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
...
</VirtualHost>