Доброго времени суток, господа!
Тревожит вас очередной мало что понимающий в никсовых системах юзверь. Отсюда, думаю, много станет понятно, так что не буду много об этом. Итак, я пытался разобраться с этим http://www.opennet.me/docs/RUS/iptables/ на протяжении нескольких недель, но мало что вышло.
Итак, дано:
rusfedora 14
squid 3.1
sarg 2.2.3.1
iptables
LAN = eth0
INET = eth1
все ипы статические
Задачи:
SQUID - HTTP интернет с авторизацией (пока реализован на непрозрачной основе, странно, но работает);
SARG - снятие отчетов саргом (работает, но таблички генерятся без обрамления, в общем стили кажется в отключке);
IPTABLES - доступ от любой машинки из LAN к сервисам/протоколам ICQ (поначалу работало через прокси, потом перестало, изменений не вносилось), Skype (работает через хттп-прокси без проблем), HTTPS (все в порядке через прокси), FTP (через браузер клиентом работает, через файлзиллы и прочее - не проверялось), почтовые клиенты pop3/smtp (не работает), ICR/Jabber порты 6667-6669 (пока работают через хттп-прокси), проброс натом портов к конкретным машинкам для банк-клиента (не приступал к реализации).Итого: имеется 2 основных задачи, которые мне пока решить ну никак не удается.
1)нормальное отображение sarg-отчета (в конфиге включены все тэги, отвечающие за "рисование", в одной из тестовых версий все работало без каких-либо проблем, но по несчастливой случайности, тот конфиг не сохранился), прошу подсказок, что искать и где копать.
2)проблема с почтовыми клиентами pop3/smtp/imap как заставить их корректно работать, я в курсе, что осьминожка не умеет транслировать эти протоклы через себя, а вот реализовать iptables'ами у меня пока не выходит, самая главная загвоздка - сделать это для всех юзеров локали разом(вводим допущение, что у нас сеть LAN из N компов и у всех поголовно есть доступ к инету и указанным протоколам и без доступа к любым другим). Читал про то, что можно это решить только используя прозрачное проксирование, но этот вариант пробовать буду только если других не останется, т.к. шлюз используется и оставить людей без инета пока нет возможности.
3)также выслушаю замечания и рекомендации по текущей конфигурации иптаблесов, возможно по версиям продуктов, к сожалению, сами продукты не обсуждаются.ну и до кучи, текущие правила iptables:
==================================================
#!/bin/sh/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_conntrack_ftp
/sbin/modprobe ipt_conntrack_irc
/sbin/modprobe ipt_nat_ftp
/sbin/modprobe ipt_REJECTiptables -F
iptables - P INPUT DROP
iptables - P OUTPUT DROP
iptables - P FORWARD DROPiptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A INPUT -p icmp -i eth0 --icmp-typoe echo-request -j ACCEPT
iptables -A OUTPUT -p icmp -o eth1 --icmp-typoe echo-reply -j ACCEPT
iptables -A INPUT -p icmp -i eth1 --icmp-typoe echo-reply -j ACCEPTiptables -A INPUT -p tcp -i eth0 --dport 3128 -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --sport 3128 -j ACCEPTiptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --sport 22 -j ACCEPTiptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 --sport 80 -j ACCEPTiptables -A OUTPUT -p tcp -o eth1 -j ACCEPT
iptables -A OUTPUT -p udp -o eth1 -j ACCEPT
iptables -A OUTPUT -p icmp -o eth1 --icmp-type echo-request -j ACCEPTiptables -A INPUT -p tcp -i eth1 --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 6667:6669 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 5190 -j ACCEPTservice iptables save
service iptables restart
==================================================Вот, наверное так... очень надеюсь на вашу помощь, уважаемые *nix-гуру
Как-то Вы плохо читали про iptables. Потому что если бы читали ВНИМАТЕЛЬНО - было бы понятно, что все пакеты из LAN в Интернет идут через цепочку FORWARD (в которой у вас все дропается). Кроме того - не вижу НАТящего правила (-t nat -I PREROUTING и т.д.). Нет (или не приведено Вами) еще вот это - net.ipv4.ip_forward = 1. Резюме - Вы так и не разобрались в логике работы iptables и в том, как работают его цепочки. Еще раз медленно и вдумчиво курим мануал. На тему - что такое INPUT, что такое OUTPUT, что такое FORWARD.
> Как-то Вы плохо читали про iptables. Потому что если бы читали ВНИМАТЕЛЬНО
> - было бы понятно, что все пакеты из LAN в Интернет
> идут через цепочку FORWARD (в которой у вас все дропается). Кроме
> того - не вижу НАТящего правила (-t nat -I PREROUTING и
> т.д.). Нет (или не приведено Вами) еще вот это - net.ipv4.ip_forward
> = 1. Резюме - Вы так и не разобрались в логике
> работы iptables и в том, как работают его цепочки. Еще раз
> медленно и вдумчиво курим мануал. На тему - что такое INPUT,
> что такое OUTPUT, что такое FORWARD.не все так просто... надеюсь...
net.ipv4.ip_forward > = 1 - имеется
Пробовал и натом и форвардом управлять, вариантов имеется несколько, просто не стал захламлять пост именно по факту почтовика, поскольку перепробовал много чего, а оно все равно не работает и выложил остальные правила, дабы в них не содержалось проблемных строчек (на суд общественности, так сказать). Согласен, может я и не очень хорошо разобрался, но видимо не под силу мне самому это осилить, вот и отправился сюда с вопросами. Читал немало тем и с этого форума и со многих других. Видимо, я не могу понять какую-то принципиальную вещь, ибо рисовал на бумажке как ходют пакеты из сети в сеть, как работают с приложениями и т.д., но что-то не выходит.
Хотелось бы более конструктивных предложений, а по-возможности, и примеров правил, а в идеале и разъяснений почему так, а не эдак...
>[оверквотинг удален]
> оно все равно не работает и выложил остальные правила, дабы в
> них не содержалось проблемных строчек (на суд общественности, так сказать). Согласен,
> может я и не очень хорошо разобрался, но видимо не под
> силу мне самому это осилить, вот и отправился сюда с вопросами.
> Читал немало тем и с этого форума и со многих других.
> Видимо, я не могу понять какую-то принципиальную вещь, ибо рисовал на
> бумажке как ходют пакеты из сети в сеть, как работают с
> приложениями и т.д., но что-то не выходит.
> Хотелось бы более конструктивных предложений, а по-возможности, и примеров правил, а в
> идеале и разъяснений почему так, а не эдак...для начинающего правила нормальные если не учитывать что не поняли для чего FORWARD.
по аналогии с тем как вы делали правила для 22 порта, сделайте для pop3/smtp/imap портов только в FORWARD, т.к. пакеты будут идти транзитом.
и
iptables -t nat -A POSTROUTING -o внешний_интерфейс -j SNAT --to-source ваш_внешний_ipпотом читайте про статусы пакетов
>[оверквотинг удален]
>> приложениями и т.д., но что-то не выходит.
>> Хотелось бы более конструктивных предложений, а по-возможности, и примеров правил, а в
>> идеале и разъяснений почему так, а не эдак...
> для начинающего правила нормальные если не учитывать что не поняли для чего
> FORWARD.
> по аналогии с тем как вы делали правила для 22 порта, сделайте
> для pop3/smtp/imap портов только в FORWARD, т.к. пакеты будут идти транзитом.
> и
> iptables -t nat -A POSTROUTING -o внешний_интерфейс -j SNAT --to-source ваш_внешний_ip
> потом читайте про статусы пакетови да, у клиентов должны быть прописаны шлюз и dns
>>[оверквотинг удален]
> потом читайте про статусы пакетовА можно поподробнее о чем конкретно идет речь? Выполненные правила пока не помогли, для Nmap'a порт все также закрыт и почта отказывается ходить в обоих направлениях.
>>>[оверквотинг удален]
>> потом читайте про статусы пакетов
> А можно поподробнее о чем конкретно идет речь? Выполненные правила пока не
> помогли, для Nmap'a порт все также закрыт и почта отказывается ходить
> в обоих направлениях.тогда зачем вам про это поподробней , если вы то еще не запустили. хотите запутаться.
>>>>[оверквотинг удален]
>>> потом читайте про статусы пакетов
>> А можно поподробнее о чем конкретно идет речь? Выполненные правила пока не
>> помогли, для Nmap'a порт все также закрыт и почта отказывается ходить
>> в обоих направлениях.
> тогда зачем вам про это поподробней , если вы то еще не
> запустили. хотите запутаться.хммм.... Так правила я прописал, но ничем это не помогло. В сквиде были разрешения на порты, убрал их, чтобы не перехватывал на себя. По сути, пробовал и так, и так. Nmap видит вообще только 3128, 22 и 80. Т.е. все ходит исключительно через проскю, Хотя пробовал правила писать на открытие разных портов и INPUT'ами и FORWARD'ами. Видимо, я что-то глобальное упускаю, а что - не пойму.
>[оверквотинг удален]
>>> помогли, для Nmap'a порт все также закрыт и почта отказывается ходить
>>> в обоих направлениях.
>> тогда зачем вам про это поподробней , если вы то еще не
>> запустили. хотите запутаться.
> хммм.... Так правила я прописал, но ничем это не помогло. В сквиде
> были разрешения на порты, убрал их, чтобы не перехватывал на себя.
> По сути, пробовал и так, и так. Nmap видит вообще только
> 3128, 22 и 80. Т.е. все ходит исключительно через проскю, Хотя
> пробовал правила писать на открытие разных портов и INPUT'ами и FORWARD'ами.
> Видимо, я что-то глобальное упускаю, а что - не пойму.показывайте iptables-save
>[оверквотинг удален]
>>>> в обоих направлениях.
>>> тогда зачем вам про это поподробней , если вы то еще не
>>> запустили. хотите запутаться.
>> хммм.... Так правила я прописал, но ничем это не помогло. В сквиде
>> были разрешения на порты, убрал их, чтобы не перехватывал на себя.
>> По сути, пробовал и так, и так. Nmap видит вообще только
>> 3128, 22 и 80. Т.е. все ходит исключительно через проскю, Хотя
>> пробовал правила писать на открытие разных портов и INPUT'ами и FORWARD'ами.
>> Видимо, я что-то глобальное упускаю, а что - не пойму.
> показывайте iptables-saveкак-то уж очень странно, многих правил в исполняемом файле нет и -F прописано...
iptables-save
# Generated by iptables-save v1.4.9 on Mon Apr 4 12:10:40 2011
*nat
:PREROUTING ACCEPT [16:1753]
:OUTPUT ACCEPT [19:1140]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -s 192.168.1.111/32 -p tcp -j ACCEPT
-A PREROUTING -d 192.168.1.10/32 -p tcp -m tcp --dport 4081 -j ACCEPT
-A PREROUTING -s 192.168.2.10/32 -p tcp -m tcp --dport 110 -j ACCEPT
-A PREROUTING -s 192.168.2.10/32 -p tcp -m tcp --dport 110 -j ACCEPT
-A PREROUTING -s 192.180.1.3/32 -p tcp -m tcp --dport 110 -j ACCEPT
-A PREROUTING -i eth0 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.180.1.3
-A PREROUTING -i eth1 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.2.10
-A PREROUTING -i eth1 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.2.10
-A PREROUTING -i eth0 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.2.10
-A PREROUTING -i eth0 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.2.10
-A OUTPUT -o eth1 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o eth1 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o eth1 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
-A POSTROUTING -d 192.168.1.111/32 -p tcp -j ACCEPT
-A POSTROUTING -o eth1 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.168.2.10
-A POSTROUTING -o eth1 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.168.2.10
-A POSTROUTING -o eth1 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.168.2.10
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/13 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/13 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -d 192.168.2.10/32 -o eth1 -p tcp -m tcp --dport 25 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -d 192.168.2.10/32 -o eth1 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -d 192.168.2.10/32 -o eth1 -p tcp -m tcp --dport 25 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -d 192.168.2.10/32 -o eth1 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -o eth0 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -o eth0 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -o eth1 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -o eth0 -p tcp -m multiport --dports 25,110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 110 -j MASQUERADE
-A POSTROUTING -s 192.168.0.0/16 -p tcp -m tcp --dport 25 -j MASQUERADE
-A POSTROUTING -o eth1 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -o eth0 -p tcp -m multiport --dports 25,110 -j MASQUERADE
-A POSTROUTING -o eth1 -p tcp -m multiport --dports 25,110 -j MASQUERADE
-A POSTROUTING -o eth0 -p tcp -m multiport --dports 25,110 -j MASQUERADE
-A POSTROUTING -o eth1 -p tcp -m multiport --dports 25,110 -j MASQUERADE
-A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
-A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
COMMIT
# Completed on Mon Apr 4 12:10:40 2011
# Generated by iptables-save v1.4.9 on Mon Apr 4 12:10:40 2011
*mangle
:PREROUTING ACCEPT [106:13485]
:INPUT ACCEPT [106:13485]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [99:21883]
:POSTROUTING ACCEPT [99:21883]
COMMIT
# Completed on Mon Apr 4 12:10:40 2011
# Generated by iptables-save v1.4.9 on Mon Apr 4 12:10:40 2011
*filter
:INPUT DROP [25:2455]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth1 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 6667:6669 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 5190 -j ACCEPT
-A FORWARD -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -p tcp -m tcp --dport 110 -j ACCEPT
-A FORWARD -i eth0 -p tcp -m tcp --dport 25 -j ACCEPT
-A OUTPUT -o eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 3128 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -o eth1 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o eth1 -p tcp -j ACCEPT
-A OUTPUT -o eth1 -p udp -j ACCEPT
-A OUTPUT -o eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT
# Completed on Mon Apr 4 12:10:40 2011
>[оверквотинг удален]
> -A POSTROUTING -o eth0 -p tcp -m multiport --dports 25,110 -j MASQUERADE
> -A POSTROUTING -o eth1 -p tcp -m multiport --dports 25,110 -j MASQUERADE
> -A POSTROUTING -o eth0 -p tcp -m multiport --dports 25,110 -j MASQUERADE
> -A POSTROUTING -o eth1 -p tcp -m multiport --dports 25,110 -j MASQUERADE
> -A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
> -A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
> -A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
> -A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
> -A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
> -A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3в nat, все что выше уберайте, оставте одну строку которая ниже, при условии что 192.180.1.3 - это внешний ip
-A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
>[оверквотинг удален]
> -A OUTPUT -o eth0 -p tcp -m tcp --sport 3128 -j ACCEPT
> -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT
> -A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -j ACCEPT
> -A OUTPUT -o eth1 -p udp -m udp --dport 53 -j ACCEPT
> -A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
> -A OUTPUT -o eth1 -p tcp -j ACCEPT
> -A OUTPUT -o eth1 -p udp -j ACCEPT
> -A OUTPUT -o eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
> COMMIT
> # Completed on Mon Apr 4 12:10:40 2011
>>[оверквотинг удален]
> в nat, все что выше уберайте, оставте одну строку которая ниже, при
> условии что 192.180.1.3 - это внешний ipip действительно внешний, но других правил просто нет в файле, были закомментированые, но после их удаления, ничего не изменилось (впрочем, потому, что не должно было измениться). Может есть еще какие стандартные конфиги iptables, где могли быть прописаны данные правила?
>>>[оверквотинг удален]
>> в nat, все что выше уберайте, оставте одну строку которая ниже, при
>> условии что 192.180.1.3 - это внешний ip
> ip действительно внешний, но других правил просто нет в файле, были закомментированые,
> но после их удаления, ничего не изменилось (впрочем, потому, что не
> должно было измениться). Может есть еще какие стандартные конфиги iptables, где
> могли быть прописаны данные правила?какой дистрибутив?
если перегружали правила, давайте снова вывод iptables-save, если вывод не изменился, то удаляйте их из памяти ручками
>>>>[оверквотинг удален]
>>> в nat, все что выше уберайте, оставте одну строку которая ниже, при
>>> условии что 192.180.1.3 - это внешний ip
>> ip действительно внешний, но других правил просто нет в файле, были закомментированые,
>> но после их удаления, ничего не изменилось (впрочем, потому, что не
>> должно было измениться). Может есть еще какие стандартные конфиги iptables, где
>> могли быть прописаны данные правила?
> какой дистрибутив?
> если перегружали правила, давайте снова вывод iptables-save, если вывод не изменился, то
> удаляйте их из памяти ручкамидистрибутив ОС Russian Fedora 14 (NY), версия iptables 1.4.9. ничего не изменяется после перегрузки правил. Очистка таблиц нат не производилась.
добавил iptables -F -t natпосле чего получил такое:
iptables-save
# Generated by iptables-save v1.4.9 on Mon Apr 4 14:41:18 2011
*nat
:PREROUTING ACCEPT [112670:4971871]
:OUTPUT ACCEPT [12:720]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3
COMMIT
# Completed on Mon Apr 4 14:41:18 2011
# Generated by iptables-save v1.4.9 on Mon Apr 4 14:41:18 2011
*mangle
:PREROUTING ACCEPT [117707:8564751]
:INPUT ACCEPT [117461:8548088]
:FORWARD ACCEPT [238:12948]
:OUTPUT ACCEPT [5585:3597488]
:POSTROUTING ACCEPT [5529:3592578]
COMMIT
# Completed on Mon Apr 4 14:41:18 2011
# Generated by iptables-save v1.4.9 on Mon Apr 4 14:41:18 2011
*filter
:INPUT DROP [112408:4957584]
:FORWARD DROP [238:12948]
:OUTPUT DROP [56:4910]
-A INPUT -s 127.0.0.1/32 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth1 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 3128 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth1 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i eth1 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 6667:6669 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 5190 -j ACCEPT
-A FORWARD -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -p tcp -m tcp --dport 110 -j ACCEPT
-A FORWARD -i eth0 -p tcp -m tcp --dport 25 -j ACCEPT
-A OUTPUT -o eth0 -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 3128 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -o eth1 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o eth1 -p tcp -j ACCEPT
-A OUTPUT -o eth1 -p udp -j ACCEPT
-A OUTPUT -o eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT
# Completed on Mon Apr 4 14:41:18 2011эффект тот же
>[оверквотинг удален]
> -A OUTPUT -o eth0 -p tcp -m tcp --sport 3128 -j ACCEPT
> -A OUTPUT -o eth0 -p tcp -m tcp --sport 22 -j ACCEPT
> -A OUTPUT -o eth0 -p tcp -m tcp --sport 80 -j ACCEPT
> -A OUTPUT -o eth1 -p udp -m udp --dport 53 -j ACCEPT
> -A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT
> -A OUTPUT -o eth1 -p tcp -j ACCEPT
> -A OUTPUT -o eth1 -p udp -j ACCEPT
> -A OUTPUT -o eth1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
> COMMIT
> # Completed on Mon Apr 4 14:41:18 2011у Fedora файл для правил - /etc/sysconfig/iptables, может отсутствовать, правила загружаются - service iptables start или restart, формат файла такой же как и вывод iptables-save
> эффект тот же
с эти правилами должно уже работать.
шлюз и dns у клиентов прописаны?
>>[оверквотинг удален]
> у Fedora файл для правил - /etc/sysconfig/iptables, может отсутствовать, правила загружаются
> - service iptables start или restart, формат файла такой же как
> и вывод iptables-save
>> эффект тот же
> с эти правилами должно уже работать.
> шлюз и dns у клиентов прописаны?Файл присутствует, в нем ровно то же, что и в iptables-save с теми же таймштампами. В файле присутствуют команды сохранения правил и перезапуска iptables (service iptables save; service iptables restart).
Шлюз прописан верный, инет и другие сервисы через squid работают из под рабочий станций как виндовых (XP/Vista/7), так и никсовых (та же fedora 14). DNS прописано 2 штуки, primary - gate, secondary - контроллер домена для виндомашин. Для никсовых - только адрес шлюза.
>[оверквотинг удален]
>>> эффект тот же
>> с эти правилами должно уже работать.
>> шлюз и dns у клиентов прописаны?
> Файл присутствует, в нем ровно то же, что и в iptables-save с
> теми же таймштампами. В файле присутствуют команды сохранения правил и перезапуска
> iptables (service iptables save; service iptables restart).
> Шлюз прописан верный, инет и другие сервисы через squid работают из под
> рабочий станций как виндовых (XP/Vista/7), так и никсовых (та же fedora
> 14). DNS прописано 2 штуки, primary - gate, secondary -
> контроллер домена для виндомашин. Для никсовых - только адрес шлюза.для того что работает через прокси dns не нужен, и шлюз, если прокси в той же подсети, не нужн.
nslookup opennet.ru с клиента.cat /proc/sys/net/ipv4/ip_forward
ifconfig
>>[оверквотинг удален]
> для того что работает через прокси dns не нужен, и шлюз, если
> прокси в той же подсети, не нужн.
> nslookup opennet.ru с клиента.
> cat /proc/sys/net/ipv4/ip_forward
> ifconfigиз Windows-машины:
C:\Users\user>nslookup opennet.ru
DNS request timed out.
timeout was 2 seconds.
╤хЁтхЁ: UnKnown
Address: 192.168.2.10DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Превышено время ожидания запроса UnKnownC:\Users\user>nslookup opennet.ru
DNS request timed out.
timeout was 2 seconds.
╤хЁтхЁ: UnKnown
Address: 208.67.222.222DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Превышено время ожидания запроса UnKnownиз Fedora для обоих dns-серверов:
nslookup opennet.ru
;; connection timed out; no servers could be reached
[root@userpc ~]# cat /proc/sys/net/ipv4/ip_forward
1
[root@userpc ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:C0:CE:14:73:C9
inet addr:192.168.1.111 Bcast:192.168.255.255 Mask:255.255.0.0
inet6 addr: fe80::2c0:caff:fe13:7ac8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7191262 errors:0 dropped:0 overruns:0 frame:0
TX packets:3115372 errors:4 dropped:0 overruns:0 carrier:6
collisions:0 txqueuelen:1000
RX bytes:680707926 (649.1 MiB) TX bytes:2649585261 (2.4 GiB)
Interrupt:11 Base address:0x2000lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)попробовал добавить следующие правила:
-A FORWARD -p upd -i eth1 --dport 53 -j ACCEPT
-A FORWARD -p upd -i eth0 --dport 53 -j ACCEPTНо не помогло... то, что с пробросом dns проблемы, это я вроде понимаю. Есть еще подозрение, что какие-то из локальных процессов могут перехватывать данные порты, но как это отследить, так и не сумел найти. Хотя dns-сервер не пытался настраивать, не говоря уже о почте.
>[оверквотинг удален]
> RX packets:0
> errors:0 dropped:0 overruns:0 frame:0
> TX packets:0
> errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:0
> RX bytes:0
> (0.0 b) TX bytes:0 (0.0 b)
> попробовал добавить следующие правила:
> -A FORWARD -p upd -i eth1 --dport 53 -j ACCEPT
> -A FORWARD -p upd -i eth0 --dport 53 -j ACCEPTпротокол udp и ответные пакеты вы не разрешили.
> Но не помогло... то, что с пробросом dns проблемы, это я вроде
> понимаю. Есть еще подозрение, что какие-то из локальных процессов могут перехватывать
> данные порты, но как это отследить, так и не сумел найти.
> Хотя dns-сервер не пытался настраивать, не говоря уже о почте.локальные на шлюзе? это только если вы их сами с помощью iptables завернете, а так демоны просто ждут обращение на адрес:порт и ничего сами не захватывают.
>>[оверквотинг удален]
>> -A FORWARD -p upd -i eth1 --dport 53 -j ACCEPT
>> -A FORWARD -p upd -i eth0 --dport 53 -j ACCEPT
> протокол udp и ответные пакеты вы не разрешили.добавил на исходящие (в данной ситуации dport/sport значения ведь не имеет?):
-A FORWARD -p upd -o eth1 --dport 53 -j ACCEPT
-A FORWARD -p upd -o eth0 --dport 53 -j ACCEPTИ что значит "протокол udp вы не разрешили"? Получается, что на данный момент работают только порты, на которых висят локальные службы ssh, apache, squid. Все, что ни пытаюсь форвардить, теряется в бездне.
>>>[оверквотинг удален]
>>> -A FORWARD -p upd -i eth1 --dport 53 -j ACCEPT
>>> -A FORWARD -p upd -i eth0 --dport 53 -j ACCEPT
>> протокол udp и ответные пакеты вы не разрешили.
> добавил на исходящие (в данной ситуации dport/sport значения ведь не имеет?):имеет, запрос отправляется на 53 порт , но не с 53, а ответ будет идти с 53 , но не на 53
> -A FORWARD -p upd -o eth1 --dport 53 -j ACCEPT
> -A FORWARD -p upd -o eth0 --dport 53 -j ACCEPT
> И что значит "протокол udp вы не разрешили"? Получается, что на данный
> момент работают только порты, на которых висят локальные службы ssh, apache,
> squid. Все, что ни пытаюсь форвардить, теряется в бездне.именно то что написано.
протокол udp, а не upd.
вы разрешили запрос к dns серверам в инете, если протокол правильно укажите
-A FORWARD -p upd -o eth1 --dport 53 -j ACCEPT
а ответы от них?-A FORWARD -p upd -o eth0 --dport 53 -j ACCEPT
под это правило ответы не попадут
что типа этого должно быть:
-A FORWARD -p udp -i eth1 --sport 53 -j ACCEPT
> -A FORWARD -p upd -o eth1 --dport 53 -j ACCEPT-A FORWARD -p upd -o eth1 --sport 53 -j ACCEPT
> -A FORWARD -p upd -o eth0 --dport 53 -j ACCEPT
>> -A FORWARD -p upd -o eth1 --dport 53 -j ACCEPT
> -A FORWARD -p upd -o eth1 --sport 53 -j ACCEPT
>> -A FORWARD -p upd -o eth0 --dport 53 -j ACCEPTeth1 - это вроде внешний интерфейс и upd - хорошо смотрится :)
>> -A FORWARD -p upd -o eth1 --sport 53 -j ACCEPT
> eth1 - это вроде внешний интерфейс и upd - хорошо смотрится :)Бр!... Вздымает очи небу, заламывает пальчы, руки, ноги, со стонами уползает.
...со стонами возвращается, изрыгает:# cat users-dns.firehol.conf
version 5MY_INET_IP=219.219.219.219
snat to "$MY_INET_IP" outface eth1
router x inface eth0 outface eth1
client dns accept# firehol users-dns.firehol.conf debug |./explain-sorter
-N out_x_dns_c1
-A out_x_dns_c1 -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
-A out_x_dns_c1 -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
-N in_x_dns_c1
-A in_x_dns_c1 -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
-A in_x_dns_c1 -p tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
-N out_x
-A out_x -j out_x_dns_c1
-A out_x -m state --state RELATED -j ACCEPT
-N in_x
-A in_x -j in_x_dns_c1
-A in_x -m state --state RELATED -j ACCEPT
-A OUTPUT -m state --state RELATED -j ACCEPT
-A OUTPUT -m limit --limit 1/second --limit-burst 5 -j LOG --log-level warning --log-prefix='OUT-unknown:'
-A OUTPUT -j DROP
-A INPUT -m state --state RELATED -j ACCEPT
-A INPUT -m limit --limit 1/second --limit-burst 5 -j LOG --log-level warning --log-prefix='IN-unknown:'
-A INPUT -j DROP
-A FORWARD -i eth0 -o eth1 -j in_x
-A FORWARD -i eth1 -o eth0 -j out_x
-A FORWARD -m state --state RELATED -j ACCEPT
-A FORWARD -m limit --limit 1/second --limit-burst 5 -j LOG --log-level warning --log-prefix='PASS-unknown:'
-A FORWARD -j DROP
-t nat -N nat.1
-t nat -A POSTROUTING -o eth1 -j nat.1
-t nat -A nat.1 -j SNAT --to-source 219.219.219.219
# exitНевнятно мычит, рвёт на себе, уходит.
> eth1 - это вроде внешний интерфейс и upd - хорошо смотрится :)upd это очепятка здешняя, при применении правил такая ошибка бы вылезла при запуске исполняемого файла. Помучался немного, теперь все работает. Всем спасибо! Особенно за пост №20, где расписано, как ходит пакет, очень наглядно вышло.
Решение получилось следующим.
Для DNS теперь правила следующие:
-A FORWARD -p udp -i eth0 --dport 53 -j ACCEPT
-A FORWARD -p udp -o eth1 --dport 53 -j ACCEPT
-A FORWARD -p udp -i eth1 --sport 53 -j ACCEPT
-A FORWARD -p udp -o eth0 --sport 53 -j ACCEPT
-t nat -A POSTROUTING -p tcp -o eth1 --dport 53 -j SNAT --to-source 192.180.1.3 (внешний ифейс)аналогично сделал для 110 и 25 портов(только протокол tcp!), теперь почта радует своих юзеров. Собственно, аналогично для любого другого сервиса в обход squid'a правила делаются по данному шаблону. Пишу это для тех, кто однажды может оказаться в такой же ситуации. Не забываем убирать из настроек программ проксю, иначе не будет работать :)
>[оверквотинг удален]
> запуске исполняемого файла. Помучался немного, теперь все работает. Всем спасибо! Особенно
> за пост №20, где расписано, как ходит пакет, очень наглядно вышло.
> Решение получилось следующим.
> Для DNS теперь правила следующие:
> -A FORWARD -p udp -i eth0 --dport 53 -j ACCEPT
> -A FORWARD -p udp -o eth1 --dport 53 -j ACCEPT
> -A FORWARD -p udp -i eth1 --sport 53 -j ACCEPT
> -A FORWARD -p udp -o eth0 --sport 53 -j ACCEPT
> -t nat -A POSTROUTING -p tcp -o eth1 --dport 53 -j SNAT
> --to-source 192.180.1.3 (внешний ифейс)для тех кто окажется в такой же ситуации в nat протокол все таки udp, но в целом в snat указывать много критерий плохая идея потому что на человеческом языке это звучит как : делать snat только для указанных пакетов, остальные пропустить без нат. в результате то что не было заблокировано в таблице фильтров и для чего не было сделано snat пойдут к провайдеру с серыми адресами, что не хорошо. лучше натить весь выход с интерфейса, а что не должно выходить резать в таблице фильтров.
-t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.180.1.3 (внешний ифейс)
> аналогично сделал для 110 и 25 портов(только протокол tcp!), теперь почта радует
> своих юзеров. Собственно, аналогично для любого другого сервиса в обход squid'a
> правила делаются по данному шаблону. Пишу это для тех, кто однажды
> может оказаться в такой же ситуации. Не забываем убирать из настроек
> программ проксю, иначе не будет работать :)http://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi?az=sh...
> Шлюз прописан верный, инет и другие сервисы через squid работают из под
> рабочий станций как виндовых (XP/Vista/7), так и никсовых (та же fedora
> 14). DNS прописано 2 штуки, primary - gate, secondary -
> контроллер домена для виндомашин. Для никсовых - только адрес шлюза.DNS-сервера должны обладать идентичными знаниями обо всех используемых зонах.
В вашем случае я предполагаю, что "контроллер домена для виндомашин" не знает о доменных зонах интернета, а gate не знает о зонах "контроллера домена для виндомашин". Рекомендую оставить один "контроллер домена для виндомашин", предварительно научив его резольвить имена интернета.Обучить gate всем зонам "контроллера домена для виндомашин" несколько сложнее.