有没有办法阻止所有正常的 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
您不需要 proftpd 来执行 SFTP,您可以使用 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 时,TLSRequired是您正在寻找的选项。
答案4
你说的 sftp 是什么意思? SecureFTP (又名 SSL ftp),还是 ftp over ssh (又名 sftp)?
对于 sftp - 只需运行 sshd,根本不使用任何 ftp 守护进程。