AWSなどの仮想マシンが誕生してからは、コンソールひとつでOSを立ち上げたり、固定IPを設定したりといった事が簡単に実現できるようになりました。

しかしここで、昔のように自力でマシンにLinuxをインストールして、ゼロから構築しなければならなくなった場合の事を考え、いま一度自力での設定方法を備忘&勉強がてら記してみようと思います。

第4回 リモートからパスワード認証でsshアクセス

sshでリモートアクセスする場合の認証方法は大きく分けて3つあります。

  • パスワード認証
  • 秘密鍵・公開鍵での認証
  • その両方

まずはパスワード認証ですが、コンソールからホスト名とユーザID・パスワードを入力するとログインできます。

但し、最低でも以下の設定だけはセキュリティ上行っておきます。

  • rootによるログイン禁止
  • 接続元IP制限

rootによるログイン禁止設定ですが、/etc/ssh/sshd_config内で

PermitRootLogin yes

PermitRootLogin no

に設定し、sshdの再起動

# /etc/init.d/sshd restart

実際にrootでログイン出来なくなっているかを確認します。

次に接続元IPアドレスを制限する設定ですが、以下の2ファイルを使用します。

/etc/hosts.deny /etc/hosts.allow

それぞれ拒否するIPリスト、許可するIPリストを記述するファイルです。
基本的にはhosts.denyで全てのIPを拒否してから、hosts.allowで許可したいIPだけを記述するのが望ましいです。

# vi /etc/hosts.deny

sshd : ALL

# vi /etc/hosts.allow

sshd : [許可するIPアドレス]

設定を変更すると直ちに設定内容が反映されますが、設定を変更する前に接続されているものはdeny対象であっても接続が維持されているので、一旦sshdサービスをリスタートさせた方が良いです。

※この記事は、なかの人(piro556)が書いています。