FTPサーバのProFTPDをインストールする手順を記載します。
Table of Contents
1 ProFTPDのインストール
ProFTPDパッケージをインストールします。
$ sudo dnf install -y proftpd proftpd-utils
- ローカルユーザによるアップロードを可能にします。
- 匿名ユーザによる読み込みを可能にします。
- 匿名ユーザによるアップロードを許可しません。
$ sudo sed \ -e 's;PROFTPD_OPTIONS="\(.*\)";PROFTPD_OPTIONS="-DANONYMOUS_FTP \1";g' \ -i /etc/sysconfig/proftpd
ファイアウォールでFTP用のポートを開放します。
$ sudo firewall-cmd --add-service=ftp --permanent $ sudo firewall-cmd --reload
ProFTPDを有効にして再起動します。
$ sudo systemctl enable proftpd $ sudo systemctl restart proftpd
anonymousユーザ向けにファイルを設置します。
$ echo "anon" | sudo tee /var/ftp/anon.txt
1.1 /sbin/nologinを/etc/shellsに追加して匿名ユーザのログインを可能にする
以前のバージョンのFedoraでは/sbin/nologinが/etc/shellsに記載されていましたが、現行のバージョンのFedoraでは記載されていません。
これが匿名ユーザのログインを阻害します。 journaldには以下のログが出力されます。
proftpd USER ftp (Login failed): Invalid shell: '/sbin/nologin'
匿名ユーザのログインを可能にする為に、以下のように/sbin/nologinを /etc/shellsに追加します。
$ if ! grep "/sbin/nologin" /etc/shells > /dev/null; then echo "/sbin/nologin" | sudo tee -a /etc/shells fi
2 ProFTPDへの接続
lftpでProFTPDへ接続します。
$ sudo dnf install -y lftp
ユーザ名を指定して接続します。パスワードは-u <username>,<password>で指定できます。接続するとホームディレクトリが表示されます。ユーザの権限の範囲内ですべてのディレクトリへアクセスできます。
$ lftp -u hiroom2 ftp-server.hiroom2.com Password: lftp hiroom2@ftp-server.hiroom2.com:~> pwd ftp://hiroom2@ftp-server.hiroom2.com/%2Fhome/hiroom2 lftp hiroom2@ftp-server.hiroom2.com:~> ls / drwxr-xr-x 2 0 0 4096 Jul 29 07:12 bin drwxr-xr-x 4 0 0 1024 Aug 05 12:16 boot drwxrwxr-x 2 0 0 4096 Oct 09 2016 cdrom -rw------- 1 0 0 17711104 Jan 21 2017 core drwxr-xr-x 21 0 0 4020 Aug 06 01:22 dev drwxr-xr-x 133 0 0 12288 Aug 06 01:22 etc drwxr-xr-x 4 0 0 4096 Aug 06 01:22 home <snip>
ユーザ名を指定しない場合、匿名ユーザで接続します。 anon_rootで指定したディレクトリが表示され、それより上のディレクトリへは移動できません(chrootした状態となります)。
$ lftp ftp-server.hiroom2.com lftp ftp-server.hiroom2.com:~> pwd ftp://ftp-server.hiroom2.com lftp ftp-server.hiroom2.com:~> ls / -rw-r--r-- 1 0 0 5 Aug 06 01:22 anon.txt