Postfix. Mail versturen via externe SMTP. Weigering van chroot-modus. De systeemtijd controleren

Postfix is de standaard mail transfer agent (MTA) in Ubuntu. Het is ontworpen om snel, gemakkelijk te beheren en veilig te zijn. Het is MTA-compatibel stuur een e-mail . In deze sectie wordt beschreven hoe u postfix installeert en configureert. Er wordt ook uitgelegd hoe u dit moet doen SMTP-server om gebruik beveiligde verbindingen(Voor veilige overdracht berichten).

Installatie

Om te installeren achtervoegsel voer het volgende commando uit:

Sudo apt-get install postfix

Druk gewoon op Enter als het installatieproces vragen stelt, heel erg gedetailleerde opstelling zal in de volgende stap worden uitgevoerd.

Basisopstelling

Configureren achtervoegsel, voer het volgende commando uit:

Sudo dpkg-postfix opnieuw configureren

Zal gelanceerd worden gebruikersinterface. Selecteer op elk scherm het volgende:

    mail.voorbeeld.com

    Steve

    mail.voorbeeld.com , lokalehost.lokaaldomein, lokalehost

    127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24

Vervangen mail.voorbeeld.com naar het domein waarvoor u e-mail instelt, 192.168.0.0/24 naar het huidige subnet en masker voor uw mailserver en Steve naar de bijbehorende gebruikersnaam.

Dit is het moment om te beslissen welk mailboxformaat u wilt gebruiken. Standaard gebruikt postfix het formaat mbox. In plaats van het configuratiebestand rechtstreeks te bewerken, kunt u de opdracht gebruiken postconf om postfix-parameters te configureren. De instellingen worden opgeslagen in het bestand /etc/postfix/main.cf. Als u in de toekomst besluit afzonderlijke parameters opnieuw te configureren, kunt u de opdracht uitvoeren of het bestand handmatig bewerken.

Om het mailboxformaat in te stellen Maildir:

Sudo postconf -e "home_mailbox = Maildir/"

SMTP-authenticatie

Met SMTP -AUTH kan de client zichzelf identificeren via een authenticatiemechanisme (SASL). Transportlaag beveiliging (TLS) wordt gebruikt om het authenticatieproces te coderen. Eenmaal geverifieerd, staat de SMTP-server de client toe om e-mail te verzenden.

1. Configureer Postfix naar SMTP -AUTH met behulp van SASL (Dovecot SASL):

Sudo postconf -e "smtpd_sasl_type = duiventil" sudo postconf -e "smtpd_sasl_path = privé/auth-client" sudo postconf -e "smtpd_sasl_local_domain =" sudo postconf -e "smtpd_sasl_security_options = noanonymous" sudo postconf -e "broken_sasl_auth _clients = ja" sudo postconf -e "smtpd_sasl_auth_enable = ja" sudo postconf -e "smtpd_recipient_restrictions = \permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination"

Instellingen smtpd_sasl_pad is een pad relatief aan de map Postfix-aanvragen.

3. Zodra u het certificaat heeft, configureert u Postfix om TLS-codering te gebruiken voor zowel inkomende als uitgaande e-mail:

Sudo postconf -e "smtp_tls_security_level = mei" sudo postconf -e "smtpd_tls_security_level = mei" sudo postconf -e "smtp_tls_note_starttls_offer = ja" sudo postconf -e "smtpd_tls_key_file = /etc/ssl/private/server.key" sudo postconf -e " smtpd_tls_cert_file = /etc/ssl/certs/server.crt" sudo postconf -e "smtpd_tls_loglevel = 1" sudo postconf -e "smtpd_tls_received_header = ja" sudo postconf -e "mijnhostnaam = mail.example.com"

4. Als u gebruikt eigen Certificeringscentrum Om het certificaat te ondertekenen, voert u het volgende in:

Sudo postconf -e "smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem"

Zie nogmaals de sectie Certificaten voor meer informatie.

Nadat alle opdrachten zijn uitgevoerd, wordt Postfix geconfigureerd op SMTP -AUTH en wordt er een zelfondertekend certificaat gemaakt voor TLS-codering.

