The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Проблемы с маршрутизацией почты"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Firewall, Фильтрация пакетов)
Изначальное сообщение [ Отслеживать ]

"Проблемы с маршрутизацией почты"  +/
Сообщение от dnick email on 14-Ноя-11, 15:57 
Приветсвую господа! Изложу свою проблему. Нашей организации выделили 2ой канал связи. Настроил балансировку каналов. Пробросил соединение бухгалтерских компов на "старый" внешний интерфейс с помощью маркировки пакетов. Но вот как добится чтобы почтовый сервер sendmail отсылал данные через "старый" интерфейс, я чегото непойму. Помоготи кто знает!!! Полностью скрипт маршрутизации приводить наверно не стоит, вот конечный кусок

IP_INET1="192.168.1.2"
IP_INET2="192.168.2.2"
IP_LOCAL="10.64.3.250"
IF_LOCAL="eth1"
IF_INET1="eth0"
IF_INET2="eth2"
......
/sbin/ip route change default scope global nexthop via $IP_INET1 dev $IF_INET1 weight 2 nexthop via $IP_INET2 dev $IF_INET2 weight 3
/sbin/ip rule delete table T1
/sbin/ip rule delete table T1
/sbin/ip rule delete table T2
/sbin/ip rule delete table T2
/sbin/ip rule add from $IP_INET1 table T1
/sbin/ip rule add from $IP_INET2 table T2
/sbin/ip rule add fwmark 10 table T1
/sbin/ip rule add fwmark 11 table T2
/sbin/ip route flush cache

Далее скрипт настройки брандмауэра

IPT="/sbin/iptables"
NET_SUB1="10.64.3.10/32"
NET_SUB2="10.64.3.8/32"
NET_LOCAL="10.64.3.0/24"
$IPT -t nat -F
$IPT -t mangle -F
$IPT -t mangle -A PREROUTING -s $NET_SUB1 -d ! $NET_LOCAL -j MARK --set-mark 10
$IPT -t mangle -A PREROUTING -s $NET_SUB2 -d ! $NET_LOCAL -j MARK --set-mark 10
##### Далее (4 строки) идут мои извраты в попытке добиться чтобы почта тоже шла через eth0, методом маркировки пакетов, но пока ничего невыходит
$IPT -t mangle -A PREROUTING -s ! $NET_LOCAL -d ! $NET_LOCAL -p tcp --dport 25 -j MARK --set-mark 10
$IPT -t mangle -A PREROUTING -s ! $NET_LOCAL -d ! $NET_LOCAL -p udp --dport 25 -j MARK --set-mark 10
$IPT -t mangle -A PREROUTING -s 127.0.0.1/32 -d ! $NET_LOCAL -p tcp --dport 25 -j MARK --set-mark 10
$IPT -t mangle -A PREROUTING -s 127.0.0.1/32 -d ! $NET_LOCAL -p udp --dport 25 -j MARK --set-mark 10

$IPT -t nat -A PREROUTING -i eth0 -d 192.168.1.2 -s 95.107.63.10 -j DNAT --to-destination 10.64.3.10
$IPT -t nat -A POSTROUTING -m mark --mark 10 -j MASQUERADE

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Проблемы с маршрутизацией почты"  +/
Сообщение от reader (ok) on 14-Ноя-11, 16:47 
>[оверквотинг удален]
> ##### Далее (4 строки) идут мои извраты в попытке добиться чтобы почта
> тоже шла через eth0, методом маркировки пакетов, но пока ничего невыходит
> $IPT -t mangle -A PREROUTING -s ! $NET_LOCAL -d ! $NET_LOCAL -p
> tcp --dport 25 -j MARK --set-mark 10
> $IPT -t mangle -A PREROUTING -s ! $NET_LOCAL -d ! $NET_LOCAL -p
> udp --dport 25 -j MARK --set-mark 10
> $IPT -t mangle -A PREROUTING -s 127.0.0.1/32 -d ! $NET_LOCAL -p tcp
> --dport 25 -j MARK --set-mark 10
> $IPT -t mangle -A PREROUTING -s 127.0.0.1/32 -d ! $NET_LOCAL -p udp
> --dport 25 -j MARK --set-mark 10

пакеты от локальных программ PREROUTING не проходят, в OUTPUT

> $IPT -t nat -A PREROUTING -i eth0 -d 192.168.1.2 -s 95.107.63.10 -j
> DNAT --to-destination 10.64.3.10
> $IPT -t nat -A POSTROUTING -m mark --mark 10 -j MASQUERADE

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Проблемы с маршрутизацией почты"  +/
Сообщение от Andrey Mitrofanov on 15-Ноя-11, 09:38 
> пакеты от локальных программ PREROUTING не проходят, в OUTPUT

+1 "Это должен знать(*) каждый!
          (*)как найти! G://прохождение пакетов iptables mangle"тм

https://www.opennet.ru/openforum/vsluhforumID10/3437.html#3
https://www.opennet.ru/docs/RUS/iptables/#TRAVERSINGOFTABLES

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. "Проблемы с маршрутизацией почты"  +/
Сообщение от dnick email on 15-Ноя-11, 14:12 
>> пакеты от локальных программ PREROUTING не проходят, в OUTPUT
> +1 "Это должен знать(*) каждый!
>           (*)как найти!
> G://прохождение пакетов iptables mangle"тм
> https://www.opennet.ru/openforum/vsluhforumID10/3437.html#3
> https://www.opennet.ru/docs/RUS/iptables/#TRAVERSINGOFTABLES

