Einen SMTP Port auf einem dedizierten Server hinzufügen
Beschreibung:
In Folge der Blockierung des Port 25 bei einigen Providern kann es sein, dass Sie auf Ihrem Server einen zusätzlichen Port öffnen müssen, um E-Mails nach aussen versenden zu können. Diese Hilfe beschreibt die dazu für die OVH Releases 1 und 2 und für Plesk notwendigen Schritte
Voraussetzungen
Kenntnisse der Verzeichnisstrukter von Linux, beherrschen eines Editors (vi oder nano, vim bei neueren Distributionen).
OVH Release 1 - Red Hat 7.2
Zuerst müssen Sie sich per SSH mit dem Server als Benutzer root verbinden. Sobald Sie verbunden sind können Sie folgende Datei mit dem Editor Ihrer Wahl bearbeiten:
/etc/init.d/qmail
Diese enthält folgendes:
#!/bin/sh
# Qmail Startup
# Source function library.
. /etc/rc.d/init.d/functions
# See how we were called.
case "$1" in
start)
cd /
echo -n "Starting: "
env - PATH="/var/qmail/bin:/usr/local/bin" \
/var/qmail/bin/qmail-start ./Maildir/ /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmail &
echo -n "qmail "
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -c100 0 pop-3 /var/qmail/bin/qmail-popup \
maxime.d.ovh.net \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
echo -n "pop "
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u503 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null &
echo "smtp"
;;
stop)
cd /
echo -n "stopping qmail"
killproc qmail-send
killproc tcpserver
echo
;;
restart)
$0 stop
$0 start
;;
status)
status qmail-send
;;
*)
echo "Usage: qmail {start|stop|restart|status}"
exit 1
esac
exit 0
Wir nehmen folgenden Abschnitt:
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u503 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null &
echo "smtp"
;;
Den wir verdoppeln um folgendes zu erhalten:
#!/bin/sh
# Qmail Startup
# Source function library.
. /etc/rc.d/init.d/functions
# See how we were called.
case "$1" in
start)
cd /
echo -n "Starting: "
env - PATH="/var/qmail/bin:/usr/local/bin" \
/var/qmail/bin/qmail-start ./Maildir/ /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmail &
echo -n "qmail "
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -c100 0 pop-3 /var/qmail/bin/qmail-popup \
maxime.d.ovh.net \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
echo -n "pop "
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u503 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null &
echo "smtp"
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u503 -g503 0 587 \
/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null &
echo "smtp587"
;;
stop)
cd /
echo -n "stopping qmail"
killproc qmail-send
killproc tcpserver
echo
;;
restart)
$0 stop
$0 start
;;
status)
status qmail-send
;;
*)
echo "Usage: qmail {start|stop|restart|status}"
exit 1
esac
Wir modifizieren den verdoppelten Abschnitt um folgendes zu erhalten:
#!/bin/sh
# Qmail Startup
# Source function library.
. /etc/rc.d/init.d/functions
# See how we were called.
case "$1" in
start)
cd /
echo -n "Starting: "
env - PATH="/var/qmail/bin:/usr/local/bin" \
/var/qmail/bin/qmail-start ./Maildir/ /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmail &
echo -n "qmail "
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -c100 0 pop-3 /var/qmail/bin/qmail-popup \
maxime.d.ovh.net \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir &
echo -n "pop "
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u503 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null &
echo "smtp"
;;
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u503 -g503 0 587 \
/var/qmail/bin/qmail-smtpd 2>&1 > /dev/null &
echo "smtp587"
;;
stop)
cd /
echo -n "stopping qmail"
killproc qmail-send
killproc tcpserver
echo
;;
restart)
$0 stop
$0 start
;;
status)
status qmail-send
;;
*)
echo "Usage: qmail {start|stop|restart|status}"
exit 1
esac
Dann kann man den E-Mail Server neu starten:
/etc/init.d/qmail restart
Wir prüfen dass der Port nun wirklich aktiv ist:
netstat -tanpu | grep 587
Anschliessend können Sie diesen Port in Ihrem E-Mail Programm konfigurieren:
Release 2 - Gentoo OVH
Wir editieren die Startdatei von qmail
vim /etc/init.d/qmail
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
- Distributed under the terms of the GNU General Public License v2
- $Header: $
depend() {
use net
before ntpd ntp-client spamd apache apache2
}
start() {
cd /
ebegin "Starting Qmail"
env - PATH="/var/qmail/bin:/usr/local/bin" \
/var/qmail/bin/qmail-start ./Maildir/ 2>&1 | /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmail/ &
eend $?
ebegin "Starting Pop"
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -c100 0 pop-3 /var/qmail/bin/qmail-popup \
ks301019.kimsufi.com \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmailpop3/ &
eend $?
ebegin "Starting Smtp"
env - PATH="/var/qmail/bin:/usr/local/bin" CHKUSER_START="DOMAIN" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmailsmtp/ &
eend $?
}
stop() {
ebegin "Stopping Qmail"
killall qmail-send
killall tcpserver
eend $?
}
Wir nehmen den Abschnitt:
ebegin "Starting Smtp"
env - PATH="/var/qmail/bin:/usr/local/bin" CHKUSER_START="DOMAIN" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmailsmtp/ &
eend $?
Wir verdoppeln diesen um folgende Datei zu erhalten:
#!/sbin/runscript
#Copyright 1999-2006 Gentoo Foundation
#Distributed under the terms of the GNU General Public License v2
#$Header: $
depend() {
use net
before ntpd ntp-client spamd apache apache2
}
start() {
cd /
ebegin "Starting Qmail"
env - PATH="/var/qmail/bin:/usr/local/bin" \
/var/qmail/bin/qmail-start ./Maildir/ 2>&1 | /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmail/ &
eend $?
ebegin "Starting Pop"
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -c100 0 pop-3 /var/qmail/bin/qmail-popup \
ks301019.kimsufi.com \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmailpop3/ &
eend $?
ebegin "Starting Smtp"
env - PATH="/var/qmail/bin:/usr/local/bin" CHKUSER_START="DOMAIN" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmailsmtp/ &
eend $?
ebegin "Starting Smtp"
env - PATH="/var/qmail/bin:/usr/local/bin" CHKUSER_START="DOMAIN" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmailsmtp/ &
eend $?
}
stop() {
ebegin "Stopping Qmail"
killall qmail-send
killall tcpserver
eend $?
}
On modifie alors la section dédoublée pour obtenir cela, modification du nom du service, modification de smtp par 587 /var/log/qmailsmtp par /var/log/qmailsmtp587/ :
ebegin "Starting Smtp587"
env - PATH="/var/qmail/bin:/usr/local/bin" CHKUSER_START="DOMAIN" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 587 \
/var/qmail/bin/qmail-smtpd 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmailsmtp587/ &
eend $?
Wir erhalten dann diese Datei:
#!/sbin/runscript
#Copyright 1999-2006 Gentoo Foundation
#Distributed under the terms of the GNU General Public License v2
#$Header: $
depend() {
use net
before ntpd ntp-client spamd apache apache2
}
start() {
cd /
ebegin "Starting Qmail"
env - PATH="/var/qmail/bin:/usr/local/bin" \
/var/qmail/bin/qmail-start ./Maildir/ 2>&1 | /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmail/ &
eend $?
ebegin "Starting Pop"
env - PATH="/var/qmail/bin:/usr/local/bin" \
tcpserver -H -R -c100 0 pop-3 /var/qmail/bin/qmail-popup \
ks301019.kimsufi.com \
/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmailpop3/ &
eend $?
ebegin "Starting Smtp"
env - PATH="/var/qmail/bin:/usr/local/bin" CHKUSER_START="DOMAIN" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmailsmtp/ &
eend $?
env - PATH="/var/qmail/bin:/usr/local/bin" CHKUSER_START="DOMAIN" \
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 587 \
/var/qmail/bin/qmail-smtpd 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog /var/log/qmailsmtp587/ &
eend $?
}
stop() {
ebegin "Stopping Qmail"
killall qmail-send
killall tcpserver
eend $?
}
On peut alors enregistrer
On peut alors saisir ces commandes, pour ajouter le dossier de logs pour le nouveau démon smtp et lui permettre d'écrire dans le dossier:
nsXXX ~ # mkdir /var/log/qmailsmtp587
nsXXX ~ # chown qmaill:root /var/log/qmailsmtp587
On peut alors stopper le serveur email (clamantivirus, spamassassin, puis qmail):
nsXXX ~ #/etc/init.d/clamd stop
nsXXX ~ #/etc/init.d/spamd stop
nsXXX ~ #/etc/init.d/qmail stop
Les emails sont gérés dans une queue par le serveur, et sont pris en charges par plusieurs programmes, il faut donc patienter que les traitements commencés au moment du stop sont bien terminés, car tant que le processus n'a pas fini de travailler, il ecrit dans les logs et bloque lesdits fichiers en écriture à une autre processus, il faut donc executer la commande suivante, afin de s'assurer que le lock sur ces fichiers est terminé:
nsXXX ~ #ps aux | grep multi
Lorsque la commande ne renvoie plus que la ligne mentionnant la commande "grep", vous pouvez relancer votre serveur email:
nsXXX ~ #/etc/init.d/clamd start
nsXXX ~ #/etc/init.d/spamd start
nsXXX ~ #/etc/init.d/qmail start
Vous pouvez alors vérifier le fonctionnement du nouveau serveur smtp:
nsXXX ~ #netstat -tanpu | grep 587
Si tout va bien vous aurez le port correspondant ouvert :
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 2358/tcpserver
Vous pouvez alors tenter un envoi en utilisant ce port depuis votre client de messagerie favori
Distributions Plesk
Il faut d'abord copier le fichier suivant:
cp /etc/xinetd.d/smtp_psa /etc/xinetd.d/smtp_psa_alt
Ensuite il faut éditer la version copiée, par exemple:
vi /etc/xinetd.d/smtp_psa_alt
et modifier le contenu de la premiere ligne pour ebtenir ceci:
service smtp_psa_alt
Ensuite, éditer le fichier /etc/services , puis tout en bas ajouter cette ligne:
smtp_psa_alt 587/tcp # new SMTP port
On redémarre ensuite xinetd:
/etc/init.d/xinetd restart
Pour vérifier que le port en question est ouvert:
netstat -tanpu | grep 587
Vous pouvez alors configurer votre logiciel de messagerie favori pour envoyer vos emails