De initiële installatie van postfix is ​​voltooid. Voer de volgende opdracht uit om de postfix-service opnieuw te starten:

Postfix ondersteunt SMTP -AUTH zoals beschreven in RFC2554. Het is gebaseerd op SASL. U moet echter nog steeds de authenticatie configureren voordat u SMTP -AUTH kunt gebruiken.

SASL opzetten

Postfix ondersteunt twee SASL-implementaties: Cyrus SASL En Duiventil SASL . Toestaan Duiventil SASL, pakket moet worden geïnstalleerd duiventil-gemeenschappelijk. Om dit te doen, voert u het volgende in vanuit de terminal:

Sudo apt-get installeer dovecot-common

Socket luister ( #master (# Master socket biedt toegang tot userdb-informatie. Het wordt doorgaans # gebruikt om de lokale bezorger van Dovecot toegang te geven tot userdb zodat # deze mailboxlocaties kan vinden. #path = /var/run/dovecot/ auth-master #mode = 0600 # Standaardgebruiker/groep is degene die dovecot-auth (root) heeft gestart #user = #group = #) client ( # De client-socket is over het algemeen veilig om naar iedereen te exporteren. Typisch gebruik # is om exporteer het naar uw SMTP-server zodat het SMTP AUTH-zoekopdrachten kan uitvoeren # met behulp ervan.

Om het gebruik van SMTP -AUTH toe te staan Outlook-clients, in sectie standaard authenticatie bestand /etc/dovecot/dovecot.conf voeg "login" toe:

Mechanismen = gewone login

Zodra Dovecot is geconfigureerd, start u deze opnieuw op:

Sudo /etc/init.d/dovecot opnieuw opstarten

Postbezorgingsstapel

Een andere optie om Postfix voor SMTP -AUTH te configureren is door het pakket te gebruiken poststapelbezorging(voorheen duiventil-postfix genoemd). Dit pakket installeert Dovecot en configureert Postfix om het te gebruiken in combinatie met SASL-authenticatie en als mail delivery agent (MDA). Het pakket configureert Dovecot ook voor IMAP, IMAPS, POP3 en POP3S.

Het kan zijn dat u IMAP, IMAPS, POP3 of POP3S wel of niet op uw mailserver wilt gebruiken. Als u uw server bijvoorbeeld configureert als e-mailgateway, spam- en virusfilter, enz. In dit geval kan het eenvoudiger zijn om de bovenstaande opdrachten te gebruiken om Postfix te configureren naar SMTP _AUTH.

Om het pakket te installeren, voert u in een terminal het volgende in:

Sudo apt-get install mail-stack-delivery

U beschikt nu over een werkende mailserver, maar er zijn enkele opties die u in de toekomst wellicht wilt wijzigen. Het pakket gebruikt bijvoorbeeld het certificaat en de sleutel uit het ssl-cert-pakket en in werkomgeving, moet u het certificaat en de sleutel gebruiken die voor de host zijn gegenereerd. Zie sectie Certificaten voor aanvullende details.

Zodra u het bestelde certificaat voor de server heeft ontvangen, vervangt u de volgende optie in /etc/postfix/main.cf:

Smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key

Postfix opnieuw starten:

Sudo /etc/init.d/postfix opnieuw opstarten

Testen

De SMTP-AUTH-configuratie is voltooid. Dit is het moment om uw instellingen te controleren.

Voer de volgende opdracht uit om te controleren of SMTP -AUTH en TLS correct werken:

Telnet mail.voorbeeld.com 25

Nadat u een verbinding met de postfix-mailserver tot stand hebt gebracht, voert u het volgende in:

Ehlo mail.voorbeeld.com

Als je onder andere de volgende regels ziet, werkt alles prima. Binnenkomen ontslag nemen om af te sluiten.

250-STARTTLS 250-AUTH AANMELDEN PLAIN 250-AUTH=AANMELDEN PLAIN 250 8BITMIME

Probleem oplossen

In dit gedeelte worden er verschillende beschreven gemeenschappelijke methoden het vaststellen van de oorzaken van opkomende problemen.

Weigering van chroot-modus

Plastic zak achtervoegsel in Ubuntu wordt het standaard in de omgeving geïnstalleerd chroot om veiligheidsredenen. Dit kan het proces van het vinden van oplossingen voor problemen verder bemoeilijken.

Om de chroot-functionaliteit uit te schakelen, find volgende regel in het instellingenbestand /etc/postfix/master.cf:

Smtp inet n - - - - smtpd

En vervangen door het volgende:

Smtp inet n - n - - smtpd

Hierna moet u Postfix opnieuw opstarten om de nieuwe instellingen te gebruiken. Voer vanaf de terminal het volgende in:

Sudo /etc/init.d/postfix opnieuw opstarten

Logbestanden

Postfix verzendt alle berichten naar /var/log/mail.log. Foutmeldingen en waarschuwingen kunnen echter soms verloren gaan in het normale logboek, dus worden ze afzonderlijk opgeslagen in respectievelijk /var/log/mail.err en /var/log/mail.warn.

Om logberichten in realtime te bekijken, kunt u de opdracht gebruiken staart -f:

Tail -f /var/log/mail.err

Het aantal gegevens dat in het logboek wordt vastgelegd, kan worden verhoogd. Hieronder vindt u enkele aanpassingsopties om het detailniveau op sommige van de hierboven beschreven gebieden te verhogen.

1. Om te vergroten TLS log activiteit, stel opties in smtpd_tls_logniveau waarde van 1 tot 4.

Sudo postconf -e "smtpd_tls_loglevel = 4"

2. Als u problemen ondervindt bij het verzenden of ontvangen van e-mail van een specifiek domein, kunt u dit in de instelling inschakelen debug_peer_lijst.

Sudo postconf -e "debug_peer_list = probleem.domein"

3. U kunt de granulariteit van elke Postfix-service vergroten door /etc/postfix/master.cf te bewerken en toe te voegen -v na de overeenkomstige invoer. Laten we bijvoorbeeld de invoer wijzigen smtp:

Smtp-unix - - - - - smtp -v

Het is belangrijk om te onthouden dat Postfix na het aanbrengen van wijzigingen in de procesregistratie-instellingen opnieuw moet worden opgestart om te accepteren nieuwe configuratie: sudo /etc/init.d/postfix herladen

4. Om de hoeveelheid loginformatie te vergroten bij het oplossen van SASL-problemen, kunt u de volgende opties instellen in /etc/dovecot/dovecot.conf:

Auth_debug=ja auth_debug_passwords=ja

Net als bij Postfix moet het proces opnieuw worden gestart als u de Dovecot-instellingen wijzigt: sudo /etc/init.d/dovecot reload

Sommige van de bovenstaande opties kunnen de hoeveelheid informatie die naar logbestanden wordt verzonden ernstig vergroten. Vergeet niet om het log-breedsprakigheidsniveau terug te zetten naar normaal nadat u de problemen heeft opgelost. Start vervolgens de bijbehorende service opnieuw op, zodat de wijzigingen in de instellingen van kracht worden.

Koppelingen

Het beheren van een Postfix-server kan een zeer uitdagende taak zijn. Op een gegeven moment moet u zich mogelijk tot de Ubuntu-gemeenschap wenden voor meer gekwalificeerde hulp.

Voor een diepgaande duik in de informatie over Postfix wordt het ten zeerste aanbevolen om The Book of Postfix te lezen.

Tenslotte bevat de website van Postfix ook veel informatie over alle mogelijke configuratiemogelijkheden.

Bovendien bevat de Ubuntu Wiki Postfix-pagina aanvullende informatie.

E-mails verzonden vanaf de site via mail functie() in 99% van de gevallen komen ze in de spam terecht als uw SMTP-server niet professioneel is geconfigureerd. Vaak is er dringend behoefte aan installatie en boete SMTP-instellingen De webmaster doet dat niet, en nog vaker is hij gewoon stom lui. Veel CMS'en hebben een optie, of plug-ins van derden, waarmee u dit probleem kunt omzeilen door gebruik te maken van externe SMTP-diensten. Maar wat als het CMS zo'n optie niet heeft, of slecht is ontworpen en werkt met poortbeperkingen of andere verrassingen? Het is vooral vervelend als dit een commercieel project is, en de ontwikkelaar van de motor, waarvoor veel geld is betaald en waar over het algemeen iedereen blij mee is, zegt dat “de optie gepland is, maar de prioriteit laag is , omdat Er zijn zeer weinig verzoeken voor de functie"? En het is echt triest als je dit te weten komt uit de archieven van het ondersteuningsforum, waar deze “niet-prioritaire” taak enkele jaren geleden werd besproken, en de dingen zijn er nog steeds. Ik weet niet waarom de prioriteit laag is... Misschien heeft het in RuNet niemand last dat brieven met bevestigingen, facturen en andere in de spam terechtkomen. Het geeft mij stress.
En dus, als je de engine niet kunt laten werken met externe SMTP, dan moet je hem ermee laten werken standaard functie mail(). Wij verpakken de post via SMTP Google-server. In het voorbeeld heb ik een domein aangesloten Google-apps, maar hetzelfde kan worden gedaan met reguliere rekening Gmail.
We hebben: Server onder Ubuntu 12.04 met host host.domain.name, domeinnaam domain.name verbonden met Google Apps en CMS, waarbij alleen e-mail wordt verzonden via mail(). Dat laatste is niet belangrijk, aangezien we helemaal niet aan het CMS zullen raken.
Postfix installeren. Wanneer u tijdens de installatie wordt gevraagd naar het gebruik, antwoord dan “Internetsite”.
aptitude install postfix mailutils libsasl2-2 ca-certificaten libsasl2-modules
Vervolgens bewerken wij configuratiebestand/etc/postfix/main.cf. We verwijderen er alles uit en schrijven in plaats daarvan het volgende:
smtpd_banner = $mijnhostnaam ESMTP $mail_name (Ubuntu) biff = geen append_dot_mijndomein = geen readme_directory = geen mijnhostnaam = host.domein.naam alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mijnbestemming = host.domein.naam, localhost.net, localhost mijnnetwerken = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 ontvanger_delimiter = + inet_interfaces = alle relayhost= :587 smtp_connection_cache_destinations = :587 smtp_use_tls = ja smtp_tls_security_level = coderen smtp_sasl_auth_enable = ja smtp_sasl_password_maps = hash:/etc/postfix/mailpass smtp_sasl_security_options = neeanonieme smtp_sender_dependent_authentication = ja sender_dependent_relay host_maps = neeanoniem smtp_sender_dependent_authentication = ja sender_dependent_relay host_maps = neeanoniem smtp_sender_dependent_authentication = ja sender_dependent_relay host_maps = c/postfix/sender_relay smtp_generic_maps = hash:/etc/postfix/generiek smtp_tls_CAfile = /etc/postfix/cacert.pem soft_bounce = ja default_destination_concurrency_limit = 1 smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
Waar de velden "mijnhostnaam = host.domein.naam" en "mijnbestemming = host.domein.naam" naar uw hostnaam verwijzen. Dat wil zeggen, het moet worden vervangen.
Redden. Kopieer het certificaat.
cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | tee -a /etc/postfix/cacert.pem
Maak vervolgens op dezelfde plaats, in /etc/postfix, een mailpass-bestand en schrijf daarin het volgende:
:587 [e-mailadres beveiligd]:wachtwoord
Waar [e-mailadres beveiligd] bij ons mailaccount en wachtwoord, respectievelijk het wachtwoord ervoor.
We slaan het op en weigeren iedereen de toegang ertoe, behalve de supergebruiker.
chmod 600 /etc/postfix/mailpass
En 400 is beter, omdat root daar niets anders hoeft te bewerken.
Bewaar en maak een algemeen bestand met de volgende inhoud:
www-gegevens [e-mailadres beveiligd]
“www-data” is onze gebruiker waaronder apache draait virtuele gastheer en namens wie het CMS inhoud genereert. Als uw apache correct is geconfigureerd en wordt uitgevoerd namens de gebruiker die eigenaar is van de map waarin het CMS zich bevindt, moet u dit opgeven in plaats van “www-data”. Het tweede deel is respectievelijk de e-mail waaruit mail van de gebruiker www-data zal komen.
Bewaar en maak een sender_relay-bestand met de volgende inhoud:
[e-mailadres beveiligd] :587 [e-mailadres beveiligd] :587
Hier denk ik dat alles duidelijk is. Er zijn twee gebruikers in het systeem (root en gebruiker) en beide e-mail gaat via externe SMTP.
Sla het bestand tls_policy op en maak het aan. Wij schrijven daarin het volgende:
:587 versleutelen
In feite is het niet nodig om met het bestand “tls_policy” te spelen. Ze zeggen dat het zonder werkt, maar bij mij werkte het niet. Als u dit bestand niet maakt, moet de regel “smtp_tls_policy_maps = hash:/etc/postfix/tls_policy” uit de configuratie worden verwijderd.
Voer vervolgens de volgende opdrachten uit:
postmap /etc/postfix/tls_policy
(Onnodig als "tls_policy" niet wordt gebruikt).
postmap /etc/postfix/generieke postmap /etc/postfix/mailpass postmap /etc/postfix/sender_relay
Vervolgens herstarten we Postfix.
/etc/init.d/postfix opnieuw opstarten
Alle. U kunt dit controleren met de volgende opdracht:
echo "Testmail van postfix" | mail -s "Testpostfix" [e-mailadres beveiligd]
Waar [e-mailadres beveiligd] We hebben een e-mailadres waarnaar we zojuist een brief hebben gestuurd.
We hebben logbestanden in /var/log/mail.log. Als alles correct is gedaan, is er een rapport over de operatie. Als u het scheef snijdt, is er informatie over de fout.
Als u alles correct heeft geconfigureerd in Google Apps en het domein is toegewezen digitale handtekening, zullen brieven die via de standaard mail()-functie worden verzonden, nooit in de spam terechtkomen.
En tot slot: een vlieg in de zalf. Hoe het nu is weet ik niet, maar Gmail-accounts Voorheen gold een limiet van 500 uitgaande brieven per dag. Spam bestrijden. Ik weet niet of deze limieten van toepassing zijn op Google Apps (ik heb ze nooit overschreden), maar het is de moeite waard om er op te letten. Maar als er grenzen zijn, kun je met dit schema altijd je mail sluiten via zorgelozere diensten als je een groot publiek hebt en iedereen is geabonneerd op elk niesgeluid dat op de site wordt gehoord.

9 juni 2016 12:29 uur 12.209 keer bekeken | 3 Opmerkingen

Postfix is ​​een Mail Transfer Agent, oftewel MTA, applicatie voor het verzenden en ontvangen e-mail. Deze handleiding helpt Postfix alleen te installeren en configureren voor het verzenden van berichten lokale toepassingen(dat wil zeggen toepassingen die op dezelfde server zijn geïnstalleerd als Postfix).

Waarom is dit nodig?

Als u een e-mailprovider van derden gebruikt, hoeft u geen eigen e-mailserver te gebruiken. Indien aan cloud-server toepassingen die e-mailmeldingen moeten verzenden zijn geïnstalleerd, zal de lokale SMTP-server voor berichtoverdracht dat doen een uitstekend alternatief aan een externe leverancier e-maildiensten en een volledige SMTP-server.

Vereisten

  • Aangepast Ubuntu-server 16.04 (installatie-instructies zijn te vinden).
  • Niet-rootgebruiker met sudo-toegang.
  • Geldig domein (de gids gebruikt het fictieve domein example.com).

Opmerking: De hostnaam van de server moet overeenkomen met dit domein of subdomein. Om de hostnaam van de server te controleren, typt u opdrachtregel hostnaam. De uitvoer moet overeenkomen met de servernaam die deze heeft gekregen toen deze werd gemaakt.

1: Postfix installeren

Om Postfix te installeren, evenals een aantal andere programma's die nodig zijn om mail te configureren, installeert u eenvoudig het mailutils-pakket.

Update de pakketindex:

sudo apt-get-update

Het mailtuils-pakket installeert Postfix en verschillende aanvullende programma's:

sudo apt installeer mailutils

Aan het einde van de installatie zal het programma u vragen het type instelling te selecteren. Het wordt aanbevolen om te selecteren standaard optie Internetsite. Druk hiervoor op TAB en ENTER.

Selecteer het e-mailconfiguratietype dat het beste aan uw behoeften voldoet.
[…]
Algemeen type mailconfiguratie:
Geen configuratie
Internetsite
Internetten met smarthost
Satellietsysteem
Alleen lokaal

Hierna zal het programma u vragen een e-mailnaam te selecteren, Systeemmailnaam. Dit veld moet overeenkomen met de servernaam die u hebt gekozen bij het maken ervan. Geef een naam op en druk vervolgens op TAB en ENTER. Als er automatisch een subdomein zoals subdomein.voorbeeld.com in het veld is ingevoerd, vervangt u dit door het domein voorbeeld.com.

De 'mailnaam' is de domeinnaam gebruikt om _ALL_ e-mailadressen zonder domeinnaam te ‘kwalificeren’.
[…]
Systeemmailnaam:

2: Postfix instellen

Nu moeten we Postfix configureren om berichten van localhost te verzenden.

Om dit te doen moet Postfix worden geconfigureerd om alleen op de loopback-interface te luisteren - dit is een virtuele interface netwerkinterface, die door de server wordt gebruikt voor interne communicatie. Open het Postfix-configuratiebestand in een teksteditor:

sudo nano /etc/postfix/main.cf

Zoek de sectie:

. . .
mailbox_size_limit = 0
ontvanger_delimiter = +
inet_interfaces = alles
. . .

Wijzig de regel inet_interfaces = all in loopback-only.

. . .
mailbox_size_limit = 0
ontvanger_delimiter = +
inet_interfaces = alleen loopback
. . .

Hierna moet u de mydestination-richtlijn bewerken, die de lijst met domeinen specificeert waarvan de e-mail moet worden afgeleverd via de lokale bezorger local_transport. Standaard ziet de lijst er ongeveer zo uit:

/etc/postfix/main.cf
. . .
mijnbestemming = $mijnhostnaam, voorbeeld.com, localhost.com, localhost
. . .

/etc/postfix/main.cf
. . .
mijnbestemming = $mijnhostnaam, localhost.$mijndomein, $mijndomein
. . .

Sla het bestand op en sluit het.

Opmerking: Als u meerdere domeinen op één server host, kunt u de overige domeinen toevoegen aan de Postfix-instellingen (mijnbestemming). Helaas zal dit nodig zijn aanvullende instellingen, wat buiten het bestek van deze handleiding valt.

Postfix opnieuw starten:

sudo systemctl herstart postfix

3: Testen van de SMTP-server

Nu moeten we controleren of Postfix berichten naar een externe kan sturen e-mailadres. Gebruik hiervoor de opdracht mail, die ook in het pakket mailutils zit.

Om te verzenden test bericht, binnenkomen:

echo "Dit is de hoofdtekst van de e-mail" | mail -s "Dit is de onderwerpregel" jouw_email_adres

Opmerking: voer uw onderwerp en berichttekst in. Gebruik in plaats van uw_e-mailadres een geldig e-mailadres.

Rekening postbus, waarnaar het bericht is verzonden. Als het verzonden bericht niet verschijnt, controleer dan uw spammap.

Met deze instelling bevat het veld Van het adres [e-mailadres beveiligd], waarbij gebruiker de gebruikersnaam is Linux-systemen en example.com is de hostnaam. Als u uw gebruikersnaam wijzigt, verandert ook het Van-veld.

4: Post doorsturen

Ten slotte moet u het doorsturen van e-mail (of doorsturen) zo configureren dat de server verzonden berichten kan doorsturen root-gebruiker, naar uw persoonlijke externe adres.

Om Postfix door het systeem gegenereerde berichten naar uw postadres, bewerk de /etc/aliases.

sudo nano /etc/aliases

IN standaard installatie Ubuntu 16.04 dit bestand ziet er als volgt uit:

# Zie man 5 aliassen voor formaat
postmeester: root

Deze instelling geeft systeemberichten door aan de rootgebruiker. Nu moet u ervoor zorgen dat berichten worden doorgestuurd naar uw e-mailadres. Om dit te doen, voegt u een regel toe aan het bestand.