sshd_config にSSH サーバの各設定を行いますが、このファイルに項目を追記する事によって、接続可能なユーザを限定する事ができます。 デフォルトでは、すべてのユーザが接続可能であり、セキュリティ上好ましくありません。 接続制限は、sshd_config に「AllowUsers」「DenyUsers」といった項目を追記する事で実現できます。 sshd_config に記述するので、SSH の接続とSFTP の接続にのみ有効です。 制限をかける「AllowUsers」と「DenyUsers」は、それぞれ「許可」「拒否」を示し、sshd_config への設定においては以下のような意味合いを持っています。
- AllowUsers
- 記述されたユーザのみ許可。それ以外は拒否。
- DenyUsers
- 記述されたユーザのみ拒否。それ以外は許可。
基本的には、すべての接続が許可されているので、Allow に必要最低限のユーザの記述を行う方が良いです。 AllowUsers に記述されていないユーザはパスワードを入力してもログインできないようになります。 一方、DenyUsers に拒否ユーザを記述する場合には、その他のユーザはすべて許可になります。 管理するユーザ数にもよりますが、AllowUsers として記述を行う方が、DenyUsers よりも制限をかけやすいと思います。 ちなみに、AllowUsers とDenyUsers の両方に同じユーザ名を書いた場合には、拒否になります。
「ユーザ名@ホスト」の書式により、ホストとユーザを組み合わせた制限も行う事ができます。 また、「AllowGroups」や「DenyGroups」でグループ指定可能であり、ワイルドカード「*」も適用できるので、上手く組み合わせて設定を行います。 DenyUsers の記述も書式はAllowUsers と同じです。 以下に例を挙げます。
記述例 | 制限 |
AllowUsers penguin | ユーザ名がpenguin のみ許可、その他は拒否 |
AllowUsers penguin campus | ユーザ名がpenguin とcampus のみ許可、その他は拒否 |
AllowUsers penguin@192.168.1.2 | ユーザ名がpenguin で、ホストが192.168.1.2の場合のみ許可、その他は拒否 |
AllowUsers *@192.168.1.2 | ホストが192.168.1.2の場合のみ許可、その他は拒否 |
AllowGroups note | グループ名がnote のユーザのみ許可、その他は拒否 |
上記の書式に習い、sshd_config にAllowUsers として項目を追加します。 追加する場所は任意ですが、最後の行に追加した方が後で編集しなおす場合にも分かりと思います。
* 編集を間違えると、元に戻すまでSSH での接続ができなくなりますので、リモートではなく直接マシン上で作業を行うか、他のリモート手段などを確保してから十分に注意して設定を行う事をお勧めします。
例えば、ユーザ名「penguin」のみ許可にする場合には、次のように記述します。
AllowUsers penguin
編集後は、sshd を再起動します。 デーモンを再起動しなければ設定は反映されません。