Prezentacja
Transkrypt
Prezentacja
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 ZAPIS MAILA WG. RFC 822 - MAIL From - Fri Nov 18 13:36:12 2005 X-UIDL: 1130538968.11 X-Mozilla-Status: 0001 X-Mozilla-Status2: 00000000 Return-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 +0100 X-mf: first3.pl v0.6 Received: by mx4.go2.pl (Postfix) id 7B28857D5BA; Fri, 18 Nov 2005 13:34:12 +0100 (CET) Delivered-To: piersaj___o2.pl Received: from mx4.go2.pl (mx4 [127.0.0.1]) by mx4.go2.pl (Postfix) with ESMTP id 61AE257D63B for <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 ESMTP for <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 jAICXABL026320 for piersaj___o2.pl; Fri, 18 Nov 2005 13:33:59 +0100 Date: Fri, 18 Nov 2005 13:33:10 +0100 From: Jaroslaw Piersa <piersaj___mat.uni.torun.pl> Message-Id: <200511181233.jAICXABL026320___Leon.mat.uni.torun.pl> X-Virus-Scanned: by amavisd-new To: undisclosed-recipients:; ala ma kota jp RFC 821 – SESJA SMTP juliusz:2% telnet leon 25 Trying 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 +0100 helo juliusz.mat.uni.torun.pl 250 Leon.mat.uni.torun.pl Hello Juliusz [158.75.2.230], pleased to meet you mail from: piersaj___mat.uni.torun.pl 250 2.1.0 piersaj___mat.uni.torun.pl... Sender ok rcpt to: piersaj___o2.pl 250 2.1.5 piersaj___o2.pl... Recipient ok data 354 Enter mail, end with "." on a line by itself ala ma kota jp . 250 2.0.0 jAICXABL026320 Message accepted for delivery quit 221 2.0.0 Leon.mat.uni.torun.pl closing connection Connection to Leon closed by foreign host. ROLA SERWERA DNS rekordy MX Rekordy MX odpowiadają za obsługę poczty kierowanej na dany adres /var/named/host.zone: pc-91-205.akademiki.uni.torun.pl. IN pc-91-205.akademiki.uni.torun.pl. IN inny_host.akademiki.uni.torun.pl. IN inny_host.akademiki.uni.torun.pl. IN MX MX MX MX 1 5 1 5 158.75.91.205. 158.75.91.206. 158.75.91.205. 158.75.91.206. 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 maili Do 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: postmaster postmaster: root JaroslawPiersa: 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/console fi /etc/mail/statistics można zmienić w konfiguracji. Statystyki programu, nazwę i lokalizację 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 HELP 214-2.0.0 This is sendmail version 8.13.5 214-2.0.0 Topics: 214-2.0.0 HELO EHLO MAIL RCPT DATA 214-2.0.0 RSET NOOP QUIT HELP VRFY 214-2.0.0 EXPN VERB ETRN DSN AUTH 214-2.0.0 STARTTLS 214-2.0.0 For more info use "HELP <topic>". 214-2.0.0 To report bugs in the implementation send email to 214-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 -bD uruchomienie jako demon na pierwszym planie #>sendmial -bd -q30m wysyłanie wiadomości zakolejkowanych co 30 min, inne jednostki: s, m, h, d, w #>sendmial -bp patrz /usr/bin/mailq #>sendmial -C file użyj inngo pliku konfiguracyjnego KONFIGURACJA SENDMAILA Plik konfiguracyjny Sendmaila to /etc/mail/sendmail.cf Oto jego mały fragment: # Access list database (for spam stomping) Kaccess hash -T<TMPF> /etc/mail/access # location of help file O HelpFile=/etc/mail/helpfile R$* R$* < $* > $* <@> R@ $* <@> $: $1 <@> $: $1 < $2 > $3 $: @ $1 mark addresses unmark <addr> unmark @host:... # strip local host from routed addresses R< $* > < @ $+ > : $+ $@ $>Recurse $3 R< $* > $+ $=O $+ < @ $+ > $@ $>Recurse $2 $3 $4 KONFIGURACJA SENDMAILA Pliki .mc 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 SENDMAILA Struktura pliku mc: VERSIONID OSTYPE DOMAIN FEATURE local macro definitions MAILER LOCAL_CONFIG LOCAL_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 lub wylistowanej w pliku. Np: parametr sendmail.org 128.32 IPv6:2002:c0a8:02c7 IPv6:2002:c0a8:51d2::23f4 host.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 From:cyberspammer.com Connect:cyberspammer.com Connect:TLD Connect:192.168.212 Connect:IPv6:2002:c0a8:02c7 Connect:IPv6:2002:c0a8:51d2::23f4 REJECT REJECT REJECT REJECT REJECT RELAY REJECT FILTROWANIE WIADOMOŚCI Ogólna składnia: tag:adres/domena/host Tagi: From To Connect akcja pole nadawcy w kopercie pole odbiorcy w kopercie połączenie z (nadawca + adres) FILTROWANIE WIADOMOŚCI Akcje: OK RELAY REJECT DISCARD skip ###“tekst” - akceptacja - akceptacja, jest kilka różnic miedzy OK, a RELAY - odesłanie do nadawcy z domyślną wiadomością błędu - brak akceptacji - pominięcie sprawdzenia, podęcie domyślnej decyzji - 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 czytelne ERROR:D.S.N:###”tekst” - j/w tyle, że kod błędu dotyczy RFC 1983 QUARANTINE:”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.com OK Connect:sendmail.org RELAY To:sendmail.org RELAY Connect:128.32 RELAY Connect:128.32.2 SKIP Connect:IPv6:1:2:3:4:5:6:7 RELAY Connect:suspicious.example.com QUARANTINE:Mail from suspicious host To:badlocaluser@ ERROR:550 Mailbox disabled for badlocaluser Linkografia sendmail8.13.5/README sendmail8.13.5/cf/README http://www.networkcomputing.com/unixworld/tutorial/008/008.txt.html#over http://www.networkcomputing.com/unixworld/tutorial/01/01.txt.html http://zlobek.tcz.wroclaw.pl/dzial.php3?dzial=7 http://www.sendmail.org/ http://en.wikipedia.org/wiki/Sendmail http://www.nmr.mgh.harvard.edu/Sendmail8.9/ConfigFiles.shtml http://rfc.net/rfc821.html