
通常の FTP トラフィックをすべてブロックし、sftp で sftp プロトコルのみを許可する方法はありますか?
編集: すみません、私のミスです!
安全な FTP には ftpes プロトコルを使用する必要があります...
答え1
proftpd を使用して FTPES を実行する場合は、基本的に 4 つの手順に従う必要があります。
1) proftpdとopensslをインストールする
apt-get install proftpd openssl
2) 証明書を生成します (自己署名する場合、クライアントからの苦情を減らすために、共通名を FTP サイトの DNS 名と一致させるようにしてください)
mkdir /etc/proftpd/ssl
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
3) proftpd.conf を編集し、設定の mod_tls モジュール セクションを以下のテキストに置き換えます (TLSRequired on ディレクティブに注意してください)
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
</IfModule>
4) proftpdを再起動する
/etc/init.d/proftpd restart
答え2
SFTP を実行するために proftpd は必要ありません。ssh を使用してネイティブに実行できます。
何らかの理由で proftpd を使用したい場合 (つまり、システム以外のアカウントと簡単に統合したい場合)、サーバーのログイン動詞へのアクセスを拒否し、sftp エンジンをオンにした特定の仮想ホストを作成して、ログイン動詞を許可する必要があります。
これを実現するには、proftpd.conf は次のようになります。
<Limit LOGIN>
DenyAll
</Limit>
<VirtualHost 1.2.3.4>
SFTPEngine on
<Limit LOGIN>
AllowAll
</Limit>
<all your other crap...>
</VirtualHost>
答え3
proftpdでftpsのみを許可したい場合、TLSが必要あなたが探しているオプションです。
答え4
sftp とはどういう意味ですか? SecureFTP (別名 SSL ftp)、それとも ftp over ssh (別名 sftp) ですか?
sftp の場合 - sshd を実行するだけで、ftp デーモンは一切使用しないでください。