FTP サーバー(ProFTPD)を構築する
FTPS と SFTP の違いは?
今回使用する「ProFTPD」は FTPS を使用します。FTPS と良く似たプロトコルに SFTP があります。それらの違いを確認しておきます。
1. ProFTPD をインストールする
ProFTPD パッケージは Ubuntu 標準の universe レポジトリで提供されている為、もし universe レポジトリが追加されていない場合は追加します。その後、ProFTPD をインストールします。
$ sudo add-apt-repository universe
$ sudo apt -y install proftpd-basic
インストール完了後に ProFTPD の状態を確認しておきます。"active (running)" になっていれば OK です。
$ sudo systemctl status proftpd
2. ProFTPD の設定ファイルを調整する
/etc/proftpd ディレクトリ直下にある tls.conf ファイルに以下の設定を追記します。念のため、変更を加える前にバックアップを取っておきます。
$ sudo cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf.bak
<IfModule mod_tls.c> TLSEngine on TLSLog /var/log/proftpd/tls.log TLSProtocol SSLv23 TLSRSACertificateFile /etc/ssl/certs/proftpd.cts TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key FactsAdvertise off </IfModule>
3. SSL/TLS 用の証明書と秘密鍵を作成する
FTPS は SSL/TLS を利用して通信するため、証明書と秘密鍵を作成する必要があります。作成場所は 2. で追加した設定に合わせます。
TLSRSACertificateFile /etc/ssl/certs/proftpd.cts TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
下のコマンドで証明書と秘密鍵を作成します。
$ sudo openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365
作成した秘密鍵のアクセス権を変更します。所有者のみ読み書き可能な設定(600)にしておきます。
$ sudo chmod 600 /etc/ssl/private/proftpd.key
4. ProFTPD の設定ファイルを有効にする
/etc/proftpd ディレクトリ直下にある proftpd.conf ファイルを調整して、2. で調整した tls.conf ファイルを有効にします。変更を加える前にバックアップを取っておきます。
sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.bak
proftpd.conf ファイルを以下のように変更します。
# Include /etc/proftpd/tls.conf ↓ Include /etc/proftpd/tls.conf
# PassivePorts 49152 65534 ↓ PassivePorts 49152 65534
変更完了後に、変更内容を反映させるためにサービスを再起動しておきます。
$ sudo systemctl restart proftpd