Zasílání systémových zpráv ze stroje bez veřejné IP [SENDMAIL]

Pro nastavení sendmail-u v případě, že není možné přímo ž tohoto
počítače poštu odesílat (např. nemá veřejnou DNS adresu a proto ho
jiné mail servery odmítnou)

v /etc/mail/sendmail.mc je třeba přidat řádek
(je označen znakem + na začátku řádky):


pro RHEL 2.1
=================================
+define(`SMART_HOST',`smtp:[85.132.169.9]')
define(`confDEF_USER_ID',``8:12'')dnl
---------------------------------
nebo
---------------------------------
+define(`SMART_HOST',`smtp:matous.tmapy.cz')
define(`confDEF_USER_ID',``8:12'')dnl
---------------------------------



pro RHEL 3, RHEL 4, RHEL 5 (FC6)
=================================
dnl define(`SMART_HOST',`smtp.your.provider')
+define(`SMART_HOST',`smtp:[IP.AD.RE.SA]')
---------------------------------
nebo
---------------------------------
dnl define(`SMART_HOST',`smtp.your.provider')
+define(`SMART_HOST',`smtp:jmeno.smtpserveru.cz')

---------------------------------


K zamaskování odchozí adresy (počítače, ze kterého poštu odesíláme) za jméno domény organizace:

pro RHEL 2.1
=================================
FEATURE(`masquerade_envelope')dnl
FEATURE(`allmasquerade')dnl
MASQUERADE_AS(tmapy.cz)dnl



pro RHEL 3, RHEL 4, RHEL 5 (FC6)
=================================
dnl MASQUERADE_AS(`mydomain.com')dnl
+MASQUERADE_AS(
`mojedomena.cz')dnl


dnl FEATURE(masquerade_envelope)dnl
+FEATURE(masquerade_envelope)dnl


dnl FEATURE(masquerade_entire_domain)dnl
+FEATURE(masquerade_entire_domain)dnl

=================================



Dále je třeba zrušit default uzivatele root (jinak nefunguje genericstable).
Je třeba zakomentovat řádek:

pro RHEL 2.1
=================================
dnl TOTO MUSI BYT ZAKOMENOVANO: jinak se nepouzije pro root-a genericstable
#dnl EXPOSED_USER(`root')dnl
=================================

pro RHEL 3, RHEL 4, RHEL 5 (FC6)
=================================
#TOTO MUSI BYT ZAKOMENOVANO: jinak se nepouzije pro root-a genericstable
# dnl EXPOSED_USER(`root')dnl
+EXPOSED_USER(`')dnl
=================================


a přidat řádek s předpisem pro zpracování souboru genericstable:

RHEL 2.1
=================================
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
+FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
---------------------------------

RHEL 3, RHEL 4, RHEL 5 (FC6)
=================================
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
+FEATURE(`genericstable',`hash -o /etc/mail/genericstable.db')dnl
+GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl
---------------------------------


v souboru /etc/mail/genericstable bude radek:
=================================
echo "root    $(echo $(hostname -f) | sed -e 's/\(.*\)mojedomena.cz/\1/g' -e 's/[.]/-/g' -e 's/\(.*\)-$/root-\1\mojedomena.cz/g')" > /etc/mail/genericstable
hostname -f > /etc/mail/generics-domains
=================================


Dále je nutné doinstalovat podporu pro tvorbu sendmail.cf
yum install sendmail-cf

nebo
up2date sendmail-cf

a po dokončení editace souborů spustit příkaz:
# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
make -C /etc/mail ; /etc/init.d/sendmail restart

Můžeme si nechat vypsat mail frontu:

sendmail -bp

nebo

mailq

a odeslat maily ve fronte příkazem:

sendmail -q

a restartujeme sendmail:
/etc/init.d/sendmail restart


Nyní je třeba opravit alias root v souboru /etc/aliases napr. na:
root: mojejmeno@mojedomena.cz, jejich.spravce@nejakyurad.cz

echo 'root: mojejmeno@mojedomena.cz' >> /etc/aliases

a zadat prikaz:
newaliases

Nyní je čas na poslání zkušebního mailu:

mail root -s "test0 from $(hostname)" <
pokusny mail
poslano v $(date)
.

EOF

========

Doplnění:
Sendmail implicitně resolvuje jména přes DNS. To může být někdy na
obtíž - třeba u gatewaye (lokální síť za masqueradou s vytáčenou linkou a pod).

Následujícím způsobem lze sendmail přesvědčit, aby nejprve používal soubor /etc/hosts
(který stejně udržujeme aktuální, že ;-))
a teprve v případě, že neuspěje, tak použije DNS.

Založíme soubor /etc/services.switch a do něj zapíšeme:

hosts files

a do souboru /etc/sendmail.cf přidáme řádek:

O ServiceSwitchFile=/etc/services.switch