作業メモ

とある問題切り分けのため、AWS上にFTPサーバを立てて、FTPSでの疎通確認
※運用するための構築手順ではないので、きちんとした設定ができていないですが
※部分部分で何らかお役に立てれば嬉しいです。
 

環境

amzn-ami-hvm-2016.09.1.20170119-x86_64-gp2 (ami-56d4ad31)

1.事前準備

yum install gcc
yum install openssl-devel

2.proftpd install

cd /usr/local/src
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.5d.tar.gz
tar -zxvf ./proftpd-1.3.5d.tar.gz
cd proftpd-1.3.5d
./configure --with-modules=mod_tls
make
make install

3.設定

vim /usr/local/etc/proftpd.conf
PassivePorts                  10000 10003(passiveModeで使うデータ転送用ポートです)
Group                           nobody (nogroupから変更)
MasqueradeAddress FTPサーバのグローバルIP

4.ホスト名を引けるようにしておく(そのまま起動したらエラーになったので)

vim /etc/hosts

5.確認用ユーザを追加

useradd -d /ftp/ftp_user -s /sbin/nologin ftp_user
passwd ftp_user

起動

/usr/local/sbin/proftpd

一旦、FTP接続確認(WinSCP利用) →OK

6.TLS/SSL化(FTPS)

オレオレ証明書
※参考にさせていただきました
http://d.hatena.ne.jp/ozuma/20130511/1368284304

openssl genrsa 2048 > ftps.key
openssl req -new -key ftps.key > ftps.csr
openssl x509 -days 3650 -req -signkey ftps.key < ftps.csr > ftps.crt
cp ./ftps.crt /etc/pki/tls/certs/ftps.crt
cp ./ftps.key /etc/pki/tls/private/ftps.key
chmod 600 /etc/pki/tls/certs/ftps.crt
chmod 600 /etc/pki/tls/private/ftps.key
vim /usr/local/etc/proftpd.conf

以下追記

<IfModule mod_tls.c>
    TLSEngine on
    TLSRequired off

    TLSLog  /var/log/proftpd/tls.log
    TLSProtocol TLS1.2
    TLSCipherSuite HIGH:MEDIUM

    TLSRSACertificateFile /etc/pki/tls/certs/ftps.crt
    TLSRSACertificateKeyFile /etc/pki/tls/private/ftps.key
    TLSOptions NoCertRequest
    TLSVerifyClient off
</IfModule>

proftpd上げ直し
TLS接続確認(WinSCP)→OK(鍵マーク確認)

疎通確認を通して、きちんとしなきゃなと思ったこと

・chrootの制御(FTP接続後、普通に上位ディレクトリが見えてしまってた)
・TLSCipherSuiteがよくわからんまま、なるべく安全そうなのを並べたが確証がない

TOP