treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

SSHでちょっとした設定TIPS

今日はちょっとした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」グループだけはパスワード認証にできます。この辺は前回記事にありましたね。

blog.treedown.net

これに加えて「ForceCommand internal-sftp」として、SFTP接続を受け入れるようにしています。こうすると、SSH接続をしても「/etc/passwd」で「/sbin/nologin」としているためシェルは利用できないのですが、SFTPだけは利用可能なユーザをグループ化した状態で作成することが可能になります。

あとはクライアントでSSHポートを指定してプロトコルはSFTPを使ってユーザログイン情報を入力してやればSFTPでアクセスが可能です。

f:id:treedown:20170607173929p:plain

なんで、この設定を…?

実は理由がありまして。明日に続きます。