「今時 FTP~?」という声が聞こえそうだが、完全に閉鎖されたネットワーク空間で、ファイルのやり取りに FTP を利用したシステムがあり、その改修案件があるのだ。そのため、Windows の WSL環境でテスト用に起動した AlmaLinux に vsftpd をインストールすることにした。
まずは WSL環境を起動し、毎回 sudo するのが面倒なので su - して root になっておく。
C:\Users\朕>wsl[admin@PC 朕]$ sudo su -
sudo 派の人が怒り狂いそうだな(笑)。いやいや、Windows PC の VM 上にインストールしたテスト用の Linux マシン上で「root になるのは危険!sudo すべし!!」なんて言うやつは典型的な「勉強はできるけど応用力のない使えない人」だよ(笑)
話がずれた。さっそく root でインストール(笑)
■インストール
[root@PC ~]# dnf -y install vsftpdAlmaLinux 10 - AppStream 366 B/s | 3.8 kB 00:10AlmaLinux 10 - AppStream 915 kB/s | 2.5 MB 00:02AlmaLinux 10 - BaseOS 2.6 kB/s | 3.8 kB 00:01AlmaLinux 10 - BaseOS 1.8 MB/s | 30 MB 00:16AlmaLinux 10 - CRB 2.5 kB/s | 3.8 kB 00:01AlmaLinux 10 - CRB 277 kB/s | 588 kB 00:02AlmaLinux 10 - Extras 4.4 kB/s | 3.5 kB 00:00AlmaLinux 10 - Extras 6.3 kB/s | 7.3 kB 00:01Dependencies resolved.========================================================================================================================Package Architecture Version Repository Size=======================================================================================================================Installing: vsftpd x86_64 3.0.5-12.el10 appstream 159 kInstalling dependencies: logrotate x86_64 3.22.0-5.el10 baseos 76 kTransaction Summary========================================================================================================================Install 2 PackagesTotal download size: 235 kInstalled size: 496 kDownloading Packages:(1/2): logrotate-3.22.0-5.el10.x86_64.rpm 375 kB/s | 76 kB 00:00(2/2): vsftpd-3.0.5-12.el10.x86_64.rpm 407 kB/s | 159 kB 00:00------------------------------------------------------------------------------------------------------------------------Total 145 kB/s | 235 kB 00:01Running transaction checkTransaction check succeeded.Running transaction testTransaction test succeeded.Running transactionPreparing : 1/1Running scriptlet: logrotate-3.22.0-5.el10.x86_64 1/2Installing : logrotate-3.22.0-5.el10.x86_64 1/2Running scriptlet: logrotate-3.22.0-5.el10.x86_64 1/2Created symlink'/etc/systemd/system/timers.target.wants/logrotate.timer' → '/usr/lib/systemd/system/logrotate.timer'.Installing : vsftpd-3.0.5-12.el10.x86_64 2/2Running scriptlet: vsftpd-3.0.5-12.el10.x86_64 2/2Installed: logrotate-3.22.0-5.el10.x86_64 vsftpd-3.0.5-12.el10.x86_64Complete!
起動前に設定ファイルを修正。
chroot(一般ユーザが接続してきたときには、自分のホームディレクトリより上には移動できなくする機能)を有効にして、あと IPv6 は使わないので無効に。
■設定ファイル編集
[root@PC ~]# vi /etc/vsftpd/vsftpd.conf[root@PC ~]# diff /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_org100,102c100,101< chroot_local_user=YES< chroot_list_enable=YES< allow_writeable_chroot=YES---> #chroot_local_user=YES> #chroot_list_enable=YES104c103< chroot_list_file=/etc/vsftpd/chroot_list---> #chroot_list_file=/etc/vsftpd/chroot_list110c109< ls_recurse_enable=YES---> #ls_recurse_enable=YES115c114< listen=YES---> listen=NO124c123< listen_ipv6=NO---> listen_ipv6=YES128,129d126<< use_localtime=YES
chroot を有効にしておいてアレですが、admin ユーザは chroot 無効(他の人やシステム関係のディレクトリにも移動可能)にする。そして、この AlmaLinux 上には一般ユーザは admin しかいないので、「だったら chroot の設定なんかしなきゃよかったのに」と言うお前の意見はある視点から見れば確かに正解だ(笑)
ま、こういうのはお約束ですから。chroot 設定しないと気持ち悪いのよ(笑)
というわけで、chroot しない人を chroot_list に記述する。
■chroot 無効のユーザ登録
[root@PC ~]# vi /etc/vsftpd/chroot_list[root@PC ~]# cat /etc/vsftpd/chroot_listadmin
ここまでやったら実行。
■実行
[root@PC ~]# systemctl enable --now vsftpdCreated symlink'/etc/systemd/system/multi-user.target.wants/vsftpd.service' → '/usr/lib/systemd/system/vsftpd.service'.
ちなみに、--now オプションは「enabled と start」を同時に行うもの。あと「disabled と stop」も同時にしてくれる。
便利なようで、最初の一回くらいか、使うの(笑)

コメントする