Автор Тема: [Resolved]Пренасочване на изходящ SMTP трафик през определено IP[Closed]  (Прочетена 10153 пъти)

Topper

  • Напреднали
  • *****
  • Публикации: 109
  • Distribution: Slackware, SLES
  • Window Manager: KDE
    • Профил
Здравейте,
Поради ред причини, работим с 3 ISP-та (през 2 интерфейса+VLAN). Рутър под Линукс, имам Posftix в DMZ, но само в отделна мрежа, не през отделен интерфейс.
От известно време се затегна политиката на пощенските сървъри и почти няма такива, който да те "пуснат" ако нямаш RDNS.
Успяхме (с много, много мъки) да убедим едното ISP да направи RDNS, въпреки че г-н "Главен Админ" ни уверяваше, че това е работа на регистранта на домейна. Явно се заблуждаваше с DNS....
Обаче сега трябва да укажа на рутъра, че когато MAIL сървъра иска да изпрати поща, т.е. dport е 25, да го насочи през определен интерфейс и с IP-то (aa.bb.cc.dd), което има RDNS.Опитвам с този ред:
Код:
echo "  SNAT outgoing SMTP...."
$IPTABLES -t nat -A POSTROUTING -o eth0 -p tcp -s 192.168.0.71 --dport 25 -j LOG --log-level debug --log-prefix "Redirect Out SMTP "
$IPTABLES -t nat -A POSTROUTING -o eth0 -p tcp -s 192.168.0.71 --dport 25 -j SNAT --to-source aa.bb.cc.dd

Отделно, за да се работи с 3-те ISP-та има:
Код:
$IPTABLES -t mangle -A PREROUTING -p ALL -j CONNMARK --restore-mark
....
....
$IPTABLES -t mangle -A POSTROUTING -p ALL -m state --state NEW -j CONNMARK --save-mark
както и съответните таблици с ip route така,  че да се марктират пакетите и да излизат от този интерфейс, от който са влезли. Иначе няма да има ACK и т.н. и т.н.

Проблема е, че все пак трафика от MAIL към света към порт 25 излиза случайно на някой от другите интерфейси => различно IP и така.
Имате ли идея къде греша ?
Благодаря на всеки за съвет (евентуален)
« Последна редакция: Feb 08, 2009, 15:53 от Topper »
Активен

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Аз бих пуснал SMTP сървър на рутера само за relay (без pop3/imap).
« Последна редакция: Jan 29, 2009, 15:59 от laskov »
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

dvasilev

  • Напреднали
  • *****
  • Публикации: 200
  • Distribution: Kubuntu, Debian
  • Window Manager: KDE
    • Профил
    • WWW
@Topper: Не съм убеден, че тези правила трябва да бъдат в postrouting, тъй като в този момент вече би трябвало да е ясно откъде ще излезе пакета.
Активен

Uvigii

  • Напреднали
  • *****
  • Публикации: 381
    • Профил
Здравей разгледай,
1. iptables ........ -j ROUTE
2. ip rule ........./ ip route .........
Активен

http://www.openlab.info мрежова лаборатория

Topper

  • Напреднали
  • *****
  • Публикации: 109
  • Distribution: Slackware, SLES
  • Window Manager: KDE
    • Профил
@laskov, да, и това е начин, но НЕ Е подходящ в случая (търся решение не само за локалния мейл сървър)
@dvasilev, съгласен съм, но с прерутиране пък не мога да кажа кой да е изходния интерфейс - ако имаш идея как, моля те кажи ?
@Uvigii - за ip rule и ip route предполагам какво имаш предвид, но имам отделни таблици за отделните ISP-та вече. Включително и маркирането на пакетите, както писах. Проблема е как да не оставям кърнела да решава през кой интерфейс да ги изстреля, а да е твърдо един определен.
Сега ще видя какво може да помогне в случая iptables -j ROUTE, не съм го чел до сега...
« Последна редакция: Feb 02, 2009, 14:08 от Topper »
Активен

Topper

  • Напреднали
  • *****
  • Публикации: 109
  • Distribution: Slackware, SLES
  • Window Manager: KDE
    • Профил
