Sendmail nejede

Na mém Red Hat Linuxu 7.1 (7.2, 7.3, 8.0) po dokončení instalace nefunguje sendmail - nepřijímá poštu a pokusy o připojení odmítá, i když proces sendmail běží a dokonce se ohlásí:

telnet localhost 25

ještě funguje, ale

telnet 192.168.0.1 25

(kde 192.168.0.1 je vnitřní IP serveru) hlásí Connection refused nebo jinou podobnou hlášku.

Odpověď: Sendmail je od RH 7.1 sestaven s knihovnou tcp_wrappers (byl to poslední démon, který v systému byl bez ní), to znamená, že připojování se řídí obsahem souborů /etc/hosts.{allow,deny}. Pokud máte standardní konfiguraci s ALL: ALL v hosts.deny, musíte do hosts.allow doplnit řádek podobný tomuto:

sendmail: ALL

Druhá zrada je skryta v konfiguračním souboru sendmail.cf: předpokládá se, že každý admin si změní konfiguraci sám, takže se program distribuuje s nastavením o něco bezpečnějším a vhodnějším pro ty, kteří by si s ním nemuseli sami poradit, kdy démon poslouchá pouze na rozhraní localhost.

# SMTP daemon options
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA

Rychlá pomoc: Pokud chcete jenom vrátit stav k předchozí funkční verzi, tento řádek zapoznámkujte nebo změňte na O DaemonPortOptions=Name=MTA.

Nejlepší je vygenerovat si konfigurační soubor nový po příslušných změnách v souboru sendmail.mc (pravděpodobně jej najdete v adresáři /etc/mail/). Najděte řádek

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')

zakomentujte jej (před první sloupec napište dnl) nebo za něj přidejte podobné řádky (samozřejmě se správně vyplněnou IP adresou rozhraní, na kterém má démon poslouchat):

DAEMON_OPTIONS(`Port=smtp,Addr=MO.JE.I.P, Name=MTA')
DAEMON_OPTIONS(`Port=smtp,Addr=DAL.SI.I.P, Name=MTA')

Pak stačí vyvolat v onom adresáři příkaz make, případně, není-li definováno pravidlo v Makefile, spustit příkaz m4 < sendmail.mc > sendmail.cf kterým se vygeneruje soubor sendmail.cf s novým nastavením. Ten pak překopírujte na správné místo, do adresáře /etc.

Další možné příčiny problémů:

Viz též FAQ Síťové služby mají dlouhou odezvu.