Probleem: Sendmail configureren op Ubuntu
Sendmail is een mail transfer agent voor Linux-systemen, maar het opzetten ervan op Ubuntu kan lastig zijn. Juiste configuratie is nodig om e-mails goed te kunnen verzenden en ontvangen, en om bezorgingsproblemen of beveiligingsproblemen te voorkomen.
Sendmail installeren op Ubuntu
Stappen om Sendmail te installeren
Om Sendmail op Ubuntu te installeren:
-
Open een terminal op je Ubuntu-systeem.
-
Installeer Sendmail met apt-get:
sudo apt-get install sendmail -
Voer je systeemwachtwoord in wanneer daarom wordt gevraagd.
-
Wacht tot de installatie is voltooid.
-
Controleer of Sendmail is geïnstalleerd:
sendmail -vDit toont de versie van Sendmail als het correct is geïnstalleerd.
-
Controleer de servicestatus van Sendmail:
sudo systemctl status sendmailDit laat zien of Sendmail actief is en draait.
Na deze stappen heb je Sendmail geïnstalleerd op je Ubuntu-systeem.
Tip: Sendmail configureren
Na het installeren van Sendmail moet je het mogelijk configureren. Om dit te doen, bewerk je het Sendmail-configuratiebestand:
sudo nano /etc/mail/sendmail.mc
Voer je wijzigingen door en bouw vervolgens de configuratie opnieuw op:
sudo make -C /etc/mail
sudo systemctl restart sendmail
Basis Sendmail-configuratie
Sendmailconfig uitvoeren
Het commando sendmailconfig stelt de basisconfiguratie voor Sendmail in. Dit moet je weten over dit commando:
-
Om sendmailconfig uit te voeren, gebruik je:
sudo sendmailconfig -
Dit commando werkt de configuratiebestanden van Sendmail bij.
-
Het stelt vragen over je mail-setup en maakt de configuratie op basis van je antwoorden.
-
Het hulpmiddel probeert een werkende configuratie te maken voor gebruikelijke setups.
-
Het werkt bestanden bij zoals /etc/mail/sendmail.cf en /etc/mail/submit.cf.
-
Het commando kan vragen naar de fully qualified domain name (FQDN) van je systeem.
-
Het kan je vragen om te kiezen tussen IPv4- en IPv6-protocollen.
-
Je moet mogelijk wijzigingen aan bestaande configuratiebestanden bevestigen.
Het hoofddoel van deze initiële configuratiestap is om:
-
Een basis werkende Sendmail-configuratie op te zetten.
-
Gebruikers te helpen die niet bekend zijn met de configuratiestructuur van Sendmail.
-
Een startpunt te creëren voor verdere aanpassingen indien nodig.
-
De kans op verkeerde configuratie te verkleinen, wat beveiligings- of functionaliteitsproblemen kan veroorzaken.
Onthoud dat sendmailconfig een goed startpunt biedt, maar je mogelijk meer aanpassingen moet maken voor specifieke vereisten of geavanceerde setups.
Tip: Maak een back-up van je configuratie
Voordat je sendmailconfig uitvoert, is het verstandig om een back-up te maken van je bestaande Sendmail-configuratiebestanden. Je kunt dit doen door de belangrijkste configuratiebestanden te kopiëren:
sudo cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.backup
sudo cp /etc/mail/submit.cf /etc/mail/submit.cf.backup
Hiermee kun je wijzigingen terugdraaien als dat nodig is.
Sendmail-configuratiebestanden vinden en bewerken
Belangrijke configuratiebestanden
Sendmail gebruikt verschillende configuratiebestanden om zijn gedrag te beheren. De belangrijkste bestanden die je moet kennen zijn:
-
/etc/mail/sendmail.conf: Dit bestand bevat algemene instellingen voor Sendmail. Het regelt opties zoals de maximale berichtgrootte, het aantal queue runners en de locatie van Sendmail-mappen.
-
/etc/cron.d/sendmail: Dit bestand stelt geplande taken in voor Sendmail. Het bevat vermeldingen voor het uitvoeren van de wachtrij en het bijwerken van Sendmail-databases met bepaalde intervallen.
-
/etc/mail/sendmail.mc: Dit is het belangrijkste configuratiebestand voor Sendmail. Het is geschreven in m4 macrotaal en definieert de meeste operationele parameters van Sendmail. Na het bewerken van dit bestand moet je het compileren naar sendmail.cf om de wijzigingen door te voeren.
Om deze bestanden te bewerken:
-
Open een terminal op je Ubuntu-systeem.
-
Gebruik een teksteditor met root-rechten om het bestand te openen. Bijvoorbeeld:
sudo nano /etc/mail/sendmail.mc -
Voer je wijzigingen door in het bestand.
-
Sla het bestand op en sluit de editor af.
-
Als je sendmail.mc hebt bewerkt, compileer het dan naar sendmail.cf:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf -
Herstart Sendmail om de wijzigingen toe te passen:
sudo systemctl restart sendmail
Vergeet niet om een back-up van deze bestanden te maken voordat je wijzigingen aanbrengt. Hiermee kun je teruggaan naar een werkende configuratie als dat nodig is.
Tip: Gebruik versiebeheer voor configuratiebeheer
Overweeg om een versiebeheersysteem zoals Git te gebruiken om je Sendmail-configuratiebestanden te beheren. Deze aanpak stelt je in staat om wijzigingen bij te houden, gemakkelijk terug te gaan naar eerdere versies en samen te werken met teamleden bij het beheren van complexe configuraties. Hier is een basis workflow:
-
Initialiseer een Git-repository in je /etc/mail-map:
cd /etc/mail sudo git init -
Voeg je configuratiebestanden toe aan de repository:
sudo git add sendmail.mc sendmail.cf -
Commit je wijzigingen:
sudo git commit -m "Initiële commit van Sendmail-configuratie" -
Voordat je wijzigingen aanbrengt, maak je een nieuwe branch:
sudo git checkout -b nieuwe-config-wijzigingen -
Nadat je je wijzigingen hebt aangebracht en getest, commit je ze:
sudo git commit -am "SMTP relay-instellingen bijgewerkt" -
Als de wijzigingen werken zoals verwacht, voeg je ze samen met de hoofdbranch:
sudo git checkout main sudo git merge nieuwe-config-wijzigingen
Deze methode biedt een vangnet en een duidelijke geschiedenis van je configuratiewijzigingen.
Sendmail-configuratie testen
Een test-e-mail verzenden
Nadat je Sendmail hebt ingesteld, test je of het correct werkt. Je kunt een test-e-mail verzenden via de commandoregel. Dit doe je als volgt:
-
Open een terminal op je Ubuntu-systeem.
-
Gebruik dit commando om een test-e-mail te verzenden:
echo "Dit is een test-e-mail van Sendmail" | sendmail -v jouw_email@voorbeeld.comVervang "jouw_email@voorbeeld.com" door jouw e-mailadres.
-
De
-vvlag toont het e-mailverzendproces. -
Controleer je e-mailinbox op het testbericht.
Om e-mailbezorging te bevestigen:
-
Zoek naar de test-e-mail in je inbox.
-
Als je hem niet ziet, controleer dan je spam-map.
-
Bekijk de e-mailheaders om te bevestigen dat deze via je Sendmail-server is verzonden.
-
Bekijk de Sendmail-logs op foutmeldingen:
sudo tail -f /var/log/mail.logDit commando toont real-time logvermeldingen.
Als de test-e-mail niet arriveert of je ziet fouten in de logs, bekijk dan je Sendmail-configuratie of controleer je netwerkinstellingen.
Tip: Een testscript gebruiken
Maak een eenvoudig PHP-script om de Sendmail-functionaliteit te testen:
<?php
$to = "jouw_email@voorbeeld.com";
$subject = "Test-e-mail van Sendmail";
$message = "Dit is een test-e-mail verzonden met PHP en Sendmail.";
$headers = "From: webmaster@voorbeeld.com";
if(mail($to, $subject, $message, $headers)) {
echo "E-mail succesvol verzonden.";
} else {
echo "E-mail verzenden mislukt.";
}
?>
Sla dit script op en voer het uit via je webserver om de Sendmail-integratie met PHP te testen.
Problemen met e-mailbezorging oplossen
Als je test-e-mail niet arriveert, probeer dan deze stappen:
-
Controleer je firewall-instellingen om te zorgen dat poort 25 (SMTP) open is.
-
Verifieer dat je DNS-instellingen correct zijn.
-
Controleer de Sendmail-wachtrij op vastgelopen berichten:
sudo mailq -
Als berichten vastzitten, probeer dan de wachtrij leeg te maken:
sudo sendmail -q
Deze stappen kunnen helpen om veelvoorkomende problemen te vinden die e-mailbezorging verhinderen.
SMTP Relay toevoegen aan Sendmail
SMTP-authenticatie instellen
Om SMTP relay aan Sendmail toe te voegen, moet je SMTP-authenticatie instellen. Dit proces houdt in dat je een authenticatiemap maakt en een authenticatiedatabase genereert. Zo doe je dat:
-
Maak een authenticatiemap:
sudo mkdir /etc/mail/auth sudo chmod 700 /etc/mail/authDit maakt een map aan voor het opslaan van authenticatie-informatie.
-
Maak een bestand om je SMTP-servergegevens op te slaan:
sudo nano /etc/mail/auth/client-info -
Voeg je SMTP-serverinformatie toe aan het bestand:
AuthInfo:jouw.smtp.server "U:gebruikersnaam" "P:wachtwoord" "M:PLAIN"Vervang "jouw.smtp.server", "gebruikersnaam" en "wachtwoord" door je werkelijke SMTP-servergegevens.
-
Genereer de authenticatiedatabase:
sudo makemap hash /etc/mail/auth/client-info < /etc/mail/auth/client-infoDit commando maakt een databasebestand aan dat Sendmail kan gebruiken.
-
Stel de juiste rechten in voor de bestanden:
sudo chmod 600 /etc/mail/auth/client-info sudo chmod 600 /etc/mail/auth/client-info.dbDit beperkt de toegang tot deze bestanden.
Nadat je deze stappen hebt voltooid, heb je de authenticatie voor SMTP relay ingesteld. De volgende stap is het aanpassen van je Sendmail-configuratie om deze authenticatie te gebruiken bij het verzenden van e-mails via je SMTP-server.
Tip: Je authenticatie-informatie beveiligen
Om de beveiliging te verbeteren, kun je je client-info bestand versleutelen:
-
Installeer GPG:
sudo apt-get install gnupg -
Genereer een GPG-sleutel:
gpg --gen-key -
Versleutel het client-info bestand:
gpg -e -r "Jouw Naam" /etc/mail/auth/client-info -
Verwijder het originele bestand:
sudo shred -u /etc/mail/auth/client-info
Deze aanpak voegt versleuteling toe aan je SMTP-inloggegevens, waardoor ze beter beveiligd zijn.
Het sendmail.mc-bestand aanpassen
SMTP-configuratie toevoegen
Om Sendmail in te stellen voor het gebruik van je SMTP relay, moet je het sendmail.mc-bestand aanpassen. Dit bestand bevat de belangrijkste instellingen voor Sendmail. Zo voeg je de SMTP-configuratie toe:
-
Open het sendmail.mc-bestand:
sudo nano /etc/mail/sendmail.mc -
Voeg deze regels toe vóór de sectie MAILER_DEFINITIONS:
define(`SMART_HOST',`jouw.smtp.server')dnl define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl FEATURE(`authinfo',`hash -o /etc/mail/auth/client-info.db')dnlVervang 'jouw.smtp.server' door je SMTP-serveradres.
-
Sla het bestand op en sluit het.
Nadat je deze regels hebt toegevoegd, moet je het sendmail.cf-bestand bijwerken. Sendmail leest dit bestand wanneer het start. Om het bij te werken:
-
Voer dit commando uit:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cfDit commando zet het sendmail.mc-bestand om naar sendmail.cf.
-
Herstart Sendmail om de wijzigingen toe te passen:
sudo systemctl restart sendmail
Deze wijzigingen vertellen Sendmail om je SMTP-server als smart host te gebruiken, authenticatiemethoden in te schakelen en de authenticatie-informatie te gebruiken die je eerder hebt ingesteld.
Test je setup na het maken van deze wijzigingen om te zorgen dat Sendmail correct werkt met je SMTP relay.
Tip: SMTP-configuratie verifiëren
Nadat je het sendmail.mc-bestand hebt aangepast en Sendmail opnieuw hebt gestart, kun je de SMTP-configuratie verifiëren door de mail-logs te controleren. Gebruik het volgende commando om de meest recente logvermeldingen te bekijken:
sudo tail -f /var/log/maillog
Zoek naar regels die een geslaagde verbinding met je SMTP-server aangeven en eventuele authenticatieberichten. Dit kan je helpen om problemen met je configuratie te identificeren.
Sendmail-service herstarten
Configuratiewijzigingen toepassen
Nadat je je Sendmail-configuratie hebt gewijzigd, herstart je de Sendmail-service om deze wijzigingen toe te passen. Zo doe je dat:
-
Herstart de Sendmail daemon:
sudo systemctl restart sendmail -
Voor oudere Ubuntu-versies gebruik je:
sudo service sendmail restart
Om te controleren of Sendmail draait met de nieuwe instellingen:
-
Controleer de Sendmail-servicestatus:
sudo systemctl status sendmail -
Zoek naar "Active: active (running)" in de uitvoer.
-
Controleer Sendmail-logs op foutmeldingen:
sudo tail -f /var/log/mail.log -
Stuur een test-e-mail om de nieuwe configuratie te bevestigen:
echo "Test-e-mail" | sendmail -v jouw_email@voorbeeld.com -
Bewaak de mailwachtrij om te zien of e-mails worden verwerkt:
mailq
Als je fouten ziet of als e-mails niet worden verzonden, bekijk dan je configuratiewijzigingen en controleer de logbestanden voor meer informatie.
Test je Sendmail-setup na elke configuratiewijziging om te zorgen dat het correct werkt.
Tip: Problemen met opstarten van Sendmail oplossen
Als Sendmail niet start na configuratiewijzigingen, probeer dan deze stappen:
- Controleer op syntaxfouten in je configuratiebestand:
sendmail -bt < /dev/null - Bekijk de Sendmail-log voor specifieke foutmeldingen:
sudo grep sendmail /var/log/syslog - Verifieer rechten op configuratiebestanden:
sudo ls -l /etc/mail/sendmail.cf
Sendmail beveiligen op Ubuntu
Best practices voor Sendmail-beveiliging
Om je Sendmail-setup op Ubuntu te beveiligen, volg je deze werkwijzen:
SPF (Sender Policy Framework) configureren:
-
Maak een SPF-record in de DNS-instellingen van je domein:
v=spf1 ip4:jouw_server_ip ~allVervang "jouw_server_ip" door het IP-adres van je server.
-
Installeer de SPF milter:
sudo apt-get install spf-milter -
Voeg deze regel toe aan je sendmail.mc-bestand:
INPUT_MAIL_FILTER(`spf', `S=local:/var/run/spfd.sock, F=T, T=R:2m') -
Herstart Sendmail om de wijzigingen toe te passen.
DKIM (DomainKeys Identified Mail) configureren:
-
Installeer OpenDKIM:
sudo apt-get install opendkim opendkim-tools -
Genereer DKIM-sleutels:
sudo opendkim-genkey -D /etc/dkimkeys/ -d jouwdomein.com -s default -
Voeg dit toe aan je sendmail.mc-bestand:
INPUT_MAIL_FILTER(`opendkim', `S=local:/var/run/opendkim/opendkim.sock, F=T, T=R:2m') -
Configureer OpenDKIM en herstart de service.
Anti-spam maatregelen implementeren:
-
Installeer SpamAssassin:
sudo apt-get install spamassassin -
Voeg dit toe aan je sendmail.mc-bestand:
MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m') -
Configureer SpamAssassin en herstart de service.
-
Werk je spam-regels bij:
sudo sa-update
Bouw je sendmail.cf-bestand opnieuw op en herstart Sendmail na het maken van deze wijzigingen. Deze maatregelen helpen je e-mailsysteem te beschermen tegen spam en spoofingpogingen.
Tip: Regelmatige beveiligingscontroles
Voer beveiligingscontroles uit op je Sendmail-setup:
-
Controleer op open relay:
telnet localhost 25 HELO voorbeeld.com MAIL FROM: test@voorbeeld.com RCPT TO: test@voorbeeld.comAls dit lukt, kan je server een open relay zijn.
-
Bekijk je toegangscontrolelijsten in /etc/mail/access.
-
Houd je systeem en Sendmail bijgewerkt met de laatste beveiligingspatches.