Спасибо большое за ссылки но вопрос заключается не в том где почитать а в том как это выглядит на практике. Замена правил на
$IPT -t mangle -A OUTPUT -s 127.0.0.1/32 -d ! $NET_LOCAL -p tcp --dport 25 -j MARK --set-mark 10
$IPT -t mangle -A OUTPUT -s 127.0.0.1/32 -d ! $NET_LOCAL -p udp --dport 25 -j MARK --set-mark 10

к положительным результатам не приводит. Т.е. часть почты идет нормально, а часть отбраковывается удаленными почтовиками, т.к. они приходят с IP-адреса заблокированого за спам.

P.S. Из этого следует что правила не срабатывают, т.е. пакеты похоже выгледят не так. Большая просьба кто знает подскажите как отлавливать пакеты сендмейла и маркировать их(интересуют именно исходящие пакеты). Т.к. входящие идут туда куда надо, что и неудевительно, т.к. DNS у провайдер заполнен вроде правильно!!!

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Проблемы с маршрутизацией почты"  +/
Сообщение от Andrey Mitrofanov on 15-Ноя-11, 14:45 
>  но вопрос заключается не в том где
>а в том как это выглядит на практике.

Ну, примерно так и выглядит.... Наверное.

> $IPT -t mangle -A OUTPUT -s 127.0.0.1/32 -d ! $NET_LOCAL -p tcp
> --dport 25 -j MARK --set-mark 10

"-s 127.0.0.1/32" убери.

> $IPT -t mangle -A OUTPUT -s 127.0.0.1/32 -d ! $NET_LOCAL -p udp
> --dport 25 -j MARK --set-mark 10

Это правило убери.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Проблемы с маршрутизацией почты"  +/
Сообщение от dnick email on 15-Ноя-11, 14:57 
>>  но вопрос заключается не в том где
>>а в том как это выглядит на практике.
> Ну, примерно так и выглядит.... Наверное.
>> $IPT -t mangle -A OUTPUT -s 127.0.0.1/32 -d ! $NET_LOCAL -p tcp
>> --dport 25 -j MARK --set-mark 10
> "-s 127.0.0.1/32" убери.
>> $IPT -t mangle -A OUTPUT -s 127.0.0.1/32 -d ! $NET_LOCAL -p udp
>> --dport 25 -j MARK --set-mark 10
> Это правило убери.

ВО!! Спасибо большое! Заработало!!

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

4. "Бонус... +=ebtables"  +/
Сообщение от Andrey Mitrofanov on 15-Ноя-11, 12:45 
> пакеты от локальных программ PREROUTING не проходят, в OUTPUT

<<В действительности всё не как на самом деле.>>
http://ebtables.sourceforge.net/br_fw_ia/PacketFlow.png/
http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html
<<Но и тогда сомнения не покидают меня.>>

Вот пытался про броутеры читать... А ещё, слышал, есть %-O heavy voodo у VPS-ников.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Проблемы с маршрутизацией почты"  +/
Сообщение от YuryD (??) on 15-Ноя-11, 11:58 
> Приветсвую господа! Изложу свою проблему. Нашей организации выделили 2ой канал связи. Настроил
> балансировку каналов. Пробросил соединение бухгалтерских компов на "старый" внешний интерфейс
> с помощью маркировки пакетов. Но вот как добится чтобы почтовый сервер
> sendmail отсылал данные через "старый" интерфейс, я чегото непойму. Помоготи кто

Если sendmail на этой-же машине, раскомментарьте в sendmail.cf

#O ClientPortOptions=Family=inet, Address=0.0.0.0

И пропишите нужный ip. Если нужно чтоб он слушал на определенном ip есть еще и

#O DaemonPortOptions=Name=IPv4, Family=inet, Address=0.0.0.0

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Проблемы с маршрутизацией почты"  +/
Сообщение от dnick email on 15-Ноя-11, 14:03 
>> Приветсвую господа! Изложу свою проблему. Нашей организации выделили 2ой канал связи. Настроил
>> балансировку каналов. Пробросил соединение бухгалтерских компов на "старый" внешний интерфейс
>> с помощью маркировки пакетов. Но вот как добится чтобы почтовый сервер
>> sendmail отсылал данные через "старый" интерфейс, я чегото непойму. Помоготи кто
>  Если sendmail на этой-же машине, раскомментарьте в sendmail.cf
> #O ClientPortOptions=Family=inet, Address=0.0.0.0

Раскоментировал

O ClientPortOptions=Family=inet, Address=192.168.1.2
192.168.1.2 - это адрес того интерфейса через который мне надо отправлять почту(правда этот интерфейс смотрит на роутер который соответсвенно пробрасывает на реальные внешний IP)

Но вылезли еще более кривые грабли, теперь вообще ничего не уходит наружу.

в maillog вижу теперь следующее
Nov 15 13:54:46 localhost sendmail[11093]: pAFAsjkJ011091: to=<ххххх@yandex.ru>, ctladdr=<admin@ххххххх.orel.ru> (500/500), delay=00:00:00, xdela
y=00:00:00, mailer=esmtp, pri=120459, relay=mx.yandex.ru. [77.88.21.89], dsn=4.0.0, stat=Deferred: Transport endpoint is not connected

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

9. "Проблемы с маршрутизацией почты"  +/
Сообщение от YuryD (??) on 17-Ноя-11, 07:42 
> Но вылезли еще более кривые грабли, теперь вообще ничего не уходит наружу.
> y=00:00:00, mailer=esmtp, pri=120459, relay=mx.yandex.ru. [77.88.21.89], dsn=4.0.0,
> stat=Deferred: Transport endpoint is not connected

Это уже в iptables и маршрутизации. Если вы задали clientportoptions, то исходящие соединения пойдут с этого ip, и соотв обратно на этот ip должны идти. Если все в старом варианте работало, то при задании clientportoptions вообще ничего не надо было делать ни с iptables ни с маршрутизацией.

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру