iptables + такском референт

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

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

nelstranger
Сообщения: 1

iptables + такском референт

Сообщение nelstranger »

Доброго вечера.
Есть вопрос по программе для отправки отчетности в электронном виде "Референт" поставщик Такском. Недавно программу обновили и она перестала видеть свой удаленный хост (host37.taxcom.ru). Хотя до этого все работало и отчетность отсылали. Эта прога почтовик которая по портам 110 и 25 обменивается сообщениями.
Я имею внутреннюю сетку которая ходит в инет через сервер там стоит Mandrivalinux 2008 SPR , такском Референт стоит на клиентском компе внутри сети. На сервере соответственно два интерфейса один на инет, другой на внутреннюю сеть.
У меня был вот такой скрипт:

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

#!/bin/sh

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

# Лооп бак не лооп бак не катит
iptables -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP

#ICMP PING
iptables -A INPUT -p icmp -m icmp -i eth1 --icmp-type source-quench -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp -o eth1 --icmp-type source-quench -j ACCEPT
iptables -A INPUT -p icmp -m icmp -i eth1 --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp -o eth1 --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp -m icmp -i eth1 --icmp-type parameter-problem -j ACCEPT
iptables -A OUTPUT -p icmp -m icmp -o eth1 --icmp-type parameter-problem -j ACCEPT

#DNS

iptables -A OUTPUT -p udp -m udp -o eth1 --dport 53 --sport 1024:65353 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp -o eth1 --dport 53 --sport 1024:65353 -j ACCEPT
iptables -A INPUT -p udp -m udp -i eth1 --dport 1024:65353 --sport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i eth1 --dport 1024:65353 --sport 53 -j ACCEPT

#Http Https 80, 443
iptables -A OUTPUT -p tcp -m tcp -o eth1 --dport 80 --sport 1024:65353 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i eth1 --dport 1024:65353 --sport 80 -j ACCEPT ! --syn
iptables -A OUTPUT -p tcp -m tcp -o eth1 --dport 443 --sport 1024:65353 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i eth1 --dport 1024:65353 --sport 443 -j ACCEPT ! --syn

# FPT клиент 21
iptables -A OUTPUT -p tcp -m tcp -o eth1 --dport 21 --sport 1024:65353 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i eth1 --dport 1024:65353 --sport 21 -j ACCEPT ! --syn

# Жаба 5222
iptables -A OUTPUT -p tcp -m tcp -o eth1 --dport 5222 --sport 1024:65353 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i eth1 --dport 1024:65353 --sport 5222 -j ACCEPT ! --syn

# Mail 110,25
iptables -A OUTPUT -p tcp -m tcp -o eth1 --dport 110 --sport 1024:65353 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i eth1 --dport 1024:65353 --sport 110 -j ACCEPT ! --syn
iptables -A OUTPUT -p tcp -m tcp -o eth1 --dport 25 --sport 1024:65353 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -i eth1 --dport 1024:65353 --sport 25 -j ACCEPT ! --syn

# Интерфейс от внутренней сети к службам компа
iptables -A INPUT -p icmp -i eth0 -j ACCEPT
iptables -A OUTPUT -p icmp -o eth0 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -j ACCEPT
iptables -A OUTPUT -p tcp -o eth0 -j ACCEPT
iptables -A INPUT -p udp -i eth0 -j ACCEPT
iptables -A OUTPUT -p udp -o eth0 -j ACCEPT

#FORWARD
#ICMP PING
iptables -A FORWARD -p icmp -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -p icmp -o eth0 -i eth1 -j ACCEPT

#DNS 53
iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 53 --sport 1024:65353 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 53 -j ACCEPT
iptables -A FORWARD -p udp -m udp -i eth0 -o eth1 --dport 53 --sport 1024:65353 -j ACCEPT
iptables -A FORWARD -p udp -m udp -o eth0 -i eth1 --dport 1024:65353 --sport 53 -j ACCEPT

#Http,Https 80,443
iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 80 --sport 1024:65353 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 80 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 443 --sport 1024:65353 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 443 -j ACCEPT

# KOMITA GARANT
iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 50110 --sport 1024:65353 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 50110 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 50025 --sport 1024:65353 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 50025 -j ACCEPT

# Mail 110,25
iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 110 --sport 1024:65353 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 110 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 25 --sport 1024:65353 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 25 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 5025 --sport 1024:65353 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 5025 -j ACCEPT

