SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d....

24
 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

Transcript of SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d....

Page 1: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 2: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 3: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 4: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji 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

Page 5: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 6: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 7: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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!!!

Page 8: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 9: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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.

Page 10: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 11: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 12: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 13: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 14: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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"

Page 15: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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)

Page 16: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 17: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 18: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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.

Page 19: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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...

Page 20: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 21: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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)

Page 22: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 23: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

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

Page 24: SENDMAIL - Toruń · 2011-12-05 · Pliki jakie powinny zostać zainstalowane i ich znaczenie c.d. /etc/mail/helpfile Plik pomocy używany po wydaniu komendy HELP podczas sesji SMTP.

   

Linkografia

sendmail­8.13.5/READMEsendmail­8.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