You are here

Postfix/POP3/IMAP

AlbLinux's picture

Në menyrë që të instalojmë Postfix me SMTP-AUTH dhe TLS si server POP3 që gjithashtu shërben POP3s (porta 995) dhe një server IMAP që trajton edhe IMAPs (porta 993) do të veprojmë si në vazhdim:

apt-get install postfix postfix-tls libsasl2 sasl2-bin libsasl2-modules ipopd-ssl uw-imapd-ssl

(një rresht i vetëm)

Konfigurimi i ipopd
-> pop3 dhe pop3s
-> JoKonfigurimi i postfix
-> Internet Site
-> None
-> server1.shembull.org
-> server1.shembull.org, localhost.shembull.org, localhost
-> Jo

Japim komandat:

postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'

echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/

openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted

mv -f smtpd.key.unencrypted smtpd.key

openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'

Mbas konfigurimeve të mësipërme, file /etc/postfix/main.cf duhet të jetë i ngjashëm me:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

myhostname = localhost.localdomain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.shembull.org, localhost.shembull.org, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600
stls_random_source = dev:/dev/urandom

Rinisim Postfix:

/etc/init.d/postfix restart

Autentifikimi do të kryhet nga saslauthd. Që të punojë si duhet duhet të kryejmë nja dy ndryshime. Meqenëse Postfix funksionon i chroot-uar në /var/spool/postfix duhet të veprojmë si në vazhdim:

mkdir -p /var/spool/postfix/var/run/saslauthd
rm -fr /var/run/saslauthd

Tani duhet të ndryshojmë /etc/default/saslauthd në menyrë që të aktivojmë saslauthd. Heqim # në fillim të START=yes dhe shtojmë rreshtin PARAMS="-m /var/spool/postfix/var/run/saslauthd":

# This needs to be uncommented before saslauthd will be run automatically
START=yes
PARAMS="-m /var/spool/postfix/var/run/saslauthd"
# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"
MECHANISMS="pam"

Në fund duhet të ndryshojmë /etc/init.d/saslauthd.Ndryshojmë rreshtin:

dir=`dpkg-statoverride --list $PWDIR`

në:

#dir=`dpkg-statoverride --list $PWDIR`

Pastaj ndryshojmë të ndryshieshmet PWDIR dhe PIDFILE dhe shtojmë të ndryshueshmen dir në fillim të file:

PWDIR="/var/spool/postfix/var/run/${NAME}"
PIDFILE="${PWDIR}/saslauthd.pid"
dir="root sasl 755 ${PWDIR}"

File /etc/init.d/saslauthd tashmë duhet të jetë si në vazhdim:

#!/bin/sh
NAME=saslauthd
DAEMON="/usr/sbin/${NAME}"
DESC="SASL Authentication Daemon"
DEFAULTS=/etc/default/saslauthd
PWDIR="/var/spool/postfix/var/run/${NAME}"
PIDFILE="${PWDIR}/saslauthd.pid"

dir="root sasl 755 ${PWDIR}"
createdir() {
# $1 = user# $2 = group# $3 = permissions (octal)# $4 = path to directory        [ -d "$4" ] || mkdir -p "$4"        chown -c -h "$1:$2" "$4"        chmod -c "$3" "$4"}test -f "${DAEMON}" || exit 0# Source defaults file; edit that file to configure this script.if [ -e "${DEFAULTS}" ]; then    . "${DEFAULTS}"fi# If we're not to start the daemon, simply exitif [ "${START}" != "yes" ]; then    exit 0fi# If we have no mechanisms definedif [ "x${MECHANISMS}" = "x" ]; then    echo "You need to configure ${DEFAULTS} with mechanisms to be used"    exit 0fi# Add our mechanimsms with the necessary flagPARAMS="${PARAMS} -a ${MECHANISMS}"START="--start --quiet --pidfile ${PIDFILE} --startas ${DAEMON} --name ${NAME} -- ${PARAMS}"# Consider our optionscase "${1}" in  start)        echo -n "Starting ${DESC}: "        #dir=`dpkg-statoverride --list $PWDIR`        test -z "$dir" || createdir $dir        if start-stop-daemon ${START} >/dev/null 2>&1 ; then                echo "${NAME}."        else                if start-stop-daemon --test ${START} >/dev/null 2>&1; then                        echo "(failed)."                        exit 1                else                        echo "${DAEMON} already running."                        exit 0                fi        fi        ;;  stop)        echo -n "Stopping ${DESC}: "        if start-stop-daemon --stop --quiet --pidfile "${PIDFILE}" \                --startas ${DAEMON} --retry 10 --name ${NAME} \                >/dev/null 2>&1 ; then                        echo "${NAME}."        else                if start-stop-daemon --test ${START} >/dev/null 2>&1; then                        echo "(not running)."                        exit 0                else                        echo "(failed)."                        exit 1                fi        fi        ;;  restart|force-reload)          $0 stop        exec $0 start        ;;  *)        echo "Usage: /etc/init.d/${NAME} {start|stop|restart|force-reload}" >&2        exit 1        ;;esacexit 0

Tani mund të nisim saslauthd:

/etc/init.d/saslauthd start

Për të kontrolluar që SMTP-AUTH dhe TLS punojnë si duhet ekzekutojmë komandën në vazhdim:

telnet localhost 25


Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 localhost.localdomain ESMTP Postfix (Debian/GNU)

Tani japim komandën:

ehlo localhost


250-localhost.localdomain
250-PIPELINING
250-SIZE 10240000
250-VRFY250-ETRN
250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME

Nga përgjigja dallojmë ekzistencën e rreshtave 250-STARTTLS dhe 250-AUTH: gjithçka është në rregull.
Dalim:

quit
  • Courier-IMAP/Courier-POP3
    Po të duam të përdorim një daemon POP3/IMAP me suport për Maildir (nëse nuk duam të përdorim formatin e zakonshëm mailbox) mund të instalojmë Courier-IMAP/Courier-IMAP-SSL (për IMAPs në portën 993) dhe Courier-POP3/Courier-POP3-SSL (për POP3s në portën 995). Përndryshe mund të kaloni tek hapi pasardhës: Konfigurimi i Apache.

    apt-get install courier-imap courier-imap-ssl courier-pop courier-pop-ssl

    Tek dritarja e dialogut përgjigju -> Jo
    ipopd dhe UW-IMAP do të zëvendësohen.
    Konfigurojmë Postfix që të shpërndajë e-mailet tek Maildir e përdoruesit:

    postconf -e 'home_mailbox = Maildir/'
    postconf -e 'mailbox_command ='

    Rinisim Postfix:

    /etc/init.d/postfix restart