【自宅サーバー構築】自宅サーバが攻撃されたのでSSHポート番号を変える【セキュリティ】
2つの記事で自宅サーバー環境(SSHアクセス)を作ってきましたが、SSHポートにアタックを受けてました。。
この記事ではアタックの内容とセキュリティ向上のために行ったSSHポート番号変更について書きます。
以前の記事:
【自宅サーバー構築】Intel NUC PC買ったのでセットアップ:デュアルブート編 | enjoyall
【自宅サーバー構築】PCセットアップ:SSH接続編 | enjoyall
自宅サーバーのポート開放の初期構成
自宅サーバーに外から繋げられるようにするたに以下のような構成を採用しています。(詳しくは過去の記事)
グローバルIP「aaa.bbb.ccc.ddd:22」に来たパケットは自宅のルーターの設定で「192.168.x.y:22」に転送されます。
Port22(SSHのWell-knownポート)だけを転送するようにしているので他のポートへのアタックで影響を受けることはありません。
Well-knownポートの一覧は以下のWikipediaにあります。
web TCPやUDPにおけるポート番号の一覧 - Wikipedia
このような構成なので「SSHポートが開いてるかどうかを手当り次第に調べているハッカー」にはすぐ見つかってしまいます。
アタックはどのように見えるか
/var/log/auth.logに認証イベントが記録されるのでそれを見てみます。
# postgresユーザで試そうとしている
Apr 13 01:42:44 ubu1 sshd[30145]: Invalid user postgres from 113.57.140.174 port 42176
Apr 13 01:42:44 ubu1 sshd[30145]: Received disconnect from 113.57.140.174 port 42176:11: Normal Shutdown, Thank you for playing [preauth]
Apr 13 01:42:44 ubu1 sshd[30145]: Disconnected from invalid user postgres 113.57.140.174 port 42176 [preauth]
# rootユーザで試そうとしている
Apr 13 01:42:50 ubu1 sshd[30163]: Received disconnect from 150.158.121.159 port 48228:11: Normal Shutdown, Thank you for playing [preauth]
Apr 13 01:42:50 ubu1 sshd[30163]: Disconnected from authenticating user root 150.158.121.159 port 48228 [preauth]
Apr 13 01:42:56 ubu1 sshd[30166]: Received disconnect from 150.158.121.159 port 38640:11: Normal Shutdown, Thank you for playing [preauth]
Apr 13 01:43:02 ubu1 sshd[30168]: Disconnected from authenticating user root 150.158.121.159 port 57234 [preauth]
Apr 13 01:43:09 ubu1 sshd[30171]: Received disconnect from 150.158.121.159 port 47622:11: Normal Shutdown, Thank you for playing [preauth]
Apr 13 01:43:09 ubu1 sshd[30171]: Disconnected from authenticating user root 150.158.121.159 port 47622 [preauth]
# bitcoinユーザで試そうとしている
Apr 13 01:43:13 ubu1 sshd[30161]: Invalid user bitcoin from 113.57.140.174 port 47107
SSHポートアタックに対する2つの対策
対策は2つほどあります。1つはすでに過去の記事で実施済みです。
- パスワード認証ではなく「公開鍵」での認証(root以外で)にします。
- SSH接続を22(well-known)から別のポート番号に変更します。
今回は2番目のポート番号変更を追加対策として行っておきます。
SSHポート番号変更手順
変える箇所としては3箇所になります。
- ゲートウェイルーターのポートフォワーディング設定
- SSHデーモンsshdのコンフィグ設定
- ssh接続するクライアント側設定
ゲートウェイルータのポートフォワード設定は各機種のマニュアルを見て変更して下さい。
SSHデーモンsshdのコンフィグ設定
/etc/ssh/sshd_config 編集 “#Port 22"と書いてある所があるので、コメントをはずしてポート番号を指定します。
Port <port番号>
変更が終わったら
$ sudo systemctl restart sshd
各種接続クライアントの設定変更
SSHコマンド
$ ssh -p <port番号> hoge@aaa.bbb.ccc.ddd
gitコマンド
git remote set-url origin ssh://git@aaa.bbb.ccc.ddd:<port番号>/abcd.git
rsyngコマンド
rsync -avzp --delete -e "ssh -p <port番号> -i ~/.ssh/xxxxxx" hoge@aaa.bbb.ccc.ddd:/xxxx/ ./
まとめ。たまにはログをみてあげましょう
/var/log/auth.logを見た瞬間けっこうビビリました。
個人でサーバー立ち上げるのは楽しいですが、たまにはログをみてアタックされてないかもチェックしましょう!
たいした情報入ってなくてもちゃんと気をつけて!