FTP(File Transfer Protocol)是计算机使用较早的一种文件传输协议,可以通过TCP/IP协议进行文件传输。但由于FTP使用明文传输,安全性无法保证,因此现在使用较多的是FTPS(FTP over SSL/TLS),它通过加密传输数据,保证数据的安全性。本文将以CentOS7系统为例,介绍如何配置FTPS。
1. 安装vsftpd
vsftpd是一个成熟稳定的FTP服务器程序,CentOS7默认源中也有安装包。使用以下命令安装:
sudo yum install vsftpd
2. 配置vsftpd
在安装好vsftpd后,需要进行一些简单的配置。首先,我们需要编辑配置文件/etc/vsftpd/vsftpd.conf:
sudo vi /etc/vsftpd/vsftpd.conf
以下是需要修改的几个配置项:
anonymous_enable=NO //设置不允许匿名用户登录
local_enable=YES //设置允许本地用户登录
write_enable=YES //设置允许用户上传文件
chroot_local_user=YES //限制用户只能访问自己的主目录
user_sub_token=$USER //$USER是一个变量,指当前用户的用户名,这里需要设置user_sub_token为$USER
local_root=/home/$USER/ftp //FTP服务的根目录,这里设置为当前用户的主目录下的ftp目录
ssl_enable=YES //启用SSL
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem //SSL证书路径
rsa_private_key_file=/etc/pki/tls/private/vsftpd.pem //SSL私钥路径
allow_anon_ssl=NO //禁止匿名用户使用SSL登录
force_local_data_ssl=YES //强制本地数据传输使用SSL
force_local_logins_ssl=YES //强制本地登录认证使用SSL
ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO //设置SSL支持的协议版本
修改完毕后保存并退出。
需注意,SSL证书和私钥可以通过以下命令进行生成:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/vsftpd.pem -out /etc/pki/tls/certs/vsftpd.pem
此命令将在/etc/pki/tls/private/和/etc/pki/tls/certs/目录下生成私钥和证书文件。
3. 配置防火墙
要确保FTP服务能够正常访问,我们需要配置防火墙,开放FTP所使用的端口。FTP所使用的端口有两种:21和20。其中,21号端口是FTP客户端与服务器进行命令控制传输使用的;20号端口是FTP客户端与服务器进行数据传输使用的。为了在FTP服务中启用传输加密,我们还需要开放一个SSL连接所使用的端口,该端口默认为990。我们可以使用以下命令开放这三个端口:
sudo firewall-cmd --add-port=20/tcp --permanent //开放20号端口
sudo firewall-cmd --add-port=21/tcp --permanent //开放21号端口
sudo firewall-cmd --add-port=990/tcp --permanent //开放SSL连接端口
sudo firewall-cmd --reload //重载防火墙
4. 启动和测试FTPS服务
完成上述配置后,我们需要启动FTPS服务,并测试其是否能正常运行。使用以下命令启动FTPS服务并设置为开机自启动:
sudo systemctl start vsftpd.service
sudo systemctl enable vsftpd.service
之后我们可以使用任何支持FTPS的客户端来连接测试,Windows系统自带的FTP客户端不支持FTPS,我们可以使用FileZilla等工具进行测试。连接时需要填写主机IP、用户名和密码,端口可以使用默认值。如果连接正常,就说明FTPS服务已经部署成功。
扫码咨询 领取资料