SMTP Auth med TLS, POP3, IMAP med TLS via kurir för exim4 på debian 5,0 (lenny)
Skapad av Solip tisdagen den 16 Mars 2010
Som en större version för att inrätta Exim4 för att använda SMTP-AUTH och TLS, här är en guide om hur man installerar baserat på Exim4 SMTP Auth med TLS och tillgång till brevlåda via POP3 eller IMAP (båda även med TLS) kan fastställas.
Således stöder följande protokoll: SMTP, ssmtp med autentisering, POP3, pop3s, imap2, IMAPS.
Exim4 som standard Mail Transport Agent (MTA) från Debian kommer i två versioner: lätta och tunga. Heavy variant kan förlängas väl för mer än bara lokal postleveranser. Först av allt kan ha använt lätt tungvikt paket av exim4 från den version som skall ersättas. Detta är möjligt när som helst utan ändringar i konfigurationen.
aptitude install exim4-daemon-heavy
Sedan installera några paket till det totala beloppet för installationen krävs.
aptitude install courier-authdaemon courier-imap courier-imap-ssl courier-pop courier-pop-ssl swaks libnet-ssleay-perl ssl-cert
Processen för autentisering med denna inställning ser ut så här: Anslutning -> exim4 -> Courier -> System (PAM). Användarna är lokala användare, och därmed de står i resurser såsom / etc / passwd, / etc / group och / etc / shadow.
Så framtida användare har också en mappstruktur för e-post, skapar vi en sådan uppsättning nya användarkonton. maildirmake skapade strukturen i / etc / skel.
maildirmake /etc/skel/Maildir
Befintliga användare utan mappstruktur för e-post kan få mappen läggas till:
maildirmake ~/Maildir
Det rekommenderas att användaren kan sortera dem i grupper. T.ex. e-post användare, användare med giltiga skal .. ordern bör göras innan man investerar en hel del användare. Detta exempel förutsätter vår koncern "Solip" för detta ändamål. Alla användare ha någon shell tillgång, men en postbox.
groupadd solip
useradd -g solip -s /bin/false -d /home/demouser demouser
Användare kan även senare fortfarande på någon punkt med kommandot usermod att förändras.
Till inställningarna för Courier finns inget som behöver ändras. Men du behöver en förändring i intyget för IMAPS och POP3S:
rm -rf /etc/courier/*.pem
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/courier/imapd.pem
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/courier/pop3d.pem
Alternativt, om autentiseringen inte fungerar senare har ännu inte gjort följande ändringar:
chmod 755 /var/run/courier/authdaemon
Nu har vi kontrollera om de tjänster som kör:
netstat -utal | egrep -e 'pop|imap'
Utgången ska se ut så här:
tcp6 0 0 [::]:imaps [::]:* LISTEN
tcp6 0 0 [::]:pop3s [::]:* LISTEN
tcp6 0 0 [::]:pop3 [::]:* LISTEN
tcp6 0 0 [::]:imap2 [::]:* LISTEN
Nu kontrollerar vi IMAP-servern, inklusive en interaktiv inloggning:
telnet localhost imap2
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information.
AB LOGIN "root" "CHANGE"
AB OK LOGIN Ok.
BC SELECT "Inbox"
* FLAGS ($MDNSent NonJunk $Forwarded $label1 $label2 \Draft \Answered \Flagged \Deleted \Seen \Recent)
* OK [PERMANENTFLAGS ($MDNSent NonJunk $Forwarded $label1 $label2 \* \Draft \Answered \Flagged \Deleted \Seen)] Limited
* 190 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1205133440] Ok
* OK [MYRIGHTS "acdilrsw"] ACL
BC OK [READ-WRITE] Ok
ZZZZ LOGOUT
* BYE Courier-IMAP server shutting down
ZZZZ OK LOGOUT completed
Connection closed by foreign host.
Nu till exim4. Vi skapar en X.509-certifikat för kryptering. Exim4 har ett eget verktyg för detta och därmed passager i instruktionerna.
bash /usr/share/doc/exim4-base/examples/exim-gencert
Dessa genereras certifikatet och nyckeln i / etc/exim4.
Nu Exim4 konfigurationen för TLS ska anpassas. Därför inkluderar vi pärla. Dokumentation, typ:
2.1.3. Using Exim Macros to control the configuration" and "2.2.2. Enabling TLS support for Exim as server" from /usr/share/doc/exim4-base/README.Debian.gz, you should create a file with name /etc/exim4/conf.d/main/000_localmacros (split configuration) or /etc/exim4/exim4.conf.localmacros (non-split configuration), and insert lines as following:
#####################################################
### main/03_exim4-config_tlsoptions
#####################################################
MAIN_TLS_ENABLE = true
tls_on_connect_ports = 465
Kan också bestämmas men på samma plats om SMTP-AUTH måste vara krypterad eller inte. Standard är också godkänt i klartext.
auth_advertise_hosts = ${if eq{$tls_cipher}{}{}{*}}
Tillåter endast krypterade anslutningar SMTP-AUTH att använda.
Eftersom vi vill vi krypterad Exim4 SMTP på port 465 för standard ger, redigera vi också / etc/default/exim4 enligt följande:
# options for daemon listening on port 25
SMTPLISTENEROPTIONS='-oX 465:25 -oP /var/run/exim4/exim.pid'
Nu har i avsnittet authenticators titta på Exim4 konfigurationen PLAIN och logga in som följer. Justera eller byt är möjligt här.
plain_courier_authdaemon:
driver = plaintext
public_name = PLAIN
server_condition = \
${extract {ADDRESS} \
{${readsocket{/var/run/courier/authdaemon/socket} \
{AUTH ${strlen:exim\nlogin\n$auth2\n$auth3\n}\nexim\nlogin\n$auth2\n$auth3\n} }} \
{yes} \
fail}
server_set_id = $auth2
.ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = ${if eq{$tls_cipher}{}{}{*}}
.endif
: Login_courier_authdaemon
Driver = klartext
public_name = LOG
server_prompts = Användarnamn ::: Lösenord ::
server_condition = \
$ {Extract {ADRESS} \
{{{$ Socket läsa / var / run / budfirma / authdaemon / uttag} \
{AUTH $ {strlen: exim \ nlogin \ n AUTH1 $ \ n $ auth2 \ n} \ nexim \ nlogin \ n AUTH1 $ \ n $ auth2 \ n}}} \
{Ja} \
misslyckas}
server_set_id = $ AUTH1
. Ifndef AUTH_SERVER_ALLOW_NOTLS_PASSWORDS
server_advertise_condition = $ {if eq {} {} {$ tls_cipher} {*}}
. Endif
Om så är nödvändigt. Exim4 är att konfigurera ännu. Detta kan när som helst använda dpkg-reconfigure exim4-config kan utföras. Huvudpunkter är:
- Dela konfigurationen i mindre filer: Nej
- System postnamn: Samma som i intyget och i System Configuration
- Leverans metod för lokal post: Maildir format hemkatalog
Nu har vi kontrollera om SMTP-tjänsten körs som önskas.
netstat -utal | egrep -e 'smtp|ssmtp'
Utgången bör se ut ungefär så här:
tcp 0 0 *:ssmtp *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp6 0 0 [::]:ssmtp [::]:* LISTEN
tcp6 0 0 [::]:smtp [::]:* LISTEN
Nu kan du prova en gång att skicka dig en e-post och dessutom en extern till en adress:
echo "test" | mail -s "test" root
echo "test" | mail -s "test" test@domain.de
Den Exim4 log / var/log/exim4/mainlog säger att allt fungerar som den ska.
Nu har vi kontrollera om TLS är aktiv:
swaks -a -tls -q HELO -s localhost -au root -ap '<>'
Och om du använder TLS-autentisering är också (Ange lösenord):
swaks -a -tls -q AUTH -s localhost -au root
Nu använder fortfarande Exim4 /etc/init.d/exim4 restart för att starta och kontrollera loggarna och funktionen.



