一、安装ftp
1、首先,确保您的系统已经更新到最新的软件包版本。运行以下命令来更新软件包列表并安装更新的软件包:
bash
sudo yum update
2、安装vsftpd服务器软件包:
bash
sudo yum install vsftpd
3、安装完成后,启动vsftpd服务并将其设置为在系统引导时自动启动:
bash
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
4、(如果有防火墙)您还需要配置防火墙以允许FTP流量通过,默认情况下,FTP使用端口21和一些被动模式数据端口。运行以下命令来打开这些端口:
bash
sudo firewall-cmd --permanent --add-service=ftp
sudo firewall-cmd --reload
二、远程访问配置
-
确认FTP服务器已安装并运行:按照上面的说明安装并启动了vsftpd服务。
-
打开防火墙端口:默认情况下,FTP服务器使用端口21来控制连接,以及一些被动模式数据端口(通常在范围50000-51000)。您需要打开这些端口,以便允许远程客户端连接。使用以下命令打开端口:
bashsudo firewall-cmd --permanent --add-port=21/tcp sudo firewall-cmd --permanent --add-port=50000-51000/tcp sudo firewall-cmd --reload
-
配置vsftpd :编辑
/etc/vsftpd/vsftpd.conf
文件来配置vsftpd以允许远程访问。打开终端并运行以下命令来编辑文件:bashsudo nano /etc/vsftpd/vsftpd.conf
您可以根据需要进行以下配置更改:
-
允许匿名访问(不建议):将
anonymous_enable
设置为YES。 -
允许本地用户登录:确保
local_enable
设置为YES。 -
设置本地用户的主目录:默认情况下,用户将被限制在其家目录中。如果您想要更灵活的配置,请考虑修改
chroot_local_user
和local_root
选项。 -
启用本地用户上传文件:将
write_enable
设置为YES。 -
启用被动模式:确保
pasv_enable
设置为YES,并在pasv_min_port
和pasv_max_port
中指定被动模式端口范围(例如50000-51000)。
保存并关闭文件。
-
-
重新启动vsftpd服务:使配置更改生效:
bashsudo systemctl restart vsftpd
-
创建FTP用户 :如果您打算允许本地用户访问FTP服务器,请确保这些用户存在,并且他们具有适当的权限。您可以使用
useradd
命令创建用户,然后使用passwd
命令为他们设置密码。 -
测试远程访问 :使用FTP客户端(如FileZilla)或命令行中的
ftp
命令来测试远程访问。使用FTP客户端时,请确保指定正确的主机名或IP地址、端口、用户名和密码。
三、vsftpd.conf 安全配置方法
配置vsftpd.conf
文件以提高FTP服务器的安全性是非常重要的。以下是一些安全配置选项,可以帮助您确保FTP服务器的安全性:
-
禁用匿名访问:确保匿名访问被禁用,以防止未经授权的访问。
bashanonymous_enable=NO
-
启用本地用户登录:允许本地用户登录FTP服务器。
bashconfCopy codelocal_enable=YES
-
限制用户的根目录 :通过
chroot_local_user
选项,将用户锁定在其家目录中,以防止他们访问系统的其他部分。bashchroot_local_user=YES
-
限制用户上传权限:限制用户上传文件的权限。
bashwrite_enable=YES
-
限制用户的命令 :通过
cmds_allowed
选项限制用户可以执行的FTP命令。bashcmds_allowed=USER,PASS,QUIT,PORT,PASV,LIST,SITE_CHMOD
-
启用防火墙支持:如果您使用防火墙,请启用防火墙支持以使FTP服务器能够工作。
bashpasv_enable=YES pasv_min_port=40000 pasv_max_port=40100 pasv_address=<Your_Public_IP_Address>
这里,
pasv_min_port
和pasv_max_port
定义了被动模式使用的端口范围,pasv_address
是FTP服务器的公共IP地址。 -
启用SSL/TLS加密:为了安全传输数据,您可以启用SSL/TLS加密。首先,生成SSL证书,然后配置以下选项:
bashssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO ssl_ciphers=HIGH rsa_cert_file=/etc/ssl/private/vsftpd.pem
请确保将
rsa_cert_file
设置为您的SSL证书的正确路径。 -
限制登录尝试次数 :通过
max_login_attempts
选项,限制登录尝试的次数,以防止暴力破解攻击。bashmax_login_attempts=3
-
禁用不必要的FTP功能 :根据需要禁用不必要的FTP功能,以减少潜在的攻击面。可以通过设置选项来实现这一点,例如,禁用
SITE EXEC
。bashcmds_denied=SITE EXEC
-
日志记录:启用详细的日志记录以监视FTP服务器的活动。将日志文件设置为只读以增加安全性。
bashxferlog_enable=YES xferlog_std_format=NO log_ftp_protocol=YES ls_recurse_enable=YES ascii_upload_enable=YES ascii_download_enable=YES deny_email_enable=YES