HOWTO - sätta upp en mailserver med webmail
Postat: 27 aug 2006, 16:38
Mors,
Nedan finns ett första utkast till hur man kan sätta upp en mailserver hemma. Mailservern i detta exempel är uppbyggd kring:
Postfix + Dovecot + MailScanner/Spamassassin + ClamAV + IlohaMail (webmail).
Den har inga finesser vad gäller hantering av användare, utan det förutsätts ett mindre antal (upp till något 10-tal) som hanteras av dej som administratör. De som ska köra mail läggs upp som lokala användare på servern. Men i övrigt är den kraftfull och ganska enkel att sätta upp.
Som sagt - handledningen är inte färdig. Jag kommer att justera och komplettera efterhand när tiden så medger. Det finns en hel del att säga om config-filerna som inte tas upp nu. Emellertid hoppas jag att handledningen är i sådant skick att ni kan följa den redan nu och sätta upp mailservern.
Vore bra att få synpunkter, så att vi tillsammans kan kvalitetssäkra och ha målet att föra den till WIKI.
FÖRUTSÄTTNING:
- Ubuntuserver (alt.desktop) 6.0.6.1 ( eller 6.10) installerad
- Tillgång till ett korrekt domännamn (FQDN). I exemplet används xxx.homelinux.net
- Servern står bakom en router/brandvägg på ett LAN
- Servern ska ha ett fast internt ipnr
- ISP tillåter att sätta upp egen mailserver
- Du tar först back-up på de config-filer du ändrar i !!!
SERVERN OCH NÄTVERKET
I vårt exemplet har maskinen fått namnet ubuntuserver. Nätverket i exemplet kan ses nedan. Genom att köra:
ifconfig
erhålls motsvarande uppgifter för ditt nätverk. Dessa uppgifter ska du använda istället.
Ändra i hosts-filen:
sudo nano /etc/hosts
127.0.0.1 localhost ubuntuserver
127.0.1.1 ubuntuserver
-->
127.0.0.1 localhost.localdomain localhost
192.168.0.7 xxx.homelinux.net ubuntuserver.homelinux.net ubuntuserver.xxx.homelinux.net ubuntuserver
Vid grundinstallationen av Ubuntu erhålls en dynamisk adresstilldelning. Vi måste ändra detta till statisk adress för vår server.
sudo nano /etc/network/interfaces
Ändra:
auto eth0
iface eth0 inet dhcp
Till:
auto eth0
iface eth0 inet static
address 192.168.0.7
netmask 255.255.255.0
gateway 192.168.0.1
FÖRRÅD:
Lägg till Universe-förrådet
sudo nano /etc/apt/source.list
Ta bort # framför Universe-raderna (4 rader/ställen)
MTA-SERVER: Postfix (för att tranportera e-posten)
sudo apt-get install postfix
Några frågor ställs under installationen. Se svar härunder.
Kör sedan:
sudo dpkg-reconfigure postfix
Frågor och svar:
General type of configuration? Internet Site
Where should mail for root go? NONE
Mail name? xxx.homelinux.net
Other destinations to accept mail for? xxx.homelinux.net, ubuntuserver.xxx.homelinux.net, ubuntuserver.homelinux.net, localhost.xxx.homelinux.net, localhost.homelinux.net, localhost
Force synchronous updates on mail queue? No
Local networks? 127.0.0.0/8, *yyyyy
Mailbox size limit? 0
Local address extension character? +
Internet protocols to use? all
*anm. yyyyy är det interna nätverket. Detta måste läggas till för att användare på detta ska kunna maila. Postfix ser detta nätverk som "trusted". I vårt exempel är addressen 192.168.0.7 och netmasken 255.255.255.0. Detta skrivs in som 192.168.0.0/24
Öppna en av Postfix config filer och komplettera med relayhost. Du skriver in den smtp-server du normalt använder hos din ISP.
sudo nano /etc/postfix/main.cf
relayhost = <Din ISP smtp-server>
SPAMSKYDD: MailScanner/Spamassassin
sudo nano /etc/postfix/main.cf
Lägg till följande rad underst:
header_checks = regexp:/etc/postfix/header_checks
Skapa en fil /etc/postfix/header_checks
och lägg till följande rad i filen:
/^Received:/ HOLD
sudo apt-get install mailscanner
sudo nano /etc/MailScanner/MailScanner.conf
Ändra följande rader till:
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
sudo nano /etc/MailScanner/spam.assassin.prefs.conf
Lägg till raden:
razor_config /var/lib/MailScanner
Som komplement till Spamassassin i jakten på spam installeras även pyzor, razor och dcc-client.
sudo apt-get install pyzor razor dcc-client
sudo nano /etc/default/mailscanner
Ändra till:
run_mailscanner = 1
Starta om servern!
Nu ska följande foldrar finnas ..
/var/spool/MailScanner/
/var/lib/MailScanner/
/var/run/MailScanner/
/var/lock/subsys/MailScanner/
Ändra behörigheter:
sudo chown -R postfix.postfix /var/spool/MailScanner/
sudo chown -R postfix.postfix /var/lib/MailScanner/
sudo chown -R postfix.postfix /var/run/MailScanner/
sudo chown -R postfix.postfix /var/lock/subsys/MailScanner/
Kursiverat nedan gäller 6.06.1
Av någon outgrundlig anledning försvinner foldrarna /var/run/MailScanner/ och /var/lock/subsys/MailScanner/ vid varje omstart. Antingen bug i Dapper eller MailScanner. Jag gjorde en "workaround" och flyttade dessa foldrar;
sudo mkdir /var/MailScanner/
sudo mkdir /var/subsys/
sudo mkdir /var/subsys/MailScanner/
Ändra behörigheter:
sudo chown -R postfix.postfix /var/spool/MailScanner/
sudo chown -R postfix.postfix /var/lib/MailScanner/
sudo chown -R postfix.postfix /var/MailScanner/
sudo chown -R postfix.postfix /var/subsys/MailScanner/
Ändra sökvägar:
/var/run/MailScanner/ --> /var/MailScanner/
/var/lock/subsys/MailScanner/ --> /var/subsys/MailScanner/
i följande filer:
sudo nano /etc/rc2.d/S20mailscanner (6 ställen)
sudo nano /etc/MailScanner/MailScanner.conf (2 ställen)
ANTIVIRUS: ClamAV
I paketet ingår freshclam som är konfigurerad att per default kolla nya virusdefinitioner varje timma och uppdaterar automatiskt vid behov. I vår konfiguration scannar clam alla inkommande och utgående mail.
sudo apt-get install clamav
sudo nano /etc/MailScanner/MailScanner.conf
Ändra till:
# This *cannot* be the filename of a ruleset.
Virus Scanners = clamav
Kontrollera rad ung. 439. Den ska se ut så här (ett # ska inleda raden):
# clamav from <a class="postlink" href="http://www.clamav.net">http://www.clamav.net</a>, or
IMAP-SERVER: Dovecot (för att hantera och läsa e-posten)
sudo apt-get install dovecot-imapd
/etc/dovecot/dovecot.conf
Se till att följande rader finns eller skapa dessa;
protocols = imap
default_mail_env = mbox:~/mail:INBOX=/var/mail/%u
E-POST KLIENT:
- Väli IMAP server, port 143
- Både in- och utgående server ska ha din adress motsvarande 192.168.0.7
- TLS ska vara aktiverat/markerat.
TESTA
- Pröva att skicka och ta emot mail.
- Kontrollera att servern inte ger möjlighet till open relay.
http://www.antispam-ufrj.pads.ufrj.br/test-relay.html
WEBMAIL: IlohaMail
Det är ofta önskvärt att användaren använder SSL, d.v.s https://, i samband med webmail (i vårt fall IlohaMail). Detta medför att all trafik blir krypterad. Eftersom webmail kräver webserver, så installeras först Apache2 med SSL.
sudo apt-get install apache2
Skapa ett certifikat giltigt för ett år. Vid skapandet av certifikatet ska nedanstående fyllas i. Det är VIKTIGT att fylla i korrekt domännamn vid server name.
Country Name (2 letter code) [GB]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company; recommended) []:
Organizational Unit Name (eg, section) []:
server name (eg. ssl.domain.tld; required!!!) []:
Email Address []:
sudo apache2-ssl-certificate -days 365
Gör SSL modulen tillgänglig
sudo a2enmod ssl
Vid SSL ska Apache också lyssna på port 443
sudo echo "Listen 443" | sudo tee -a /etc/apache2/ports.conf
Skapa och gör SSL-siten tillgänglig:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
sudo nano /etc/apache2/sites-available/ssl
Ändra överst i filen så det ser ut så här:
NameVirtualHost *:443
<virtualhost *:443>
ServerAdmin webmaster@localhost
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
DocumentRoot /var/www/
<directory />
Options FollowSymLinks
AllowOverride None
</directory>
....> fortsättning ...
Gör den tillgänlig:
sudo a2ensite ssl
Installera IlohaMail:
sudo apt-get install ilohamail
OBS! Innan du säger YES till installationen, så läs vad som kommer att installeras
Välj Apache-ssl
Skapa en symlink:
sudo ln -s /usr/share/IlohaMail/source /var/www/webmail
sudo nano /etc/IlohaMail/conf.php
Fyll i smtpserver:
$SMTP_SERVER = "192.168.0.7";
Logga in på Ilohamail:
http(s)://192.168.0.7/webmail (på LANet)
alt.
http(s)://xxx.homelinux.net/webmail (på Internet)
User ID: <ditt användarnamn>
Password: <ditt lösenord>
Server: localhost
Type:IMAP
Fyll först i följande:
Under options:
Välj tidszon 2 och 24 timmars klocka.
Kryssa också i "Save sent items"
samt välj "Save sent messages in folder:Sent"
Vidare under options/Identities skriv in ditt namn och e-post adress.
Sedan finns det mycket annat att anpassa efter önskemål.
Nedan finns ett första utkast till hur man kan sätta upp en mailserver hemma. Mailservern i detta exempel är uppbyggd kring:
Postfix + Dovecot + MailScanner/Spamassassin + ClamAV + IlohaMail (webmail).
Den har inga finesser vad gäller hantering av användare, utan det förutsätts ett mindre antal (upp till något 10-tal) som hanteras av dej som administratör. De som ska köra mail läggs upp som lokala användare på servern. Men i övrigt är den kraftfull och ganska enkel att sätta upp.
Som sagt - handledningen är inte färdig. Jag kommer att justera och komplettera efterhand när tiden så medger. Det finns en hel del att säga om config-filerna som inte tas upp nu. Emellertid hoppas jag att handledningen är i sådant skick att ni kan följa den redan nu och sätta upp mailservern.
Vore bra att få synpunkter, så att vi tillsammans kan kvalitetssäkra och ha målet att föra den till WIKI.
FÖRUTSÄTTNING:
- Ubuntuserver (alt.desktop) 6.0.6.1 ( eller 6.10) installerad
- Tillgång till ett korrekt domännamn (FQDN). I exemplet används xxx.homelinux.net
- Servern står bakom en router/brandvägg på ett LAN
- Servern ska ha ett fast internt ipnr
- ISP tillåter att sätta upp egen mailserver
- Du tar först back-up på de config-filer du ändrar i !!!
SERVERN OCH NÄTVERKET
I vårt exemplet har maskinen fått namnet ubuntuserver. Nätverket i exemplet kan ses nedan. Genom att köra:
ifconfig
erhålls motsvarande uppgifter för ditt nätverk. Dessa uppgifter ska du använda istället.
Ändra i hosts-filen:
sudo nano /etc/hosts
127.0.0.1 localhost ubuntuserver
127.0.1.1 ubuntuserver
-->
127.0.0.1 localhost.localdomain localhost
192.168.0.7 xxx.homelinux.net ubuntuserver.homelinux.net ubuntuserver.xxx.homelinux.net ubuntuserver
Vid grundinstallationen av Ubuntu erhålls en dynamisk adresstilldelning. Vi måste ändra detta till statisk adress för vår server.
sudo nano /etc/network/interfaces
Ändra:
auto eth0
iface eth0 inet dhcp
Till:
auto eth0
iface eth0 inet static
address 192.168.0.7
netmask 255.255.255.0
gateway 192.168.0.1
FÖRRÅD:
Lägg till Universe-förrådet
sudo nano /etc/apt/source.list
Ta bort # framför Universe-raderna (4 rader/ställen)
MTA-SERVER: Postfix (för att tranportera e-posten)
sudo apt-get install postfix
Några frågor ställs under installationen. Se svar härunder.
Kör sedan:
sudo dpkg-reconfigure postfix
Frågor och svar:
General type of configuration? Internet Site
Where should mail for root go? NONE
Mail name? xxx.homelinux.net
Other destinations to accept mail for? xxx.homelinux.net, ubuntuserver.xxx.homelinux.net, ubuntuserver.homelinux.net, localhost.xxx.homelinux.net, localhost.homelinux.net, localhost
Force synchronous updates on mail queue? No
Local networks? 127.0.0.0/8, *yyyyy
Mailbox size limit? 0
Local address extension character? +
Internet protocols to use? all
*anm. yyyyy är det interna nätverket. Detta måste läggas till för att användare på detta ska kunna maila. Postfix ser detta nätverk som "trusted". I vårt exempel är addressen 192.168.0.7 och netmasken 255.255.255.0. Detta skrivs in som 192.168.0.0/24
Öppna en av Postfix config filer och komplettera med relayhost. Du skriver in den smtp-server du normalt använder hos din ISP.
sudo nano /etc/postfix/main.cf
relayhost = <Din ISP smtp-server>
SPAMSKYDD: MailScanner/Spamassassin
sudo nano /etc/postfix/main.cf
Lägg till följande rad underst:
header_checks = regexp:/etc/postfix/header_checks
Skapa en fil /etc/postfix/header_checks
och lägg till följande rad i filen:
/^Received:/ HOLD
sudo apt-get install mailscanner
sudo nano /etc/MailScanner/MailScanner.conf
Ändra följande rader till:
Run As User = postfix
Run As Group = postfix
Incoming Queue Dir = /var/spool/postfix/hold
Outgoing Queue Dir = /var/spool/postfix/incoming
MTA = postfix
sudo nano /etc/MailScanner/spam.assassin.prefs.conf
Lägg till raden:
razor_config /var/lib/MailScanner
Som komplement till Spamassassin i jakten på spam installeras även pyzor, razor och dcc-client.
sudo apt-get install pyzor razor dcc-client
sudo nano /etc/default/mailscanner
Ändra till:
run_mailscanner = 1
Starta om servern!
Nu ska följande foldrar finnas ..
/var/spool/MailScanner/
/var/lib/MailScanner/
/var/run/MailScanner/
/var/lock/subsys/MailScanner/
Ändra behörigheter:
sudo chown -R postfix.postfix /var/spool/MailScanner/
sudo chown -R postfix.postfix /var/lib/MailScanner/
sudo chown -R postfix.postfix /var/run/MailScanner/
sudo chown -R postfix.postfix /var/lock/subsys/MailScanner/
Kursiverat nedan gäller 6.06.1
Av någon outgrundlig anledning försvinner foldrarna /var/run/MailScanner/ och /var/lock/subsys/MailScanner/ vid varje omstart. Antingen bug i Dapper eller MailScanner. Jag gjorde en "workaround" och flyttade dessa foldrar;
sudo mkdir /var/MailScanner/
sudo mkdir /var/subsys/
sudo mkdir /var/subsys/MailScanner/
Ändra behörigheter:
sudo chown -R postfix.postfix /var/spool/MailScanner/
sudo chown -R postfix.postfix /var/lib/MailScanner/
sudo chown -R postfix.postfix /var/MailScanner/
sudo chown -R postfix.postfix /var/subsys/MailScanner/
Ändra sökvägar:
/var/run/MailScanner/ --> /var/MailScanner/
/var/lock/subsys/MailScanner/ --> /var/subsys/MailScanner/
i följande filer:
sudo nano /etc/rc2.d/S20mailscanner (6 ställen)
sudo nano /etc/MailScanner/MailScanner.conf (2 ställen)
ANTIVIRUS: ClamAV
I paketet ingår freshclam som är konfigurerad att per default kolla nya virusdefinitioner varje timma och uppdaterar automatiskt vid behov. I vår konfiguration scannar clam alla inkommande och utgående mail.
sudo apt-get install clamav
sudo nano /etc/MailScanner/MailScanner.conf
Ändra till:
# This *cannot* be the filename of a ruleset.
Virus Scanners = clamav
Kontrollera rad ung. 439. Den ska se ut så här (ett # ska inleda raden):
# clamav from <a class="postlink" href="http://www.clamav.net">http://www.clamav.net</a>, or
IMAP-SERVER: Dovecot (för att hantera och läsa e-posten)
sudo apt-get install dovecot-imapd
/etc/dovecot/dovecot.conf
Se till att följande rader finns eller skapa dessa;
protocols = imap
default_mail_env = mbox:~/mail:INBOX=/var/mail/%u
E-POST KLIENT:
- Väli IMAP server, port 143
- Både in- och utgående server ska ha din adress motsvarande 192.168.0.7
- TLS ska vara aktiverat/markerat.
TESTA
- Pröva att skicka och ta emot mail.
- Kontrollera att servern inte ger möjlighet till open relay.
http://www.antispam-ufrj.pads.ufrj.br/test-relay.html
WEBMAIL: IlohaMail
Det är ofta önskvärt att användaren använder SSL, d.v.s https://, i samband med webmail (i vårt fall IlohaMail). Detta medför att all trafik blir krypterad. Eftersom webmail kräver webserver, så installeras först Apache2 med SSL.
sudo apt-get install apache2
Skapa ett certifikat giltigt för ett år. Vid skapandet av certifikatet ska nedanstående fyllas i. Det är VIKTIGT att fylla i korrekt domännamn vid server name.
Country Name (2 letter code) [GB]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company; recommended) []:
Organizational Unit Name (eg, section) []:
server name (eg. ssl.domain.tld; required!!!) []:
Email Address []:
sudo apache2-ssl-certificate -days 365
Gör SSL modulen tillgänglig
sudo a2enmod ssl
Vid SSL ska Apache också lyssna på port 443
sudo echo "Listen 443" | sudo tee -a /etc/apache2/ports.conf
Skapa och gör SSL-siten tillgänglig:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/ssl
sudo nano /etc/apache2/sites-available/ssl
Ändra överst i filen så det ser ut så här:
NameVirtualHost *:443
<virtualhost *:443>
ServerAdmin webmaster@localhost
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
DocumentRoot /var/www/
<directory />
Options FollowSymLinks
AllowOverride None
</directory>
....> fortsättning ...
Gör den tillgänlig:
sudo a2ensite ssl
Installera IlohaMail:
sudo apt-get install ilohamail
OBS! Innan du säger YES till installationen, så läs vad som kommer att installeras
Välj Apache-ssl
Skapa en symlink:
sudo ln -s /usr/share/IlohaMail/source /var/www/webmail
sudo nano /etc/IlohaMail/conf.php
Fyll i smtpserver:
$SMTP_SERVER = "192.168.0.7";
Logga in på Ilohamail:
http(s)://192.168.0.7/webmail (på LANet)
alt.
http(s)://xxx.homelinux.net/webmail (på Internet)
User ID: <ditt användarnamn>
Password: <ditt lösenord>
Server: localhost
Type:IMAP
Fyll först i följande:
Under options:
Välj tidszon 2 och 24 timmars klocka.
Kryssa också i "Save sent items"
samt välj "Save sent messages in folder:Sent"
Vidare under options/Identities skriv in ditt namn och e-post adress.
Sedan finns det mycket annat att anpassa efter önskemål.