在 Debian 上只能使用 proftpd 进行 ftps

在 Debian 上只能使用 proftpd 进行 ftps

有没有办法阻止所有正常的 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 守护进程。

相关内容