LoginSignup
2
2

More than 1 year has passed since last update.

特定のユーザーのみSFTP接続させてみる

Last updated at Posted at 2021-06-25

概要

特定のユーザーでのみSFTP接続可能にする設定する必要があったので実施してみた。
備忘がてら、流れをメモする。

前提

Webサーバー(今回はさくらインターネットの専用サーバーを使用)
vsftpがインストールされている
SSHでアクセスできる環境

手順

1.サーバー側でユーザーの設定

SSHでアクセスし、ユーザーを作成する

$ ssh -i {key情報} sample@xxx.xxx.xxx.xxx -p xx
Last login: xxxxx from xxxx.jp

SAKURA Internet [Virtual Private Server SERVICE]


# 管理者権限に昇格
[sample@xxxx ~]$ sudo su
[sudo] password for sample:

 # test_userを追加
[root@xxxx sample]# useradd -s /sbin/nologin -d /home/test_user test_user

# パスワード設定
[root@xxxx sample]# passwd test_user
ユーザー test_user のパスワードを変更。
新しいパスワード:
新しいパスワードを再入力してください:
passwd: 全ての認証トークンが正しく更新できました。

# ユーザーが作成されているか確認
[root@xxxx sample]# /home/
sample/   test_user/

# ディレクトリのパーミッションを設定
[root@xxxx sample]# chmod 755 /home/test_user

# パーミッションの確認
[root@xxxx sample]# cd /home/
[root@xxxx home]# ls -la
合計 xx
drwxr-xr-x.  7 root       root        4096  6月 20 09:20 2021 .
dr-xr-xr-x. 22 sample     sample      4096  8月  7 11:01 2019 ..
drwxr-xr-x   2 test_user  test_user   4096  6月 20 09:20 2021 test_user

2.sshd_configでSFTP設定

PasswordAuthentication yesにして、SFTPユーザーのみパスワード認証を許可する。

/etc/ssh/sshd_config

:
:
#Subsystem      sftp    /usr/libexec/openssh/sftp-server ← コメントアウトする
Subsystem sftp internal-sftp

Match User test_user
    ChrootDirectory /home
    PasswordAuthentication yes
    X11Forwarding no
    AllowTcpForwarding no

設定が完了したら、設定情報のチェックをする

[root@xxxx home]# sshd -t

問題がなければsshdを再起動する。

[root@xxxx home]# /etc/rc.d/init.d/sshd restart
sshd を停止中:                                             [  OK  ]
sshd を起動中:                                             [  OK  ]

3.SFTPクライアントから接続する

今回はFileZillaを使用してSFTP設定をする。

接続確認

  • プロトコル:SFTP
  • ホスト:サーバーのIPアドレス
  • ポート:SSH接続ポート
  • ログオンタイプ:通常
  • ユーザー:手順1で作成したユーザー:test_user
  • ユーザー:手順1で作成したパスワード:*****

スクリーンショット 2021-06-20 9.45.03.png

接続ログ

スクリーンショット 2021-06-20 9.45.17.png

接続完了

リモートサイト側にtest_userが表示された
スクリーンショット 2021-06-20 9.48.26.png

これで一旦接続完了した。

その他

グループを使った指定方法

今回はユーザー指定でSFTP設定をしたが、複数のアカウントでSFTP接続できるようにしたい場合は、sshd_configに設定をすれば可能みたい。

Match Group {グループ名}
    ChrootDirectory /home
    PasswordAuthentication yes
    X11Forwarding no
    AllowTcpForwarding no

特定ユーザーをグループに設定すればよさそう。

[root@xxxx home]# usermod -G {グループ名} {ユーザー名}

アクセス制限

ホームフォルダはroot所有にしているため、ファイルのダウンロードはできてもファイルのアップロードはできない。
これは、userフォルダのroot所有にすると、userフォルダ直下にファイルを置くことが原因らしい。

さいごに

個人的にセキュリティ面が気になるが、今回の操作でOS周りの設定に関して少し知識が蓄積された気がする。

参考URL

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2