En sentral post tjener skal konfigureres til å kunne ta i mot epost for brukerne i DNS domenet. DNS må være operativ og ha definerte MX poster som forteller hvilket system som tar i mot epost til brukerne i domenet. De forskjellige navnetjenerne for underdomenene til nnth.org må være registrert i modersonen med glue records. Postklienter skal kunne lese post ved hjelp av POP3 eller IMAP protokollen.
Oppgaven løses med de samme student gruppene som DNS oblig.
Installer postfix med kommando:
apt-get install
postfix
Ved spørsmål under installasjon angi "Internet Site", angi deretter ditt domenenavn i DNS som du skal
sende og motta mail for dom "System mail name", f.eks. abc123.nnth.org, benytt samme
domenenavn som tidligere under DNS lab.
I katalogen /etc/postfix/ ligger alle konfigurasjonsfilene for postfix. main.cf er hovedkonfigurasjonsfilen som skal editeres. Ta en kopi av main.cf til main.cf.org. Det er alltid godt å ta vare på originalen før en går i gang med endringer. Dokumentasjon på parametre i denne filen finner du på http://www.postfix.org/postconf.5.html
Nyttig Ubuntu dokumentasjon:
Setting up an Ubuntu System as an Email Server, PostfixBasicSetupHowTo og Postfix Ubuntu Server Guide.
Et alternativ for å redigere main.cf for hånd er å kjøre dpkg-reconfigure postfix, dokumentasjonen omhandler dette.
I utgangspunktet er postfix kun tilgjengelig for det lokale systemet. Sjekk filen /etc/postfix/main.cf. I mynetworks står kun 127.0.0.1/8 (+IPV6). Det betyr at kun eposttjeneren er tilgjengelig lokalt, således ingen sikkerhstrisiko. Vi skal benytte en webklient som skal kjøre på serveren, dermed kan dette bli stående slik. Skulle du ønske koble opp fra andre klienter utenfra må disse nettverkene legges til i lista.
Domenenavnet ditt må ligge i mydestination (dette ble gjort under installasjonen), systemet vil akseptere epost adressert til domener angitt her. Sjekk at dette stemmer.
tail -f /var/log/mail.log eller mail.err
et eget terminalvindu viser filen kontinuerlig, greit i en feilsøkingsfase og for å få en forståelse for hva som foregår.
Port 25 TCP må åpnes for innkommende og utgående trafikk.
Vi kan benytte Telnet for å kommunisere med eposttjeneren som lytter på port 25. Vi kan sende en epost ved hjelp av dette uten å benytte en epostklient. Gjør dette for å teste ut den nyinstallerte eposttjeneren. Som mail from: adresse må du angi en gyldig epostadresse som du har. Mottaker som angis i rcpt to: feltet angis en lokal bruker på ditt system, benytt den brukeren du er innlogget som, f.eks. brukeren stud.
NB ! Viktig, når du oppretter en egen bruker så blir ikke nødvendigvis hjemmekatalogen opprettet. Sjekk under /home/, dersom brukeren ikke har hjemmekatalog må du opprette denne og sette brukeren som eier. Hva som er brukerens hjemmekatalog står i /etc/passwd, men er normalt under /home/ og katalognavn lik brukernavn.
Feltet mail from: er fra feltet på konvolutten, det har ikke noe å gjøre med fra feltet på selve meldingen. Feltet legges inn i Received header og benyttes som return path. Likeså er feltet rcpt to: mottakerfeltet på konvolutten og ikke selve meldingen, legges inn i envelope-to header.
Her benyttes telnet mot eposttjeneren på port 25 på systemet 127.0.0.1. Legg inn din epostadresse der det står <din epost adresse>. Eposten sendes til den lokale brukeren ubuntu , legges inn der det står <innlogget bruker>. Er du innlogget med annen bruker benytt da denne.
root@user:~# telnet 127.0.0.1 25 Test i dag ! . |
Du kan benytte kommando mailq for å se mail køen, dvs mail som ligger i kø og venter på å bli sendt av postfix tjeneren, dersom du ikke ser noe her er det ingen kø :-)
Eposten skal dukke opp i postboksen ti brukeren du sendte den til. Alle postboksene ligger som standard i mappen /var/mail/. Eposten kan leses med kommandoen more /var/mail/<innlogget bruker>. All epost til brukeren vil ligge i denne filen. Sjekk også filen /var/log/mail.log, hva sier denne om eposten til brukeren ?
Opprett gjerne flere lokale brukere for testing. Alle brukere får automatisk også en postboks i mappen /var/mail/ når post kommer inn til brukeren. Vi benytter nå kun lokale brukere, en utvidelse av oppgaven vil være å hente brukere fra en LDAP tjener. Hva er beskyttelseskoden som standard for postboksene ?
Installer dovecot-imapd og dovecot-pop3d ved hjelp av apt.
Vi
benytter oss nå kun av POP3 for å teste ut mailtjeneren vår nå. Editer filen /etc/dovecot/dovecot.conf og angi hvor postboksene til brukerne er, angi følgende :
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u
%u vil bli erstattet med brukernavnet for den enkelte bruker av dovecot.
I første omgang
benytter vi nå klartekst passord over en ukryptert forbindelse. Start opp pop3/imap med kommando:
service dovecot restart
Før du fyrer opp en mailklient mot POP3 tjeneren kan du sjekke at denne virker ved å koble deg opp med telnet mot port 110, POP3 tjeneren lytter på denne porten. Her logger vi oss inn med brukeren din og passordet for denne. (Her er det en fordel å benytte en bruker som du vet har post i postboksen, benytt den du sendte epost til under pkt. Test av SMTP tjeneren.)
(Her er det vist for brukeren hintest med passordet hemmelig)
telnet 127.0.0.1 110
Test i dag ! .
|
POP3 Kommandoer er blant annet beskrevet her: http://techhelp.santovec.us/pop3telnet.htm
NB ! Dersom ingen meldinger i postboksen lukkes forbindelsen umiddelbart, dette er normalt. POP3 Benyttes kun til denne testen, IMAP benyttes videre i oppgaven.
I DNS må du i sonefilen registrere hvilket system som tar i mot epost for sonen din, dette gjøres med en MX post. Legg inn en ny post ala det følgende i sonefilen for abc123xx.nnth.org:
MX 10 navn-paa-server
navn-paa-server byttes ut med navnet på din server., dette må også være definert i DNS med en A post, slik at IP adressen er kjent.
Definer en TXT post for domenet ditt som angir hvilke systemer som kan sende epost. mer om formatet finner du her: http://www.openspf.org/FAQ/Examples
Dersom du jobber direkte på tjeneren via SSH kan du installere alpine, det er en tekst basert epost klient, her må du inn i konfigurasjonen og angi avsenderdomene før du sender epost. Ønsker du en webklient kan squirremail installeres, mer om den her https://www.linode.com/docs/email/clients/install-squirrelmail-on-ubuntu-16-04-or-debian-8
Det skal nå være mulig
å sende en e-post til din bruker på mailtjeneren.Prøv sende epost til bruker@xxx.nnth.org
fra din UIT mail eller google mail. For at dette siste skal virke må det i DNS være lagt inn en MX post som
forteller hvem som tar i mot epost for domenet xxx.nnth.org. UIT og Google mail skal fungere ok, sjekk at du kan svare på disse også.
Både Postfix og Dovecot er satt opp med selvsignerte sertifikat. For Postfix ligger er dette spesifisert i main.cf med følgende:
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
For Dovecot ligger sertifikatet mappa /etc/ssl/certs/dovecot.pem og den private nøkkelen i /etc/ssl/private/dovecot.pem. Som standard tillater ikke dovecot oppkobling uten bruk av kryptering (tillates kun fra localhost). I mappa /etc/dovecot/conf.d/10-ssl.conf er det disse nøklene spesifiseres.
Lets Encrypt tilbyr gratis sertifikat for 90 dagers varighet, gå til https://letsencrypt.org/ og følg framgangsmåten der. Du kan slå på TLS for Postfix slik at trafikken mellom din eposttjener og andre eposttjenere krypteres, følgende parametre må angis:
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtp_tls_loglevel = 1
smtpd_tls_loglevel = 1
may angir her at kryptering vil finne sted dersom serveren i andre enden støtter dette. Parameter smtpd_ gjelder for innkommende epost, smtp_ gjelder for utgående epost. Noe mer om dette her: http://blog.snapdragon.cc/2013/07/07/setting-postfix-to-encrypt-all-traffic-when-talking-to-other-mailservers/
Alias er alternative navn for postboksen din, her kan du legge inn kallenavn, fult navn (som Ola. Normann) osv. Dette gjøres i filen /etc/aliases. Her kan du også lage en adresseliste ved å legge inn flere navn på lokale brukere. Benytt komma som skilletegn mellom brukernavn, man aliases forteller mer. Lag en adresseliste med navn "studenter" der flere brukerne inngår. Kjør kommandoen newaliases for å få aktivert de nye aliasene og sjekk ut at de virker ved å sende epost til denne adresselista.
Implementer følgende antispam teknikker:
For utførelse av denne del av oppgaven benytt følgende kilde: Filtering SPAM with Postfix Ikke utfør pkt. 3 grålisting før pkt 1 & 2 fungerer tilfredstillende. Mer om HELO begrensninger på denne adressen http://www.postfix.org/postconf.5.html#smtpd_helo_restrictions, dersom du tester ut disse, vær oppmerksom på at HELO begrensninger sjekkes ved kjøring av RCPT TO kommandoen og ikke før !
Kommentarer:
Ang. del 1 grålisting og SPF. Grålisting for Postfix er et separat produkt, installer pakken POSTGREY med apt. Denne installerer og starter opp en egen prosess som lytter på port 10023, slik det står i main.cf linje 29 i dokumentet "Filtering SPAM with POSTFIX". Kommenter ut linja over. Det skal ikke være behov for å endre master.cf, installasjonen av postgrey gjør dette.
Ikke alt i HELO begrensninger må tas med, vi kan generelt her droppe alle aksesslister slike som på linje 5
5 check_helo_access hash:/usr/local/etc/postfix/helo_access,Tilsvarende når det gjelder Recipient restrictions, her sløyfer vi også aksesslistene (whitelist/blacklist) på linje 22-24
22 check_sender_access hash:/usr/local/etc/postfix/sender_access,
23 check_recipient_access hash:/usr/local/etc/postfix/recipient_access,
24 check_helo_access hash:/usr/local/etc/postfix/secondary_mx_access,
Ang bruk av blacklists i postfix, ordb.org er stengt ned, så denne kan ikke benyttes, ref linjene 25-26. Dropp linje 27, mens linje 29 som nevnt over angir grålistingen, dette er det viktigste av alle SPAM tiltakene og må være med. Postgrey prosessen kjører på ditt lokale system etter installasjonen og lytter på port 10023.
Det er viktig å sjekke at tjeneren ikke er åpen for andre enn de vi har tenkt oss. Kjør sjekk av din epost tjener på https://mxtoolbox.com/SuperTool.aspx .Velg fanen "Diagnostics" og gi inn navnet på dein mailtjener. Testene skal gå igjennom vellykket, men "SMTP banner check" vil feile pga. revers DNS ikke er satt opp til din mailtjener.
Det skal nå være mulig å sende epost innenfor et domene, dersom DNS tjenerne for hvert domene er registrert i foreldresonen nnth.org, skal det også kunne sendes mail mellom domener. Send en epost fra ditt system til faglærer på adressen knut@nnth.org som et bevis på at du har fått konfigurert dette riktig. Svaret på denne eposten benyttes som dokumentasjon på utført oppgave og vedlegges besvarelsen.
Alle og filer
opprettet/endret leveres i et PDF dokument for lett lesbarhet.
Følgende inkluderes i dokumentet: