ssh のセキュリティ強化

su コマンドで正しく root になった時に、身に覚えのない「最後の正しいログインの後に xxx 回の失敗ログインの試行があります」とメッセージが表示されたらアタックを疑った方が良い。

ログの確認

/var/log/secure ログを確認する。(Raspberry Pi なら /var/log/auth.log)
以下の様なエラーが出ていたら間違いない。

1行目:IPアドレスから sshを使って、rootユーザでログインしようとして失敗した。
2行目:IPアドレスから sshを使って、adolfoユーザでログインしようとした。

どこから来たか確認

「IP 国 確認」 などでググるとIPアドレスから国コードを調べるサービスが出てくる。
IPアドレスの国を調べると、Bahrain、Botswana、Brazil、Bulgaria、Canada、China、Czech Republic、France、Hong Kong、India、Iran, Islamic Republic of、Italy、Japan、Korea, Republic of、Moldova, Republic of、Netherlands、New Zealand、Nigeria、Poland、Romania、Russian Federation、Serbia、Singapore、Somalia、Suriname、Ukraine、United States

とりあえずサービス作ってみた。


国を判別したいIPアドレスまたはホスト名を入力してをクリック

対策1

/etc/ssh/sshd_conifg

1行目:リモートからのrootログインを不許可にする。リモートからは別のユーザでログインしてから su コマンドで root になる。
2行目:パスワードの間違えを何回まで許すかの設定。
設定した後は、sshd をリスタートする。
/etc/rc.d/init.d/sshd restart (CentOS6≧)とか
systemctl restart sshd (CentOS7)とか

対策2

特定の IP からの ssh アクセスを拒否る。
/etc/hosts.deny に以下の様に追記する。

でも、はっきりいってキリがない。

対策3

特定の IP からの ssh アクセスのみ許容
/etc/hosts.allow に以下を記述

1行目:イントラからのアクセスを許可。172.16.x.x 系のネットワークなら 172.16 と記述
2行目:ローカルループバック接続を許可
3行目:外部からアクセスを許可する IP アドレスを記載。職場とか学校とか

/etc/hosts.deny

全て拒否
その後 sshd をリスタート
※ 設定を失敗するとターミナルからしか接続できなくなる。
また、DHCP とかで振り直されてIPアドレスが変わっても接続できなくなる。(イントラからはOKだけど)

ちなみに、上記の設定で refused connect すると、アタックスクリプトの仕様的に4回であきらめるみたい。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です