Ero sivun ”Postfix” versioiden välillä
(67 välissä olevaa versiota samalta käyttäjältä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
+ | <languages/> | ||
+ | <translate> | ||
+ | <!--T:1--> | ||
Postfix on sähköpostin välitysohjelmisto (MTA). Postfix on avoimen lisenssillä varustettu ohjelmisto. Tietoturvallisessa ja suorituskykyisessä Postfixissä on hyvä roskapostin suodatus. | Postfix on sähköpostin välitysohjelmisto (MTA). Postfix on avoimen lisenssillä varustettu ohjelmisto. Tietoturvallisessa ja suorituskykyisessä Postfixissä on hyvä roskapostin suodatus. | ||
+ | <!--T:2--> | ||
Suosittelemme käyttämään myös [[Spamassassin]] ja [[Amavis]] suojaamaan sähköpostipalvelinta roskapostittajilta. | Suosittelemme käyttämään myös [[Spamassassin]] ja [[Amavis]] suojaamaan sähköpostipalvelinta roskapostittajilta. | ||
− | == Asennus == | + | == Asennus == <!--T:3--> |
− | [[aptitude]] install postfix | + | <!--T:4--> |
+ | [[aptitude]] install postfix | ||
+ | <!--T:5--> | ||
Seuraa asennusohjelman ohjeita | Seuraa asennusohjelman ohjeita | ||
+ | <!--T:6--> | ||
[[Tiedosto:postfix1.png]] | [[Tiedosto:postfix1.png]] | ||
+ | <!--T:7--> | ||
Tämän jälkeen sinun tulee antaa palvelimen isäntänimi | Tämän jälkeen sinun tulee antaa palvelimen isäntänimi | ||
+ | <!--T:8--> | ||
esimerkiksi: | esimerkiksi: | ||
− | mail.example.com | + | <!--T:9--> |
+ | mail.example.com | ||
− | == Konfigurointi == | + | == Konfigurointi == <!--T:10--> |
+ | <!--T:11--> | ||
Avaa konfigurointi tiedosto: | Avaa konfigurointi tiedosto: | ||
− | [[nano]] /etc/postfix/main.cf | + | <!--T:12--> |
+ | [[nano]] /etc/postfix/main.cf | ||
+ | <!--T:13--> | ||
Tarkista postifixin konfigurointi tiedostossa on määritetty tietokoneen isäntänimi ja palvelimen osoite | Tarkista postifixin konfigurointi tiedostossa on määritetty tietokoneen isäntänimi ja palvelimen osoite | ||
− | myhostname = server.example.com | + | <!--T:14--> |
+ | myhostname = server.example.com | ||
alias_maps = hash:/etc/aliases | alias_maps = hash:/etc/aliases | ||
alias_database = hash:/etc/aliases | alias_database = hash:/etc/aliases | ||
Rivi 39: | Rivi 53: | ||
inet_interfaces = all | inet_interfaces = all | ||
+ | <!--T:15--> | ||
Tallenna tiedosto ja avaa seuraavaksi tiedosto | Tallenna tiedosto ja avaa seuraavaksi tiedosto | ||
− | nano /etc/postfix/master.cf | + | <!--T:16--> |
+ | nano /etc/postfix/master.cf | ||
+ | <!--T:17--> | ||
Oletuksena master.cf tiedostossa on sallittu normaali SMTP yhteys portissa 25. | Oletuksena master.cf tiedostossa on sallittu normaali SMTP yhteys portissa 25. | ||
− | smtp inet n - - - - smtpd | + | <!--T:18--> |
+ | smtp inet n - - - - smtpd | ||
+ | <!--T:19--> | ||
Oletuksena seuraavat ovat risuaidalla merkitty (#). | Oletuksena seuraavat ovat risuaidalla merkitty (#). | ||
+ | <!--T:20--> | ||
Ota käyttöön poistamalla risuaita 587 portissa tapahtuva SMTP tiedonsiirtoa. Sillä voi myös siirtää salattua liikennettä komennolla STARTTLS. | Ota käyttöön poistamalla risuaita 587 portissa tapahtuva SMTP tiedonsiirtoa. Sillä voi myös siirtää salattua liikennettä komennolla STARTTLS. | ||
− | submission inet n - - - - smtpd | + | <!--T:21--> |
+ | submission inet n - - - - smtpd | ||
-o syslog_name=postfix/submission | -o syslog_name=postfix/submission | ||
-o smtpd_tls_security_level=encrypt | -o smtpd_tls_security_level=encrypt | ||
Rivi 59: | Rivi 80: | ||
-o milter_macro_daemon_name=ORIGINATING | -o milter_macro_daemon_name=ORIGINATING | ||
+ | <!--T:22--> | ||
Ota käyttöön poistamalla risuaita SMTPS yhteys (portissa 465). SSL salaus käytetään tässä yhteydessä oletuksena. SASL todennusta suositellaan käytettäväksi. | Ota käyttöön poistamalla risuaita SMTPS yhteys (portissa 465). SSL salaus käytetään tässä yhteydessä oletuksena. SASL todennusta suositellaan käytettäväksi. | ||
− | smtps inet n - - - - smtpd | + | <!--T:23--> |
+ | smtps inet n - - - - smtpd | ||
-o syslog_name=postfix/smtps | -o syslog_name=postfix/smtps | ||
-o smtpd_tls_wrappermode=yes | -o smtpd_tls_wrappermode=yes | ||
Rivi 68: | Rivi 91: | ||
-o milter_macro_daemon_name=ORIGINATING | -o milter_macro_daemon_name=ORIGINATING | ||
− | === Selitetään: === | + | === Selitetään: === <!--T:24--> |
+ | <!--T:25--> | ||
Palvelimesi nimi (tarkista että on sama kuin hostname (komento: hostname)): | Palvelimesi nimi (tarkista että on sama kuin hostname (komento: hostname)): | ||
myhostname = server.example.com | myhostname = server.example.com | ||
Rivi 82: | Rivi 106: | ||
Tämä vaaditaan jos ei ole suoraa yhteyttä verkkoon. | Tämä vaaditaan jos ei ole suoraa yhteyttä verkkoon. | ||
+ | <!--T:26--> | ||
Esimerkkinä Soneran postipalvelin: | Esimerkkinä Soneran postipalvelin: | ||
relayhost = [mail.inet.fi]:25 | relayhost = [mail.inet.fi]:25 | ||
+ | <!--T:27--> | ||
DNA postipalvelin: | DNA postipalvelin: | ||
relayhost = [smtp.dnainternet.net]:25 | relayhost = [smtp.dnainternet.net]:25 | ||
+ | <!--T:28--> | ||
Lähiverkkosi: | Lähiverkkosi: | ||
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 | mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 | ||
Rivi 97: | Rivi 124: | ||
inet_interfaces = all | inet_interfaces = all | ||
+ | <!--T:29--> | ||
Sulje tiedosto ja käynnistä postfix uudelleen | Sulje tiedosto ja käynnistä postfix uudelleen | ||
− | service postfix restart | + | <!--T:30--> |
+ | service postfix restart | ||
+ | |||
+ | == Lisäasetukset == <!--T:31--> | ||
+ | |||
+ | === Virtuaali sähköpostiosoitteet === <!--T:32--> | ||
+ | |||
+ | <!--T:33--> | ||
+ | Voit ohjata virtuaali sähköpostiosoitteet esimerkiksi [email protected] ja [email protected] omalle käyttäjällesi. | ||
+ | |||
+ | <!--T:34--> | ||
+ | Avaa tiedosto: | ||
+ | |||
+ | <!--T:35--> | ||
+ | /etc/aliases | ||
+ | |||
+ | <!--T:36--> | ||
+ | # /etc/aliases | ||
+ | mailer-daemon: postmaster | ||
+ | postmaster: root | ||
+ | nobody: root | ||
+ | hostmaster: root | ||
+ | usenet: root | ||
+ | news: root | ||
+ | webmaster: root | ||
+ | www: root | ||
+ | ftp: root | ||
+ | abuse: root | ||
+ | noc: root | ||
+ | security: root | ||
+ | root = [username] | ||
+ | |||
+ | <!--T:37--> | ||
+ | Muuttamalla [username] kohta omaksi käyttäjätiliksi saat kaikki näiden käyttäjätilien sähköpostit samaan sähköpostilaatikkoon. Voit lisätä muitakin osoitteita tiedoston loppuun: | ||
+ | |||
+ | <!--T:38--> | ||
+ | [alias_postinimi] = [käyttäjälle] | ||
+ | |||
+ | <!--T:39--> | ||
+ | Vahvista muutokset | ||
+ | |||
+ | <!--T:40--> | ||
+ | newaliases | ||
+ | |||
+ | === Virtuaali domainit === <!--T:41--> | ||
+ | |||
+ | <!--T:42--> | ||
+ | Virtuaaliset domainit siis ovat tarkoitettu sähköpostipalvelimelle joka lähettää ja vastaanottaa usealle eri domainille. | ||
+ | |||
+ | |||
+ | <!--T:43--> | ||
+ | Avaa Postfixin konfigurointi tiedosto main.cf | ||
+ | |||
+ | <!--T:44--> | ||
+ | /etc/postfix/main.cf | ||
+ | |||
+ | <!--T:45--> | ||
+ | Lisää seuraavat rivit: | ||
+ | |||
+ | <!--T:46--> | ||
+ | virtual_alias_domains = example.com | ||
+ | virtual_alias_maps = hash:/etc/postfix/virtual | ||
+ | |||
+ | <!--T:47--> | ||
+ | Luo uusi tiedosto | ||
+ | |||
+ | <!--T:48--> | ||
+ | [email protected] postmaster | ||
+ | [email protected] matti | ||
+ | [email protected] kalle | ||
+ | # Uncomment entry below to implement a catch-all address | ||
+ | # @example.com aleksi | ||
+ | |||
+ | <!--T:49--> | ||
+ | Älä lisää virtual_alias_domain:ia mydestination domainiksi! | ||
+ | |||
+ | === Sähköpostin uudelleenohjaus === <!--T:50--> | ||
+ | |||
+ | <!--T:51--> | ||
+ | Sähköpostin uudelleenohjaus [email protected] -> matti.example2.com esimerkiksi. | ||
+ | |||
+ | <!--T:52--> | ||
+ | Avaa Postfixin konfigurointi tiedosto main.cf | ||
+ | |||
+ | <!--T:53--> | ||
+ | /etc/postfix/main.cf: | ||
+ | |||
+ | <!--T:54--> | ||
+ | Lisää seuraavat rivit tiedostoon: | ||
+ | |||
+ | <!--T:55--> | ||
+ | virtual_alias_domains = example.com | ||
+ | virtual_alias_maps = hash:/etc/postfix/virtual | ||
+ | |||
+ | <!--T:56--> | ||
+ | Luo uusi tiedosto | ||
+ | |||
+ | <!--T:57--> | ||
+ | /etc/postfix/virtual: | ||
+ | |||
+ | <!--T:58--> | ||
+ | Lisää seuraavat rivit tiedostoon | ||
+ | [email protected] postmaster | ||
+ | |||
+ | |||
+ | # Uncomment entry below to implement a catch-all address | ||
+ | # @example.com jim@yet-another-site | ||
+ | |||
+ | <!--T:59--> | ||
+ | Uudelleenohjattava sähköpostin domain tulee olla mydestination merkitty. Et voi uudelleenohjata aliaksia /etc/alias | ||
+ | |||
+ | <!--T:60--> | ||
+ | Tarkista konfiguraatio | ||
+ | |||
+ | <!--T:61--> | ||
+ | postmap /etc/postfix/virtual | ||
− | == Testataan Postfixin toimintaa == | + | == Testataan Postfixin toimintaa == <!--T:62--> |
+ | <!--T:63--> | ||
Lähetetään testisähköposti: | Lähetetään testisähköposti: | ||
+ | <!--T:64--> | ||
Asenna tämä sähköpostityökälut jos ei ole asennettu: | Asenna tämä sähköpostityökälut jos ei ole asennettu: | ||
− | apt-get install mailutils | + | <!--T:65--> |
+ | apt-get install mailutils | ||
+ | <!--T:66--> | ||
ja sen jälkeen lähetetään sähköpostia: | ja sen jälkeen lähetetään sähköpostia: | ||
− | mail [email protected] | + | <!--T:67--> |
+ | mail [email protected] | ||
+ | <!--T:68--> | ||
Komento tulostaa: | Komento tulostaa: | ||
Subject: Aiheesi viestille | Subject: Aiheesi viestille | ||
+ | <!--T:69--> | ||
Tämän jälkeen kirjoita viesti (ja ENTER) ja tulostuu: | Tämän jälkeen kirjoita viesti (ja ENTER) ja tulostuu: | ||
− | CC: | + | <!--T:70--> |
+ | CC: | ||
+ | <!--T:71--> | ||
jonka voi jättää tyhjäksi. Lähetä sähköposti näppäinyhdistelmällä CTRL+D. | jonka voi jättää tyhjäksi. Lähetä sähköposti näppäinyhdistelmällä CTRL+D. | ||
− | == Sähköpostipalvelimen suojaaminen == | + | == Sähköpostipalvelimen suojaaminen == <!--T:72--> |
+ | <!--T:73--> | ||
Kun luot oman sähköpostipalvelimen, sitä pitää heti alkaa suojaamaan ahkerasti roskapostittajia vastaan. Suositus on ottaa myös SASL todennus käyttöön. | Kun luot oman sähköpostipalvelimen, sitä pitää heti alkaa suojaamaan ahkerasti roskapostittajia vastaan. Suositus on ottaa myös SASL todennus käyttöön. | ||
− | === Roskapostien suodatus === | + | === Roskapostien suodatus === <!--T:74--> |
+ | <!--T:75--> | ||
Lisäämällä seuraava koodi pätkä tarkistaa onko lähettäjän verkkotunnus olemassa: | Lisäämällä seuraava koodi pätkä tarkistaa onko lähettäjän verkkotunnus olemassa: | ||
− | nano /etc/postfix/main.cf | + | <!--T:76--> |
+ | nano /etc/postfix/main.cf | ||
− | smtpd_recipient_restrictions = reject_invalid_hostname, | + | <!--T:77--> |
+ | smtpd_recipient_restrictions = reject_invalid_hostname, | ||
reject_unknown_recipient_domain, | reject_unknown_recipient_domain, | ||
reject_unauth_destination, | reject_unauth_destination, | ||
Rivi 139: | Rivi 295: | ||
permit | permit | ||
− | smtpd_helo_restrictions = reject_invalid_helo_hostname, | + | <!--T:78--> |
+ | smtpd_helo_restrictions = reject_invalid_helo_hostname, | ||
reject_non_fqdn_helo_hostname, | reject_non_fqdn_helo_hostname, | ||
reject_unknown_helo_hostname | reject_unknown_helo_hostname | ||
+ | <!--T:79--> | ||
Ja tämä tarkistaa listan onko verkkotunnus merkitty roskapostittajaksi: | Ja tämä tarkistaa listan onko verkkotunnus merkitty roskapostittajaksi: | ||
− | [[nano]] /etc/postfix/main.cf | + | <!--T:80--> |
+ | [[nano]] /etc/postfix/main.cf | ||
− | smtpd_client_restrictions = reject_rbl_client dnsbl.sorbs.net | + | <!--T:81--> |
+ | smtpd_client_restrictions = reject_rbl_client dnsbl.sorbs.net | ||
− | === SMTPS SASL todennus === | + | === SMTPS SASL todennus === <!--T:82--> |
+ | <!--T:83--> | ||
Lisäämällä seuraava rivi, niin estät sähköpostin välitykset muusta kuin omasta verkostasi. SASL tunnistuksen avulla voit lähettää muustakin verkosta | Lisäämällä seuraava rivi, niin estät sähköpostin välitykset muusta kuin omasta verkostasi. SASL tunnistuksen avulla voit lähettää muustakin verkosta | ||
− | [[nano]] /etc/postfix/main.cf | + | <!--T:84--> |
+ | [[nano]] /etc/postfix/main.cf | ||
+ | |||
+ | <!--T:85--> | ||
+ | smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject | ||
+ | |||
+ | Hyödynnä Dovecottia SASL todennuksessa. Tämä toimii siis Dovecotin todennuksen kanssa. | ||
+ | |||
+ | <pre> | ||
+ | # SASL authentication | ||
+ | smtpd_sasl_auth_enable=yes | ||
+ | smtpd_sasl_type = dovecot | ||
+ | smtpd_sasl_path = private/auth | ||
+ | smtpd_sasl_security_options = noanonymous | ||
+ | smtpd_sasl_tls_security_options = noanonymous | ||
+ | </pre> | ||
+ | |||
+ | Lisäksi poista risuaita tiedostosta | ||
+ | |||
+ | nano /etc/dovecot/conf.d/10-master.conf | ||
+ | |||
+ | kohdasta | ||
+ | |||
+ | <pre> | ||
+ | # Postfix smtp-auth | ||
+ | unix_listener /var/spool/postfix/private/auth { | ||
+ | mode = 0666 | ||
+ | user = postfix | ||
+ | group = postfix | ||
− | + | } | |
+ | </pre> | ||
− | [[nano]] /etc/postfix/master.cf | + | <!--T:86--> |
+ | [[nano]] /etc/postfix/master.cf | ||
+ | <!--T:87--> | ||
Ota seuraavilta riveiltä risuaita pois submission ja smtps kohdasta. Jos haluat SMTP portille myös audikoinnin, lisää tämä seuraavat rivi sen alle. | Ota seuraavilta riveiltä risuaita pois submission ja smtps kohdasta. Jos haluat SMTP portille myös audikoinnin, lisää tämä seuraavat rivi sen alle. | ||
− | -o smtpd_sasl_auth_enable=yes | + | <!--T:88--> |
+ | -o smtpd_sasl_auth_enable=yes | ||
-o smtpd_client_restrictions=permit_sasl_authenticated,reject | -o smtpd_client_restrictions=permit_sasl_authenticated,reject | ||
− | === TLS (STARTSSL) === | + | === TLS (STARTSSL) === <!--T:89--> |
+ | <!--T:90--> | ||
Esimerkki konfiguraatio tiedostosta /etc/postfix/main.cf | Esimerkki konfiguraatio tiedostosta /etc/postfix/main.cf | ||
− | + | <!--T:91--> | |
− | + | <pre> | |
− | + | smtpd_use_tls=yes | |
− | + | smtpd_tls_security_level = may | |
− | + | smtp_tls_security_level = may | |
− | + | smtpd_tls_cert_file=/etc/ssl/postfix.cert | |
− | + | smtpd_tls_key_file=/etc/ssl/postfix.key | |
+ | smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt | ||
+ | smtpd_tls_security_level = may | ||
+ | smtpd_tls_auth_only = yes | ||
+ | smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache | ||
+ | smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3 | ||
+ | smtpd_tls_protocols=!SSLv2,!SSLv3,TLSv1,TLSv1.1,TLSv1.2 | ||
+ | smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5 , DES, ADH, !RC4, PSD, SRP, 3DES, eNULL | ||
+ | smtpd_tls_mandatory_ciphers = high | ||
+ | tls_high_cipherlist = AES128+EECDH:AES128+EDH | ||
+ | </pre> | ||
+ | <!--T:92--> | ||
Ota käyttöön Submission kohdasta risuaidat pois. | Ota käyttöön Submission kohdasta risuaidat pois. | ||
+ | <!--T:93--> | ||
Testaa STARTSSL: https://starttls.info/ | Testaa STARTSSL: https://starttls.info/ | ||
− | === SMTPS == | + | https://checktls.com/ |
+ | https://ssl-tools.net/mailservers/ | ||
+ | |||
+ | Testaa openssl_client komennolla toimivuuksia | ||
+ | |||
+ | openssl s_client -connect mail.example.org:587 | ||
+ | |||
+ | ==== TLS-Policy ==== | ||
+ | |||
+ | TLS Policyllä eli säännöillä voidaan määrittää missä sivuilla esimerkiksi on pakotettu TLS käyttöön ja missä vaihtoehtoisesti. | ||
+ | |||
+ | Lisää tämä main.conf tiedostoon | ||
+ | |||
+ | smtp_tls_policy_maps = hash:/etc/postfix/tls_policy | ||
+ | |||
+ | Luo tiedosto /etc/postfix/tls_policy . Policyyn määritetään domainit jossa on pakotettu salaus encrypt määritteellä. Testaa lähettämällä gmailiin niin gmail ilmoittaa että sähköposti on salattu. | ||
+ | |||
+ | <pre> | ||
+ | gmail.com encrypt | ||
+ | .gmail.com encrypt | ||
+ | ssl-tools.net encrypt | ||
+ | .ssl-tools.net encrypt | ||
+ | </pre> | ||
+ | |||
+ | Hash sisältö postmap komennolla | ||
+ | |||
+ | sudo postmap /etc/postfix/tls_policy | ||
+ | |||
+ | Lataa Postfix konfiguraatio uudelleen | ||
+ | |||
+ | sudo service postfix reload | ||
+ | |||
+ | === Poista lähtevistä sähköposteistä asiakkaan header-tiedot === | ||
+ | |||
+ | Tällä tarkoituksena on poistaa esimerkiksi sähköpostiasiakasohjelmalla lähtevien IP-osoitteet suojaten yksityisyyttä. Tiedot kuitenkin tallentuu palvelimen lokiin normaalisti. | ||
+ | |||
+ | Asenna Postfix-pcre | ||
+ | |||
+ | sudo apt install postfix-pcre | ||
+ | |||
+ | Luo uusi tiedosto smtp_header_checks | ||
+ | |||
+ | sudo nano /etc/postfix/smtp_header_checks | ||
+ | |||
+ | Ja lisää tiedostoon | ||
+ | |||
+ | <pre> | ||
+ | /^\s*(Received: from)[^\n]*(.*)/ REPLACE $1 [127.0.0.1] (localhost [127.0.0.1])$2 | ||
+ | /^\s*User-Agent/ IGNORE | ||
+ | /^\s*X-Enigmail/ IGNORE | ||
+ | /^\s*X-Mailer/ IGNORE | ||
+ | /^\s*X-Originating-IP/ IGNORE | ||
+ | </pre> | ||
+ | |||
+ | Tämä muuttaa from-headeristä kaikki IP-osoitteet 127.0.0.1:seksi. Poistaa asiakasohjelman User-Agentin yms tiedot. | ||
+ | |||
+ | Lisää tämän jälkeen Postfixin main.conf tiedostoon rivi | ||
+ | |||
+ | smtp_header_checks = pcre:/etc/postfix/smtp_header_checks | ||
+ | |||
+ | Ja lataa konfiguraatio uudelleen | ||
+ | |||
+ | sudo service postfix reload | ||
+ | |||
+ | |||
+ | [[Luokka:Linux|Postfix]] | ||
+ | |||
+ | == Telia Postipalvelimen käytössä Relaynä - SMTPS == <!--T:94--> | ||
− | Postfixissä on tuki SSL yhteydelle TLS:n kanssa mutta ei pelkästään SSL kanssa. Tämä seuraava ohje | + | <!--T:95--> |
+ | Postfixissä on tuki SSL yhteydelle TLS:n kanssa mutta ei pelkästään SSL kanssa. Tämä seuraava ohje on pelkästään SSL, mutta jos on tuki TLS salaukselle, on suositeltavaa käyttää sitä. | ||
+ | <!--T:96--> | ||
Ohjeen lähde: http://www5.sonera.fi/keskustele/viewtopic.php?f=59&t=9210 | Ohjeen lähde: http://www5.sonera.fi/keskustele/viewtopic.php?f=59&t=9210 | ||
+ | <!--T:97--> | ||
SMTPS on salattu SMTP yhteys ja nykyisin suositus olisi käyttää tätä ominaisuutta. | SMTPS on salattu SMTP yhteys ja nykyisin suositus olisi käyttää tätä ominaisuutta. | ||
+ | <!--T:98--> | ||
Esimerkkinä on Soneran verkko: | Esimerkkinä on Soneran verkko: | ||
− | + | <!--T:100--> | |
− | + | relayhost = [mail.inet.fi] | |
− | |||
+ | <!--T:101--> | ||
Nyt olisi aika siirtyä salattuun postiin ja tämä on hieman hankalempi, kun Soneran omat postipalvelimet eivät tue TLS salausta. Postfix ei tue SSL salausta, mutta asennetaan pieni kiertotie niin se onnistuu. | Nyt olisi aika siirtyä salattuun postiin ja tämä on hieman hankalempi, kun Soneran omat postipalvelimet eivät tue TLS salausta. Postfix ei tue SSL salausta, mutta asennetaan pieni kiertotie niin se onnistuu. | ||
+ | <!--T:102--> | ||
Asennetaan ensin Stunnel | Asennetaan ensin Stunnel | ||
− | [[aptitude]] install stunnel | + | <!--T:103--> |
+ | [[aptitude]] install stunnel | ||
+ | <!--T:104--> | ||
Luodaan tiedosto /etc/stunnel/postfix.conf ja kopioi alla oleva koodi: | Luodaan tiedosto /etc/stunnel/postfix.conf ja kopioi alla oleva koodi: | ||
− | [ssmtp_c2s] | + | <!--T:105--> |
+ | [ssmtp_c2s] | ||
accept = 127.0.0.1:10111 | accept = 127.0.0.1:10111 | ||
client = yes | client = yes | ||
Rivi 208: | Rivi 489: | ||
delay = yes | delay = yes | ||
+ | <!--T:106--> | ||
ja tämän jälkeen avaa tiedosto: /etc/default/stunnel ja muuta se seuraavanlaiseksi: | ja tämän jälkeen avaa tiedosto: /etc/default/stunnel ja muuta se seuraavanlaiseksi: | ||
− | # Change to one to enable stunnel automatic startup | + | <!--T:107--> |
+ | # Change to one to enable stunnel automatic startup | ||
# MUUTOS | # MUUTOS | ||
#ENABLED=0 | #ENABLED=0 | ||
Rivi 220: | Rivi 503: | ||
PPP_RESTART=0 | PPP_RESTART=0 | ||
+ | <!--T:108--> | ||
Tämän jälkeen muokkaa /etc/postfix/main.cf seuraavanlaiseksi: | Tämän jälkeen muokkaa /etc/postfix/main.cf seuraavanlaiseksi: | ||
− | relayhost = 127.0.0.1:10111 | + | <!--T:109--> |
+ | relayhost = 127.0.0.1:10111 | ||
# SASL authentication | # SASL authentication | ||
Rivi 242: | Rivi 527: | ||
Luo tiedosto /etc/postfix/passwd ja kirjoita siihen Soneran sähköpostisi käyttäjätunnus ja salasana | Luo tiedosto /etc/postfix/passwd ja kirjoita siihen Soneran sähköpostisi käyttäjätunnus ja salasana | ||
− | mail.inet.fi:465 KÄYTTÄJÄTUNNUS:SALASANA | + | <!--T:110--> |
+ | mail.inet.fi:465 KÄYTTÄJÄTUNNUS:SALASANA | ||
+ | <!--T:111--> | ||
Esimerkiksi: | Esimerkiksi: | ||
− | mail.inet.fi:465 [email protected]:taisto | + | <!--T:112--> |
+ | mail.inet.fi:465 [email protected]:taisto | ||
+ | <!--T:113--> | ||
Tämän jälkeen anna tämä komento: | Tämän jälkeen anna tämä komento: | ||
− | postmap hash:/etc/postfix/passwd | + | <!--T:114--> |
+ | postmap hash:/etc/postfix/passwd | ||
+ | <!--T:115--> | ||
Kokeile toimiiko antamalla seuraava komento: | Kokeile toimiiko antamalla seuraava komento: | ||
− | postmap -q mail.inet.fi:465 /etc/postfix/passwd | + | <!--T:116--> |
+ | postmap -q mail.inet.fi:465 /etc/postfix/passwd | ||
+ | <!--T:117--> | ||
Jos komento tulostaa käyttäjätunnuksesi ja salasanasi, kaikki toimii tähän asti | Jos komento tulostaa käyttäjätunnuksesi ja salasanasi, kaikki toimii tähän asti | ||
+ | <!--T:118--> | ||
Estä muiden käyttäjien näkemästä salasanaasi: | Estä muiden käyttäjien näkemästä salasanaasi: | ||
− | chmod go-rwx /etc/postfix/passwd* | + | <!--T:119--> |
+ | chmod go-rwx /etc/postfix/passwd* | ||
+ | <!--T:120--> | ||
Käynnistä lopuksi palvelut uudelleen | Käynnistä lopuksi palvelut uudelleen | ||
− | service stunnel4 restart | + | <!--T:121--> |
+ | service stunnel4 restart | ||
+ | |||
+ | <!--T:122--> | ||
+ | service postfix restart | ||
+ | |||
+ | == Varasähköpostipalvelin == | ||
+ | |||
+ | Varasähköpostipalvelimen avulla varmistat ettei sähköpostit häviä jos ensisijainen sähköpostipalvelin ei olisikaan verkossa. Varasähköpostipalvelimia voi olla useita ja ne tallentavat sähköpostit jonotus listalle odottamaan kunnes ensisijainen sähköpostipalvelin palaa takaisin toimintaan. | ||
+ | |||
+ | Sinun tulee määrittää MX tietueet DNS palveluun. MX1 on ensisijainen palvelin ja MX2 on toissijainen palvelin. Priority arvolla määritetään mikä palvelin on ensisijainen ja toissijaiset. Pienin arvo (10) on ensisijainen ja suurin arvo (20) on toissijainen. | ||
+ | |||
+ | <pre> | ||
+ | example.com. 86400 IN MX 10 mx1.example.com. | ||
+ | example.com. 86400 IN MX 20 mx2.example.com. | ||
+ | </pre> | ||
+ | |||
+ | Konfiguroidessa MX2 palvelimesta varapalvelin, sinun tulee konfiguroida main.cf tiedostoon | ||
+ | |||
+ | nano /etc/postfix/main.cf | ||
+ | |||
+ | Määritä seuraavanlaiset konfiguraatiot. smtpd_recipient_restrictions tulee olla permit_mynetworks ja reject_unauth_destination. Relay_domainissa tulee olla example.org, eli domain joka ohjataan eteenpäin. Tämä määrittää mikä sähköpostidomainien postit ohjataan eteenpäin. relay_recipient_maps tulee olla tyhjä. | ||
+ | |||
+ | <pre> | ||
+ | smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination | ||
+ | |||
+ | relay_domains = $mydestination, example.com | ||
+ | |||
+ | relay_recipient_maps = | ||
+ | </pre> | ||
+ | |||
+ | Varmista että seuraavat parametrit ovat tyhjiä: mydestination, virtual_alias_domains, virtual_mailbox_domains | ||
+ | |||
+ | Käynnistä palvelu uudelleen | ||
service postfix restart | service postfix restart | ||
+ | Testaa sammuttamalla pääsähköpostipalvelin ja lähetä example.org osoitteelle sähköpostia. mail.log voit seurata toimiiko sähköpostit oikein. | ||
+ | |||
+ | [[Luokka:Linux|Postfix]] | ||
+ | |||
+ | == SPF == | ||
+ | |||
+ | SPF tarkoitus ilmoittaa että mistä IP:stä tai osoitteesta on sallittua lähettää tällä domainilla sähköpostia. Tällä vaikeutetaan roskapostittajien ns. domain väärentämisiä. | ||
+ | |||
+ | Voit luoda tietueet täältä: http://www.spfwizard.net/ | ||
+ | |||
+ | Esimerkki (sallitaan A recordista mail.example.org joka on meidän oma postipalvelin ja estetään muista palvelimista sekä MX palvelimista jotka nimipalvelusta löytyy: | ||
+ | |||
+ | v=spf1 mx a:mail.example.org -all | ||
+ | |||
+ | Lisää tietue nimipalveluun. Kysy lisää palveluntarjoajaltasi. | ||
+ | |||
+ | Asenna sitten Postfix palvelimeesi | ||
+ | |||
+ | sudo apt install postfix-policyd-spf-python | ||
+ | |||
+ | Lisää master.cf tiedostoon loppuun | ||
+ | |||
+ | <pre> | ||
+ | policyd-spf unix - n n - 0 spawn | ||
+ | user=policyd-spf argv=/usr/bin/policyd-spf | ||
+ | </pre> | ||
+ | |||
+ | Konfiguroi main.cf. | ||
+ | |||
+ | <pre> | ||
+ | policyd-spf_time_limit = 3600 | ||
+ | |||
+ | |||
+ | |||
+ | smtpd_recipient_restrictions = | ||
+ | ... | ||
+ | reject_unauth_destination, | ||
+ | check_policy_service unix:private/policyd-spf, | ||
+ | ... | ||
+ | </pre> | ||
+ | |||
+ | Varmista että 'check_policy_service' on '''jälkeen''' 'reject_unauth_destination' estääksesi avoimen postipalvelun (käytetään muuten palvelintasi roskapostittamiseen). | ||
+ | |||
+ | == Greylisting == | ||
+ | |||
+ | Asenna Postgrey | ||
+ | |||
+ | sudo apt install postgrey | ||
+ | |||
+ | Lisää asennuksen jälkeen /etc/postfix/main.conf tiedostoon check_policy_service inet:127.0.0.1:10023 parametri smtpd_recipient_restrictions kohtaan. | ||
+ | |||
+ | smtpd_recipient_restrictions | ||
+ | check_policy_service inet:127.0.0.1:10023 | ||
+ | |||
+ | Lataa Postfix-konfiguraatio uudelleen | ||
+ | |||
+ | sudo postfix reload | ||
+ | |||
+ | == Opendkim == | ||
+ | |||
+ | DKIM (DomainKeys Identified Mail):in avulla estät sähköpostien väärentämisen lisäämällä digitaalisen allekirjoituksen lähtevissä posteissa. Tässä käytetään yksityistä avainta salatakseen lähtevän postin headerin ja julkinen avain lisätään DNS:ään. Vastaanottaja palvelin voi täältä DNS:stä hakea julkisen avaimen ja näin varmistaa että sähköposti tulee oikealta palvelimelta eikä ole muuttunut matkalla. | ||
+ | |||
+ | Asenna openkim | ||
+ | |||
+ | <pre> | ||
+ | sudo apt-get update | ||
+ | sudo apt-get dist-upgrade | ||
+ | sudo apt-get install opendkim opendkim-tools | ||
+ | </pre> | ||
+ | |||
+ | Lisää Postfix käyttäjä Opendkim ryhmään | ||
+ | |||
+ | sudo adduser postfix opendkim | ||
+ | |||
+ | === Opendkim konfigurointi === | ||
+ | |||
+ | Avaa konfigurointi tiedosto | ||
+ | |||
+ | sudo nano /etc/opendkim.conf | ||
+ | |||
+ | Konfiguraatio tulisi näyttää tältä: | ||
+ | |||
+ | <pre> | ||
+ | # This is a basic configuration that can easily be adapted to suit a standard | ||
+ | # installation. For more advanced options, see opendkim.conf(5) and/or | ||
+ | # /usr/share/doc/opendkim/examples/opendkim.conf.sample. | ||
+ | |||
+ | # Log to syslog | ||
+ | Syslog yes | ||
+ | # Required to use local socket with MTAs that access the socket as a non- | ||
+ | # privileged user (e.g. Postfix) | ||
+ | UMask 002 | ||
+ | # OpenDKIM user | ||
+ | # Remember to add user postfix to group opendkim | ||
+ | UserID opendkim | ||
+ | |||
+ | # Map domains in From addresses to keys used to sign messages | ||
+ | KeyTable /etc/opendkim/key.table | ||
+ | SigningTable refile:/etc/opendkim/signing.table | ||
+ | |||
+ | # Hosts to ignore when verifying signatures | ||
+ | ExternalIgnoreList /etc/opendkim/trusted.hosts | ||
+ | InternalHosts /etc/opendkim/trusted.hosts | ||
+ | |||
+ | # Commonly-used options; the commented-out versions show the defaults. | ||
+ | Canonicalization relaxed/simple | ||
+ | Mode sv | ||
+ | SubDomains no | ||
+ | #ADSPAction continue | ||
+ | AutoRestart yes | ||
+ | AutoRestartRate 10/1M | ||
+ | Background yes | ||
+ | DNSTimeout 5 | ||
+ | SignatureAlgorithm rsa-sha256 | ||
+ | |||
+ | # Always oversign From (sign using actual From and a null From to prevent | ||
+ | # malicious signatures header fields (From and/or others) between the signer | ||
+ | # and the verifier. From is oversigned by default in the Debian package | ||
+ | # because it is often the identity key used by reputation systems and thus | ||
+ | # somewhat security sensitive. | ||
+ | OversignHeaders From | ||
+ | </pre> | ||
+ | |||
+ | Määritä konfigurointi tiedostolle oikeudet | ||
+ | |||
+ | sudo chmod u=rw,go=r /etc/opendkim.conf | ||
+ | |||
+ | Luo hakemisto opendkim:ille, avaimille sekä määritä niille oikeudet | ||
+ | |||
+ | <pre> | ||
+ | sudo mkdir /etc/opendkim | ||
+ | sudo mkdir /etc/opendkim/keys | ||
+ | sudo chown -R opendkim:opendkim /etc/opendkim | ||
+ | sudo chmod go-rw /etc/opendkim/keys | ||
+ | </pre> | ||
+ | |||
+ | === Avainten luonti === | ||
+ | |||
+ | Luo avainten allekirjoitustaulu. Tiedostossa tulee olla jokaisella riville domain mitä haluat käyttää | ||
+ | |||
+ | sudo nano /etc/opendkim/signing.table | ||
+ | |||
+ | <pre> | ||
+ | *@example.com example | ||
+ | </pre> | ||
+ | |||
+ | Korvaa example sinun omallasi domainilla. Ensimmäinen osuus @example.org täsmää sähköpostiosoitteeseesi. | ||
+ | |||
+ | Luo ja avaa key.table tiedosto. Korvaa example.org omalla verkkotunnuksella | ||
+ | |||
+ | sudo nano /etc/opendkim/key.table | ||
+ | |||
+ | <pre> | ||
+ | example example.com:mail:/etc/opendkim/keys/example.com/mail.private | ||
+ | </pre> | ||
+ | |||
+ | Korvaa example sillä mitä käytit signing.table:ssa "mail" on DNS recordi jonka kirjoitat DNS:sään. | ||
+ | |||
+ | Luo trusted.hosts tiedosto. | ||
+ | |||
+ | sudo nano /etc/opendkim/trusted.hosts | ||
+ | |||
+ | <pre> | ||
+ | 127.0.0.1 | ||
+ | ::1 | ||
+ | localhost | ||
+ | myhostname | ||
+ | myhostname.example.com | ||
+ | example.com | ||
+ | </pre> | ||
+ | |||
+ | Korvaa myhostname palvelimen nimelläsi ja example domainillasi. | ||
+ | |||
+ | Määritä oikeudet hakemistoihin | ||
+ | |||
+ | <pre> | ||
+ | sudo chown -R opendkim:opendkim /etc/opendkim | ||
+ | sudo chmod -R go-rwx /etc/opendkim/keys | ||
+ | </pre> | ||
+ | |||
+ | Luodaan nyt avaimet DKIMiä varten | ||
+ | |||
+ | <pre> | ||
+ | sudo mkdir /etc/opendkim/keys/example.com | ||
+ | cd /etc/opendkim/keys/example.com/ | ||
+ | sudo opendkim-genkey -b 2048 -s mail -d example.com -v | ||
+ | </pre> | ||
+ | |||
+ | Mikäli nimipalvelin ei tue 2048 bittistä niin sitten käytä 1024 bittistä | ||
+ | |||
+ | sudo opendkim-genkey -b 1024 -s mail -d example.org -v | ||
+ | |||
+ | Määritä vielä rekurssiiviset oikeudet hakemistoihin | ||
+ | |||
+ | <pre> | ||
+ | sudo chown -R opendkim:opendkim /etc/opendkim | ||
+ | sudo chmod -R go-rw /etc/opendkim/keys | ||
+ | </pre> | ||
+ | |||
+ | Käynnistä Opendkim uudelleen | ||
+ | |||
+ | sudo service opendkim restart | ||
+ | |||
+ | === Konfiguroi DNS === | ||
+ | |||
+ | Avaa nyt mail.txt tiedosto | ||
+ | |||
+ | sudo cat /etc/opendkim/keys/example.com/mail.txt | ||
+ | |||
+ | Tee nimipalvelimeen TXT recordi, esim: | ||
+ | |||
+ | <pre> | ||
+ | mail._domainkey.example.com IN TXT v=DKIM1; k=rsa; s=email; p=<avain> | ||
+ | </pre> | ||
+ | |||
+ | Korvaa example.com ja <avain> tiedoston sisällöllä ja domainilla. | ||
+ | |||
+ | Testaa | ||
+ | |||
+ | sudo opendkim-testkey -d example.com -s mail | ||
+ | |||
+ | Jos kaikki on OK sinun ei tulisi saada ollenkaan mitään tulostusta. | ||
+ | |||
+ | === Opendkim konfigurointi Postfixiin === | ||
+ | |||
+ | Luo hakemisto | ||
+ | |||
+ | <pre> | ||
+ | sudo mkdir /var/spool/postfix/opendkim | ||
+ | sudo chown opendkim:postfix /var/spool/postfix/opendkim | ||
+ | </pre> | ||
+ | |||
+ | Määritä oikea soketti opendkim:ille | ||
+ | |||
+ | sudo nano /etc/default/opendkim | ||
+ | |||
+ | Varmista että kaikki on kommentoitu ja lisää alla oleva tiedostoon | ||
+ | |||
+ | SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock" | ||
+ | |||
+ | Konfiguroi seuraavaksi main.cnf tiedostoon opendkim asetuksia | ||
+ | |||
+ | sudo nano /etc/postfix/main.cf | ||
+ | |||
+ | <pre> | ||
+ | # Milter configuration | ||
+ | # OpenDKIM | ||
+ | milter_default_action = accept | ||
+ | milter_protocol = 6 | ||
+ | smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock | ||
+ | non_smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock | ||
+ | </pre> | ||
+ | |||
+ | Käynnistä Postfix ja Opendkim uudelleen | ||
+ | |||
+ | sudo service postfix restart | ||
+ | |||
+ | sudo service opendkim restart | ||
+ | |||
+ | Testaa toimiiko kaikki lähettämällä tyhjän sähköpostin: [email protected] . Saat paluupostina viestin jossa näet toimiiko vai ei. | ||
+ | |||
+ | == Opendmarc == | ||
+ | |||
+ | Opendmarcin avulla voit tarkistaa Postfixissä Dmarc-tietueen. | ||
+ | |||
+ | sudo apt install opendmarc | ||
+ | |||
+ | Kopioi alkuperäinen konfiguraatio talteen | ||
+ | |||
+ | sudo mv /etc/opendmarc.conf /etc/opendmarc.conf.bak | ||
+ | |||
+ | Luo uusi tiedosto | ||
+ | |||
+ | sudo nano /etc/opendmarc.conf | ||
+ | |||
+ | Tässä on esimerkkikonfiguraatio | ||
+ | |||
+ | <pre> | ||
+ | AutoRestart Yes | ||
+ | AutoRestartRate 10/1h | ||
+ | |||
+ | UserID postfix:postfix | ||
+ | Socket inet:54321@localhost | ||
+ | Syslog true | ||
+ | SyslogFacility mail | ||
+ | |||
+ | AuthservID mail.example.org | ||
+ | #TrustedAuthservIDs other.mail.server, another.mail.server | ||
+ | IgnoreHosts /etc/opendkim/trusted.hosts | ||
+ | |||
+ | FailureReportsSentBy [email protected] | ||
+ | FailureReportsBcc [email protected] | ||
+ | |||
+ | RejectFailures false | ||
+ | </pre> | ||
+ | |||
+ | Lisää tämä /etc/default/opendmarc tiedostoon | ||
+ | |||
+ | SOCKET="inet:54321@localhost" | ||
+ | |||
+ | Lisää tämä /etc/postfix/main.conf tiedostoon kohtaan smttpd_milters | ||
+ | |||
+ | smtpd_milters = inet:localhost:54321 | ||
− | + | Käynnistä Postfix ja Opendmarc uudelleen | |
+ | sudo service opendmarc restart | ||
+ | sudo service postfix restart | ||
+ | |||
+ | == Postfix toiminta PHP5 kanssa == <!--T:123--> | ||
+ | |||
+ | <!--T:124--> | ||
PHP5 sisältää mail funktion. Sinun tulee konfiguroida php.ini tiedostoa | PHP5 sisältää mail funktion. Sinun tulee konfiguroida php.ini tiedostoa | ||
− | nano /etc/php5/apache2/php.ini | + | <!--T:125--> |
+ | nano /etc/php5/apache2/php.ini | ||
+ | <!--T:126--> | ||
ja muuttaa se tälläiseksi: | ja muuttaa se tälläiseksi: | ||
− | ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). | + | <!--T:127--> |
+ | ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). | ||
; http://php.net/sendmail-path | ; http://php.net/sendmail-path | ||
sendmail_path = "/usr/sbin/sendmail -t -i" | sendmail_path = "/usr/sbin/sendmail -t -i" | ||
+ | <!--T:128--> | ||
ja käynnistä apache uudelleen | ja käynnistä apache uudelleen | ||
− | service apache2 restart | + | <!--T:129--> |
+ | service apache2 restart | ||
+ | |||
+ | [[Luokka:Linux|Postfix]] | ||
+ | |||
+ | == Postfix AD == | ||
+ | |||
+ | Hyvä ohje löytyy ICT-academyn [http://ict-academy.fi/index.php?title=Postfix_Dovecot_ClamAv_Spamassassin#Postfixin_liitt.C3.A4minen_AD:seen Wikistä] | ||
+ | |||
+ | == Postqueue komentoja == | ||
+ | |||
+ | postqueue avulla voit hallinnoida postin liikennettä, esimerkiksi voit estää tietyn lähettäjän s.postien lähtemisen tai saapumisen poistamalla ne | ||
+ | |||
+ | postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } /username@example\.org/ { print $1 }' | tr -d '*!' | postsuper -d - | ||
+ | |||
+ | Poistaa tietyltä domainilta | ||
+ | |||
+ | postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } /@example\.org/ { print $1 }' | tr -d '*!' | postsuper -d - | ||
+ | |||
+ | Poistaa kaikki s.postit | ||
+ | |||
+ | postsuper -d ALL | ||
+ | |||
+ | Valmiita scriptejä: https://www.saotn.org/delete-mailer-daemon-emails-from-postfix-queue/ | ||
+ | |||
+ | <pre> | ||
+ | #!/bin/bash | ||
+ | EMAILADDY=$1 | ||
+ | |||
+ | if [ -z "$EMAILADDY" ] | ||
+ | then | ||
+ | echo "Usage: $0 <email address>" | ||
+ | exit | ||
+ | fi | ||
+ | |||
+ | echo "Delete all emails addressed to $EMAILADDY from our Postfix queue." | ||
+ | |||
+ | mailq | tail -n +2 | grep -v '^ *(' | awk -v "address=$EMAILADDY" 'BEGIN { RS = "" } | ||
+ | { | ||
+ | # example conditions: | ||
+ | # if ( $7 == address && $8 == "" ) | ||
+ | # if ( $7 == address || $8 == address ) | ||
+ | if ( $7 == address ) | ||
+ | print $1 | ||
+ | } | ||
+ | ' | tr -d '*!' | postsuper -d - | ||
+ | </pre> | ||
+ | |||
+ | Voit käyttää tätä ajamalla | ||
+ | |||
+ | sh mailq2delete.sh [email protected] | ||
+ | |||
+ | == Virheilmoituksia == <!--T:130--> | ||
+ | |||
+ | Ongelmien sattuessa kannattaa lukea palvelimen lokia: | ||
− | + | /var/log | |
+ | <!--T:148--> | ||
Tässä lista yleisistä virheilmoituksista mitä ilmenee usein postfixin konfiguroinnista: | Tässä lista yleisistä virheilmoituksista mitä ilmenee usein postfixin konfiguroinnista: | ||
− | + | === Sender address rejected: Domain not found (in reply to RCPT TO command === <!--T:149--> | |
− | myorigin on määritetty väärin /etc/ | + | <!--T:150--> |
+ | myorigin on määritetty väärin /etc/mailname tiedostosta. Tämän tulee olemaan domainin nimi. | ||
− | + | <!--T:151--> | |
+ | myorigin /etc/mailname | ||
+ | <!--T:152--> | ||
+ | example.com | ||
+ | |||
+ | === Client host rejected: Access denied=== <!--T:153--> | ||
+ | |||
+ | <!--T:154--> | ||
Relayhost on estänyt sinut, ehkä roskapostien takia. | Relayhost on estänyt sinut, ehkä roskapostien takia. | ||
− | + | === connect to mx3.hotmail.com[65.55.37.104]:25: No route to host === <!--T:155--> | |
+ | <!--T:156--> | ||
Tarkista Relayhost main.cf tiedostossa. Mahdollisesti sinulla on suljettu suoraan portti 25. | Tarkista Relayhost main.cf tiedostossa. Mahdollisesti sinulla on suljettu suoraan portti 25. | ||
− | + | === Host or domain name not found. Name service error for name=gmail.con type=A: Host not found === <!--T:157--> | |
+ | <!--T:158--> | ||
DNS Virhe. Tarkista resolv.conf tiedostossa määriteytyt DNS asetukset. Kokeile nslookup komentoa. | DNS Virhe. Tarkista resolv.conf tiedostossa määriteytyt DNS asetukset. Kokeile nslookup komentoa. | ||
− | == | + | === Invalid mail address, must be fully qualified domain (in reply to RCPT TO command)) === <!--T:159--> |
+ | |||
+ | <!--T:160--> | ||
+ | Isäntänimessä ongelma. Varmista että DNS on oikein määritetty ja isäntänimi main.cf tiedostossa. | ||
+ | |||
+ | === unable to verify address (in reply to MAIL FROM command)) === <!--T:161--> | ||
+ | |||
+ | <!--T:162--> | ||
+ | DNS ongelma. Varmista että sinulla on määritetty oikein A-records DNS palvelimelle ja MX-records. Tarkista /etc/hosts tiedosto. Korjaus: | ||
+ | |||
+ | <!--T:163--> | ||
+ | nano /etc/hosts | ||
+ | |||
+ | <!--T:164--> | ||
+ | 127.0.0.1 localhost mail.example.com server | ||
+ | 127.0.1.1 example.com mail.example.com server | ||
+ | == Lähteet == <!--T:140--> | ||
+ | |||
+ | <!--T:141--> | ||
http://www.postfix.org/ | http://www.postfix.org/ | ||
+ | <!--T:142--> | ||
https://wiki.debian.org/Postfix | https://wiki.debian.org/Postfix | ||
+ | |||
+ | <!--T:143--> | ||
+ | http://www.sami-lehtinen.net/blog/securing-email-transport-starttls-postfix-ca-certificates-fingerprint-authority | ||
+ | |||
+ | http://ary.kleinerman.org/posts/how-to-install-and-setup-a-powerful-mail-server-on-linux/ | ||
+ | |||
+ | </translate> |
Nykyinen versio 30. joulukuuta 2018 kello 11.06
Postfix on sähköpostin välitysohjelmisto (MTA). Postfix on avoimen lisenssillä varustettu ohjelmisto. Tietoturvallisessa ja suorituskykyisessä Postfixissä on hyvä roskapostin suodatus.
Suosittelemme käyttämään myös Spamassassin ja Amavis suojaamaan sähköpostipalvelinta roskapostittajilta.
Sisällysluettelo
- 1 Asennus
- 2 Konfigurointi
- 3 Lisäasetukset
- 4 Testataan Postfixin toimintaa
- 5 Sähköpostipalvelimen suojaaminen
- 6 Telia Postipalvelimen käytössä Relaynä - SMTPS
- 7 Varasähköpostipalvelin
- 8 SPF
- 9 Greylisting
- 10 Opendkim
- 11 Opendmarc
- 12 Postfix toiminta PHP5 kanssa
- 13 Postfix AD
- 14 Postqueue komentoja
- 15 Virheilmoituksia
- 15.1 Sender address rejected: Domain not found (in reply to RCPT TO command
- 15.2 Client host rejected: Access denied
- 15.3 connect to mx3.hotmail.com[65.55.37.104]:25: No route to host
- 15.4 Host or domain name not found. Name service error for name=gmail.con type=A: Host not found
- 15.5 Invalid mail address, must be fully qualified domain (in reply to RCPT TO command))
- 15.6 unable to verify address (in reply to MAIL FROM command))
- 16 Lähteet
Asennus
aptitude install postfix
Seuraa asennusohjelman ohjeita
Tämän jälkeen sinun tulee antaa palvelimen isäntänimi
esimerkiksi:
mail.example.com
Konfigurointi
Avaa konfigurointi tiedosto:
nano /etc/postfix/main.cf
Tarkista postifixin konfigurointi tiedostossa on määritetty tietokoneen isäntänimi ja palvelimen osoite
myhostname = server.example.com alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = example.com mydestination = example.com, server.example.com, localhost, localhost.example.com$ #relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all
Tallenna tiedosto ja avaa seuraavaksi tiedosto
nano /etc/postfix/master.cf
Oletuksena master.cf tiedostossa on sallittu normaali SMTP yhteys portissa 25.
smtp inet n - - - - smtpd
Oletuksena seuraavat ovat risuaidalla merkitty (#).
Ota käyttöön poistamalla risuaita 587 portissa tapahtuva SMTP tiedonsiirtoa. Sillä voi myös siirtää salattua liikennettä komennolla STARTTLS.
submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
Ota käyttöön poistamalla risuaita SMTPS yhteys (portissa 465). SSL salaus käytetään tässä yhteydessä oletuksena. SASL todennusta suositellaan käytettäväksi.
smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
Selitetään:
Palvelimesi nimi (tarkista että on sama kuin hostname (komento: hostname)):
myhostname = server.example.com
Kirjautumisen tunnukset = sama kuin Debian. Ei muuteta
alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases
Domain (määritetään palvelimesi sähköpostiosoitteeseen [email protected]). Oletuksena määritetty /etc/mailname:
myorigin = example.com
Tietokoneen isäntänimet:
mydestination = example.com, server.example.com, localhost, localhost.example.com$ #relayhost = 127.0.0.1:10111
Tämä vaaditaan jos ei ole suoraa yhteyttä verkkoon.
Esimerkkinä Soneran postipalvelin:
relayhost = [mail.inet.fi]:25
DNA postipalvelin:
relayhost = [smtp.dnainternet.net]:25
Lähiverkkosi:
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 recipient_delimiter = +
Verkkoliitännät
inet_interfaces = all
Sulje tiedosto ja käynnistä postfix uudelleen
service postfix restart
Lisäasetukset
Virtuaali sähköpostiosoitteet
Voit ohjata virtuaali sähköpostiosoitteet esimerkiksi [email protected] ja [email protected] omalle käyttäjällesi.
Avaa tiedosto:
/etc/aliases
# /etc/aliases mailer-daemon: postmaster postmaster: root nobody: root hostmaster: root usenet: root news: root webmaster: root www: root ftp: root abuse: root noc: root security: root root = [username]
Muuttamalla [username] kohta omaksi käyttäjätiliksi saat kaikki näiden käyttäjätilien sähköpostit samaan sähköpostilaatikkoon. Voit lisätä muitakin osoitteita tiedoston loppuun:
[alias_postinimi] = [käyttäjälle]
Vahvista muutokset
newaliases
Virtuaali domainit
Virtuaaliset domainit siis ovat tarkoitettu sähköpostipalvelimelle joka lähettää ja vastaanottaa usealle eri domainille.
Avaa Postfixin konfigurointi tiedosto main.cf
/etc/postfix/main.cf
Lisää seuraavat rivit:
virtual_alias_domains = example.com virtual_alias_maps = hash:/etc/postfix/virtual
Luo uusi tiedosto
[email protected] postmaster [email protected] matti [email protected] kalle # Uncomment entry below to implement a catch-all address # @example.com aleksi
Älä lisää virtual_alias_domain:ia mydestination domainiksi!
Sähköpostin uudelleenohjaus
Sähköpostin uudelleenohjaus [email protected] -> matti.example2.com esimerkiksi.
Avaa Postfixin konfigurointi tiedosto main.cf
/etc/postfix/main.cf:
Lisää seuraavat rivit tiedostoon:
virtual_alias_domains = example.com virtual_alias_maps = hash:/etc/postfix/virtual
Luo uusi tiedosto
/etc/postfix/virtual:
Lisää seuraavat rivit tiedostoon
[email protected] postmaster [email protected] [email protected] [email protected] [email protected] # Uncomment entry below to implement a catch-all address # @example.com jim@yet-another-site
Uudelleenohjattava sähköpostin domain tulee olla mydestination merkitty. Et voi uudelleenohjata aliaksia /etc/alias
Tarkista konfiguraatio
postmap /etc/postfix/virtual
Testataan Postfixin toimintaa
Lähetetään testisähköposti:
Asenna tämä sähköpostityökälut jos ei ole asennettu:
apt-get install mailutils
ja sen jälkeen lähetetään sähköpostia:
mail [email protected]
Komento tulostaa:
Subject: Aiheesi viestille
Tämän jälkeen kirjoita viesti (ja ENTER) ja tulostuu:
CC:
jonka voi jättää tyhjäksi. Lähetä sähköposti näppäinyhdistelmällä CTRL+D.
Sähköpostipalvelimen suojaaminen
Kun luot oman sähköpostipalvelimen, sitä pitää heti alkaa suojaamaan ahkerasti roskapostittajia vastaan. Suositus on ottaa myös SASL todennus käyttöön.
Roskapostien suodatus
Lisäämällä seuraava koodi pätkä tarkistaa onko lähettäjän verkkotunnus olemassa:
nano /etc/postfix/main.cf
smtpd_recipient_restrictions = reject_invalid_hostname, reject_unknown_recipient_domain, reject_unauth_destination, reject_rbl_client sbl.spamhaus.org, # Tämä rivi ei Soneran verkkoon permit
smtpd_helo_restrictions = reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname
Ja tämä tarkistaa listan onko verkkotunnus merkitty roskapostittajaksi:
nano /etc/postfix/main.cf
smtpd_client_restrictions = reject_rbl_client dnsbl.sorbs.net
SMTPS SASL todennus
Lisäämällä seuraava rivi, niin estät sähköpostin välitykset muusta kuin omasta verkostasi. SASL tunnistuksen avulla voit lähettää muustakin verkosta
nano /etc/postfix/main.cf
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject
Hyödynnä Dovecottia SASL todennuksessa. Tämä toimii siis Dovecotin todennuksen kanssa.
# SASL authentication smtpd_sasl_auth_enable=yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_security_options = noanonymous smtpd_sasl_tls_security_options = noanonymous
Lisäksi poista risuaita tiedostosta
nano /etc/dovecot/conf.d/10-master.conf
kohdasta
# Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }
nano /etc/postfix/master.cf
Ota seuraavilta riveiltä risuaita pois submission ja smtps kohdasta. Jos haluat SMTP portille myös audikoinnin, lisää tämä seuraavat rivi sen alle.
-o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject
TLS (STARTSSL)
Esimerkki konfiguraatio tiedostosta /etc/postfix/main.cf
smtpd_use_tls=yes smtpd_tls_security_level = may smtp_tls_security_level = may smtpd_tls_cert_file=/etc/ssl/postfix.cert smtpd_tls_key_file=/etc/ssl/postfix.key smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtpd_tls_security_level = may smtpd_tls_auth_only = yes smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3 smtpd_tls_protocols=!SSLv2,!SSLv3,TLSv1,TLSv1.1,TLSv1.2 smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5 , DES, ADH, !RC4, PSD, SRP, 3DES, eNULL smtpd_tls_mandatory_ciphers = high tls_high_cipherlist = AES128+EECDH:AES128+EDH
Ota käyttöön Submission kohdasta risuaidat pois.
Testaa STARTSSL: https://starttls.info/
https://checktls.com/ https://ssl-tools.net/mailservers/
Testaa openssl_client komennolla toimivuuksia
openssl s_client -connect mail.example.org:587
TLS-Policy
TLS Policyllä eli säännöillä voidaan määrittää missä sivuilla esimerkiksi on pakotettu TLS käyttöön ja missä vaihtoehtoisesti.
Lisää tämä main.conf tiedostoon
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
Luo tiedosto /etc/postfix/tls_policy . Policyyn määritetään domainit jossa on pakotettu salaus encrypt määritteellä. Testaa lähettämällä gmailiin niin gmail ilmoittaa että sähköposti on salattu.
gmail.com encrypt .gmail.com encrypt ssl-tools.net encrypt .ssl-tools.net encrypt
Hash sisältö postmap komennolla
sudo postmap /etc/postfix/tls_policy
Lataa Postfix konfiguraatio uudelleen
sudo service postfix reload
Poista lähtevistä sähköposteistä asiakkaan header-tiedot
Tällä tarkoituksena on poistaa esimerkiksi sähköpostiasiakasohjelmalla lähtevien IP-osoitteet suojaten yksityisyyttä. Tiedot kuitenkin tallentuu palvelimen lokiin normaalisti.
Asenna Postfix-pcre
sudo apt install postfix-pcre
Luo uusi tiedosto smtp_header_checks
sudo nano /etc/postfix/smtp_header_checks
Ja lisää tiedostoon
/^\s*(Received: from)[^\n]*(.*)/ REPLACE $1 [127.0.0.1] (localhost [127.0.0.1])$2 /^\s*User-Agent/ IGNORE /^\s*X-Enigmail/ IGNORE /^\s*X-Mailer/ IGNORE /^\s*X-Originating-IP/ IGNORE
Tämä muuttaa from-headeristä kaikki IP-osoitteet 127.0.0.1:seksi. Poistaa asiakasohjelman User-Agentin yms tiedot.
Lisää tämän jälkeen Postfixin main.conf tiedostoon rivi
smtp_header_checks = pcre:/etc/postfix/smtp_header_checks
Ja lataa konfiguraatio uudelleen
sudo service postfix reload
Telia Postipalvelimen käytössä Relaynä - SMTPS
Postfixissä on tuki SSL yhteydelle TLS:n kanssa mutta ei pelkästään SSL kanssa. Tämä seuraava ohje on pelkästään SSL, mutta jos on tuki TLS salaukselle, on suositeltavaa käyttää sitä.
Ohjeen lähde: http://www5.sonera.fi/keskustele/viewtopic.php?f=59&t=9210
SMTPS on salattu SMTP yhteys ja nykyisin suositus olisi käyttää tätä ominaisuutta.
Esimerkkinä on Soneran verkko:
relayhost = [mail.inet.fi]
Nyt olisi aika siirtyä salattuun postiin ja tämä on hieman hankalempi, kun Soneran omat postipalvelimet eivät tue TLS salausta. Postfix ei tue SSL salausta, mutta asennetaan pieni kiertotie niin se onnistuu.
Asennetaan ensin Stunnel
aptitude install stunnel
Luodaan tiedosto /etc/stunnel/postfix.conf ja kopioi alla oleva koodi:
[ssmtp_c2s] accept = 127.0.0.1:10111 client = yes connect = mail.inet.fi:465 delay = yes
ja tämän jälkeen avaa tiedosto: /etc/default/stunnel ja muuta se seuraavanlaiseksi:
# Change to one to enable stunnel automatic startup # MUUTOS #ENABLED=0 ENABLED=1 FILES="/etc/stunnel/*.conf" OPTIONS="" # Change to one to enable ppp restart scripts PPP_RESTART=0
Tämän jälkeen muokkaa /etc/postfix/main.cf seuraavanlaiseksi:
relayhost = 127.0.0.1:10111 # SASL authentication smtp_sasl_auth_enable=yes smtp_sasl_password_maps = hash:/etc/postfix/passwd smtp_sasl_security_options = noanonymous smtp_sasl_tls_security_options = noanonymous # TLS smtp_tls_eccert_file = smtp_tls_eckey_file = # http://www.postfix.org/TLS_README.html#client_tls_may smtp_tls_security_level = may smtpd_tls_received_header = yes tls_random_source = dev:/dev/urandom # http://www.postfix.org/TLS_README.html#client_tls_may smtpd_tls_security_level = may
Luo tiedosto /etc/postfix/passwd ja kirjoita siihen Soneran sähköpostisi käyttäjätunnus ja salasana
mail.inet.fi:465 KÄYTTÄJÄTUNNUS:SALASANA
Esimerkiksi:
mail.inet.fi:465 [email protected]:taisto
Tämän jälkeen anna tämä komento:
postmap hash:/etc/postfix/passwd
Kokeile toimiiko antamalla seuraava komento:
postmap -q mail.inet.fi:465 /etc/postfix/passwd
Jos komento tulostaa käyttäjätunnuksesi ja salasanasi, kaikki toimii tähän asti
Estä muiden käyttäjien näkemästä salasanaasi:
chmod go-rwx /etc/postfix/passwd*
Käynnistä lopuksi palvelut uudelleen
service stunnel4 restart
service postfix restart
Varasähköpostipalvelin
Varasähköpostipalvelimen avulla varmistat ettei sähköpostit häviä jos ensisijainen sähköpostipalvelin ei olisikaan verkossa. Varasähköpostipalvelimia voi olla useita ja ne tallentavat sähköpostit jonotus listalle odottamaan kunnes ensisijainen sähköpostipalvelin palaa takaisin toimintaan.
Sinun tulee määrittää MX tietueet DNS palveluun. MX1 on ensisijainen palvelin ja MX2 on toissijainen palvelin. Priority arvolla määritetään mikä palvelin on ensisijainen ja toissijaiset. Pienin arvo (10) on ensisijainen ja suurin arvo (20) on toissijainen.
example.com. 86400 IN MX 10 mx1.example.com. example.com. 86400 IN MX 20 mx2.example.com.
Konfiguroidessa MX2 palvelimesta varapalvelin, sinun tulee konfiguroida main.cf tiedostoon
nano /etc/postfix/main.cf
Määritä seuraavanlaiset konfiguraatiot. smtpd_recipient_restrictions tulee olla permit_mynetworks ja reject_unauth_destination. Relay_domainissa tulee olla example.org, eli domain joka ohjataan eteenpäin. Tämä määrittää mikä sähköpostidomainien postit ohjataan eteenpäin. relay_recipient_maps tulee olla tyhjä.
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination relay_domains = $mydestination, example.com relay_recipient_maps =
Varmista että seuraavat parametrit ovat tyhjiä: mydestination, virtual_alias_domains, virtual_mailbox_domains
Käynnistä palvelu uudelleen
service postfix restart
Testaa sammuttamalla pääsähköpostipalvelin ja lähetä example.org osoitteelle sähköpostia. mail.log voit seurata toimiiko sähköpostit oikein.
SPF
SPF tarkoitus ilmoittaa että mistä IP:stä tai osoitteesta on sallittua lähettää tällä domainilla sähköpostia. Tällä vaikeutetaan roskapostittajien ns. domain väärentämisiä.
Voit luoda tietueet täältä: http://www.spfwizard.net/
Esimerkki (sallitaan A recordista mail.example.org joka on meidän oma postipalvelin ja estetään muista palvelimista sekä MX palvelimista jotka nimipalvelusta löytyy:
v=spf1 mx a:mail.example.org -all
Lisää tietue nimipalveluun. Kysy lisää palveluntarjoajaltasi.
Asenna sitten Postfix palvelimeesi
sudo apt install postfix-policyd-spf-python
Lisää master.cf tiedostoon loppuun
policyd-spf unix - n n - 0 spawn user=policyd-spf argv=/usr/bin/policyd-spf
Konfiguroi main.cf.
policyd-spf_time_limit = 3600 smtpd_recipient_restrictions = ... reject_unauth_destination, check_policy_service unix:private/policyd-spf, ...
Varmista että 'check_policy_service' on jälkeen 'reject_unauth_destination' estääksesi avoimen postipalvelun (käytetään muuten palvelintasi roskapostittamiseen).
Greylisting
Asenna Postgrey
sudo apt install postgrey
Lisää asennuksen jälkeen /etc/postfix/main.conf tiedostoon check_policy_service inet:127.0.0.1:10023 parametri smtpd_recipient_restrictions kohtaan.
smtpd_recipient_restrictions check_policy_service inet:127.0.0.1:10023
Lataa Postfix-konfiguraatio uudelleen
sudo postfix reload
Opendkim
DKIM (DomainKeys Identified Mail):in avulla estät sähköpostien väärentämisen lisäämällä digitaalisen allekirjoituksen lähtevissä posteissa. Tässä käytetään yksityistä avainta salatakseen lähtevän postin headerin ja julkinen avain lisätään DNS:ään. Vastaanottaja palvelin voi täältä DNS:stä hakea julkisen avaimen ja näin varmistaa että sähköposti tulee oikealta palvelimelta eikä ole muuttunut matkalla.
Asenna openkim
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install opendkim opendkim-tools
Lisää Postfix käyttäjä Opendkim ryhmään
sudo adduser postfix opendkim
Opendkim konfigurointi
Avaa konfigurointi tiedosto
sudo nano /etc/opendkim.conf
Konfiguraatio tulisi näyttää tältä:
# This is a basic configuration that can easily be adapted to suit a standard # installation. For more advanced options, see opendkim.conf(5) and/or # /usr/share/doc/opendkim/examples/opendkim.conf.sample. # Log to syslog Syslog yes # Required to use local socket with MTAs that access the socket as a non- # privileged user (e.g. Postfix) UMask 002 # OpenDKIM user # Remember to add user postfix to group opendkim UserID opendkim # Map domains in From addresses to keys used to sign messages KeyTable /etc/opendkim/key.table SigningTable refile:/etc/opendkim/signing.table # Hosts to ignore when verifying signatures ExternalIgnoreList /etc/opendkim/trusted.hosts InternalHosts /etc/opendkim/trusted.hosts # Commonly-used options; the commented-out versions show the defaults. Canonicalization relaxed/simple Mode sv SubDomains no #ADSPAction continue AutoRestart yes AutoRestartRate 10/1M Background yes DNSTimeout 5 SignatureAlgorithm rsa-sha256 # Always oversign From (sign using actual From and a null From to prevent # malicious signatures header fields (From and/or others) between the signer # and the verifier. From is oversigned by default in the Debian package # because it is often the identity key used by reputation systems and thus # somewhat security sensitive. OversignHeaders From
Määritä konfigurointi tiedostolle oikeudet
sudo chmod u=rw,go=r /etc/opendkim.conf
Luo hakemisto opendkim:ille, avaimille sekä määritä niille oikeudet
sudo mkdir /etc/opendkim sudo mkdir /etc/opendkim/keys sudo chown -R opendkim:opendkim /etc/opendkim sudo chmod go-rw /etc/opendkim/keys
Avainten luonti
Luo avainten allekirjoitustaulu. Tiedostossa tulee olla jokaisella riville domain mitä haluat käyttää
sudo nano /etc/opendkim/signing.table
*@example.com example
Korvaa example sinun omallasi domainilla. Ensimmäinen osuus @example.org täsmää sähköpostiosoitteeseesi.
Luo ja avaa key.table tiedosto. Korvaa example.org omalla verkkotunnuksella
sudo nano /etc/opendkim/key.table
example example.com:mail:/etc/opendkim/keys/example.com/mail.private
Korvaa example sillä mitä käytit signing.table:ssa "mail" on DNS recordi jonka kirjoitat DNS:sään.
Luo trusted.hosts tiedosto.
sudo nano /etc/opendkim/trusted.hosts
127.0.0.1 ::1 localhost myhostname myhostname.example.com example.com
Korvaa myhostname palvelimen nimelläsi ja example domainillasi.
Määritä oikeudet hakemistoihin
sudo chown -R opendkim:opendkim /etc/opendkim sudo chmod -R go-rwx /etc/opendkim/keys
Luodaan nyt avaimet DKIMiä varten
sudo mkdir /etc/opendkim/keys/example.com cd /etc/opendkim/keys/example.com/ sudo opendkim-genkey -b 2048 -s mail -d example.com -v
Mikäli nimipalvelin ei tue 2048 bittistä niin sitten käytä 1024 bittistä
sudo opendkim-genkey -b 1024 -s mail -d example.org -v
Määritä vielä rekurssiiviset oikeudet hakemistoihin
sudo chown -R opendkim:opendkim /etc/opendkim sudo chmod -R go-rw /etc/opendkim/keys
Käynnistä Opendkim uudelleen
sudo service opendkim restart
Konfiguroi DNS
Avaa nyt mail.txt tiedosto
sudo cat /etc/opendkim/keys/example.com/mail.txt
Tee nimipalvelimeen TXT recordi, esim:
mail._domainkey.example.com IN TXT v=DKIM1; k=rsa; s=email; p=<avain>
Korvaa example.com ja <avain> tiedoston sisällöllä ja domainilla.
Testaa
sudo opendkim-testkey -d example.com -s mail
Jos kaikki on OK sinun ei tulisi saada ollenkaan mitään tulostusta.
Opendkim konfigurointi Postfixiin
Luo hakemisto
sudo mkdir /var/spool/postfix/opendkim sudo chown opendkim:postfix /var/spool/postfix/opendkim
Määritä oikea soketti opendkim:ille
sudo nano /etc/default/opendkim
Varmista että kaikki on kommentoitu ja lisää alla oleva tiedostoon
SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"
Konfiguroi seuraavaksi main.cnf tiedostoon opendkim asetuksia
sudo nano /etc/postfix/main.cf
# Milter configuration # OpenDKIM milter_default_action = accept milter_protocol = 6 smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock non_smtpd_milters = local:/var/spool/postfix/opendkim/opendkim.sock
Käynnistä Postfix ja Opendkim uudelleen
sudo service postfix restart
sudo service opendkim restart
Testaa toimiiko kaikki lähettämällä tyhjän sähköpostin: [email protected] . Saat paluupostina viestin jossa näet toimiiko vai ei.
Opendmarc
Opendmarcin avulla voit tarkistaa Postfixissä Dmarc-tietueen.
sudo apt install opendmarc
Kopioi alkuperäinen konfiguraatio talteen
sudo mv /etc/opendmarc.conf /etc/opendmarc.conf.bak
Luo uusi tiedosto
sudo nano /etc/opendmarc.conf
Tässä on esimerkkikonfiguraatio
AutoRestart Yes AutoRestartRate 10/1h UserID postfix:postfix Socket inet:54321@localhost Syslog true SyslogFacility mail AuthservID mail.example.org #TrustedAuthservIDs other.mail.server, another.mail.server IgnoreHosts /etc/opendkim/trusted.hosts FailureReportsSentBy [email protected] FailureReportsBcc [email protected] RejectFailures false
Lisää tämä /etc/default/opendmarc tiedostoon
SOCKET="inet:54321@localhost"
Lisää tämä /etc/postfix/main.conf tiedostoon kohtaan smttpd_milters
smtpd_milters = inet:localhost:54321
Käynnistä Postfix ja Opendmarc uudelleen
sudo service opendmarc restart sudo service postfix restart
Postfix toiminta PHP5 kanssa
PHP5 sisältää mail funktion. Sinun tulee konfiguroida php.ini tiedostoa
nano /etc/php5/apache2/php.ini
ja muuttaa se tälläiseksi:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ; http://php.net/sendmail-path sendmail_path = "/usr/sbin/sendmail -t -i"
ja käynnistä apache uudelleen
service apache2 restart
Postfix AD
Hyvä ohje löytyy ICT-academyn Wikistä
Postqueue komentoja
postqueue avulla voit hallinnoida postin liikennettä, esimerkiksi voit estää tietyn lähettäjän s.postien lähtemisen tai saapumisen poistamalla ne
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } /username@example\.org/ { print $1 }' | tr -d '*!' | postsuper -d -
Poistaa tietyltä domainilta
postqueue -p | tail -n +2 | awk 'BEGIN { RS = "" } /@example\.org/ { print $1 }' | tr -d '*!' | postsuper -d -
Poistaa kaikki s.postit
postsuper -d ALL
Valmiita scriptejä: https://www.saotn.org/delete-mailer-daemon-emails-from-postfix-queue/
#!/bin/bash EMAILADDY=$1 if [ -z "$EMAILADDY" ] then echo "Usage: $0 <email address>" exit fi echo "Delete all emails addressed to $EMAILADDY from our Postfix queue." mailq | tail -n +2 | grep -v '^ *(' | awk -v "address=$EMAILADDY" 'BEGIN { RS = "" } { # example conditions: # if ( $7 == address && $8 == "" ) # if ( $7 == address || $8 == address ) if ( $7 == address ) print $1 } ' | tr -d '*!' | postsuper -d -
Voit käyttää tätä ajamalla
sh mailq2delete.sh [email protected]
Virheilmoituksia
Ongelmien sattuessa kannattaa lukea palvelimen lokia:
/var/log
Tässä lista yleisistä virheilmoituksista mitä ilmenee usein postfixin konfiguroinnista:
Sender address rejected: Domain not found (in reply to RCPT TO command
myorigin on määritetty väärin /etc/mailname tiedostosta. Tämän tulee olemaan domainin nimi.
myorigin /etc/mailname
example.com
Client host rejected: Access denied
Relayhost on estänyt sinut, ehkä roskapostien takia.
connect to mx3.hotmail.com[65.55.37.104]:25: No route to host
Tarkista Relayhost main.cf tiedostossa. Mahdollisesti sinulla on suljettu suoraan portti 25.
Host or domain name not found. Name service error for name=gmail.con type=A: Host not found
DNS Virhe. Tarkista resolv.conf tiedostossa määriteytyt DNS asetukset. Kokeile nslookup komentoa.
Invalid mail address, must be fully qualified domain (in reply to RCPT TO command))
Isäntänimessä ongelma. Varmista että DNS on oikein määritetty ja isäntänimi main.cf tiedostossa.
unable to verify address (in reply to MAIL FROM command))
DNS ongelma. Varmista että sinulla on määritetty oikein A-records DNS palvelimelle ja MX-records. Tarkista /etc/hosts tiedosto. Korjaus:
nano /etc/hosts
127.0.0.1 localhost mail.example.com server 127.0.1.1 example.com mail.example.com server
Lähteet
https://wiki.debian.org/Postfix
http://ary.kleinerman.org/posts/how-to-install-and-setup-a-powerful-mail-server-on-linux/