[LINUX] Super simple! centos7, sendmail dans l'environnement local, construction de serveur DNS

introduction

J'ai commencé à étudier le serveur de messagerie et le serveur DNS sous Linux, Il existe différents sites d'information, mais c'est trop difficile pour moi! Donc, je l'ai fait par essais et erreurs.

Uniquement dans un LAN fermé, sans tenir compte de la sécurité C'est une configuration super simple avec les paramètres coupés à la limite.

Constitution

Utilisation Nom d'utilisateur adresse IP adresse mail
Serveur d'envoi de courrier c10 192.168.65.10/24 -
Serveur dns c53 192.168.65.53/24 -
Serveur de réception de courrier c20 192.168.65.20/24 [email protected]

構成.png 環境.png

J'ai utilisé un PC (Windows2012ServerR2), VMware Workstation 15 Player et centos 7.7. Une configuration avec centos installé sur 3 PC est également OK.

Installer et configurer la nouvelle machine virtuelle VMware [c10, c20, c53]

Après cela, veuillez lire l'adresse et le nom d'utilisateur en fonction de chaque serveur.

-Créer une nouvelle machine virtuelle Destination: disque standard local Sélection japonaise

-Root mot de passe: c10 Confirmation: c10

-Créer un utilisateur Nom complet: c10 Nom d'utilisateur: c10 Mot de passe: c10 Confirmer le mot de passe: c10 Faire de cet utilisateur un administrateur: cochez

· Adaptateur de réseau NAT: partager et utiliser l'adresse IP de l'hôte

Paramètres réseau dans VMware [c10, c20, c53]

[root@localhost c10/c53/c20]# nmcli connection modify ens33 ipv4.addresses 192.168.65.10/24 ###Réglage de l'adresse IP
[root@localhost c10/c53/c20]# nmcli connection modify ens33 ipv4.method manual         ###Défini sur l'allocation fixe IP
[root@localhost c10/c53/c20]# nmcli connection modify ens33 connection.autoconnect yes    ###Démarrage automatique
[root@localhost c10/c53/c20]# nmcli connection down ens33                    ###Redémarrage de l'interface
[root@localhost c10/c53/c20]# nmcli connection up ens33                     ###Redémarrage de l'interface
[root@localhost c10/c53/c20]# nmcli connection modify ens33 ipv4.dns 8.8.8.8
[root@localhost c10/c53/c20]# nmcli connection modify ens33 ipv4.gateway 192.168.65.2
[root@localhost c10/c53/c20]# systemctl restart network                     ###Redémarrage du réseau
[root@localhost c10]# ip add show
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:84:a7:43 brd ff:ff:ff:ff:ff:ff
    inet 192.168.65.10/24 brd 192.168.65.255 scope global noprefixroute ens33

→ Pour les travaux suivants, utilisez un logiciel de terminal tel que teraterm pour ssh connecter à chaque machine.

Pare-feu désactivé [c10, c20, c53]

[root@localhost c10/c53/c20]# systemctl stop firewalld      ###Panne de service
[root@localhost c10/c53/c20]# systemctl status firewalld    ###Vérification de l'état du service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead)depuis le jour 2020-01-05 15:34:19 JST; 979ms ago
     Docs: man:firewalld(1)

→ Confirmez qu'il est inactif.

Désactiver SELinux [c10, c20, c53]

[root@localhost c10/c53/c20]# vi /etc/selinux/config
#Ligne 30: Correction de l'application
SELINUX=disabled

→ SELinux On dit que "un module qui ajoute une fonction de contrôle d'accès forcé au noyau Linux". Cette fois, ce n'est pas nécessaire, alors arrêtez-le.

Présentation de divers logiciels [c10, c20, c53]

[root@localhost c53]# yum install bind              ###Serveur dns
[root@localhost c10/c53/c20]# yum install telnet
[root@localhost c10/c53/c20]# yum install bind-utils        ###commande dig
[root@localhost c10/c53/c20]# yum install tcpdump
[root@localhost c10/c20]# yum install sendmail sendmail-cf  ###Serveur de courrier
[root@localhost c10/c20]# yum install mailx           ###Utilisé pour envoyer et recevoir des e-mails

Après avoir installé divers logiciels, définissez les paramètres DNS vers l'intérieur pour le nouveau serveur DNS. Fermez la communication au sein du LAN (192.168.65.x / 24) en déconnectant ou en bloquant le port côté Internet.

[root@localhost c10/c53/c20]# nmcli connection modify ens33 ipv4.dns 192.168.65.53
[root@localhost c10/c53/c20]# systemctl restart network

Vérifier le logiciel du serveur de messagerie [C10, c20]

Vérifiez si vous utilisez sendmail comme logiciel de serveur de messagerie.

[root@localhost c20]# alternatives --config mta
Il y a 2 programmes'mta'Fournir.

Sélectionnez la commande
-----------------------------------------------
   1           /usr/sbin/sendmail.postfix
*+ 2           /usr/sbin/sendmail.sendmail

Appuyez sur Entrée pour sélectionner le[+]Ou entrez le numéro de sélection:

→ Sélectionnez sendmail.

[root@localhost c10/c20]# systemctl stop postfix

→ Si postfix est installé, il s'arrêtera.

Paramètres du serveur d'envoi d'e-mails [c10]

Le serveur d'envoi est uniquement l'installation de sendmail, aucun paramètre supplémentaire n'est requis.

[root@localhost c10]# systemctl start sendmail    ###Début du service
[root@localhost c10]# systemctl status sendmail   ###Vérification de l'état du service
● sendmail.service - Sendmail Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/sendmail.service; enabled; vendor preset: disabled)
   Active: active (running)depuis le jour 2020-01-05 19:33:58 JST; 7h ago

→ Vérifier actif (en cours).

Paramètres du serveur de réception de courrier [c20]

[root@localhost c20]# vi /etc/mail/local-host-names
test.test

→ Configurer pour recevoir les e-mails envoyés au domaine test.test.

[root@localhost c20]# vi /etc/mail/sendmail.mc
#Ligne 118: Changez de toutes les adresses pour recevoir
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,  Name=MTA')dnl 
#Ligne 157: Changement de nom de domaine
LOCAL_DOMAIN(`test.test')dnl
[root@localhost c20]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf ###Refléter les paramètres
[root@localhost c20]# systemctl restart sendmail  ###Redémarrage du service
[root@localhost c20]# systemctl status sendmail  ###Vérification de l'état du service
● sendmail.service - Sendmail Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/sendmail.service; enabled; vendor preset: disabled)
   Active: active (running)depuis le jour 2020-01-05 19:03:58 JST; 1s ago
  Process: 2252 ExecStart=/usr/sbin/sendmail -bd $SENDMAIL_OPTS $SENDMAIL_OPTARG (code=exited, status=0/SUCCESS)

→ Vérifier actif (en cours).

Paramètres du serveur DNS [c53]

[root@localhost c53]# vi /etc/named.conf
options {
        listen-on port 53    { any; };
        listen-on-v6 port 53 { none; };
        directory            "/var/named";
        allow-query          { localhost; 192.168.65/24; };
        allow-transfer       { localhost; 192.168.65/24; };
        recursion no;
};
zone "test.test" IN {
       type master;
       file "test.test.lan";
};
[root@localhost c53]# vi /var/named/test.test.lan
$TTL 86400
test.test.     3600    IN SOA  NS.test.test. hoge.gmail.com.(
                       2003031401      ; Serial
                       3600            ; Refresh
                       1800            ; Retry
                       604800          ; Expire
                       86400 )         ; Minimum TTL

test.test.     3600    IN NS  NS.test.test.
NS.test.test.  3600    IN A   192.168.65.53

test.test.     3600    IN MX  10 c20.test.test.
c20.test.test. 3600    IN A   192.168.65.20
[root@localhost c53]# systemctl restart named  ###Début du service
[root@localhost c53]# systemctl status named  ###Vérification de l'état du service
● named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)
   Active: active (running)depuis le jour 2020-01-05 19:18:10 JST; 9s ago
  Process: 2235 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)

→ Vérifier actif (en cours).

Envoyer un e-mail (C10)

[root@localhost c10]# echo "Nous avons décidé de vous prêter 89,3 millions de yens." | mail -s "Contact de la banque de retenue" -S smtp=smtp://192.168.65.20:25 -r HOGE@HOGE [email protected]

→ En c10, avec l'utilisateur hoge du domaine hoge comme expéditeur Envoyez un e-mail à l'utilisateur c20 dans le domaine test.test.

Recevoir du courrier (C20)

Assurez-vous que vous recevez l'e-mail.

[root@localhost c20]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/c20": 1 messages 1 new
>N  1 HOGE@HOGE              Sun Jan  5 20:10  18/593   "Contact de la banque de retenue"
& 1
Message  1:
From HOGE@HOGE  Sun Jan  5 20:10:14 2020
Return-Path: <HOGE@HOGE>
Date: Sun, 05 Jan 2020 20:10:14 +0900
From: HOGE@HOGE
To: [email protected]
Subject:Contact de la banque de retenue
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=utf-8
Status: R

Nous avons décidé de vous prêter 89,3 millions de yens.

&

[root@localhost c20]# less /var/spool/mail/c20

From HOGE@HOGE  Sun Jan  5 20:10:14 2020
Return-Path: <HOGE@HOGE>
Received: from localhost ([192.168.65.10])
        by localhost.localdomain (8.14.7/8.14.7) with SMTP id 005BAEtA010237
        for <[email protected]>; Sun, 5 Jan 2020 20:10:14 +0900
Date: Sun, 05 Jan 2020 20:10:14 +0900
From: HOGE@HOGE
To: [email protected]
Subject: =?utf-8?B?6YqA6KGM44GL44KJ44Gu44GU6YCj57Wh?=
Message-ID: <5e11c416.CV3MXjGt/CAjqiTp%HOGE@HOGE>
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Status: RO

Nous avons décidé de vous prêter 89,3 millions de yens.

(END)
[root@localhost c20]# less /var/log/maillog
Jan  5 20:10:14 localhost sendmail[10237]: 005BAEtA010237: from=<HOGE@HOGE>, size=349, class=0, nrcpts=1, msgid=<5e11c416.CV3MXjGt/CAjqiTp%HOGE@HOGE>, proto=SMTP, daemon=MTA, relay=[192.168.65.10]
Jan  5 20:10:14 localhost sendmail[10238]: 005BAEtA010237: to=<[email protected]>, delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30522, dsn=2.0.0, stat=Sent

→ C'est arrivé!

dépannage

[root@localhost c10]# ping 192.168.65.20
PING 192.168.65.20 (192.168.65.20) 56(84) bytes of data.
64 bytes from 192.168.65.20: icmp_seq=1 ttl=64 time=1.34 ms
64 bytes from 192.168.65.20: icmp_seq=2 ttl=64 time=0.214 ms

→ Exemple réussi.

[root@localhost c10]# ping c20.test.test
PING c20.test.test (192.168.65.20) 56(84) bytes of data.
64 bytes from 192.168.65.20 (192.168.65.20): icmp_seq=1 ttl=64 time=1.21 ms
64 bytes from 192.168.65.20 (192.168.65.20): icmp_seq=2 ttl=64 time=0.895 ms

→ Exemple réussi.

[root@localhost c10]# ping c20.test.test
ping: c20.test.test:Nom ou service inconnu

→ Exemple d'échec. La résolution de noms par DNS n'est pas bien faite.

[root@localhost c10]# dig test.test any

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-9.P2.el7 <<>> test.test any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32366
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;test.test.                     IN      ANY

;; ANSWER SECTION:
test.test.              3600    IN      SOA     NS.test.test. test.gmail.com. 2003031401 3600 1800 604800 86400
test.test.              3600    IN      NS      NS.test.test.
test.test.              3600    IN      MX      10 c20.test.test.

;; ADDITIONAL SECTION:
NS.test.test.           3600    IN      A       192.168.65.53
c20.test.test.          3600    IN      A       192.168.65.20

;; Query time: 0 msec
;; SERVER: 192.168.65.53#53(192.168.65.53)
;; WHEN:Dim 05 janvier 22:00:59 JST 2020
;; MSG SIZE  rcvd: 157

→ Exemple réussi.

[root@localhost c10]# telnet 192.168.65.20 25
Trying 192.168.65.20...
Connected to 192.168.65.20.
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.14.7/8.14.7; Sun, 5 Jan 2020 22:02:10 +0900

→ Exemple réussi.

[root@localhost c10]# telnet 192.168.65.20 25
Trying 192.168.65.20...
telnet: connect to address 192.168.65.20: No route to host
[root@localhost c10]#

→ Exemple d'échec. Je ne peux pas me connecter en raison d'un problème.

[root@localhost c20]# tcpdump -p -i ens33 host 192.168.65.10
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
22:13:23.245337 IP 192.168.65.10.40542 > localhost.localdomain.smtp: Flags [S], seq 4220477456, win 29200, options [mss 1460,sackOK,TS val 29769713 ecr 0,nop,wscale 7], length 0
22:13:23.245399 IP localhost.localdomain.smtp > 192.168.65.10.40542: Flags [S.], seq 932260319, ack 4220477457, win 28960, options [mss 1460,sackOK,TS val 14031906 ecr 29769713,nop,wscale 7], length 0
22:13:23.245599 IP 192.168.65.10.40542 > localhost.localdomain.smtp: Flags [.], ack 1, win 229, options [nop,nop,TS val 29769714 ecr 14031906], length 0
22:13:23.278032 IP localhost.localdomain.smtp > 192.168.65.10.40542: Flags [P.], seq 1:89, ack 1, win 227, options [nop,nop,TS val 14031939 ecr 29769714], length 88: SMTP: 220 localhost.localdomain ESMTP Sendmail 8.14.7/8.14.7; Sun, 5 Jan 2020 22:13:23 +0900
22:13:23.278447 IP 192.168.65.10.40542 > localhost.localdomain.smtp: Flags [.], ack 89, win 229, options [nop,nop,TS val 29769746 ecr 14031939], length 0
22:13:23.279887 IP 192.168.65.10.40542 > localhost.localdomain.smtp: Flags [P.], seq 1:17, ack 89, win 229, options [nop,nop,TS val 29769747 ecr 14031939], length 16: SMTP: HELO localhost

→ Exemple réussi.

Site de référence

・ Paramètres d'envoi / réception pour sendmail, test d'envoi / réception local (Sendmail, BJD) https://qiita.com/takahashi-kazuki/items/7eb41bbc0edaa2b81caf

・ [CentOS7] Paramètres de base de sendmail | server-memo.net https://www.server-memo.net/server-setting/sendmail/sendmail-setting_centos7.html

・ Le 64e type d'enregistrement de ressource DNS (3) http://www5e.biglobe.ne.jp/aji/3min/64.html

en conclusion

J'ai pu envoyer et recevoir des e-mails avec les paramètres minimum! Nous continuerons d'ajouter des paramètres tels que l'apprentissage, l'amélioration de la sécurité et le tirage inversé! J'espère que ce post aide quelqu'un!

Recommended Posts

Super simple! centos7, sendmail dans l'environnement local, construction de serveur DNS
Serveur DNS en Python ....
À propos de la construction de l'environnement Linux (CentOS)
Construction de l'environnement du serveur de surveillance Zabbix 4.4 sur CentOS7 (Apache2.4 / PHP5.4 / MariaDB5.5)
Construire un serveur avec CONOHA VPS (CentOS)
Construction de l'environnement Python3 avec pyenv-virtualenv (CentOS 7.3)
Utilisation de Chainer avec CentOS7 [Construction de l'environnement]
Ecrire un serveur TCP super simple
Résumé des liens de construction du serveur Linux (CentOS7)
Construire WordPress sur CentOS 8 dans l'environnement LAMP
[Super Introduction] Apprentissage automatique utilisant Python - De la construction d'environnement à l'implémentation de perceptron simple-