#
ドキュメント

Document

自分のための備忘録です。

SFTP サーバ

SFTP サーバとして vsftpd を使用するメモです。
Ubuntu 22.04 を仮定しています。

参照

vsftpd

FTP ユーザーを作成

adduser

$ sudo adduser ftp-example
  • ユーザー ftp-example を追加
  • グループ ftp-example を追加
  • ホームディレクトリを追加

※ Ubuntu(や Debian)は adduseruseradd は機能が異なります。
useradd はホームディレクトリなどを作成しません。
※ Ubuntu(や Debian)は deluseruserdel は機能が異なります。

$ userdel ユーザー名 // ユーザーを削除
$ userdel -r ユーザー名 //ユーザーのホームディレクトリも削除
$ deluser --remove-home ユーザー名 // ↑と同じ

sudo を有効化

(通常必要ないが)必要があれば sudo を有効化します。

$ sudo gpasswd -a ftp-example adm
$ sudo gpasswd -a ftp-example sudo

メイングループを www-data に変更

Apache/PHP 実行ユーザー:グループが www-data:www-data と仮定します。

$ sudo usermod -g www-data ftp-example
// 確認
$ id ftp-example
uid=1002(ftp-example) gid=33(www-data) groups=33(www-data)

vsftpd をインストール

$ sudo apt install vsftpd

設定ファイル

/etc/vsftpd.conf

※ FTP 接続をホームディレクトリ以下に制限します。
/etc/vsftpd.chroot_list を作成して、上記制限を受けないユーザーを記載します。

chroot_local_user=YES
chroot_list_enable=YES // chroot_list_file を有効化
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list

SFTP( SSH File Transfer Protocol )

FTP のウェルノウンポートはコントロール用が 20, データ送信用が 21 です。
SFTP は SSH を使用するので 22 です。

sshd のパスワード認証を有効化

sshd でパスワード認証を有効化します。
鍵認証の場合は必要ありません。

sudo vim /etc/ssh/sshd_config
- PasswordAuthentication no
+ Match User ftp-example
+  PasswordAuthentication yes