Настройка DNS (debian 5, iptables)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Настройка DNS

Сообщение Felix_cat »

Всем привет. решил разобраться в конфигурировании фаервола iptables, т.к он применяется в одной небольшой сети где через сквид раздает инет итд. Но там частенько происходят различного плана глюки и поэтому было принято решение разобраться в некоторых моментах и перенастроить.

Начать я решил с днс форвардинга.

Скажем в случае если фаер настраивается по политике, запрещено все что не разрешено и на всех клиентских компах у меня в роли днс сервера будет прописан маршрутизатор. Достаточно ли для реализации этого iptables ? Может это делается как то иначе ?

я вижу себе это примерно таким образом

Код: Выделить всё

iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -A OUTPUT -p TCP -d $DNS --dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP -d $DNS --dport 53 -j ACCEPT
iptables -A INPUT -p UDP -s $DNS -m state --state ESTABLISHED --sport 53 -j ACCEPT


и вот дальше у меня вопрос, пользоваться таблицей filter и прописывать форвардинг или же здесь надо исолпьзовать SNAT и DNAT ?
Спасибо сказали:
expdot
Сообщения: 176
ОС: Fedora 13, Win Vista

Re: Настройка DNS

Сообщение expdot »

1. для серфинга через прокси сервер dns не нужен
2. если все таки нужно раздавать днс то тут два варианта
1) поднимать свой днс сервер (bind, djbdns и др)
2) использовать прозрачный днс сервер (dnsmasq)

что до iptables, то одних "установленных" соединений не достаточно, нужно пускать и "новые" пакеты
по моему лучше сделать так:
iptables -A INPUT -m state --state ESTABLISHED,RELATES -j ACCEPT
потом открывать порты уже буз указания состояния пакета

и советую разобраться какой протокол и для какой цели используется в dns
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
24.08.2009 17:50
Всем привет. решил разобраться в конфигурировании фаервола iptables, т.к он применяется в одной небольшой сети где через сквид раздает инет итд. Но там частенько происходят различного плана глюки и поэтому было принято решение разобраться в некоторых моментах и перенастроить.

Начать я решил с днс форвардинга.

Скажем в случае если фаер настраивается по политике, запрещено все что не разрешено и на всех клиентских компах у меня в роли днс сервера будет прописан маршрутизатор. Достаточно ли для реализации этого iptables ? Может это делается как то иначе ?

Для ограничения всего на маршрутизаторе iptables достаточно. Насколько удобно через него делать днс-форвардинг - не знаю. Обычно ставиться промежуточный dns-proxy (можно и кэширующий). Лично я использую pdnsd.

Felix_cat писал(а):
24.08.2009 17:50
я вижу себе это примерно таким образом

Код: Выделить всё

iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -A OUTPUT -p TCP -d $DNS --dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP -d $DNS --dport 53 -j ACCEPT
iptables -A INPUT -p UDP -s $DNS -m state --state ESTABLISHED --sport 53 -j ACCEPT

Это хмм что? разрешение использовать днс для маршрутизатора? если да то насчет --sport 53 в строке iptables -A INPUT -p UDP -s $DNS -m state --state ESTABLISHED --sport 53 -j ACCEPT не уверен. Я бы просто разрешил уже установленные соединения. Но если вы проверяли и это работает то почему бы и нет. И днс работает через UDP.

Felix_cat писал(а):
24.08.2009 17:50
и вот дальше у меня вопрос, пользоваться таблицей filter и прописывать форвардинг или же здесь надо исолпьзовать SNAT и DNAT ?

Таблица filter только для фильтрации(т е запрещения и разрешения) - как вы в ней собираетесь форвардинг прописать?(под форвардингом лично я подразумеваю перенаправление пакетов, например действием REDIRECT). Или вы имеете в виду правила для цепочки FORWARD?
Если вы хотите перебрасывать запросы днс от клиентов к провайдеру то надо пользоваться DNAT в цепочке PREROUTING. Но я бы на вашем месте подумал о кэширующем днс.

PS пока писал сообщение уже появилось сообщ от expdot.
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

expdot писал(а):
25.08.2009 11:31
1. для серфинга через прокси сервер dns не нужен
2. если все таки нужно раздавать днс то тут два варианта
1) поднимать свой днс сервер (bind, djbdns и др)
2) использовать прозрачный днс сервер (dnsmasq)