@Laskov - има Sendmail на рутъра, но обслужва системните писма и съобщения (127.0.0.1) Ако имаш идея как да го пусна и като рилей навън... Сендмейла ми е напълно непознат :(
@Uvigii - пачнах ядорото и IPT за ROUTE, но така и не успях да прекарам пакетите към SMPT само през ETH0 :/

Моля ви, някакви идеи ?
Активен

Topper

  • Напреднали
  • *****
  • Публикации: 109
  • Distribution: Slackware, SLES
  • Window Manager: KDE
    • Профил
Благодаря за не-помощта.
Предполагам поради липса на време или стар български обичай (аз защо да му казвам, като мога пари да взема...)
Та за тези, които може би ще се сблъскат с това.

Най-елегантния и лесен начин, за да пренасочите пакетите през определен интерфейс, когато са няколко е МАРКИРАНЕТО им.
Аз имах тези правила в IPT (не поствам съответните ip rule и ip route) за 3-те интерфейса
 
Код:
       $IPTABLES -t mangle -A PREROUTING  -p ALL -j CONNMARK --restore-mark
        $IPTABLES -t mangle -A PREROUTING  -p ALL -i $IF1 -m mark --mark 0 -j MARK --set-mark $TABLE1
        $IPTABLES -t mangle -A PREROUTING  -p ALL -i $IF2 -m mark --mark 0 -j MARK --set-mark $TABLE2
        $IPTABLES -t mangle -A PREROUTING  -p ALL -i $IF3 -m mark --mark 0 -j MARK --set-mark $TABLE3
     
## SMTP
         $IPTABLES -t mangle -A PREROUTING -p ALL -i $IF_INT -s $MY_MAIL_IP --dport smtp -m mark --mark 0 -j MARK --set-mark $TABLE3
##
         $IPTABLES -t mangle -A POSTROUTING -p ALL -o $IF1 -m state --state NEW -j MARK --set-mark $TABLE1
         $IPTABLES -t mangle -A POSTROUTING -p ALL -o $IF2 -m state --state NEW -j MARK --set-mark $TABLE2
         $IPTABLES -t mangle -A POSTROUTING -p ALL -o $IF3 -m state --state NEW -j MARK --set-mark $TABLE3
Реда след ##SMTP маркира пакетите, идващи от вътрешния интерфейс от мейл сървъра към smtp и все още немаркирани, с марк за 3-ия интерфейс - този, който има RDNS.
Воала

Надявам се, че поне аз така ще помогна на някой в нужда.
Активен

arda_kj

  • Напреднали
  • *****
  • Публикации: 631
  • Distribution: Debian Sid/Unstable; Ubuntu 12.04
  • Window Manager: Gnome/KDE
    • Профил
@Topper Е супер, че помогаш на хората с крайното решение, но съгласи се, че не винаги можем да помогнем на някой и ние сме хора, и ние се случва да не знаем. Понякой път и темата потъва, и става така да се каже невидима за хората, които не са участвали в нея. Ето примерно аз сега за пръв път я виждам.

При такива случаи трябва периодично да събуждаш темата с пост в нея и с евентуален призив за помощ.

Хубавото е, че разчиташ обаче преди всичко на себе си, това е правилната политика. Ето сега твоя пост може да помогне на някой друг, за което аз лично ти благодаря.

Лека и успех!
Активен

Debian Sid/Unstable; Ubuntu 12.04
"За да открием истината, е нужно поне веднъж в живота си да подложим всичко на съмнение" - Р. Декарт

Topper

  • Напреднали
  • *****
  • Публикации: 109
  • Distribution: Slackware, SLES
  • Window Manager: KDE
    • Профил
Ами много поздрави от мен.
Само ми виж темите и от кога съм в този форум.
До сега съм получил 1 (един) съвет тук. За това съм се научил да се оправям сам.
А пък реплики от рода на - защо да ти помагам, аз така пари мога да изкарам - съм получавал доооста пъти. За RTFM, man 8 или отговори от една дума, да не споменавам.
Само опитах пореден път, явно няма да се промени нищо тук.
Дано поне аз помогнах на някого.
Останете си със здраве.
Активен

BULFON

  • Administrator
  • Напреднали
  • *****
  • Публикации: 478
  • Distribution: Fedora
  • Window Manager: Gnome
    • Профил
Topper,
един от експертите в този форум в областта в която е въпроса ти е Vladsun. За съжаление май беше зает последните няколко дни и предполагам затова не се е включил.
Има над 1500 отговора и повечето са в целта!
Предполагам спешна нужда те е принудила да се обърнеш към хората тук и предполагам времето за реакция от тяхна страна не те е удовлетворило. Но пък ние нямаме споразумение за колко време се отговаря на някакъв въпрос, тъй като не можем да освободим времето на нито един специалист, така че той да се занимава изключително с отговори на въпроси.
Един процедурен въпрос - защо темата ти е в "Системна сигурност"?
Активен

фонокартен телефонен апарат

Topper

  • Напреднали
  • *****
  • Публикации: 109
  • Distribution: Slackware, SLES
  • Window Manager: KDE
    • Профил
Vladsun ми е известен много добре.
Но не бе в това въпроса.
И мнението ми не се оформи след тази тема, напротив - това бе само капката. Просто ми затвърди мнението.
Да, няма споразумение или декларация за времето на реакция. Но как пък така до сега само веднъж ми отговориха ...
Както и да е, приятелския кръг тук няма да пострада от мнението ми.
Останете си със здраве.

ПП.Не мога да кажа продължавайте в същия дух....
Активен

BULFON

  • Administrator
  • Напреднали
  • *****
  • Публикации: 478
  • Distribution: Fedora
  • Window Manager: Gnome
    • Профил
Казах, че Vladsun е отговорил над 1500 пъти. По мои наблюдения в огромна част от случаите е успявал да помогне.
Мисля, че допускаш две грешки - генерализираш личното ти преживяване (малко пъти ти е отговорено така, че ти да го оцениш като полезен отговор), и си позволяваш да се разочароваш в ситуация, в която очакванията ти не са се изпълнили, при положение, че въобще не е трябвало да ги имаш.
Ако дадеш пример, къде ти отговарят по-успешно, експедитивно и добре ще направиш още едно добро на четящите този форум - ще им предложиш по-добра алтернатива.
Активен

фонокартен телефонен апарат

Topper

  • Напреднали
  • *****
  • Публикации: 109
  • Distribution: Slackware, SLES
  • Window Manager: KDE
    • Профил
Разбира се, като админ ще защитаваш форума.
Аз като редови потребител казах вече - за членство от 2004 година (редакция: 2003 г), тук са ми отговорили 1 (веднъж).
Владсън казах че го познавам добре, пък и най-малкото съм си направил труда да претърся тук и още няколко форума за решение.
Ако трябва да си кажа честно - постнах от любопитство, нямах и надежда някой да помогне.

Приемам, че "изживяването" си е мое - само че форумите се създават с цел обмяна на мнения, опит, тези на самите тези потребители, с личните им "преживявания"

Не го приемай лично, нямам никакви лоши чувства, но впечатлението ми си остава.

Успехи
Активен

arda_kj

  • Напреднали
  • *****
  • Публикации: 631
  • Distribution: Debian Sid/Unstable; Ubuntu 12.04
  • Window Manager: Gnome/KDE
    • Профил
Топер все пак какво значи да не са ти помогнали. Ето например тука няколко човека се опитаха да ти помогнат и да те насочат. Само, че имай в предвид, че помоща, която искаш в тази тема не е тривиална, а изисква много доброто позноване на специфични черти на iptables и рутирането на трафик, които примерно аз не познавам в детайли. На този специфичен и труден въпрос хората няма как да ти дадат точен отговор, освен ако и те не са се сблъскали с много подобен проблем. Можеш да очакваш само насоки за решаване на проблема, т.к. може би никой от нас няма подобна мрежа като тази, която ти описа и ние няма как да тествамем дали някакво решение би работило.

Не разбирай помоща винаги като даване на точен и ясен отговор, а по-скоро като насока ти сам да се справиш с проблема. Не знам какви точно въпроси си питал преди (ще погледна след малко), че не ти е било помагано, но ако са подобни на този аз лично няма да се очудя, че не ти е даван точен отговор. Според мен не трябва да е проблем ако хората не са успели да ти помогнат, а проблем ако никой не беше ти отговорил, т.е. ако никой не се беше опитал да ти помогне.

Както и да е, лека от мен :)
Активен

Debian Sid/Unstable; Ubuntu 12.04
"За да открием истината, е нужно поне веднъж в живота си да подложим всичко на съмнение" - Р. Декарт

Topper

  • Напреднали
  • *****
  • Публикации: 109
  • Distribution: Slackware, SLES
  • Window Manager: KDE
    • Профил
Темата стана флейм, явно не е епизодично такова настроение тук.
Помощ(т)а, ако прочетеш, няма общо с решението.
Да не говорим, че помощ(т)а от вида "ip route" обхваща цяла наука. Част от която споменах, докато описах проблема си.

Сигурно задавам най-трудните въпроси тук. Само не си мисли, че съм обичайния леймър, който не може да си сетне адреса и пита веднага във форума.

Пак казвам, без лоши чувства, но само в България, в частност този форум има такова отношение.

Успехи на всички.
Активен