Автор Тема: [SOLVED] Настройка iptables (nat+firewall), порт tcp80: доступны не все сайты  (Прочитано 2526 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн skantor

  • Новичок форума
  • Topic Author
  • Сообщений: 3
Добрый день, многоуважаемый ALL.

Так случилось, что возникла (производственная?) необходимость по перенастройке домашнего сервера с Windows 2000 на Debian Linux. Основные функции: proxy, firewall, file/print server + сетевые службы ftp, http, smtp/pop3, irc и др. К сожалению, пришлось споткнуться чуть ли не в самом начале, на реализации nat/proxy служб.
Версия Debian: 6.0.4, ядро 2.6.32-5-686, без графической оболочки, компьютер Pentium III 650, ОЗУ 384 Мб, два сетевых интерфейса 100 Мб/с (внешний eth0, внутренний eth1/192.168.1.1), подключение к провайдеру по pppoe, ip-адрес статичный.

С UNIX'ом не приходилось сталкиваться лет 20, так что ось для меня практически что совсем новая. Поиск в Интернете дал, что наиболее простыми в настройке является пара iptables + squid. Использованы рекомендованные материалы по настройке из Интернет, в результате получен следующий конфигурационный файл для iptables, запуск ведется через iptables-restore:
Spoiler: ShowHide
# Generated by iptables-save v1.4.8 on Sun Sep 30 00:35:20 2012
*filter
:INPUT DROP [2:670]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:ALLOWED - [0:0]
:BAD_TCP_PACKETS - [0:0]
:ICMP_PACKETS - [0:0]
:TCP_PACKETS - [0:0]
:UDP_PACKETS - [0:0]
-A INPUT -p tcp -j BAD_TCP_PACKETS
-A INPUT -s 192.168.1.0/24 -i eth1 -j ACCEPT
-A INPUT -s 127.0.0.1/32 -i lo -j ACCEPT
-A INPUT -s 192.168.1.1/32 -i lo -j ACCEPT
-A INPUT -s XXX.XXX.XXX.XXX/32 -i lo -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --sport 68 --dport 67 -j ACCEPT
-A INPUT -d XXX.XXX.XXX.XXX/32 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i ppp0 -p tcp -j TCP_PACKETS
-A INPUT -i ppp0 -p udp -j UDP_PACKETS
-A INPUT -i ppp0 -p icmp -j ICMP_PACKETS
-A INPUT -d 224.0.0.0/8 -i ppp0 -j DROP
-A INPUT -i eth0 -j DROP
-A INPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT INPUT packet died: " --log-level 7
-A FORWARD -s 192.168.0.0/16 -i ppp0 -o eth1 -j ACCEPT
-A FORWARD -p tcp -j BAD_TCP_PACKETS
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT FORWARD packet died: " --log-level 7
-A OUTPUT -o ppp0 -p udp -m udp --sport 32769:65535 --dport 33434:33523 -j ACCEPT
-A OUTPUT -p tcp -j BAD_TCP_PACKETS
-A OUTPUT -s 127.0.0.1/32 -j ACCEPT
-A OUTPUT -s 192.168.1.1/32 -j ACCEPT
-A OUTPUT -s XXX.XXX.XXX.XXX/32 -j ACCEPT
-A OUTPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "IPT OUTPUT packet died: " --log-level 7
-A ALLOWED -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A ALLOWED -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A ALLOWED -p tcp -j DROP
-A BAD_TCP_PACKETS -p tcp -m tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset
-A BAD_TCP_PACKETS -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A ICMP_PACKETS -i eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ICMP_PACKETS -i ppp0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A ICMP_PACKETS -i ppp0 -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A ICMP_PACKETS -i ppp0 -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A TCP_PACKETS -p tcp -m tcp --dport 21 -j ALLOWED
-A TCP_PACKETS -p tcp -m tcp --dport 22 -j ALLOWED
-A TCP_PACKETS -p tcp -m tcp --dport 25 -j ALLOWED
-A TCP_PACKETS -p tcp -m tcp --dport 80 -j ALLOWED
-A TCP_PACKETS -p tcp -m tcp --sport 80 --dport 1024:65535 -j ALLOWED
-A TCP_PACKETS -p tcp -m tcp --sport 8080 --dport 1024:65535 -j ALLOWED
-A TCP_PACKETS -p tcp -m tcp --sport 8083 --dport 1024:65535 -j ALLOWED
-A TCP_PACKETS -p tcp -m tcp --dport 110 -j ALLOWED
-A TCP_PACKETS -p tcp -m tcp --dport 113 -j ALLOWED
-A TCP_PACKETS -p tcp -m tcp --dport 443 -j ALLOWED
-A UDP_PACKETS -p udp -m udp --dport 53 -j ACCEPT
-A UDP_PACKETS -p udp -m udp --dport 123 -j ACCEPT
-A UDP_PACKETS -p udp -m udp --dport 2074 -j ACCEPT
-A UDP_PACKETS -p udp -m udp --dport 4000 -j ACCEPT
-A UDP_PACKETS -d XXX.XXX.XXX.255/32 -i ppp0 -p udp -m udp --dport 135:139 -j DROP
-A UDP_PACKETS -d 255.255.255.255/32 -i ppp0 -p udp -m udp --dport 67:68 -j DROP
COMMIT
# Completed on Sun Sep 30 00:35:20 2012
# Generated by iptables-save v1.4.8 on Sun Sep 30 00:35:20 2012
*nat
:PREROUTING ACCEPT [216:20938]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [100:9335]
-A POSTROUTING -p icmp -j MASQUERADE
-A POSTROUTING -p tcp --dport 25 -j MASQUERADE
-A POSTROUTING -p tcp --dport 80 -j MASQUERADE
-A POSTROUTING -p tcp --dport 110 -j MASQUERADE
-A POSTROUTING -p tcp --dport 443 -j MASQUERADE
-A POSTROUTING -p udp --dport 443 -j MASQUERADE
COMMIT
# Completed on Sun Sep 30 00:35:20 2012

squid установлен, но толком не настроен, перенаправление портов на tcp3128 отключено.

Суть проблемы. При попытке просмотра Интернет-сайтов непосредственно с сервера (через elinks) все в порядке, т.е. сеть работает нормально (насколько об этом можно судить из текстового браузера). При попытке просмотра сайтов из компьютеров внутренней сети обнаруживается, что часть сайтов работает (в том числе и debianforum), часть сайтов "зависает" на получении данных, среди них google, youtube и ряд других сайтов. На некоторых сайтах работает их содержимое, но не загружается содержимое внедренных объектов.
syslog изучен, явного отписывания блокируемых портов/пакетов не видно. Более того, еще в начале настройки, когда политика на цепочки INPUT, OUTPUT и FORWARD стояла ACCEPT, картина была та же самая. Были попытки вставлять дополнительные строчки логирования в iptables, с нулевым результатом.
Есть подозрения: а) на неправильно настроенный MASQUERADE или вообще конфигурацию iptables; б) на остаточно работающий squid, хотя его отключение не решает проблему; в) на iptables как таковой (есть в сети и анти-iptables статьи).

Заранее спасибо, если сможете помочь. Любые логи или конфиги выкладываю по первому запросу.
« Последнее редактирование: 01 Октябрь 2012, 21:05:32 от skantor »
 

Оффлайн ihammers

  • Главный модератор
  • Ветеран
  • *****
  • Сообщений: 1742
  • Debian GNU/Linux Stretch
    • Алтайская Группа Пользователей Linux
  • Jabber: ihammers@jabber.ru
Да... iptables "перегружен":)

Если вам нужно раздавать только web, то можно обойтись только настройкой интернета на сервере и настройкой squid.
Если вам ещё нужно некоторые машины выпускать через nat, то посмотрите следующие статьи на форуме: 1 и 2.

Возможно стоит вам посмотреть только статью про NAT, и оставить настройки squid по умолчанию, при этом всё должно работать.  Если будут ещё вопросы или проблемы, обращайтесь.
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64,
LXQt/KDE/OpenBox AMD Phenon X4 / 16Gb RAM / ATI HD7750 Silent
_______________________________
Debian GNU/Linux Stretch, kernel 4.9.0-5-amd64, LXQt/KDE/OpenBox
Acer Aspire One 722 AMD C60 / 4Gb RAM / ATI HD6290
 

Оффлайн skantor

  • Новичок форума
  • Topic Author
  • Сообщений: 3
ihammers, спасибо за ответ.

Поскольку статья про NAT довольно проста, а ссылки 1 и 2 содержат примеры скриптов, мной было принято решение "на свежую голову" пересмотреть созданные таблицы цепочек. После удаления явно параноидальных узлов, блокирующих полезный трафик, проблема не решилась.
Случайно удалось наткнуться на похожую проблему в Интернете, решение связано с TCP MSS, и приводится строка настройки iptables, снимающая данную проблему.

iptables -t mangle -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Поясняющая статья здесь: habrahabr.ru/post/136871/

Всем неравнодушным к проблеме большое спасибо. Вопрос перевожу в статус SOLVED.
 

Теги:
 

iptables и NAT, не PAT

Автор baf

Ответов: 4
Просмотров: 1883
Последний ответ 06 Январь 2015, 12:46:08
от baf
WiFi Беспроводные каналы 12 и 13 не доступны.Debian 10 xfce x64

Автор Organarh

Ответов: 12
Просмотров: 428
Последний ответ 04 Октябрь 2020, 09:29:50
от Organarh
настройка 3G USB модема ZTE WCDMA Technologies MSM

Автор andrei186

Ответов: 6
Просмотров: 4738
Последний ответ 23 Январь 2017, 22:45:45
от andrei186
[РЕШЕНО] Сеть, настройка VPN.

Автор Metrix

Ответов: 4
Просмотров: 3159
Последний ответ 18 Февраль 2011, 19:28:03
от IngwarE
Настройка интернет соединения по типу (Dial-Up - как в "вин")

Автор temakonkin

Ответов: 2
Просмотров: 1539
Последний ответ 19 Февраль 2015, 08:48:30
от temakonkin