Je voulais un serveur de messagerie que je pourrais utiliser librement C'était tout ce que je voulais Ce serait comme ça ...
On me dit quel numéro est la décoction, J'ai essayé de créer un serveur de messagerie sur EC2
Il existe de nombreux articles similaires, Comme enregistrement de ce que j'ai fait Je vais également créer un nouvel article similaire
J'espère qu'une partie sera utile quelque part
Lancer une instance sur EC2 d'AWS Cette fois, je l'ai construit avec t2.micro de cadre libre OS utilise AMAZON LINUX
Ouvrez le port qui a besoin d'entrée dans le groupe de sécurité de l'instance construite
POP3 TCP 110 0.0.0.0/0 -
POP3S TCP 995 0.0.0.0/0 -
IMAPS TCP 993 0.0.0.0/0 -
SSH TCP 22 0.0.0.0/0 -
SMTP TCP 25 0.0.0.0/0 -
IMAP TCP 143 0.0.0.0/0 -
SMTPS TCP 465 0.0.0.0/0 -
TCP personnalisé 587 0.0.0.0/0 -
Cette fois, j'ai essayé de nommer le serveur de messagerie en utilisant le domaine obtenu par nom
DNS de gestion de domaine Name.com, Ajouter un enregistrement A et un enregistrement MX de l'instance créée cette fois
Un enregistrement Exemple) Un smtp.example.com 11.22.33.44
Enregistrement MX Exemple) MX example.com 10 smtp.example.com
AWS route 53 est également possible sans le faire par nom
Si vous envoyez simplement un e-mail, vous pouvez l'envoyer sans avoir à acquérir un domaine
Je ne connais pas les détails car je ne l'ai pas encore confirmé.
Connectez-vous à l'instance créée ci-dessus avec SSH Mise à jour pour le moment
yum -y update
Et installation de postfix
yum -y install postfix
Modifiez le fichier de configuration après une installation réussie
# vi /etc/postfix/main.cf
Rechercher et modifier la partie suivante
myhostname = smtp.example.com
mydomain = exapmle.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
smtpd_banner = $myhostname ESMTP unknown
home_mailbox = Maildir/
#Ajouté à la fin
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
message_size_limit = 10485760
# vi /etc/postfix/master.cf
submission inet n - n - - smtpd #Décommenter
-o smtpd_sasl_auth_enable=yes #Décommenter
Créer automatiquement un répertoire de stockage de courrier lorsqu'un nouvel utilisateur d'envoi de courrier est créé
# mkdir -p /etc/skel/Maildir/{new,cur,tmp}
# chmod -R 700 /etc/skel/Maildir/
# yum -y install cyrus-sasl
# chkconfig saslauthd on
# service saslauthd start
# vi /etc/postfix/main.cf
#Ajouté à la fin
local_recipient_maps =
luser_relay = unknown_user@localhost
# echo unknown_user: /dev/null >> /etc/aliases
# newaliases
Arrêtez s'il y a sendmail
# chkconfig sendmail off
# service sendmail stop
# chkconfig postfix on
# service postfix start
# yum -y install dovecot
# vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir #Changer la partie de commentaire
# vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no #Changer en non
auth_mechanisms = plain login #Ajouter à l'existant
# vi /etc/dovecot/conf.d/10-master.conf
#Modifier l'existant
# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
# vi /etc/dovecot/conf.d/10-ssl.conf
ssl = no #Changer en non
# chkconfig dovecot on
# service dovecot start
# useradd user
# passwd user
Définissez un nouveau mot de passe utilisateur, mais définissez-le sur "utilisateur" pour le moment
# ls /home/user/Maildir/ #Assurez-vous que le répertoire est créé
Essayez de vous l'envoyer dans le test d'envoi de courrier
# sendmail [email protected]
To:[email protected]
From:[email protected]
Subject:test
myself test.
.
Assurez-vous d'avoir un e-mail
#ls /home/user/Maildir/new/
Assurez-vous que vous écoutez sur le port requis à ce stade.
# netstat -nl | grep tcp
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
Essayez de recevoir le courrier avec un logiciel de messagerie approprié tel que Thunderbird
Utilisateur: utilisateur Adresse e-mail: [email protected] Mot de passe: utilisateur
serveur pop: port 110 smtp.example.com serveur smtp: port 587 smtp.example.com
"Authentification par mot de passe normale" avec "sans protection SSL"
À ce stade, vous pouvez vous envoyer du courrier, mais vous ne devriez pas pouvoir l'envoyer vers l'extérieur.
Ainsi, vous pouvez relayer le serveur smtp de Google pour envoyer des e-mails
# vi /etc/postfix/main.cf
relayhost = [smtp.gmail.com]:587 #Modifier la pièce existante
#Ajoutez plus à la fin
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
Utilisez votre propre compte Gmail pour authentifier Gmail
# vi /etc/postfix/sasl_passwd
[smtp.gmail.com]:587 [email protected]:password
Créer un fichier de hachage
# postmap /etc/postfix/sasl_passwd
Configurer pour autoriser les applications moins sécurisées dans votre compte Google
https://myaccount.google.com/lesssecureapps
Essayez d'envoyer un e-mail de test
# sendmail [email protected]
To:[email protected]
From:[email protected]
Subject:test
myself test.
.
Terminé si la transmission est réussie
Une politique a été écrite pour arrêter la communication externe (25,110,143, etc.) sur le routeur de l'entreprise Il m'a fallu plusieurs heures pour le remarquer, et j'ai juste fait des ajustements inutiles.
Le groupe de sécurité d'instance EC2 ne disposait pas de suffisamment de ports ouverts
Encore une fois, j'ai perdu quelques heures
J'essayais d'utiliser Outlook comme logiciel de synchronisation des comptes cette fois, mais il semble que l'authentification soit possible, mais je ne peux pas créer de compte. Le message sur Outlook est que le compte n'a pas pu être créé en raison d'un problème avec le serveur smtp. Le journal du serveur à ce moment-là est le suivant
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth: Debug: auth client connected (pid=22036)
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth: Debug: client in:AUTH#0111#011PLAIN#011service=pop3#011session=OZ2Cl9esN+lqmoDo#011lip=172.31.43.165#011rip=106.154.128.232#011lport=110#011rport=59703
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth: Debug: client passdb out: CONT#0111#011
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth: Debug: client in: CONT<hidden>
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth-worker(22037): Debug: Loading modules from directory: /usr/lib64/dovecot/auth
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth-worker(22037): Debug: Module loaded: /usr/lib64/dovecot/auth/lib20_auth_var_expand_crypt.so
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth-worker(22037): Debug: Module loaded: /usr/lib64/dovecot/auth/libdriver_sqlite.so
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth-worker(22037): Debug: pam(user,106.154.128.232,<OZ2Cl9esN+lqmoDo>): lookup service=dovecot
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth-worker(22037): Debug: pam(user,106.154.128.232,<OZ2Cl9esN+lqmoDo>): #1/1 style=1 msg=Password:
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth: Debug: client passdb out: OK#0111#011user=user#011
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth: Debug: master in: REQUEST#0111203240961#01122036#0111#011f2ecb8ac5535457503d22d0e493b0733#011session_pid=22038
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth-worker(22037): Debug: passwd(user,106.154.128.232,<OZ2Cl9esN+lqmoDo>): lookup
Aug 14 14:54:03 ip-172-31-43-165 dovecot: auth: Debug: master userdb out: USER#0111203240961#011user#011system_groups_user=user#011uid=502#011gid=502#011home=/home/user
Aug 14 14:54:03 ip-172-31-43-165 dovecot: pop3-login: Login: user=<user>, method=PLAIN, rip=106.154.128.232, lip=172.31.43.165, mpid=22038, session=<OZ2Cl9esN+lqmoDo>
Aug 14 14:54:03 ip-172-31-43-165 dovecot: pop3(user): Debug: Effective uid=502, gid=502, home=/home/user
Aug 14 14:54:03 ip-172-31-43-165 dovecot: pop3(user): Debug: Namespace inbox: type=private, prefix=, sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:~/Maildir
Aug 14 14:54:03 ip-172-31-43-165 dovecot: pop3(user): Debug: maildir++: root=/home/user/Maildir, index=, indexpvt=, control=, inbox=/home/user/Maildir, alt=
Aug 14 14:54:03 ip-172-31-43-165 dovecot: pop3(user): Debug: INBOX: Mailbox opened because: POP3 INBOX
Aug 14 14:54:03 ip-172-31-43-165 dovecot: pop3(user): Disconnected: Logged out top=0/0, retr=0/0, del=0/13, size=15260
Je me suis demandé pourquoi cela semblait fonctionner et j'ai cherché sur Google Certaines personnes disent que les perspectives ne fonctionnent pas, mais que Thunderbird fonctionne. Quand j'ai mis Thunderbird dans mon PC et l'ai essayé, Ça a marché
Les paramètres des perspectives semblent être différents
Encore une fois (omis)
[EC2] Construction du serveur de messagerie (Postfix + Dovecot) Construction du serveur de messagerie (Postfix + Dovecot) Explication détaillée avec des expériences sur le serveur SMTP et le serveur POP Envoyer un e-mail à gmail avec Postfix