SSH サーバのセキュリティ対策

SSH サーバのセキュリティ対策

SSH サーバをサイバー攻撃から守るためにやっておくべき sshd の設定です。
sshd の設定は /etc/ssh/sshd_config に設定します。

Advertisement

SSH のポート番号を変更する

デフォルトの SSH のポート番号 TCP 22番を狙って、外部から不正アクセスしようと攻撃してくる危険性があるため、ポート番号を変更します。

# デフォルトのポート番号 22/TCP からポート番号 22222/TCP にする
Port 22222

パスワード認証を無効にし、公開鍵認証を使用する

パスワード認証では、ブルートフォースアタック(総当たり攻撃)によりパスワードが破られる可能性があります。パスワード認証を無効にして公開鍵認証にすることにより、ブルートフォースアタックのリスクを避けるようにします。

ssh で公開鍵認証でパスワードなしで接続する

# パスワード認証を許可しない
PasswordAuthentication no
# チャレンジ/レスポンス認証を使用しない
ChallengeResponseAuthentication no
# 空パスワードでのアクセスを許可しない
PermitEmptyPasswords no
# RSA 認証を使用しない
RSAAuthentication no
# 公開鍵認証を使用する     
PubkeyAuthentication yes

ホストベース認証を無効にする

ユーザごとの公開鍵認証にするため、ホストベースの認証を無効にします。

# ホストベースの認証を使用しない
HostbasedAuthentication no
# ホストベースの認証を使用しない
RhostsAuthentication no
# ホストベースの RSA 認証を使用しない
RhostsRSAAuthentication no

SSH ポートフォワードを禁止する

不正アクセスをされた場合、ポートフォワード機能を悪用され、踏み台攻撃を誘発する可能性がありますので、ポートフォワードを禁止します。

# TCP ポートフォワードを禁止する
AllowTcpForwarding no
# X11 ポートフォワードを禁止する 
X11Forwarding no

root でのログインを許可しない

管理者権限を持っている root ユーザが一番狙われるユーザですので、リモートから直接 root ユーザのままログインできないようにします。

# root でのログインを許可しない
PermitRootLogin no

特定のユーザにだけログインを許可する

ログインを許可するユーザを絞り込むことができるようでしたら、特定のユーザだけログインできるように設定しておきます。

# ユーザ work_user にだけログインを許可する
AllowUsers work_user

まとめ(sshd_config)

sshd_config に以下のように設定を追加しておきましょう。

# デフォルトのポート番号 22/TCP からポート番号 22222/TCP にする
Port 22222
# パスワード認証を許可しない
PasswordAuthentication no
# チャレンジ/レスポンス認証を使用しない
ChallengeResponseAuthentication no
# 空パスワードでのアクセスを許可しない
PermitEmptyPasswords no
# RSA 認証を使用しない
RSAAuthentication no
# 公開鍵認証を使用する     
PubkeyAuthentication yes
# ホストベースの認証を使用しない
HostbasedAuthentication no
# ホストベースの認証を使用しない
RhostsAuthentication no
# ホストベースの RSA 認証を使用しない
RhostsRSAAuthentication no
# TCP ポートフォワードを禁止する
AllowTcpForwarding no
# X11 ポートフォワードを禁止する 
X11Forwarding no
# root でのログインを許可しない
PermitRootLogin no
# ユーザ work_user にだけログインを許可する
AllowUsers work_user

参考

・SSH サーバセキュリティ設定ガイド Ver 1.0 (日本コンピュータセキュリティインシデント対応チーム協議会)
http://www.nca.gr.jp/imgs/nca_ssh_server_config_v01.pdf