はじめての ftp サーバ
FTP サーバを構築し、クライアントからテスト向けファイルを転送します。
構築手順
ftp プロトコルの通信を待ち受けるサーバを構築します。
- vsftpd インストール
sudo apt update
sudo apt install -y vsftpd
- ftp 通信用ユーザ作成
sudo useradd -m ftpuser && sudo passwd ftpuser
/etc/vsftpd.conf編集
# クライアントを待ち受ける
listen=YES
# IPv6を無効
listen_ipv6=NO
# 匿名ユーザを禁止
anonymous_enable=NO
# ローカルユーザのログインを許可
local_enable=YES
# 書き込み操作を許可
write_enable=YES
# ディレクトリ上に.messageファイルがある場合にその内容を表示
dirmessage_enable=YES
# ローカルタイムゾーンを使用
use_localtime=YES
# ログを/var/log配下に記録
xferlog_enable=YES
# ポート20を使用
connect_from_port_20=YES
# ローカルユーザをホームディレクトリ配下に束縛
chroot_local_user=YES
# chroot時にvsftpdが内部利用するディレクトリ
secure_chroot_dir=/var/run/vsftpd/empty
# PAMの設定ファイル向け設定
pam_service_name=vsftpd
# FTPS向け設定
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
- 書き込み用のサブディレクトリ作成
# 書き込み用のサブディレクトリを作る
sudo mkdir -p /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
- 起動および有効化
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
送信手順
- テスト用ファイル作成
echo "This is a ftp test file" > testfile.txt
- ftp ログイン
ftp {ftpサーバのIP}
ftp>プロンプト取得後、ファイル送信
cd ftp
put testfile.txt