【自宅サーバー構築】自宅サーバが攻撃されたのでSSHポート番号を変える【セキュリティ】

thumbnail for this post

2つの記事で自宅サーバー環境(SSHアクセス)を作ってきましたが、SSHポートにアタックを受けてました。。
この記事ではアタックの内容とセキュリティ向上のために行ったSSHポート番号変更について書きます。

以前の記事:

og_title
【自宅サーバー構築】Intel NUC PC買ったのでセットアップ:デュアルブート編 | enjoyall

og_title
【自宅サーバー構築】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 
他にもsamba、admin、guestなど様々なユーザー名を使ってアタックされています。

SSHポートアタックに対する2つの対策

対策は2つほどあります。1つはすでに過去の記事で実施済みです。

  1. パスワード認証ではなく「公開鍵」での認証(root以外で)にします。
  2. SSH接続を22(well-known)から別のポート番号に変更します。

今回は2番目のポート番号変更を追加対策として行っておきます。

SSHポート番号変更手順

変える箇所としては3箇所になります。

  1. ゲートウェイルーターのポートフォワーディング設定
  2. SSHデーモンsshdのコンフィグ設定
  3. ssh接続するクライアント側設定

ゲートウェイルータのポートフォワード設定は各機種のマニュアルを見て変更して下さい。

SSHデーモンsshdのコンフィグ設定

/etc/ssh/sshd_config 編集 “#Port 22"と書いてある所があるので、コメントをはずしてポート番号を指定します。

Port <port番号>
ここで指定する番号はプライベートポート番号として利用してよいことになっている「49152–65535」のどこかの番号を指定します。
変更が終わったら
$ 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を見た瞬間けっこうビビリました。
個人でサーバー立ち上げるのは楽しいですが、たまにはログをみてアタックされてないかもチェックしましょう!

たいした情報入ってなくてもちゃんと気をつけて!

投げ銭していただける場合は、amazonで15円からできます。宛先はheisakuあっとcomichi.comで。

マイナスは入れられないの?

comments powered by Disqus