#=============================
# ■ FTPのインストール
#-----------------------------
dnf -y install vsftpd
#=============================
# ■ FTPの設定
#-----------------------------
vi /etc/vsftpd/vsftpd.conf
## chrootのローカルユーザ無効化
chroot_local_user=NO
## chrootリスト有効化
chroot_list_enable=YES
## chrootリストファイルの場所
chroot_list_file=/etc/vsftpd/chroot_list
## userlist_fileの有効化(デフォルト値)
userlist_enable=YES
## アクセスファイルの無効化
tcp_wrappers=NO
## パッシブモード有効化
pasv_enable=YES
## FTPサーバのIPアドレス設定
pasv_address=192.168.222.50
## パッシブモードのポート設定
pasv_min_port=30001
pasv_max_port=30010
## ドットファイルも含めて一覧表示させる
force_dot_files=YES
## ファイルのタイムスタンプ表示
use_localtime=YES
## ユーザーの設定ファイル格納場所
user_config_dir=/etc/vsftpd/user_conf
## 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
allow_writeable_chroot=YES
#=============================
# ■ FTP接続用ユーザ作成
#-----------------------------
useradd testftp
#=============================
# ■ パスワード設定
#-----------------------------
passwd testftp
#=============================
# ■ FTP用のディレクトリchrootの設定
#-----------------------------
mkdir -p /var/www/FTP
chown testftp /var/www/FTP
chmod 755 /var/www/FTP
s -ld /var/www/FTP
#=============================
# ■ FTP接続用ユーザの登録
#-----------------------------
vi /etc/vsftpd/chroot_list
testftp
root
#=============================
# ■ chrootのディレクトリを設定する
#-----------------------------
mkdir /etc/vsftpd/user_conf
ls -l /etc/vsftpd/user_conf
#-----------------------------
vi /etc/vsftpd/user_conf/testftp
local_root=/var/www/FTP
#-----------------------------
vi /etc/vsftpd/user_conf/root
local_root=/var/www/FTP
#=============================
# ■ テスト用ファイル作成
#-----------------------------
cd /var/www/FTP
pwd
echo "FTP test" > FTP_test.txt
ls -l /var/www/FTP
#=============================
# ■ root接続の許可①
# /etc/vsftpd/ftpusersのrootをコメントアウト
#-----------------------------
vi /etc/vsftpd/ftpusers
#root
#-----------------------------
cat /etc/vsftpd/ftpusers
#=============================
# ■ root接続の許可②
# /etc/vsftpd/user_listのrootをコメントアウト
#-----------------------------
vi /etc/vsftpd/user_list
#root
#-----------------------------
cat /etc/vsftpd/user_list
#=============================
# ■ nftables/Firewallの無効化
#-----------------------------
#【firewalldのバックエンド確認】
#-----------------------------
cat /etc/firewalld/firewalld.conf | egrep -v "(^$|^#)" | grep "FirewallBackend"
#=============================
#【サービス状態確認】
#-----------------------------
systemctl status firewalld --no-pager
systemctl status nftables --no-pager
systemctl -t service list-unit-files | egrep "(iptables|nftables|firewalld)"
#=============================
#【ファイアウォール無効化】
#-----------------------------
systemctl disable firewalld
systemctl stop firewalld
#=============================
#【nftables無効化】
#-----------------------------
systemctl disable nftables
systemctl stop nftables
#=============================
#【サービス状態確認】
#-----------------------------
systemctl status firewalld --no-pager
systemctl status nftables --no-pager
systemctl -t service list-unit-files | egrep "(iptables|nftables|firewalld)"
#=============================
# ■ SELinux設定(設定反映に再起動が必要)
#-----------------------------
# 変更前のSELINUX
#-----------------------------
cat /etc/selinux/config | grep "SELINUX"
#=============================
#【GRUB2 メニューエントリーの確認】
#-----------------------------
cat /etc/default/grub | grep selinux=0
grubby --info=ALL | grep selinux=0
#=============================
#【SELinux設定確認】
#-----------------------------
sestatus | grep status
getenforce
#=============================
#【カーネルコマンドライン⇒SELinuxの無効化】
#-----------------------------
grubby --update-kernel ALL --args selinux=0
#=============================
#【再起動⇒SELinux設定反映】
#-----------------------------
reboot
#=============================
# ■ SELinux設定(再起動後の確認)
#-----------------------------
# 変更後のSELINUX
#-----------------------------
cat /etc/selinux/config | grep "SELINUX"
#=============================
#【GRUB2 メニューエントリーの確認】
#-----------------------------
cat /etc/default/grub | grep selinux=0
grubby --info=ALL | grep selinux=0
#=============================
#【SELinux設定確認】
#-----------------------------
sestatus | grep status
getenforce
#=============================
# ■ FTP サービス起動
#-----------------------------
systemctl status vsftpd
systemctl restart vsftpd
systemctl status vsftpd
#=============================
## ■ Windowsの端末からFTP接続を確認する
#-----------------------------
※Windowsのファイアウォール無効化しておく
>ftp 192.168.222.50
ユーザー ([FTPサーバーのIPアドレス]:(none)):testftp
331 Please specify the password.<パスワード>
230 Login successful.
ftp>pwd
ftp>ls
ftp>quit
PR