(1)FTPサーバのインストールと起動
①インストールと起動
yum -y install vsftpd
systemctl start vsftpd
systemctl enable vsftpd

1行目がインストール
2行目がサービス起動
3行目が起動時の自動起動設定

②状態確認
cat /etc/passwd | grep ftp
ls -la /var | grep ftp

※インストールすると、FTPユーザとして、ftpが作成されている。これは、anonymousでログインしたときのユーザ
※/var/ftpがanonymousのカレントフォルダ

・バージョンの確認
vsftpd -v
vsftpd: version 3.0.2
古いバージョンは脆弱性があるので注意
https://engineeringnote.hateblo.jp/entry/seurity/vsftpd_2-3-4

Pocコードは以下。だが、このバージョンのvsftpdは、脆弱性が改修されているので成功しないはず。
https://github.com/ahervias77/vsftpd-2.3.4-exploit/blob/master/vsftpd_234_exploit.py

実行方法はたとえば、以下のように、ポートとコマンドも引数で渡す
./exploit_vsftpd.py 54.161.207.140 21 whoami

(女性)攻撃者はバージョンを知ることができるんですか?
はい、ポートスキャンで、ソフトのバージョンまで分かる
https://qiita.com/Kuroakira/items/5aa5f77d13ee4a108b41

③設定ファイルの変更
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.org
ls -la /etc/vsftpd/

※confファイルのバックアップ
※作成されたことを確認

vi /etc/vsftpd/vsftpd.conf

④vsftpd再起動
# systemctl restart vsftpd

(2)FWの設定変更
簡単なのは、FWを止めること
systemctl stop firewalld

(3)PCなどの端末から接続してみる。
①Windowsの場合
Windows8や10では、デフォルトではFTPコマンドは使えない
が、設定すれば使えるようになる。
https://creativeweb.jp/personal-site/ftp/

②Linuxの場合
サーバ側はvsftpdかもしれないが、ftpで接続する側にはFTPクライアントソフトが必要。インストールする。
yum -y install ftp

(4)FTPのコマンド
①ディレクトリ関連
lcd
pwd ←現在の位置
cd
②ファイル関連
dir
!dir ←ローカルのファイル
・ファイルを削除
delete a.txt
・名前を変更
rename file1.txt file2.txt

③転送関連
ascii ←文字系のファイルの場合
bin ←バイナリ、つまり画像系の場合
get
 ftp> get index.html
put
 ftp> put index.html

※以下のように「-」をつけると、ダウンロードせずにファイルの中身を表示できる。
  ftp> get file.txt -

(5)ちゃんとやるなら
ローカルでテストするなら不要だが、公開サーバでやる場合にはセキュリティ対策をきちんとしよう
①FTPユーザの作成
anonymousは、公開サーバではNGだ
#useradd ftpuser -m
 →ftpuserというユーザ名で、-mオプションでホームディレクトリも作成

②FTPユーザのパスワード設定
# passwd ftpuser
Changing password for user ftpuser.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

③設定ファイルの変更
/etc/vsftpd/vsftpd.conf
※設定を変える前のオリジナルファイルは.orgとして
バックアップ(cpコマンド)しておきましょう。
たとえば、以下で、Anonymousからのアクセスを拒否できる。
anonymous_enable=NO

■anonymousの設定はこれ以降に記載

これより先はプライベートモードに設定されています。閲覧するには許可ユーザーでログインが必要です。