Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: manorgos 28 Května 2009, 12:54:55
-
Prosim poradte mam nasledujici problem.
Na nove nainstalovanem UBUNTU 8.04 jsem nainstaloval sendmail 8.14.2 . Maili ven mi chodi, ale kdyz potrebuju poslat mail do vnitrni site na hlavni podnikovy mailserver, tak mail nedojde. Problem je podle meho soudu v tom, ze se k tomuto mailserveru snazi pristupovat z venku. Potreboval bych ho presvedcit, aby sel po vnitrni siti. Ale ikdyz jsem do /etc/hosts pridal zaznam s adresou mailserveru tak sendmail se stale snazi komunikovat venkem. Ping jde po vnitrni siti ale sendmail ne. Muzete mi prosim nekdo poradit jak nastavit sendmail aby se choval tak jak ma?
predem dekuji.
-
zkusil bych podívat se do /etc/host.conf kde by mělo být pořadí
order hosts,bind
a do /etc/nsswitch.conf
kde by taktéž mělo být pořadí
hosts: files dns
-
v /etc/host.conf je to presne tak jak pises
v /etc/nsswitch.conf je
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
-
Nasel jsem na netu navod ktery resi stejnou vec jako ja:
Postup, jak nastavit, aby sendmail na lokálním linuxovém stroji doručoval maily pro určitou doménu jinam, než říká MX záznam. Potřeboval jsem to nastavit na své stanici, protože admini překonfigurovali NAT, na jehož veřejnou IP se současně resolvuje MX záznam pro naši doménu, ale na vnitřním rozhraní už nyní port pro SMTP nefunguje, k tomu slouží jiný stroj ve vnitřní síti.
V GNU/Linuxu probíhá odesílání mailů standardně tak, že se maily předávají lokálnímu sendmailu nebo jinému MTA, který je sám doručuje na cílové SMTP servery podle MX záznamů v DNS, lokálně doručované maily předává lokálnímu MDA (typicky procmail).
V perexu zmíněný problém se dá vyřešit změnou DNS, ten však také nemám pod svou kontrolou a na stanici kvůli tomu vlastní nameserver s jinak definovanou zónou pro naši doménu provozovat nechci. Nastavit v /etc/hosts, že mail.domena.cz má určitou vnitřní IP, nepomohlo, sendmail asi tento mechanismus obchází a používá výhradně DNS.
Jako lepší řešení se mi jeví nakonfigurování sendmailu tak, aby pro určitou doménu doručoval na konkrétní explicitně udaný stroj, a toto řešení zafungovalo. Zde je stručný popis:
1. V /etc/mail/sendmail.mc musí být povoleno používání mailertable; pokud není, zapsat
FEATURE(`mailertable')
a přetransformovat změněnou konfiguraci sendmailu do /etc/sendmail.cf pomocí příkazu
m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
Konfigurační soubor sendmail.cf nyní obsahuje následující nebo podobný řádek, který definuje umístění mailertable:
Kmailertable hash /etc/mail/mailertable
2. Do souboru /etc/mail/mailertable (pravděpodobně bude prázdný, pokud se nastavuje poprvé) zapsat řádek tvaru
domena.cz smtp:[server.pro.tuto.domenu]
(adresa serveru může být v doménové nebo číselné podobě). Poté změněnou konfiguraci přetransformovat do souboru mailertable.db čitelného sendmailem pomocí příkazu
/usr/sbin/makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
3. Nyní stačí restartovat sendmail a vyzkoušet. Maily pro domena.cz by nyní měly být doručovány přes server.pro.tuto.domenu a ne např. přes smtp.domena.cz, který může figurovat v MX záznamu.
Blbe ale je, ze mi to hned v druhem kroku prvniho bodu hodi chybu:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
m4:/etc/mail/sendmail.mc:75: cannot open `/usr/share/sendmail/cf/feature/'mailertable'.m4': No such file or directory
a to tam ten mailertable.m4 na tom umisteni je.
-
Hm, jasně, MX záznamy.
Přímý návod nenahodím, ale podíval bych se někde po nějaké dnscache, nebo rovnou použil bind, nastavit pro lokální doménu odlišně od veřejných dns serverů (lokální adresy pro místní stroje). A nechat počítač používat vlastní dns server.
Případně vygooglit "dns split horizon"
-
Tak uz se mi to povedlo rozchodit.
Jen je podstatne oproti na vise zminenemu navodu je potreba udelat jen par detailu. V prvnim bodu FEATURE(`mailertable') tam nepatri ty ' takze spravne je FEATURE(mailertable) a v 2. bodu je to nutne dodrzet tak jak to tam ma vcetne hranatych zavorek .domena.cz smtp:[172.16.1.12]