конфигурация ipables
Попытка разрешить подключение к серверу из внешнего мира. Сканеры портов сообщают, что порты не открыты. Сразу после подтверждения мои iptables настроены правильно.
eth0 - частный Lan
tun0 - интерфейс VPN
ppp0 - Мобильное широкополосное соединение (без ограничений брандмауэра от интернет-провайдера)
-P INPUT DROP
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A INPUT -i ppp0 -p icmp -j ACCEPT
-A INPUT -i ppp0 -p udp -m multiport --dports 53,1194 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m multiport --dports 25,53,80,143,443,587 -j ACCEPT
Надеюсь, что виноват iptables, иначе мне придется потратить намного больше времени на работу с этим сервером. Цените помощь.
Если это целостность вашего набора правил брандмауэра, то я согласен с тем, что вы должны открыть трафик на порты UDP 53 и 1194 и порты TCP 25, 52, 80, 143, 443 и 587.
Если вы хотите получить более подробное представление о том, является ли проблема именно в вашем брандмауэре, добавьте последнюю строку
-A INPUT -j LOG --log-prefix "INPUT DROP: "
и посмотрите, появляются ли какие-либо записи журнала в обычном месте (часто /var/log/messages
, но это будет зависеть от вашего rsyslog
настроить).
Если пакеты по-прежнему не проходят, но ничего не регистрируется, у вас будет больше уверенности в том, что что-то вне сервера является проблемой. Между прочим, сканеры портов - не лучший способ узнать, открыли ли вы порт TCP; попробуйте например telnet server 443
от случайного клиента. Это проще и, следовательно, у него меньше возможностей выйти из строя, чем у сканера портов, поэтому меньше риск сделать ложные выводы.
Попробуйте добавить эту строку,
-A INPUT -i ppp0 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT