その他
    ホーム 技術発信 DoRuby SFTP専用アカウントの発行

    SFTP専用アカウントの発行

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    他社様より scp / sftp を使用してファイルアップロード頂きたいとき、単にユーザアカウントを発行しポート制限を解除するのみの場合、 ssh ログインによるコマンド実行や上位階層への移動といった心配が発生します。そこでファイル転送専用にアカウント作成を行うこととなります。

     § 手順概要

    1. sftpしか行えないユーザを所属させる sftponly グループを作成します。
    2. sftponly グループに所属する sftpclient ユーザを作成します。
    3. sshサーバ側で sftponly グループは sftp しか行えないように設定します。
    4. sshサーバを再起動し完了。

    ※ グループ名 sftponly・ユーザ名 sftpclient は環境に合わせて作成してください。

     § 手順

    ※ root ユーザで実施します。

    1. グループ作成

    コマンドの実行を行えなくする為のグループを作成します。

    # groupadd sftponly

    2. ユーザ作成

    上記グループに所属するユーザを作成します。

    # useradd -s /bin/false -G sftponly sftpclient 
    # mkdir /home/sftpclient/uploads
    # chown root:root /home/sftpclient
    # chmod 755 /home/sftpclient
    # chown sftpclient:sftpclient /home/sftpclient/uploads
    

    /etc/passwd ファイルに下記ユーザが登録されており、ログインシェルが /bin/false (ログインできない状態)となっていることを確認する。

    sftpclient:x:505:505::/home/sftpclient:/bin/false

    ※ ユーザ作成後にグループに所属させる場合は vigr コマンドで 直接 /etc/group ファイルを編集します。

    # vigr
    

    sftponly:x:506:sftpclient

    3. sshサーバ設定

    /etc/ssh/sshd_config ファイルを編集します。

    # 132行目あたり
    #Subsystem     sftp     /usr/libexec/openssh/sftp-server
    Subsystem sftp internal-sftp
    # 最下行
    Match group sftponly
       ChrootDirectory /home/%u
       X11Forwarding no
       AllowTcpForwarding no
       ForceCommand internal-sftp
    

    4. sshd再起動

    ※ sshd_config を書き換えた後は設定を反映させる為に sshd を再起動する必要があります。

    /etc/init.d/sshd restart

    service sshd restart

    systemctl restart sshd.service など

    再起動が完了したら WinSCP, FileZilla, Fugu などのクライアントで接続確認を行います。

     § Appendix

    ※ /etc/sshd_config では sshポートを分かりにくい数値に変更したり、管理ユーザのログインを禁止したり、鍵認証の強制(パスワードのみの認証は拒絶)合わせて行うとよりセキュリティーを高められます。

    Port 58272
    PermitRootLogin no
    PasswordAuthentication no
    ChallengeResponseAuthentication no
    

    ※ sshdが停止していると新しくsshログインできません。既に接続中のsshセッションは維持されていますので sshd が起動失敗した場合でも気づきにくいので、sshd を再起動した際は別のプロンプトを開き接続できることを確認すると良いです。

    ※ 鍵の作成や ssh 関連記事

    http://doruby.kbmj.com/sakuma85_on_rails/20080228/ssh_root_1

    http://doruby.kbmj.com/nsho/20090426/ssh-agent1

    http://doruby.kbmj.com/oneafter999_on_rails/20100224/_SCP_

    記事を共有