!!! 基本的に全てroot権限の作業になりますのでご注意ください !!!
AmazonLinuxの場合
デフォルトの
/etc/vsftpd/vsftpd.conf
でなく
/etc/vsftpd/vsftpd-ftp.conf
/etc/vsftpd/vsftpd-ftps.conf
のようにFTPとFTPS両方に対応した2つの設定ファイル(*.confであること)を用意すれば自動的に兼用出来るようになっています。
(/etc/init.d/vsftpd
の処理を見れば分かると思います。)
AmazonLinux2の場合
AmazonLinuxと同様の方法が使えないため別のやり方をする必要があります。
ちなみにCentOS7も同様かと思いますが試していません。
まずFTP用の設定ファイルとFTPSの設定ファイルのそれぞれでvsftpdを起動するシェルを作ります。
/usr/sbin/myvsftpd.sh
#!/bin/bash
/usr/sbin/vsftpd /etc/vsftpd/vsftpd-ftp.conf
/usr/sbin/vsftpd /etc/vsftpd/vsftpd-ftps.conf
次にvsftpdの起動コマンドを修正します。
/usr/lib/systemd/system/vsftpd.service
ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
↓
/usr/lib/systemd/system/vsftpd.service
ExecStart=/usr/sbin/myvsftpd.sh
vsftpdの再起動とリロードを行い完了です。
systemctl restart vsftpd.service
systemctl daemon-reload
確認
ポート21と990の両方でListenしていたらOKです。
[root@ip-XX-XX-XX-XX hogehoge]# lsof -i:21
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vsftpd 7516 root 4u IPv4 8366586 0t0 TCP *:ftp (LISTEN)
[root@ip-XX-XX-XX-XX hogehoge]# lsof -i:990
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vsftpd 7518 root 4u IPv4 8366588 0t0 TCP *:ftps (LISTEN)