在CentOS系统上安装和配置proftpd是一个相对简单的过程,但需要遵循一系列步骤以确保成功,以下将详细解释如何在CentOS 7.5上安装、配置和使用ProFTPD,包括常见问题的解答。
一、安装ProFTPD
1、安装EPEL存储库:ProFTPD位于EPEL(Extra Packages for Enterprise Linux)存储库中,因此首先需要安装它。

- yum y install epelrelease
2、更新系统:确保所有内容都是最新的。
- yum y update
3、安装ProFTPD:使用yum命令进行安装。
- yum y install proftpd
二、配置ProFTPD
1、编辑配置文件:打开/etc/proftpd.conf
文件进行配置修改。
- nano /etc/proftpd.conf
2、更改服务器名称:将ServerName
更改为您的服务器主机名。
- ServerName "Your_Server_Hostname"
3、启用并启动ProFTPD:在CentOS 7上,使用systemctl命令来管理服务。
- systemctl restart proftpd
- systemctl enable proftpd
4、防火墙设置:允许传入的FTP连接。

Firewalld:
- firewallcmd permanent addport=21/tcp
- firewallcmd reload
Iptables:
- iptables A INPUT p tcp m tcp dport 20:21 j ACCEPT
- iptablessave > /etc/sysconfig/iptables
三、启用被动连接模式
1、编辑配置文件:添加以下行以启用被动连接模式。
- nano /etc/proftpd.conf
- PassivePorts 60000 65535
- AllowStoreRestart on
- AllowRetrieveRestart on
- TimeoutNoTransfer 65535
- ListOptions "la"
- TimeoutIdle 65535
2、防火墙设置:为被动端口范围添加规则。
Firewalld:
- firewallcmd permanent addport=6000065535/tcp
- firewallcmd reload
Iptables:

- iptables A INPUT p tcp m tcp dport 60000:65535 j ACCEPT
- iptablessave > /etc/sysconfig/iptables
四、测试FTP服务
1、本地测试:使用netstat命令检查FTP守护进程是否正在运行。
- netstat plan | grep :21
2、FTP客户端连接:安装ftp客户端并进行连接测试。
- yum install y ftp
- ftp localhost
输入有效的用户名和密码进行身份验证,如果无法进入,认证消息将写入/var/log/secure
。
五、配置SFTP(安全FTP)
1、编辑配置文件:取消注释以下行以加载mod_sftp模块。
- nano /etc/proftpd.conf
- LoadModule mod_sftp.c
- LoadModule mod_sftp_pam.c
2、添加SFTP配置:在配置文件末尾添加以下内容。
- <IfModule mod_sftp.c>
- SFTPEngine on
- SFTPLog /var/log/sftp.log
- Port 2222
- SFTPHostKey /etc/ssh/ssh_host_rsa_key
- SFTPCompression delayed
- </IfModule>
3、防火墙设置:允许SFTP端口。
Firewalld:
- firewallcmd zone=public addport=2222/tcp permanent
- firewallcmd reload
Iptables:
- iptables A INPUT p tcp dport 2222 j ACCEPT
- iptablessave > /etc/sysconfig/iptables
4、重启ProFTPD:在CentOS 7上重启服务。
- systemctl restart proftpd
六、虚拟用户配置
1、创建虚拟用户文件:新建文件并设置权限。
- touch /etc/ftpd.passwd
- touch /etc/ftpd.group
- chmod 440 /etc/ftpd.passwd
- chmod 440 /etc/ftpd.group
2、编辑配置文件:指定虚拟用户配置文件。
- nano /etc/proftpd.conf
- AuthUserFile /etc/ftpd.passwd
- AuthGroupFile /etc/ftpd.group
- RequireValidShell off
- PersistentPasswd off
- AuthPAM off
- SystemLog /var/log/proftpd/proftpd.log
- AuthOrder mod_auth_file.c
3、检测配置文件语法:确保配置正确无误。
- proftpd t
4、启动并配置开机启动:启动ProFTPD并设置为开机自启。
- systemctl start proftpd
- systemctl enable proftpd
七、FAQs问答环节
Q1: 如何修改ProFTPD的监听端口?
A1: 要修改ProFTPD的监听端口,可以编辑/etc/proftpd.conf
文件,找到Port
指令并更改其值,将监听端口改为2121:
- Port 2121
然后重启ProFTPD服务以使更改生效:
- systemctl restart proftpd
确保防火墙规则也相应地更新以允许新的端口。
Q2: ProFTPD支持哪些数据库后端?如何配置?
A2: ProFTPD支持多种数据库后端,包括MySQL、PostgreSQL、LDAP和SQLite等,以下是一个简单的MySQL配置示例:
1、安装必要的软件包:
- yum install proftpdmysql proftpdutils
2、编辑配置文件:取消注释以下行以加载mod_sql和mod_sql_mysql模块。
- nano /etc/proftpd.conf
- LoadModule mod_sql.c
- LoadModule mod_sql_mysql.c
3、添加数据库配置:在配置文件末尾添加以下内容。
- <IfModule mod_sql.c>
- SQLBackend mysql
- SQLEngine on
- SQLAuthenticate on
- SQLLogFile /var/log/proftpd/sql.log
- SQLConnectInfo mysqluser@localhost password dbname
- SQLUserInfo ftpuser userid passwd uid gid homedir shell
- SQLGroupInfo ftpgroup groupname gid members
- SQLMinUserGID 2001
- SQLMinUserUID 2001
- </IfModule>
4、重启ProFTPD:使更改生效。
- systemctl restart proftpd