# GPS
iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 3306 --sport 1024:65353 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 3306 -j ACCEPT
#iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 3389 --sport 1024:65353 -j ACCEPT
#iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 3389 -j ACCEPT
#iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 22 --sport 1024:65353 -j ACCEPT
#iptables -A FORWARD -p tcp -m tcp -o eth0 -i eth1 --dport 1024:65353 --sport 22 -j ACCEPT

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 77.235.213.154
echo "1" > /proc/sys/net/ipv4/ip_forward


Пытался соединится с (host37.taxcom.ru) по порту 110 утилитой telnet из внутренней сети с клиентского компа, НЕ работает. С сервера работает.

Если это сделать на прямую установив соединение на комп клиентский, то все работает.

То есть проблема выходит в файерволе,но у меня так же стоит GPS(3306) сервер и комита(50110,50025), они работают. Чесно не пойму в чем дело.

Возможно не у меня одного такая проблема. ПОМОГИТЕ ПОЖАЛУЙСТа.
Спасибо сказали:
skor
Сообщения: 419
ОС: RTFM-OS v127.0.0.1

Re: iptables + такском референт

Сообщение skor »

iptables -P FORWARD ACCEPT
Проверить будет ли из локалки пускать на host37.taxcom.ru:110

Запустить tcpdump -n -v -p -i eth1 host host37.taxcom.ru и смотреть уходит ли от тебя пакеты.
Если не уходят то eth1 заменить на eth0 и смотреть что приходит от локальной машины.

Я так подозреваю что обламывается на подобном правиле
iptables -A FORWARD -p tcp -m tcp -i eth0 -o eth1 --dport 110 --sport 1024:65353 -j ACCEPT
Либо программа у себя исходящий порт использует меньше 1024 либо пытается подключиться не на 110 порт

ЗЫ: а треть правил в iptables можно выкинуть и заменить 2-3 правилами с -m state --state ESTABLISHED,RELATED
Спасибо сказали:
skor
Сообщения: 419
ОС: RTFM-OS v127.0.0.1

Re: iptables + такском референт

Сообщение skor »

Кстати, еще заметил
Номер последнего порта в TCP/UDP не 65353 а 65535
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: iptables + такском референт

Сообщение Mage-Warrior »

Никак не пойму, почему у Вас вообще что-то нормально работает из сети. Или я неправильно представляю топологию.

//Клиент//[локальный_IP1]<-->[локальный_IP2]//Cервер//[внешний_77.235.213.154]<-->
eth0=[локальный_IP2]
eth1=[внешний_77.235.213.154]

Если так, то где в правилах маскарадинг или DNAT? С такими правилами пакет, отправленный из внутренней сети, вернется на сервер, но в локальную сеть не будет перенаправлен (сервер не будет знать, кому из клиентов внутренней сети перенаправить данные).
Если на сервере работает прокси, то работу некоторых протоколов с такими настройками еще можно объяснить.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали:
skor
Сообщения: 419
ОС: RTFM-OS v127.0.0.1

Re: iptables + такском референт

Сообщение skor »

Mage-Warrior писал(а):
28.07.2009 09:35
Если так, то где в правилах маскарадинг или DNAT?
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 77.235.213.154
А это разве не оно
И при чем здесь вообще DNAT?

С такими правилами пакет, отправленный из внутренней сети, вернется на сервер, но в локальную сеть не будет перенаправлен (сервер не будет знать, кому из клиентов внутренней сети перенаправить данные).
Если на сервере работает прокси, то работу некоторых протоколов с такими настройками еще можно объяснить.
С какой радости пакет из локалки вернется обратно в локалку? о_О
Он по дефолт роуту уйдет через eth1 в сторону "интернета" (по пути получив source address 77.235.213.154)
А когда придет ответ от удаленного сервера, то пакет опять пройдет через нат и адрес 77.235.213.154 будет заменен обратно на внутренний.
Спасибо сказали:
Аватара пользователя
Mage-Warrior
Сообщения: 869
Статус: Семь раз понюхай, один раз откуси!
ОС: SlackWare 12.1

Re: iptables + такском референт

Сообщение Mage-Warrior »

Да, вы правы. Я не учел, что SNAT производит и обратное преобразование адресов... А DNAT и маскарадинг немного в других случаях нужны. Признаю ошибку. :blush: Прошу прощения за путаницу. Пошел читать мануал повторно.
*- Большинство проблем, дружок, завсегда покажет лог! -*
Спасибо сказали: