1. 序章

SMTPサーバーは、電子メールの送受信を処理します。 したがって、その稼働時間は非常に重要です。

このチュートリアルでは、SMTPサーバーが稼働しているかどうかを確認するために使用できるさまざまな方法を見ていきます。 

2. telnetを使用する

Telnetは、リモートホストとの対話に使用されるアプリケーションプロトコルです。 telnet コマンドを使用して、SMTP接続を確認できます。 この例では、SMTPサーバーをローカルで実行します。 したがって、ドメイン名はlocalhostです。

telnet を使用して、SMTPサーバーがポート2525で実行されているかどうかを確認してみましょう。

[user@localhost ~]# telnet localhost 2525
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 a42502410059 smtp4dev ready

接続は、終了する前に少しの間開かれます。

[user@localhost ~]# telnet localhost 2525
...
Connection closed by foreign host.

接続が開いている間にサンプルの電子メールを入力して、SMTPサーバーがそれを受信して中継するかどうかを確認できます。

[user@localhost ~]# telnet localhost 2525
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 5cf184409a80 smtp4dev ready
helo user.sample.com
mail from:<[email protected]>
rcpt to:<[email protected]>
data
From: [email protected]
Subject: This is a test

Hi there :)
How are you doing?
.
quit
250 Nice to meet you
250 New message started
250 Recipient accepted
354 End message with period
250 Mail accepted
Connection closed by foreign host.

メールがローカルSMTPサーバーによって受信されたことがわかります。

Session started. Client address 10.88.0.1.
Message received. Client address 10.88.0.1. From [email protected]. To [email protected].
Processing received message
Processing received message DONE

対照的に、SMTPサーバーに到達できない場合は、「接続が拒否されました」というメッセージが表示されます。

[user@localhost ~]# telnet localhost 2525
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused

3. NetCatの使用

ncまたはncat(NetCat)コマンドは、ネットワーク間でデータを読み書きするためのネットワークユーティリティです。 このユーティリティを使用して、SMTPサーバーの接続をテストできます。

[user@localhost ~]# nc -v localhost 2525
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connection to ::1 failed: Connection refused.
Ncat: Trying next address...
Ncat: Connected to 127.0.0.1:2525.
220 b9b103518a80 smtp4dev ready

nc コマンドは、TCPまたはUDPの2つのプロトコルのいずれかを使用してデータの読み取りまたは書き込みを行うことができます。 TCPプロトコルがデフォルトのプロトコル設定です。 それでも、UDPプロトコルを使用する場合は、-uオプションを追加するだけです。

[user@localhost ~]# nc -vu localhost 2525
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connected to ::1:2525.

さらに、SMTPサーバーにアクセスできない場合は、「接続が拒否されました」というメッセージが表示されます。

[user@localhost ~]# nc -v localhost 2525
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connection to ::1 failed: Connection refused.
Ncat: Trying next address...
Ncat: Connection refused.

4. nmapを使用する

nmap コマンドは、ネットワーク探索を支援します。 このツールの目的は大規模なネットワークをスキャンすることですが、単一のホストをスキャンすることもできます。 ツールに関して、特にポートのスキャンに関して、法的な問題があることに注意することが重要です。 したがって、ツールはローカルでのみ使用することをお勧めします。

[user@localhost ~]# nmap localhost -p 2525 
Starting Nmap 7.70 ( https://nmap.org ) at 2021-11-11 20:38 SAST
Nmap scan report for localhost (127.0.0.1)
Host is up.
Other addresses for localhost (not scanned): ::1

PORT     STATE    SERVICE
2525/tcp filtered ms-v-worlds

Nmap done: 1 IP address (1 host up) scanned in 2.08 seconds

STATE列の目的は、ポートを記述することです。 列の値は、オープンフィルター処理、およびクローズです。 filtered 状態は、ファイアウォールが設置されていることを意味します。 さらに、SMTPサーバーにアクセスできない場合、closedSTATE列の値として表示されることが期待できます。

[root@localhost ~]# nmap localhost -p 2525 
Starting Nmap 7.70 ( https://nmap.org ) at 2021-11-11 20:42 SAST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Other addresses for localhost (not scanned): ::1

PORT     STATE  SERVICE
2525/tcp closed ms-v-worlds

Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds

5. 結論

この記事では、SMTPサーバーに到達できるかどうかを確認するのに役立ついくつかのコマンドについて説明しました。

さらに、コマンドの1つであるtelnetを使用してテストメールを送信する方法についても説明しました。