SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d....
Transcript of SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d....
SENDMAIL
"Nikt, kto choć raz nie skonfigurował programu sendmail nie jest prawdziwym administratorem.
Każdy kto brał się za to więcej niż raz, jest niespełna rozumu."powiedzenie administratorów
From - Fri Nov 18 13:36:12 2005X-UIDL: 1130538968.11X-Mozilla-Status: 0001X-Mozilla-Status2: 00000000Return-Path: <piersaj___mat.uni.torun.pl>Received: from mx4.go2.pl (mx4 [192.168.2.44])
by b29 SERVER; Fri, 18 Nov 2005 13:34:12 +0100X-mf: first3.pl v0.6Received: by mx4.go2.pl (Postfix)
id 7B28857D5BA; Fri, 18 Nov 2005 13:34:12 +0100 (CET)Delivered-To: piersaj___o2.plReceived: from mx4.go2.pl (mx4 [127.0.0.1])
by mx4.go2.pl (Postfix) with ESMTP id 61AE257D63Bfor <piersaj___o2.pl>; Fri, 18 Nov 2005 13:34:12 +0100 (CET)
Received: from Leon.mat.uni.torun.pl (leon.mat.uni.torun.pl [158.75.2.17])
by mx4.go2.pl (Postfix) with ESMTPfor <piersaj___o2.pl>; Fri, 18 Nov 2005 13:34:12 +0100 (CET)
Received: from juliusz.mat.uni.torun.pl (Juliusz [158.75.2.230])by Leon.mat.uni.torun.pl (8.13.2/8.13.2) with SMTP id jAICXABL026320for piersaj___o2.pl; Fri, 18 Nov 2005 13:33:59 +0100
Date: Fri, 18 Nov 2005 13:33:10 +0100From: Jaroslaw Piersa <piersaj___mat.uni.torun.pl>Message-Id: <200511181233.jAICXABL026320___Leon.mat.uni.torun.pl>X-Virus-Scanned: by amavisd-newTo: undisclosed-recipients:;
ala ma kotajp
ZAPIS MAILA WG. RFC 822 - MAIL
juliusz:2% telnet leon 25Trying 158.75.2.17...Connected to Leon.Escape character is '^]'.220 Leon.mat.uni.torun.pl ESMTP Sendmail 8.13.2/8.13.2; Fri, 18 Nov 2005 13:33:10 +0100helo juliusz.mat.uni.torun.pl250 Leon.mat.uni.torun.pl Hello Juliusz [158.75.2.230], pleased to meet youmail from: piersaj___mat.uni.torun.pl250 2.1.0 piersaj___mat.uni.torun.pl... Sender okrcpt to: piersaj___o2.pl250 2.1.5 piersaj___o2.pl... Recipient okdata354 Enter mail, end with "." on a line by itselfala ma kotajp.250 2.0.0 jAICXABL026320 Message accepted for deliveryquit221 2.0.0 Leon.mat.uni.torun.pl closing connectionConnection to Leon closed by foreign host.
RFC 821 – SESJA SMTP
Rekordy MX odpowiadają za obsługę poczty kierowanej na dany adres/var/named/host.zone:
pc-91-205.akademiki.uni.torun.pl. IN MX 1 158.75.91.205.pc-91-205.akademiki.uni.torun.pl. IN MX 5 158.75.91.206.inny_host.akademiki.uni.torun.pl. IN MX 1 158.75.91.205.inny_host.akademiki.uni.torun.pl. IN MX 5 158.75.91.206.
ROLA SERWERA DNSrekordy MX
Metoda weryfikacji:
host -tmx pc-91-205.akademiki.uni.torun.pl
Storna www sendmaila
http://www.sendmail.org/Zanim jednak się rozpoczniemy instalację, wypada sprawdzić czy już nie jest zainstalowany.
#>rpm –q sendmail#>rpm –e sendmail
Przypominam ponadto o przekonfigurowaniu firewalla: konieczny otwarty port 25 smtp.
Uwaga: prezentacja jest pisana dla wersji Sendmail 8.13.5
INSTALACJA SENDMAILA
#>gzip –d sendmail.8.13.5.tar.gz#>tar xf sendmail.8.13.5.tar
#>cd sendmail-8.13.5
Szczęśliwie twórcy byli na tyle mili, że napisali własny skrypt do instalacji.
#>./Build#>./Build install
Pliki jakie powinny zostać zainstalowane i ich znaczenie:
/usr/sbin/sendmail binaria sendmaila/etc/mail/sendmail.cf plik konfiguracyjny Sendmaila, bez niego
program się w ogóle nie uruchomi/usr/bin/newaliases link do /usr/sbin/sendmail sendmail
wywołany jako newaliases odświeża bazę danych aliasów/usr/bin/hoststat podobnie link do /usr/sbin/sendmail,
wyświetla statystyki połączeń z innymi hostami/usr/bin/purgestat podobnie link do /usr/sbin/sendmail,
usuwa statystyki/usr/bin/mailq podobnie link do /usr/sbin/sendmail
sendmail wywołany jako mailq wydrukuje kolejkę wiadomości oczekujących na wysłanie
/var/spool/mqueue folder służący do przechowywania oczekujących na wysłanie mailiDo tego folderu NIKT poza rootem nie powinien mieć dostępu!!!
Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d.ALIASY
Lista aliasów, czyli informacje, jaki użytkownik powinien odebrać mail adresowany do “...”/etc/mail/aliases lista – plain text/etc/mail/aliases.db baza danych – plik sendmaila
aliases.db można uaktualnić poleceniem /usr/bib/newaliases
Przykładowe wpisy w /etc/aliases:mailer-daemon: postmasterpostmaster: rootJaroslawPiersa: piersaj, root
Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d.
/etc/init.d/sendmail skrypt startujący
przykładowa treść skryptu:
if [ -f /usr/sbin/sendmail -a -f /etc/sendmail.cf ]; then(cd /var/spool/mqueue; rm -f [lnx]f*)/usr/sbin/sendmail -bd -q30m &echo -n ' sendmail' >/dev/consolefi
/etc/mail/statistics Statystyki programu, nazwę i lokalizację można zmienić w konfiguracji.
Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d.
/etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP. Jego lokalizację i nazwę można określać w konfiguracji. W starszych wersjach: sendmail.hf
HELP214-2.0.0 This is sendmail version 8.13.5214-2.0.0 Topics:214-2.0.0 HELO EHLO MAIL RCPT DATA214-2.0.0 RSET NOOP QUIT HELP VRFY214-2.0.0 EXPN VERB ETRN DSN AUTH214-2.0.0 STARTTLS214-2.0.0 For more info use "HELP <topic>".214-2.0.0 To report bugs in the implementation send email to214-2.0.0 sendmail-bugs___sendmail.org.214-2.0.0 For local information send email to Postmaster at your site.214 2.0.0 End of HELP info
Uruchomienie Sendmaila
#>sendmail -bd uruchomienie jako demon w tle
#>sendmial -bDuruchomienie jako demon na pierwszym planie
#>sendmial -bd -q30mwysyłanie wiadomości zakolejkowanych co 30 min, inne
jednostki:s, m, h, d, w
#>sendmial -bppatrz /usr/bin/mailq
#>sendmial -C fileużyj inngo pliku konfiguracyjnego
KONFIGURACJA SENDMAILAPlik konfiguracyjny Sendmaila to /etc/mail/sendmail.cfOto jego mały fragment:
# Access list database (for spam stomping)Kaccess hash -T<TMPF> /etc/mail/access
# location of help fileO HelpFile=/etc/mail/helpfile
R$* $: $1 <@> mark addressesR$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>R@ $* <@> $: @ $1 unmark @host:...
# strip local host from routed addressesR< $* > < @ $+ > : $+ $@ $>Recurse $3R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4
Pliki mc ma prostszą strukturę i można go pisać z reki w vi z niskim prawdopodobieństwem błedu. (mc – Master Config)Uwaga: plik piszemy w katalogu:
/(dir)/sendmail-8.13.5/cf/cf#>vi sendmail.mc
m4 za pomocą makr obrabia plik .mc i na jego podstaiw generuje plik .cf
#>m4 sendmail.mc > sendmail.cf#>cp sendmail.cf /etc/mail/sendmail.cf
lub prościej: #>make install-cf#>make install-cf CF=config
gdzie config jest głównym plikiem mc
KONFIGURACJA SENDMAILAPliki .mc
KONFIGURACJA SENDMAILA
Struktura pliku mc:
VERSIONIDOSTYPEDOMAINFEATURElocal macro definitionsMAILERLOCAL_CONFIGLOCAL_RULE_*LOCAL_RULESETS
dnl komentarz do konca linii (Delete to NewLine)dnl uwaga na spację po "l"
KONFIGURACJA SENDMAILA
Przykładowy plik .mc
include(`../m4/cf.m4')VERSIONID(`sendmail.mc 18 nov 2005')OSTYPE(linux)DOMAIN(`generic')define(HELPFILE , `/etc/mail/helpfile')FEATURE(nouucp, `nospecial')MASQUERADE_AS(ourco.com)MAILER(local)MAILER(smtp)
Uwaga na apostrofy: otwierający: ` (odwrotny – ten obok tyldy)zamykający: ' (prosty – ten z cydzysłowem)
MASKOWANIE ADRESU
Linijki do pliku .mc
MASQUERADE_AS(`host.domain')ukrywa adres własnego hosta, z którego mail został wysłany na host.domain
MASQUERADE_DOMAIN(`otherhost.domain')ukrywa adres, obcego hosta z którego został wysłany list, listę hostów można oddzielać spacjami
MASQUERADE_DOMAIN_FILE(`filename')maskowanie adresów zadanych w pliku,
MASQUERADE_EXCEPTION(`host.domain')Wyjątek (lub wyjąkti) od maskowania adresu całej domeny
MASQUERADE_EXCEPTION_FILE(`filename')plik z domenami nie obejmowanymi maskowaniem
MASKOWANIE ADRESU
feature(masquerade_entire_domain)w połączeniu z masquerade_domain() i masquerade_as() ukrywa adres całej domeny np. host.otherhost.domain nie byłby maskowany
feature(masquerade_envelope)w polaczeniu z masquerade_as() ukrywa adresy całej koperty, a nie tylko nagłówka
feature(local_no_masquerade)zapobiega maskowaniu poczty wysyłanej lokalnie
EXPOSED_USER(`usernames')niektórzy użytkownicy zawsze powinni być odkryci: np: root, użytkownicy tak zadani nie będą mieli maskowanych adresów
FILTROWANIE WIADOMOŚCI
RELAY_DOMAIN(domain)RELAY_DOMAIN_FILE(file)Akceptuje wiadomości pochodzące z domeny zadanej jako parametr lub wylistowanej w pliku. Np:
sendmail.org128.32IPv6:2002:c0a8:02c7IPv6:2002:c0a8:51d2::23f4host.mydomain.com
Uwaga: adresy protokołu IP w wersji 6 muszą być poprzedzone "Ipv6"
FEATURE(`relay_entire_domain')Akceptuje całą domenę wraz z podomenami.
FILTROWANIE WIADOMOŚCI
feature(`relay_based_on_MX')Odrzuca wiadomości adresowane na serwery, które nie mają rekordu mx w serwerze dns
FEATURE(`accept_unresolvable_domains')Akceptuje waidomości z domen których nie można zweryfikować czy istnieją.
FEATURE(`accept_unqualified_senders')Akceptuje wiadomośći od nie dających się zweryfikować urzetkowników.
FEATURE(`blacklist_recipients')Umożliwia blokowanie poczty dla lokalnych użytkowników, hostów homen...
FILTROWANIE WIADOMOŚCI
feature(`access_db', `hash -T<TMPF> /etc/mail/access_map')Filtrowanie oparte na bazie dostepu, do pliku access dopisujemy adresy lub/i domeny, które akceptujemy lub odrzucamy.
Tworzenie bazy z pliku:makemap hash /etc/mail/access < /etc/mail/access
przykładowy wpis:
From:spammer___aol.com REJECTFrom:cyberspammer.com REJECTConnect:cyberspammer.com REJECTConnect:TLD REJECTConnect:192.168.212 REJECTConnect:IPv6:2002:c0a8:02c7 RELAYConnect:IPv6:2002:c0a8:51d2::23f4 REJECT
FILTROWANIE WIADOMOŚCI
Ogólna składnia:tag:adres/domena/host akcja
Tagi:From pole nadawcy w kopercieTo pole odbiorcy w kopercieConnect połączenie z (nadawca + adres)
FILTROWANIE WIADOMOŚCI
Akcje:OK - akceptacjaRELAY - akceptacja, jest kilka różnic miedzy OK, a RELAYREJECT - odesłanie do nadawcy z domyślną wiadomością błęduDISCARD - brak akceptacjiskip - pominięcie sprawdzenia, podęcie domyślnej decyzji###“tekst” - odesłanie wiadomości z kodem błędu ### RFC821 i raportem
błędu “tekst”, tekst nie musie być cytowany, ale jest to wskazane
ERROR:###”tekst” - j/w tyle, że bardziej czytelneERROR:D.S.N:###”tekst” - j/w tyle, że kod błędu dotyczy RFC 1983QUARANTINE:”tekst” - wiadomość przeniesiona do kwarantanny
+ wiadomość zwrotna
FILTROWANIE WIADOMOŚCI
Inny przykład:From:cyberspammer.com ERROR:"550 We don't accept
mail from spammers"From:okay.cyberspammer.comOKConnect:sendmail.org RELAYTo:sendmail.org RELAYConnect:128.32 RELAYConnect:128.32.2 SKIPConnect:IPv6:1:2:3:4:5:6:7RELAYConnect:suspicious.example.com QUARANTINE:Mail from
suspicious hostTo:badlocaluser@ ERROR:550 Mailbox disabled
for badlocaluser
Linkografia
sendmail8.13.5/READMEsendmail8.13.5/cf/READMEhttp://www.networkcomputing.com/unixworld/tutorial/008/008.txt.html#overhttp://www.networkcomputing.com/unixworld/tutorial/01/01.txt.htmlhttp://zlobek.tcz.wroclaw.pl/dzial.php3?dzial=7http://www.sendmail.org/http://en.wikipedia.org/wiki/Sendmailhttp://www.nmr.mgh.harvard.edu/Sendmail8.9/ConfigFiles.shtmlhttp://rfc.net/rfc821.html