что до iptables, то одних "установленных" соединений не достаточно, нужно пускать и "новые" пакеты
по моему лучше сделать так:
iptables -A INPUT -m state --state ESTABLISHED,RELATES -j ACCEPT
потом открывать порты уже буз указания состояния пакета

и советую разобраться какой протокол и для какой цели используется в dns


спасибо !


Alex2ndr писал(а):
25.08.2009 11:40
Для ограничения всего на маршрутизаторе iptables достаточно. Насколько удобно через него делать днс-форвардинг - не знаю. Обычно ставиться промежуточный dns-proxy (можно и кэширующий). Лично я использую pdnsd.

Таблица filter только для фильтрации(т е запрещения и разрешения) - как вы в ней собираетесь форвардинг прописать?(под форвардингом лично я подразумеваю перенаправление пакетов, например действием REDIRECT). Или вы имеете в виду правила для цепочки FORWARD?

да речь шла о цепочке форвард.

Спасибо за ответы, сейчас попробую установить днс сервер, после связать его с правилами.
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

Установил и настроил BIND, работает как кеширующий - все ок.

Теперь настраиваю под него iptables

Код: Выделить всё

iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP

//все пакеты на установку соединения
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP
//из сети принимаю пакеты на днс порт
iptables -a INPUT -p TCP -s $NET -d $SERV --dport 53 -j ACCEPT
iptables -a INPUT -p UDP -s $NET -d $SERV --dport 53 -j ACCEPT

iptables -A OUTPUT -d $NET -j ACCEPT
//разрешить доступ к днс
iptables -A OUTPUT -p TCP -d $DNS_1 --dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP -d $DNS_1 --dport 53 -j ACCEPT
//уже установленные соединения от днс
iptables -A INPUT -s $DNS_1 -m state --state ESTABLISHED,RELATED -j ACCEPT


вот таким образом работает. все ли я учел?
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
25.08.2009 16:14
Установил и настроил BIND, работает как кеширующий - все ок.

Теперь настраиваю под него iptables

Код: Выделить всё

iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP

//все пакеты на установку соединения
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP
//из сети принимаю пакеты на днс порт
iptables -a INPUT -p TCP -s $NET -d $SERV --dport 53 -j ACCEPT
iptables -a INPUT -p UDP -s $NET -d $SERV --dport 53 -j ACCEPT

iptables -A OUTPUT -d $NET -j ACCEPT
//разрешить доступ к днс
iptables -A OUTPUT -p TCP -d $DNS_1 --dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP -d $DNS_1 --dport 53 -j ACCEPT
//уже установленные соединения от днс
iptables -A INPUT -s $DNS_1 -m state --state ESTABLISHED,RELATED -j ACCEPT


вот таким образом работает. все ли я учел?

1. iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP - это зачем - у вас же политика DROP
2. DNS в основном по udp работает - хотя в IANA прописано 53 TCP и UDP. Можно оставить а можно tcp выкинуть.
3. iptables -A OUTPUT -d $NET -j ACCEPT - это куда разрешение? Если в ответы в сеть то наверно лучше просто разрешить уже установленные соединения для цепочки OUTPUT - iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
4. Я бы просто разрешил в цепочке INPUT уже установленные соединения а не только от $DNS_1 - iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT - для других правил может пригодиться - не днс единым :)
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

Код: Выделить всё

1. iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP - это зачем - у вас же политика DROP
2. DNS в основном по udp работает - хотя в IANA прописано 53 TCP и UDP. Можно оставить а можно tcp выкинуть.
3. iptables -A OUTPUT -d $NET -j ACCEPT - это куда разрешение?
4. $SERV, $DNS_1 и $NET это что за переменные - хоть скажите что они описывают а то логика до конца не ясна


1. присмотрел это на opennet.ru от применения решил не отказываться, хотя видимо вы правы т.к что она есть что ее нет, ничего не изменяется.
2. согласен, но одна строка не сильно мешает зато есть )


по переменным $net - подсеть офиса 192.168.1.0/24, то бишь все компы кот будут смотреть инет через сервер
$Serv - Ip самого копмьютера
$DNS_1 - Днс сервер (в конечном итоге будет провайдера, пока просто сетевой)

3. следовательно это разрешения на все соединения в внутреннюю сеть.

