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

Podobne dokumenty