Почтовый сервер Qmail с шифрованием используя stunnel (qmail mail linux stunnel)
Ключевые слова: qmail, mail, linux, stunnel, (найти похожие документы)
From: Данилюк Вячеслав <dvi@info-srv.ru.>
Newsgroups: email
Date: Mon, 1 May 2006 18:21:07 +0000 (UTC)
Subject: Почтовый сервер Qmail с шифрованием используя stunnel
Установка почтового сервера Qmail, используя дистрибутив QMAILROCKS и
программу SSL шифрования STUNNEL на Red Hat Enterprise Linux 4 (RHEL 3, CentOs 3, CentOs 4).
После установки почтового дистрибутива Qmailrocks
(http://www.qmailrocks.ru), не обходимо скачать stunnel
(http://www.stunnel.org/).
Устанавливаем stunnel:
# rpm -Uhv stunnel-4.x.rpm
# cd /etc/stunnel/
# vi pop3s-smtps.conf
Файл конфигурации:
# Example
###
cert = /etc/stunnel/stunnel.crt
key = /etc/stunnel/stunnel.key
setuid = stunnel
setgid = stunnel
pid = /var/run/stunnel/stunnel.pid
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
#;compression = rle
debug = 7
output = /var/log/stunnel.log
[pop3s]
accept = 995
connect = 127.0.0.1:110
[ssmtp]
accept = 465
connect = 127.0.0.1:25
Путь к файлу сертефиката:
cert = /etc/stunnel/stunnel.crt
Путь к файлу ключа сертификата:
key = /etc/stunnel/stunnel.key
Пользователь и группа:
setuid = stunnel
setgid = stunnel
Файл идентификатора процесса:
pid = /var/run/stunnel/stunnel.pid
Путь к файлу лога и уровень его ведения:
debug = 7
output = /var/log/stunnel.log
Настройки для шифрования протокола POP3:
[pop3s]
accept = 995 - шифрованный порт
connect = 127.0.0.1:110 - ip адрес и порт протокола pop3
Настройки для шифрования протокола SMTP:
[ssmtp]
accept = 465 - шифрованный порт
connect = 127.0.0.1:25 ip адрес и порт протокола smtp
Создание ключа и сертификата:
# /usr/bin/openssl genrsa 1024 > /etc/stunnel/stunnel.key
# chmod go-rwx /etc/stunnel/stunnel.key
# usr/bin/openssl req -new -key /etc/stunnel/stunnel.key -x509 -days 365 -out /etc/stunnel/stunnel.crt
При указывании данных в параметре
Common Name (your name or server's hostname) []:myhost.example.com
правильно укажите домен, к которому вы будете подсоединяться, используя
почтовые программы, в противном случае почтовые программы будут выдавать
ошибку.
Исправьте файл /var/qmail/bin/qmailctl
vi /var/qmail/bin/qmailctl
#!/bin/sh
# For Red Hat chkconfig
# chkconfig: - 80 30
# description: the qmail MTA
PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH
QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
case "$1" in
start)
echo "Starting qmail..."
echo ""
if svok /service/qmail-send ; then
svc -u /service/qmail-send /service/qmail-send/log
echo "Starting qmail-send"
else
echo "qmail-send supervise not running"
fi
if svok /service/qmail-smtpd ; then
svc -u /service/qmail-smtpd /service/qmail-smtpd/log
echo "Starting qmail-smtpd"
else
echo "qmail-smtpd supervise not running"
fi
if svok /service/qmail-pop3d ; then
svc -u /service/qmail-pop3d /service/qmail-pop3d/log
echo "Starting qmail-pop3d"
else
echo "qmail-pop3d supervise not running"
fi
/usr/sbin/stunnel /etc/stunnel/pop3s-smtps.conf
echo "Starting qmail-pop3sd"
echo "Starting qmail-smtpsd"
if [ -d /var/lock/subsys ]; then
touch /var/lock/subsys/qmail
fi
;;
stop)
echo "Stopping qmail..."
echo ""
echo " qmail-smtpd"
svc -d /service/qmail-smtpd /service/qmail-smtpd/log
echo " qmail-send"
svc -d /service/qmail-send /service/qmail-send/log
echo " qmail-pop3d"
svc -d /service/qmail-pop3d /service/qmail-pop3d/log
echo " qmail-pop3sd"
echo " qmail-smtpsd"
kill -9 `cat /var/run/stunnel/stunnel.pid`
if [ -f /var/lock/subsys/qmail ]; then
rm /var/lock/subsys/qmail
fi
;;
stat)
svstat /service/qmail-send
svstat /service/qmail-send/log
svstat /service/qmail-smtpd
svstat /service/qmail-smtpd/log
svstat /service/qmail-pop3d
svstat /service/qmail-pop3d/log
qmail-qstat
;;
doqueue|alrm|flush)
echo "Flushing timeout table and sending ALRM signal to qmail-send."
/var/qmail/bin/qmail-tcpok
svc -a /service/qmail-send
;;
queue)
qmail-qstat
qmail-qread
;;
reload|hup)
echo "Sending HUP signal to qmail-send."
svc -h /service/qmail-send
;;
pause)
echo "Pausing qmail-send"
svc -p /service/qmail-send
echo "Pausing qmail-smtpd"
svc -p /service/qmail-smtpd
echo "Pausing qmail-pop3d"
svc -p /service/qmail-pop3d
;;
cont)
echo "Continuing qmail-send"
svc -c /service/qmail-send
echo "Continuing qmail-smtpd"
svc -c /service/qmail-smtpd
echo "Continuing qmail-pop3d"
svc -c /service/qmail-pop3d
;;
restart)
echo "Restarting qmail:"
echo "* Stopping qmail-smtpd."
svc -d /service/qmail-smtpd /service/qmail-smtpd/log
echo "* Sending qmail-send SIGTERM and restarting."
svc -t /service/qmail-send /service/qmail-send/log
echo "* Sending qmail-pop3d SIGTERM and restarting."
svc -t /service/qmail-pop3d /service/qmail-pop3d/log
echo "* Restarting qmail-smtpd."
svc -u /service/qmail-smtpd /service/qmail-smtpd/log
echo " Restarting qmail-pop3sd"
echo " Restarting qmail-smtpsd"
kill -9 `cat /var/run/stunnel/stunnel.pid`
/usr/sbin/stunnel /etc/stunnel/pop3s-smtps.conf
;;
cdb)
tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp.cdb
echo "Reloaded /etc/tcp.smtp."
;;
help)
cat <<HELP
stop -- stops mail service (smtp connections refused, nothing goes out)
start -- starts mail service (smtp connection accepted, mail can go out)
pause -- temporarily stops mail service (connections accepted, nothing leaves)
cont -- continues paused mail service
stat -- displays status of mail service
cdb -- rebuild the tcpserver cdb file for smtp
restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
doqueue -- schedules queued messages for immediate delivery
reload -- sends qmail-send HUP, rereading locals and virtualdomains
queue -- shows status of queue
alrm -- same as doqueue
flush -- same as doqueue
hup -- same as reload
HELP
;;
*)
echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
exit 1
;;
esac
exit 0
# qmailctl stop
# qmailctl start
1, alex (??), 16:09, 05/05/2006 [ответить]
| +/– |
автору спасибо, все замечательно заработало | |
|