Postfix levél küldés megadott IPn, postifx második példány konfigurálása

kecsi küldte be h, 2009-06-22 15:04 időpontban

Azzal a problámával találkoztam amikor egy megadott IP címen kellett volna kiküldeni megadott domain alól küldött leveleket. Egészen pontosan volt egy levelező szerverem bekonfigurálva de egy altartományt (pl levelező listák lists.pelda.hu) leveleit külön IP címen kellene kiküldeni. Azért merült fel erre az igény mert egyes szolgáltatók pl hotmail, yahoo ideiglenesen letiltanak SPAM védelmi okokból amikor nagy mennyiségű levelt küld ki a szerver. Szóval a megoldás kézenfekvő mozgassuk külön IPre a levlistákat így azok forgalma miatti problémák esetén csak a lista IPt tiltánák le az említett szolgáltatók a további levelezést ez nem zavarná.

Nekiláttam vizsgálódni a témában és sajnos kiderült, hogy a postfix jelen verziója(2.3-2.5) nem támogatja ezt a megoldást csak majd a még nagyon friss 2.6-os verziótól. Én a stabil verziót akartam használni és nem akartam átállni pl qmail rendszerre ezért a második postfix levelező szolgáltatás bekonfigurálása mellett döntöttem. Így két egymással párhuzamosan futó szolgáltatás futna egyazon postfix szoftverből a gépen.

A következő változtatásokat eszközöltem ehhez az eredeti levelező szolgáltatáson:
Az inet_interfaces alapértelmezett all beállítást egy IP listára cseréltam benne a lolcahost értékkel. Az smtp_bind_address pedig csak a kimenő 1 IP-re állítottam.

Majd nekiláttam a második szolgáltatás létrehozásához. Hozzunk létre másolat könyvtárakat a második postfix példány részére.
cp -rp /etc/postfix /etc/postfix2
cp -rp /var/spool/postfix /var/spool/postfix2
cp -rp /var/lib/postfix /var/lib/postfix2

Változtatások a második postfix példány main.cf konfigurációs állományán:

  1. inet_interfaces = csak_egy_IP_amin_fogadok<br />
  2. smtp_bind_address = csak_egy_IP_amin_küldök<br />
  3. alternate_config_directories = /etc/postfix2<br />
  4. syslog_name = postfix2<br />
  5. queue_directory = /var/spool/postfix2<br />
  6. data_directory = /var/lib/postfix2<br />

Plusz az egyértelmű paraméter változtatások:
  1. myhostname = lists.pelda.hu<br />
  2. myorigin = lists.pelda.hu<br />
  3. mydestination = lists.pelda.hu, lista.pelda.hu

mynetworks paraméterbe lehet, hogy be kell adjuk a másik (szintén itt futó) szerver IP címét ha a két szerver egymással kommunikál...

Ezután már csak egy indító szkriptet kell létrehoznunk a második példánynak vagy a egyszerűen el tudjuk indítani azt a postfix -c /etc/postfix2 start utasítással.

A következő apró szkript használható a második postfix példány levelező sorának megtekintésére:

  1. #!/bin/sh<br />
  2. export MAIL_CONFIG=/etc/postfix2<br />
  3. /usr/bin/mailq

csarlee küldte be k, 2009-06-23 13:31 időpontban

Permalink

Na, ez egy marha hasznos téma számomra is! Hasonló okokból keresgéltem valami megoldást.

kecsi küldte be k, 2009-06-23 14:58 időpontban

Válasz csarlee üzenetére

Permalink

Régebben sokszor csak logolás céljából írtam le ezeket a mahinációim... ma már azért nagyobb bizodalmam van hogy rajtam kívül valaki más is elolvassa...

Amúgy a témában angolul elég sok infot lehet összegyűjteni. A következő kulcsszó kombinációkat használtam kereséskor..
postfix send out email from specific IP
postfix sender_based_routing
postfix second instance
amit azt hiszem szintén érdemes elmenteni.

Kecsibácsi :) semmiképpen nem felesleges, ha néha ilyetén dolgokba is belemegyünk, pláne, hogy manapság a levelezés már alapvető fontosságú téma, ráadásul nagy téma, és összefonódik már a névfeloldással, a spamszűréssel, és a vírusvédelemmel, akár tűzfallal is.
Én személy szerint is küzdöttem hasonló problémával, bár mi Exim-et használunk, a megoldás nálunk is hasonló volt, csak mi egy külön IP-n külön helyen beállítottunk egy szervert, ami egy aldomain-ünkön lett regisztrálva, így ha az aldomain fölkerül egy spamlistára, attól még mi az irodában a saját public IP-nkel, a fődomain-ból gond nélkül tudunk levelet küldeni.
Nem értek nagyon az Eximhez, de a Postfix-hez képest úgy tudom, hogy részletesebb konfigurációt lehet benne eszközölni. Cserébe nem egyszerű... de egy Sendmail után már minden egyszerűnek tűnik. :)