今日はちょっとしたTIPSです。
ファイルの転送にはSFTPが分かりやすいですね。今日はそのSFTPを使う場合のちょっとした設定方法についてご報告します。
この間「鍵とパスワードの認証を混合するsshd_configの設定 - treedown’s Report」という記事でsshd_configの設定をご紹介しましたが、もう一個良く使っている設定があります。
SFTP専用設定です。
専用グループ、ない専用しユーザを用意してSFTPだけを限定的に許可します。
シェルは与えたくないけどSSHを活用した暗号化によるSFTPは使わせたい、そんなFTPユーザがいるのなら、ご参考までに。
設定方法
「/etc/passwd」で以下のようなユーザがいるとします。
----------------------------------------------
user01:x:0000:0000::/home/user01:/sbin/nologin
----------------------------------------------
そのユーザが所属するグループ設定は
「/etc/group」で確認可能。
----------------------------------------------
sftpusers:x:1002:user01
----------------------------------------------
SFTPだけを実行したいユーザは「sftpuser」グループに所属するようにする。ということです。
この状態で
「/etc/ssh/sshd_config」で「sftpuser」グループに専用設定を実施します。
----------------------------------------------
Match group sftpusers
PasswordAuthentication yes
ChrootDirectory /var/www
X11Forwarding no
AllowTcpForwarding no
AllowAgentForwarding no
ForceCommand internal-sftp
----------------------------------------------
あとはシステムグループの「sftpusers」にユーザを追加していくだけでSFTP専用ユーザを量産することが可能。
ちょっと小話っぽい解説
全体設定で「PasswordAuthentication no」を設定して鍵認証以外は排除していたとしても、「Match group sftpuser」の記述以降で「PasswordAuthentication yes」とすることで、基本的に鍵認証にしつつ「sftpuser」グループだけはパスワード認証にできます。この辺は前回記事にありましたね。
これに加えて「ForceCommand internal-sftp」として、SFTP接続を受け入れるようにしています。こうすると、SSH接続をしても「/etc/passwd」で「/sbin/nologin」としているためシェルは利用できないのですが、SFTPだけは利用可能なユーザをグループ化した状態で作成することが可能になります。
あとはクライアントでSSHポートを指定してプロトコルはSFTPを使ってユーザログイン情報を入力してやればSFTPでアクセスが可能です。
なんで、この設定を…?
実は理由がありまして。明日に続きます。