Вопрос между делом, для squid в iptables надо прописывать какие либо разрешения ?
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
25.08.2009 16:44

Код: Выделить всё

1. iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP - это зачем - у вас же политика DROP
2. DNS в основном по udp работает - хотя в IANA прописано 53 TCP и UDP. Можно оставить а можно tcp выкинуть.
3. iptables -A OUTPUT -d $NET -j ACCEPT - это куда разрешение?
4. $SERV, $DNS_1 и $NET это что за переменные - хоть скажите что они описывают а то логика до конца не ясна


1. присмотрел это на opennet.ru от применения решил не отказываться, хотя видимо вы правы т.к что она есть что ее нет, ничего не изменяется.
2. согласен, но одна строка не сильно мешает зато есть )


по переменным $net - подсеть офиса 192.168.1.0/24, то бишь все компы кот будут смотреть инет через сервер
$Serv - Ip самого копмьютера
$DNS_1 - Днс сервер (в конечном итоге будет провайдера, пока просто сетевой)

3. следовательно это разрешения на все соединения в внутреннюю сеть.

Вопрос между делом, для squid в iptables надо прописывать какие либо разрешения ?

Пока вы писали я изменял свое сообщение :) - гляньте на новую версию
1. От нее ничего точно не измениться - есть некоторая выгода на ОЧЕНЬ загруженных каналах - сначала читаются все правила в таблице а только потом применяется политика ( если не срабатывает ни одно правило). Если самые распространенные правила поместить сверху то в принципе должно быстрее работать - но это не для мелкой офисной сети.
3. См. отредактированное мое собщение

Для сквида нужно прописывать пока почти все то же самое в принципе.
И не забывайте что $Serv у вас будет разным для внутреннего и внешнего интерфейсов.
Спасибо сказали:
expdot
Сообщения: 176
ОС: Fedora 13, Win Vista

Re: Настройка DNS

Сообщение expdot »

dns tcp - это т.н. zone transfer. Когда сервер держит доменное имя. В вашем случае это на сколько я понял не нужно
и вообще не понятно для чего вам dns тем более bind. на мой взгляд это толсто ))
хотя не мне решать. может и пригодится :)

и еще забыли
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

expdot писал(а):
25.08.2009 21:02
dns tcp - это т.н. zone transfer. Когда сервер держит доменное имя. В вашем случае это на сколько я понял не нужно
и вообще не понятно для чего вам dns тем более bind. на мой взгляд это толсто ))
хотя не мне решать. может и пригодится :)

и еще забыли
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


спасибо!

в итоге у меня получилось

Код: Выделить всё

iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP

//все пакеты на установку соединения
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP
//из сети принимаю пакеты на днс порт
iptables -a INPUT -p TCP -s $NET -d $SERV --dport 53 -j ACCEPT
iptables -a INPUT -p UDP -s $NET -d $SERV --dport 53 -j ACCEPT
iptables -a INPUT -p UDP -d $DNS_1 --dport 53 -j ACCEPT

//уже установленные соединения
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


DNS перенаправляет, все ок. запустил сквид, добавил подсеть в http_access. как быть теперь ? открыть доступ на шлюз провайдера для того чтобы инет приходил на сам сервер ?, открыть 3128 порт на входящие ?
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
26.08.2009 10:07
expdot писал(а):
25.08.2009 21:02
dns tcp - это т.н. zone transfer. Когда сервер держит доменное имя. В вашем случае это на сколько я понял не нужно
и вообще не понятно для чего вам dns тем более bind. на мой взгляд это толсто ))
хотя не мне решать. может и пригодится :)

и еще забыли
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT


спасибо!

в итоге у меня получилось

Код: Выделить всё

iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP

//все пакеты на установку соединения
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP
//из сети принимаю пакеты на днс порт
iptables -a INPUT -p TCP -s $NET -d $SERV --dport 53 -j ACCEPT
iptables -a INPUT -p UDP -s $NET -d $SERV --dport 53 -j ACCEPT
iptables -a INPUT -p UDP -d $DNS_1 --dport 53 -j ACCEPT

//уже установленные соединения
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT


DNS перенаправляет, все ок. запустил сквид, добавил подсеть в http_access. как быть теперь ? открыть доступ на шлюз провайдера для того чтобы инет приходил на сам сервер ?, открыть 3128 порт на входящие ?

Правило с DROP выкинте - странно смотриться.

Теперь о сквиде. Придеться разрешить исходящие по порту 80 в цепочке OUTPUT и разрешить входящие на порт сквида (3128?) из локальной сети. Это все при условии что разрешены установленные соединения. Т е получим такое
iptables -a OUTPUT -p TCP --dport 80 -j ACCEPT
iptables -a OUTPUT -p TCP --dport 443 -j ACCEPT
iptables -a INPUT -p TCP -s $NET -d $SERV --dport 3128 -j ACCEPT
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

добавил, работает!

странно то что когда правила так. На шлюз провайдера - разрешить все и входящие на 3128, не работало :)

но вот еще что, если правило iptables -a INPUT -p TCP -s $NET -d $SERV --dport 3128 -j ACCEPT - заменяем порт на 80

а ниже добавляем -

Код: Выделить всё

iptables -t nat -A PREROUTING -p TCP -s $NET -d $SERV --dport 80 -j REDIRECT --to-port 3128


не работает.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
26.08.2009 10:44
добавил, работает!

странно то что когда правила так. На шлюз провайдера - разрешить все и входящие на 3128, не работало :)

но вот еще что, если правило iptables -a INPUT -p TCP -s $NET -d $SERV --dport 3128 -j ACCEPT - заменяем порт на 80

а ниже добавляем -

Код: Выделить всё

iptables -t nat -A PREROUTING -p TCP -s $NET -d $SERV --dport 80 -j REDIRECT --to-port 3128


не работает.

Конечно не заработает - сквид не ждет пакеты идущие на 80 порт (в заголовках указан порт) - настраивайте прозрачное прксирование если хотите так сделать. Да и зачем вам так делать? какая выгода?
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

Alex2ndr писал(а):
26.08.2009 10:56
Felix_cat писал(а):
26.08.2009 10:44
добавил, работает!

странно то что когда правила так. На шлюз провайдера - разрешить все и входящие на 3128, не работало :)

но вот еще что, если правило iptables -a INPUT -p TCP -s $NET -d $SERV --dport 3128 -j ACCEPT - заменяем порт на 80

а ниже добавляем -

Код: Выделить всё

iptables -t nat -A PREROUTING -p TCP -s $NET -d $SERV --dport 80 -j REDIRECT --to-port 3128


не работает.

Конечно не заработает - сквид не ждет пакеты идущие на 80 порт (в заголовках указан порт) - настраивайте прозрачное прксирование если хотите так сделать. Да и зачем вам так делать? какая выгода?


все верно идея была такая, открыт 80 порт на него идет пакет а сервер его перенаправляет на 3128 где его встречает сквид.
таким образом я и хотел сделать прозрачный прокси.

наверное не хватило строки - http_port 3128 transparent, не помогло )
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
26.08.2009 11:05
все верно идея была такая, открыт 80 порт на него идет пакет а сервер его перенаправляет на 3128 где его встречает сквид.
таким образом я и хотел сделать прозрачный прокси.

наверное не хватило строки - http_port 3128 transparent, не помогло )

Да именно такая строка нужна.
Смотрите что в логах сквида - может он не пущает. Лупбэк разрешили? Приведите полную конфигу ваших правил iptables на текущий момент и конфиг сквида тоже.
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

Код: Выделить всё

iptables -F
iptables -t nat -F

iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP

DNS_1="192.168.1.70"
NET="192.168.1.0/24"
SERV="192.168.1.250"

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

//из сети принимаю пакеты на днс порт
iptables -A INPUT -p TCP -s $NET -d $SERV --dport 53 -j ACCEPT
iptables -A INPUT -p UDP -s $NET -d $SERV --dport 53 -j ACCEPT
iptables -A INPUT -p UDP -d $DNS_1 --dport 53 -j ACCEPT

//squid
iptables -A INPUT -p TCP -s $NET -d $SERV --dport 3128 -j ACCEPT
iptables -A INPUT -p TCP -s $NET -d $SERV --dport 80 -j ACCEPT
iptables -A INPUT -p TCP -s $NET -d $SERV --dport 443 -j ACCEPT

//v inet
iptables -A OUTPUT -p TCP --dport 80 -j ACCEPT
iptables -A OUTPUT -p TCP --dport 443 -j ACCEPT

//уже установленные соединения
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A PREROUTING -p TCP -s $NET -d $SERV --dport 80 -j REDIRECT --to-port 3128



что касается сквид, я им не заморачивался т.к пока делал тока сам факт раздачи инета, т.е я в конфе по умолчанию прописал visible_hostname, acl lan 192.168.1.0/24,http_access allow lan и transparent
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
26.08.2009 12:11

Код: Выделить всё

iptables -F
iptables -t nat -F

iptables -P FORWARD DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP

DNS_1="192.168.1.70"
NET="192.168.1.0/24"
SERV="192.168.1.250"

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

//из сети принимаю пакеты на днс порт
iptables -A INPUT -p TCP -s $NET -d $SERV --dport 53 -j ACCEPT
iptables -A INPUT -p UDP -s $NET -d $SERV --dport 53 -j ACCEPT
iptables -A INPUT -p UDP -d $DNS_1 --dport 53 -j ACCEPT

//squid
iptables -A INPUT -p TCP -s $NET -d $SERV --dport 3128 -j ACCEPT
iptables -A INPUT -p TCP -s $NET -d $SERV --dport 80 -j ACCEPT
iptables -A INPUT -p TCP -s $NET -d $SERV --dport 443 -j ACCEPT

//v inet
iptables -A OUTPUT -p TCP --dport 80 -j ACCEPT
iptables -A OUTPUT -p TCP --dport 443 -j ACCEPT

//уже установленные соединения
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A PREROUTING -p TCP -s $NET -d $SERV --dport 80 -j REDIRECT --to-port 3128


что касается сквид, я им не заморачивался т.к пока делал тока сам факт раздачи инета, т.е я в конфе по умолчанию прописал visible_hostname, acl lan 192.168.1.0/24,http_access allow lan и transparent

iptables -A INPUT -p UDP -d $DNS_1 --dport 53 -j ACCEPT - это как? Вы разрешаете входящие пакеты на адрес днс провайдера? здесь наверно надо OUTPUT а не INPUT или не -d а -s.

В конфу сквида добавить это -
access_log /var/log/squid/access.log squid
и смотреть в /var/log/squid/access.log что поисходит
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

iptables -A INPUT -p UDP -d $DNS_1 --dport 53 -j ACCEPT - это как? Вы разрешаете входящие пакеты на адрес днс провайдера? здесь наверно надо OUTPUT а не INPUT или не -d а -s.


да здесь output копировал с другой строки ошибся. логи ведуться, я пока не совсем понял как их анализировать, сейчас буду разбираться
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
26.08.2009 14:09
да здесь output копировал с другой строки ошибся. логи ведуться, я пока не совсем понял как их анализировать, сейчас буду разбираться

почитайте тут - Перевод FAQ по SQUID

по поводу iptables - могу еще посоветовать засунуть все это в нормальный скрипт - вот тут я указывал набросок -
Маршрутизация
И еще - константы объявляются обычно наверху скрипта - а не внутри его.
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

есть подозрения что пакеты не доходят, т.к в access логе я вижу тока коннекты аськи в которой прописан 3128, а браузер просто показывает что страница недоступна. НО запросил яндекс и его подгрузило из кэша.
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
26.08.2009 15:01
есть подозрения что пакеты не доходят, т.к в access логе я вижу тока коннекты аськи в которой прописан 3128, а браузер просто показывает что страница недоступна. НО запросил яндекс и его подгрузило из кэша.

Запросили яндекс с клиента? т е пакеты от клиентов до сквида доходят?
если нет то попробуйте так - iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
где eth0 замените на имя своего интерфейса в локальную сеть.
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


так заработало. а чем это обусловлено ?
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
26.08.2009 16:20
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


так заработало. а чем это обусловлено ?

А внимательнее на свое правило посмотрите -
iptables -t nat -A PREROUTING -p TCP -s $NET -d $SERV --dport 80 -j REDIRECT --to-port 3128
Вы перенаправляете пакеты которые идут с локальной сети($NET) на ваш сервер ($SERV) по 80 порту. Но они идут не на ваш сервер по 80 порту - они о нем ничего не знают, они в интернет идут (т е их адрес назначения не $SERV а какой нить 93.158.134.8 - www.ya.ru). А ваш сервер их просто перехватывает - но так как адрес назначения не совпадает то он их согласно политике дропает.
В моем же правиле ловятся пакеты идущие на интерфейс смотрящий в локальную сеть - что соотв истине.
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

Alex2ndr писал(а):
26.08.2009 16:29
Felix_cat писал(а):
26.08.2009 16:20
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128


так заработало. а чем это обусловлено ?

А внимательнее на свое правило посмотрите -
iptables -t nat -A PREROUTING -p TCP -s $NET -d $SERV --dport 80 -j REDIRECT --to-port 3128
Вы перенаправляете пакеты которые идут с локальной сети($NET) на ваш сервер ($SERV) по 80 порту. Но они идут не на ваш сервер по 80 порту - они о нем ничего не знают, они в интернет идут (т е их адрес назначения не $SERV а какой нить 93.158.134.8 - www.ya.ru). А ваш сервер их просто перехватывает - но так как адрес назначения не совпадает то он их согласно политике дропает.
В моем же правиле ловятся пакеты идущие на интерфейс смотрящий в локальную сеть - что соотв истине.


интересное замечание, спасибо. Теперь хочу попробовать настроить почту, дело в том что например с гуглом периодический были проблемы при получении писем, хочу проверить как это будет при таких настройках фаерволла.

как я понимаю мне надо добавтьб правило на входящие подключения из сети на порты почты (110,995,587,25) а также исходящие от сервера в инет
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
26.08.2009 16:38
как я понимаю мне надо добавтьб правило на входящие подключения из сети на порты почты (110,995,587,25) а также исходящие от сервера в инет

Не так - вам надо разрешить доступ по портам назначения 25,110 и тд из локальной сети в инет - это все пойдет через цепочку FORWARD. Например так -
iptables -A FORWARD -p TCP -s $NET --dport 25 -j ACCEPT
iptables -A FORWARD -p TCP -s $NET --dport 110 -j ACCEPT
...
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

Alex2ndr писал(а):
26.08.2009 16:59
Felix_cat писал(а):
26.08.2009 16:38
как я понимаю мне надо добавтьб правило на входящие подключения из сети на порты почты (110,995,587,25) а также исходящие от сервера в инет

Не так - вам надо разрешить доступ по портам назначения 25,110 и тд из локальной сети в инет - это все пойдет через цепочку FORWARD. Например так -
iptables -A FORWARD -p TCP -s $NET --dport 25 -j ACCEPT
iptables -A FORWARD -p TCP -s $NET --dport 110 -j ACCEPT
...


т.е такой прописи достаточно для 25 и 110 портов и мне не надо для них же прописывать правила в цепочках input, output ?
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
26.08.2009 17:04
т.е такой прописи достаточно для 25 и 110 портов и мне не надо для них же прописывать правила в цепочках input, output ?

Хмм - вы ман то читали? - Руководство по Iptables
Почитайте и посмотрите как идут транзитные(т е не предназначенные приложениям на сервере) пакеты. Там картинка еще такая хорошая есть - я себе на первое время ее даже распечатывал - пока не выучил :)
Спасибо сказали:
Felix_cat
Сообщения: 92
ОС: Debian linux,windows xp

Re: Настройка DNS

Сообщение Felix_cat »

Честно говоря неоднократно планировал засесть за эту статью, но вот так монотонно ее читать не получается ) хотя желание было, как показывает время на практике быстрее получается, особенно когда есть у кого спросить :) ок картинку посмотрю, распечатаю ) но вот найти там ответ на какой то вопрос или почему что либо глючит как то неудавалось

http://www.opennet.ru/docs/RUS/iptables/mi...es_traverse.jpg - это я так понимаю
Спасибо сказали:
Аватара пользователя
Alex2ndr
Сообщения: 443
ОС: Debian Lenny

Re: Настройка DNS

Сообщение Alex2ndr »

Felix_cat писал(а):
26.08.2009 17:15
Честно говоря неоднократно планировал засесть за эту статью, но вот так монотонно ее читать не получается ) хотя желание было, как показывает время на практике быстрее получается, особенно когда есть у кого спросить :) ок картинку посмотрю, распечатаю ) но вот найти там ответ на какой то вопрос или почему что либо глючит как то неудавалось

http://www.opennet.ru/docs/RUS/iptables/mi...es_traverse.jpg - это я так понимаю

Зря откладываете - лучше сразу все прочитайте а потом практикой полируйте - а не наоборот.
Да - этот рисунок.
Спасибо сказали: