![Proftpd - 虚拟主机和 TLS](https://linux22.com/image/751612/Proftpd%20-%20%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E5%92%8C%20TLS.png)
我正在尝试设置一个 Proftpd 服务器(CentOS 8 上的 1.3.6 版本),其工作方式如下:
- 用户通过端口 21 访问服务器以及 IP 或 DNS 名称FTP.xyze.com:使用普通 FTP
- 用户通过端口 21 和 DNS 名称访问服务器安全FTP.xyze.com:使用 FTPS
- 用户通过端口 22 访问服务器:使用 SFTP
ftp.xyze.com 和 secureftp.xyze.com 解析为同一个 IP 地址。
SFTP 运行正常,但我无法让 TLS 部分正常工作。如果我在全局中设置“TLS 引擎关闭”,在 secureftp 虚拟主机中设置“TLS 引擎开启”,则只有普通 FTP 可以工作。如果我全局设置“TLS 引擎开启”,则 FTPS 适用于每个虚拟主机。如果我在端口 21 上设置两个单独的虚拟主机,则 proftp 启动时会收到 IP 绑定错误。我配置错了什么?这是我的 proftpd.conf 文件:
Include /etc/proftpd/modules.conf
ServerName "xyze server"
ServerIdent off
ServerAdmin root@localhost
DefaultServer off
UseIPv6 off
PassivePorts 40000 40019
DisplayLogin /home/ftp/welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
UseReverseDNS off
IdentLookups off
MaxInstances 150
UseSendfile off
LogFormat default "%h %l %u %t \"%r\" %s %b"
LogFormat auth "%v [%P] %h %t \"%r\" %s"
ControlsEngine on
ControlsACLs all allow user root
ControlsSocketACL allow user *
ControlsLog /var/log/proftpd/controls.log
<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>
<IfModule mod_vroot.c>
VRootEngine on
</IfModule>
<IfModule mod_ban.c>
Include /etc/proftpd/mod_ban.conf
</IfModule>
<IfModule mod_qos.c>
Include /etc/proftpd/mod_qos.conf
</IfModule>
TransferLog /var/log/proftpd/xferlog
ExtendedLog /var/log/proftpd/extended.log
DebugLevel 9
<Global>
DefaultRoot ~ !adm
AuthOrder mod_ldap.c
RequireValidShell off
<IfModule mod_ldap.c>
# LDAPUseTLS on
LDAPServer ldap://192.168.1.10/??sub
LDAPUsers ou=enabled,dc=metxyz
</IfModule>
PersistentPasswd off
User nobody
Group nobody
Umask 002 022
AllowOverwrite yes
<Limit ALL SITE_CHMOD>
AllowAll
</Limit>
<IfDefine TLS>
TLSEngine off
TLSRequired off
TLSRSACertificateFile /etc/ssl/xyze_certs/xyze_it.crt
TLSRSACertificateKeyFile /etc/ssl/xyze_certs/xyze_it.key
TLSCACertificateFile /etc/ssl/xyze_certs/xyze_it_CA.crt
TLSVerifyClient off
TLSProtocol TLSv1 TLSv1.1 TLSv1.2
TLSCipherSuite PROFILE=SYSTEM
TLSRenegotiate none
TLSOptions NoSessionReuseRequired
TLSLog /var/log/proftpd/tls.log
<IfModule mod_tls_shmcache.c>
TLSSessionCache shm:/file=/run/proftpd/sesscache
</IfModule>
</IfDefine>
</Global>
<IfDefine ANONYMOUS_FTP>
Include /etc/proftpd/anonftp.conf
</IfDefine>
DefaultAddress ftp.xyze.com 111.222.333.444
<VirtualHost secureftps.xyze.com>
TLSEngine on
TLSREquired on
</VirtualHost>
<IfModule mod_sftp.c>
<VirtualHost 0.0.0.0>
Port 22
SFTPEngine on
SFTPLog /var/log/proftpd/sftp.log
SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u
SFTPOptions InsecureHostKeyPerms
SFTPHostKey /etc/ssh/ssh_host_ecdsa_key
SFTPHostKey /etc/ssh/ssh_host_rsa_key
</VirtualHost>
</IfModule>
Include /etc/proftpd/conf.d/*.conf