Skip to content

FTP サーバ構築#

dnf -y install vsftpd
cp /etc/vsftpd/vsftpd.conf /home/huong/vsftpd.conf.bak
/etc/vsftpd/vsftpd.conf
# 匿名ログイン禁止
anonymous_enable=NO
# 転送記録をログに残す
xferlog_enable=YES
# アスキーモードでの転送を許可
ascii_upload_enable=YES
ascii_download_enable=YES
# chroot有効
chroot_local_user=YES
chroot_list_enable=YES
#chroot リストファイル指定
chroot_list_file=/etc/vsftpd/chroot_list
# ディレクトリごと一括での転送有効
ls_recurse_enable=YES
# IPv4有効化
listen=YES
# IPv6無効化
listen_ipv6=NO
# ローカルタイムを使う
use_localtime=YES

Note

上層への ディレクトリへのアクセスを許可するユーザーの追加は
echo "alma" >> /etc/vsftpd/chroot_list

接続を許可するIPアドレスの指定
echo "vsftpd:x.x.x.x/x" >> /etc/hosts.allow

許可したアドレス意外のアクセスはdeny
echo "vsftpd:ALL" >> /etc/hosts.deny

vsftpd を自動起動を有効にし、起動する

systemctl enable vsftpd
systemctl start vsftpd

firewallでftpポートを解放

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

応用#

Vsftpd を SSL/TLS で利用できるように設定

自己署名の証明書を作成

cd /etc/pki/tls/certs
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/pki/tls/certs/vsftpd.pem -out /etc/pki/tls/certs/vsftpd.pem

以下のように質問に答える

Country Name (2 letter code) [XX]:JP # 国コード
State or Province Name (full name) []:Tokyo # 地域(県)
Locality Name (eg, city) [Default City]:Ota # 都市
Organization Name (eg, company) [Default Company Ltd]:private # 組織名
Organizational Unit Name (eg, section) []:Admin # 組織の部門名
Common Name (eg, your name or your server's hostname) [] Lepard # サーバーのホスト名
Email Address []: # 管理者メールアドレス

ファイル権限変更

chmod 600 vsftpd.pem

Vsftpd の設定

/etc/vsftpd/vsftpd.conf
# 最終行に追記:SSL/TLS 有効化
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem
ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES

Firewalld を有効にしている場合は、パッシブポートの許可
# 最終行に追記(任意の範囲のポートでパッシブポートを固定)
pasv_enable=YES
pasv_min_port=65000
pasv_max_port=65100
systemctl restart vsftpd
firewall-cmd --add-port=60000-60100/tcp --permanent
firewall-cmd --reload