Есть сеть с адресом LOCAL_MASHIN
есть Сервер с 2мя интерфейсами INET_IP_SRV который смотрит в Инет
и LOCAL_IP_SRV который смотрит в локалку
Инет работает на ура, почта летает.
Проблемма : появилась необходимость чтоб с сети можно было
пропинговать скажем yandex.ru на что в ответ получаю, если с
виндовой машины то привышино время ожидания если с Linux то
operatoin not permitted Сам сервер пингует нормально (Локалка
отказывается слать пинг и трассер как на имя так и на IP)
Грешил на iptables и передалал их упрастив до такого:
*nat
:PREROUTING DROP [555302:31253081]
:POSTROUTING ACCEPT [438981:27113923]
:OUTPUT DROP [762167:47001889]
-A PREROUTING -s LOCAL_MASHIN -d LOCAL_IP_SRV -p tcp -m multiport --dports squid,domain,smtp,pop3,ssh,ftp -j ACCEPT
-A PREROUTING -s INET_IP_SRV -p tcp -m multiport --dports http -j ACCEPT
-A PREROUTING -d INET_IP/255.255.255.248 -i eth0 -p tcp -m multiport --dports domain,smtp -j ACCEPT
-A POSTROUTING -s 192.168.10.3 -d ! 192.168.10.0/255.255.255.0 -j SNAT --to-source INET_IP
-A POSTROUTING -s 192.168.10.3 -p icmp -j SNAT --to-source INET_IP_SRV
COMMIT
*filter
:INPUT ACCEPT [18885879:9357141141]
:FORWARD DROP [2:132]
:OUTPUT ACCEPT [21055065:8915558519]
:icmp_packets - [0:0]
-A INPUT -p icmp -j icmp_packets
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m state --state RELATED -j ACCEPT
-A FORWARD -s LOCAL_IP_SRV -d 192.168.10.0/255.255.255.0 -p tcp -m multiport --sports squid,pop3,smtp -j ACCEPT
-A FORWARD -s 192.168.10.0/255.255.255.0 -d LOCAL_IP_SRV -p tcp -m multiport --dports squid,pop3,smtp -j ACCEPT
-A FORWARD -s LOCAL_IP_SRV -d LOCAL_MASHIN -p tcp -m multiport --sports squid,pop3,smtp -j ACCEPT
-A FORWARD -s LOCAL_MASHIN -d LOCAL_IP_SRV -p tcp -m multiport --dports squid,pop3,smtp,ssh,ftp -j ACCEPT
-A FORWARD -s LOCAL_MASHIN -p icmp -j ACCEPT
-A FORWARD -d LOCAL_MASHIN -p icmp -j ACCEPT
-A OUTPUT -p icmp -j icmp_packets
-A OUTPUT -p icmp -m state --state INVALID -j DROP
-A icmp_packets -p icmp -j DROP
-A icmp_packets -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 3 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 5 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT
ничего не изменилось, где может быть заблокированно.
блин форматирование.
:PREROUTING DROP [555302:31253081]
:POSTROUTING ACCEPT [438981:27113923]
:OUTPUT DROP [762167:47001889]
-A PREROUTING -s LOCAL_MASHIN -d LOCAL_IP_SRV -p tcp -m multiport --dports squid,domain,smtp,pop3,ssh,ftp -j ACCEPT
-A PREROUTING -s INET_IP_SRV -p tcp -m multiport --dports http -j ACCEPT
-A PREROUTING -d INET_IP/255.255.255.248 -i eth0 -p tcp -m multiport --dports domain,smtp -j ACCEPT
-A POSTROUTING -s 192.168.10.3 -d ! 192.168.10.0/255.255.255.0 -j SNAT --to-source INET_IP
-A POSTROUTING -s 192.168.10.3 -p icmp -j SNAT --to-source INET_IP_SRV
- Все неправильно: фильтрацию пакетов настоятельно рекомендуется делать в отведенной для этого таблице filter. Соотвественно dropы в nate убрать и оставить одно правило :
-A POSTROUTING -s 192.168.10.3(в локалке одна машина чтоли?) -j SNAT --to-source INET_IP_SRV
-A INPUT -p icmp -m state --state RELATED -j ACCEPT - насколько я помню такого не бывает, RELATED лучше к ftp приклеить.
Ну и наконец : -A FORWARD -p icmp -j ACCEPT - разрешает транзитный пинг.
А вообще почитайте туториал , там хорошо написано.
Кстати да , цепочка icmp_packets состоит из одного правила :)) Тоже самое в INPUT и OUTPUT - первое правило -j icmp_packets, следующие правила по icmp работать не будут. А вообще правильно, а то запингуют досмерти :))
Нет локалка не из одной машины просто там сеть проксиков навороченая, так что я в обход их всех включил одну машину чтоб сперва на ней отстроить.
По остальным советам попробую
Просто прикол не только в таблах, я ставил пустой iptables
который генится по умолчанию, сним тоже не работатет такое ощущение что где то галачка стоит запрещать пересылку icmp :)))))
PS что касается запингуют досмерти, все фильтры ставились на icmp моим предшевственником как пилюля от дос атак :)))) Я пытаюсь от этого уйти ... малой кровью вот и интересуюсь как это мирно сделать.
Оставил для icmp
*nat
-A POSTROUTING -s 192.168.10.3 -p icmp -j SNAT --to-source INET_IP_SRV
COMMIT
*filter
:INPUT ACCEPT [18885879:9357141141]
:FORWARD DROP [2:132]
:OUTPUT ACCEPT [21055065:8915558519]
:icmp_packets - [0:0]
-A INPUT -p icmp -j icmp_packets
-A FORWARD -s LOCAL_MASHIN -p icmp -j ACCEPT
-A FORWARD -d LOCAL_MASHIN -p icmp -j ACCEPT
-A OUTPUT -p icmp -j icmp_packets
-A icmp_packets -p icmp -j ACCEPT
Всеравно машины стоящие на сервером говорят:
windows по ip привышен интервал ожидания по имени ненайдено такое имя
Linux по ip Operation not permitted по имени unknown host
С самого сервера по прежнему пинг и трассер и по имени и по ip в сторону интернета идет нормально!
Хм, если не ошибаюсь... не прописав в iptables ни стрчки
относящейся к udp и icmp (как по умолчанию в конфиге)
Я могу и пинговать и трассировать?
10.3 это один из ip в который маскарадятся компы
на другом cервере ;) суть не в этом, я подключал комп
давая ему ip 10.3 отключая всю сеть, не пинги ни трассеры...
UDP проверю.
ДА в последнем посте нарисована команда которая дарзешает
принимать и отправлять любые пакеты icmp (как было подсказано
выше)
tcpdump посмотрел...
он мне расказал, какой пакет от какого ip пошел куда
и как он его понял но все пакеты который я ему шлю
ping(ом) там не светятся,
ни одной строчки не показано, он даже показывает radmin
виндовый который через него в принцепе не работает, а icmp
не кажет :(
кстати прописывание разрешение всего
ни пинги ни трассеры не идут :((((
tcpdump -i eth1 icmp -все замечательно показывает, маны нужно иногда читать.
>трейсы кстати при таком конфиге ходить НЕ БУДУТ они используют udp
>(линуксовые по умолчанию, виндовс -- безвариантно) надо и его
>разрешать - какие умные анонимусы пошли :)), чегож тогда у меня в
цепочке FORWARD нет ни одного правила на UDP, и политика по
умолчанию у ней DROP, а все трейсится и пингуется?
У меня такое ощущение, что ты в таблице nat всетаки не поменял
политики по умолчанию на цепочках PREROUTING и OUTPUT с DROP на
ACCEPT.
http://www.opennet.ru/docs/RUS/iptables/
> трейсы кстати при таком конфиге ходить НЕ БУДУТ они используют udp (линуксовые по умолчанию, виндовс -- безвариантно)
Не совсем верно: в linux-е по умолчанию (без -I) - UDP, в винде - ICMP.
:)
как я писал выше
tcpdump ничего не показывает, вернее он показывает что
Вернее пинг с 192.168.10.3 на 64.12.161.153
на первом интерфейсе показывает
tcpdump: listening on eth0
и ждет пока чегонить произойдет (короче ничего не показывает)
пинг 192168.10.3 на IP_INET_LOCAL он тоже откидывается
но сервер на tcpdump на IP_INET_LOCAL показывает icmp: echo request
Политику по умолчанию
Forward
prerouting
postrouting
output
input
Все возведины для эксперимента в ACCEPT в правилах, все в ACCTPT
С помощью SPIRIT разобрался заново поставил пакет iptables и
дорисовал некоторые цепочки (часть из которых попросту не додумался
поставить) Всем спасибо