CentOS 6.Xにおいて、rootでssh接続が出来なくするための設定です。
デフォルトで接続できなくなっている環境もあるかと思いますが、今回は自分で設定します。
必ず、別途のユーザでssh接続できる状態にしておかなければいけません!!
ユーザの追加などはuseraddコマンドを使うなりなんなりとw
さて、簡単です。
sshdの設定ファイルを開きます。
1 |
# vi /etc/ssh/sshd_config |
ファイルの中身はこんな感じ
(セキュリティの関係で、説明に必要が無い部分は省略しています。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# $OpenBSD: sshd_config,v 1.80 2008/07/02 02:24:18 djm Exp $ # This is the sshd server system-wide configuration file. See # sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin # The strategy used for options in the default sshd_config shipped with # OpenSSH is to specify options with their default value where # possible, but leave them commented. Uncommented options change a # default value. Port 22 #AddressFamily any #ListenAddress 0.0.0.0 #ListenAddress :: <<中略>> # Authentication: #LoginGraceTime 2m #PermitRootLogin yes #StrictModes yes #MaxAuthTries 6 #MaxSessions 10 <<以下省略>> |
ついでになりますが、sshポートをデフォルト状態にしておくと外部からの攻撃の的になりやすいです。
そこで、ポート番号を別のポートに変更します。
例えば、51222とか任意のポートを指定します。
このポートで接続できることも確認しておきたいですね。
さらに23行目をコピーして以下の様に設定します。
1 2 |
#PermitRootLogin yes PermitRootLogin no |
最後にsshdのサービスで設定を再読み込みします。
1 |
# service sshd reload |
敢えて、再起動(restart)はしませんでした。
理由は、reloadだと既に接続されている状態が維持されるからです。
この時点でssh接続を行っていた状態は維持されているはずです。
別途、他のssh端末を開いて上記で行った設定を元に接続を行ってみてください。(ポート番号の指定を忘れない様に)
rootへのssh接続が出来ないこと。
ポート番号が任意の指定した番号に変更になり、デフォルトの22ポートでは接続出来なくなっていることを確認してください。
これで、sshポートに対する不正アクセスは大幅に削減できるはずです。
そもそもICMP(PING)を禁止しておくべきなのですが、pingを死活監視に使いたかったので、ファイアウォールで禁止にしました。
サーバ自身はpingに応答出来る様にして、死活監視が可能な状態が欲しかったのです。
ファイアウォールが提供されていない環境では、インターネットからの不正アクセスを軽減する(禁止にはならない)ために、iptablesなどを使ってICMPを拒否することが望ましいと思います。
私の様にそれでも死活監視などの理由で残したい方は、特定のIPからのみ許可するなどの対策をご検討下さい。