ConoHa VPSを借りたらまずはセキュリティを高めるためにsshの設定しよう

ConoHa VPSのサーバーを借りると最初にrootのパスワードを設定する必要があります。

しかし、この状態だと、パスワードさえ見つけてしまえば、第三者がサーバーに侵入することが可能になってしまいます。しかもrootユーザーなので、すべての設定変更が可能な状態となります。

まさしく乗っ取られてしまいます。

これを防ぐために、いくつかのセキュリティ対策を行いたいと思います。

  • 暗号鍵によるアクセスの導入
  • パスワードでのログインをやめる
  • rootでのログインを不可にする
  • ポート番号を変更して、SSHによるアクセスを難しくしておく

暗号鍵を作成する

ssh-keygen -t rsa -b 4096

これで秘密鍵と公開鍵が作成されます。

id_rsa

id_rsa.pub

のように2つ作成されます。.pubが公開鍵です。pubというのはpublicの頭3字ですね。

クライアントPCに秘密鍵を置いて、サーバー側に公開鍵を置きます。

SSHで接続を構築する際に、サーバー側に秘密鍵情報を渡し、公開鍵と整合性が取れればログインできるようになります。

秘密鍵を持っていないクライアントはサーバー側にログインを拒絶されるわけです。

パスワードによるログインを不可にする

ログイン名とパスワードによるログインというのは意外と危険です。

人間は記憶力に制限がありますので、ログイン名やパスワードをそれほど複雑にすることができません。

もっともよく使われているパスワードは”password”だという笑えない話があるぐらいです。

というわけで、パスワードでのログインを不可にします。

/etc/ssh/sshd_config の設定を変更します。

ポートの番号は必ず変えよう

SSHのデフォルトのポート番号は22です。

これは世界中誰もが知っている事実なので、悪意のある第三者はこのポート番号をめがけてハッキングを試みます。

このポート番号を変更しておけば、第三者にとって侵入するのは非常に難しくなります。

CentOS7になってからfirewalldによるセキュリティ設定が必要になっています。

ssh自体の設定は/etc/ssh/sshd_configを変更することで行なえます。

それに加えて、CentOS7ではポート番号を変更する際に、firewalldの設定を変更する必要があります。

初期状態ではfirewalldは/etc/firewalld/services/ssh.xmlを読み込んでいます。この設定をまず解除します。

sudo firewall-cmd --permanent --remove-service=ssh

これでfirewalldからsshの設定が解除されました。

もともとのssh.xmlファイルをコピーして自分用のssh-2323.xmlファイルを用意します。

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh-2323.xml

ssh-2323.xmlの中身を変更します。

<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
<port protocol="tcp" port="22"/>
</service>

port='22'をport='2323'に変更し保存します。

これをfirewalldに読み込みます。

sudo firewall-cmd --permanent --add-service=ssh-2323

SSHサービスとしてssh-2323.xmlを読み込んで、firewalldに永続的に(--permanent)設定を行うという意味です。

sudo firewall-cmd --reload

firewalldの設定を再読込します。

リロードは忘れがちですが、初心者がハマるポイントです。お忘れなく!

これでSSHでアクセスできるポート番号は2323に設定されました。

コメント