2020年1月アーカイブ

Gmailへのメールリレー設定

Gmailへのメールリレー設定を久々に実施したので、その時のメモです。
過去にもやったことはあったのですが、Google側のセキュリティ設定等も変わっていたので、少し嵌まりました。
以下の設定例はCentOS7です。

CentOS側の設定

必要なパッケージはpostfixとcyrus-sasl-plainです。
postfixは多くの場合デフォルトで入っていると思いますので、以下のコマンドでcyrus-sasl-plainを導入します。
[root@centos7 ~]# yum install cyrus-sasl-plain

main.cfには以下の設定を追加します。
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
smtp_tls_CAfile = /etc/pki/tls/cert.pem

ipv6を無効化している環境では、inet_protocolsを次の設定にします。
inet_protocols = ipv4

パスワードファイルの作成は色々なサイトに載っておりますが、念のために記載しておきます。
sasl_passwdというファイルを以下の内容で作成します。
[smtp.gmail.com]:587 <ユーザー名>@gmail.com:<パスワード>

portmapコマンドでhash化します。
[root@centos7 ~]# portmap /etc/postfix/sasl_passwd

Gmail側の設定

安全性の低いアプリのアクセスの設定をオンにします。
gmail.png

Google側の設定はたまに変わりますので、将来に渡って同じ設定でよいかはわかりませんが、本日時点では設定できました。
毎朝、サーバからメールで状態サマリを送っていますが、1月に入ってからSSHでのログイン試行が急増。
ポート番号は22番以外だったので、今までは特にアクセスはありませんでした。
恐らく、well-knownポート以外もポートスキャンされたのでしょう。
(22番で置いておくと、物凄くアクセスがあるので、精神衛生上、変えていたのですがね。)

ログインユーザーを調べてみる

とりあえず、Failed password forと含まれるログのユーザー名を見てみます。
[root@www01 ~]# cat /var/log/secure* | grep "Failed" | sed 's/invalid user //' | awk '{print $9}' | sort | uniq

とりあえず結果はファイルにおいてみましたが、記事作成時点では1963種ほどあるみたいです。
色々なアプリで使ってそうなユーザー名やら色々でした。
見たことあるユーザー名も結構含まれていて面白いですね。

抽出したユーザー名

アクセス元のIPアドレスを調べてみる

同様にIPアドレスを調べてみます。
[root@www01 ~]# cat /var/log/secure* | grep "Failed" | sed 's/invalid user //' | awk '{print $11}' | sort | uniq

アクセス元のIPアドレスは895個と中々の数です。

抽出したIPアドレス

全部引けるかはわかりませんが、IPアドレスからDNS名を逆引きしていみます。
[root@www01 ~]# cat /var/log/secure* | grep "Failed" | sed 's/invalid user //' | awk '{print $11}' | sort | uniq | while read; do nslookup; done > nslookup.txt
[root@www01 ~]# cat nslookup.txt  | grep "name ="

ぱっと見ですが、世界中からアクセスがあるみたいですね...。
イタリアであったり、アメリカであったり、ブラジルであったりと切りがありません。

国内からもアクセスがあるようですが、もしかして乗っ取られているのかもしれませんね...。
AbuselPDBで調べてみましたが、既に報告が上がっていました。
逆引きできたアドレスのDNS名からの判定ですが、確認できた国内のIPアドレスは4つありました。
1つ目は2019/12/5から、2つ目は2020/1/6から、3つ目は2019/12/8から、4つ目は2019/12/30から報告が上がっています。

キリがないのは分かっていますが、とりあえず既に上がっている分についてはアクセス制限するようにしたいと思います。