SSH設定
SSHを使えるように設定しました。
ただ、よく攻撃対象になる22番ポートの使用を避け、公開鍵認証でのアクセス設定を行いました。
SSH設定
使用ポートの変更
botのスキャン活動や不正アクセスの際、よくデフォルトのsshポート(port 22)への攻撃が行われます。そのため、今回扱うサーバではssh待ち受けポートを22以外へ変更しました。
やり方は非常に簡単です。
- /etc/ssh/sshd_configのPortの項目を22から待ち受けたいポート番号へ変更
- service sshd restartで変更適用と再起動
- 新たに設定したsshポートを通す様にiptables変更
公開鍵認証を設定
ユーザ名、パスワードのみでの認証だと、総当たり攻撃で突破されるリスクが高いので、公開鍵認証を採用します。
自分はサーバとしてLinux、クライアントとしてWindowsを使っています。
また、sshクライアントとしてWindows上でTera Termを使っています。Tera Termには鍵生成の機能と、公開鍵をSCP(Secure Copy:SSHを使ってファイル転送を行う機能)を使って配布する機能も持ち合わせているので簡単に認証の準備ができます。
今回はこちらのサイト様*1を参考に行いました。
こちらに書いてある通りにやれば問題ないです(解説丸投げ)。ちなみに、パスワード認証では認証先のログインパスワードなどを用いましたが、公開鍵認証時は鍵以外にも生成時に設定したパスフレーズを用います。
※公開鍵認証の簡単な説明
秘密鍵ファイルはid_rsa、公開鍵ファイルはid_rsa.pubとなります。秘密鍵はクライアントが使い、公開鍵はサーバが使うことになります。秘密鍵と公開鍵は暗号化と復号化のための対になっており、秘密鍵を使って暗号化したファイルは公開鍵を使ってしか復号化できません。従って、サーバ側は受け取った暗号を復号化できれば、相手がちゃんと秘密鍵を持った相手だと判別できるわけです。
公開鍵認証以外の認証を無効化
このままだと、公開鍵認証だけでなくパスワード認証もまだ使えます。
なのでパスワード認証を無効化します。
- /etc/ssh/sshd_configを開きます
- PasswordAuthentication yesをPasswordAuthentication noへ変更
- service sshd restartで変更適用と再起動
さいごに
これで比較的安全にSSH接続できると思います。ただ、秘密鍵の取扱いには気をつけたいですね。