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

Post on 22-Jul-2020

1 views 0 download

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

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