CentOS7 安装配置 vsftpd
安装依赖
安装 Berkeley DB 的命令行工具,用于生产虚拟用户文件数据库:
sudo yum -y install libdb-utils安装 PAM,用于虚拟用户认证:
sudo yum -y install pam安装 vsftpd
检查是否已安装:
rpm -qa | grep vsftpd如果无,则安装:
sudo yum -y install vsftpd如果有,则更新:
sudo yum -y update vsftpd查看版本信息:
vsftpd -vvsftpd: version 3.0.2
生成 SSL 证书
检查当前版本 vsftpd 是否支持 SSL:
libssl.so.10 => /lib64/libssl.so.10 (0x00007fa9662c2000)
使用 openssl 生成 SSL 证书:
过程中需要输入的证书信息可随意填写,在使用 FTP 工具连接时,会显示填写的证书信息。
修改文件权限:
Tips: 使用 FTP 工具连接时,需要设置使用 显式 SSL/TLS 方式连接。
创建宿主用户
创建宿主用户:
Tips:
vsftpd为宿主用户名。
修改主配置文件
备份默认的主配置文件:
重新创建主配置文件:
插入配置信息:
Tip:
配置项等号两边不能有空格。
pasv_min_port和pasv_max_port为被动模式端口起始范围。
guest_username为上面创建的宿主用户,是 FTP 操作的目录和文件的真正所有者。
pam_service_name为 PAM 认证配置文件名。
user_config_dir为存放虚拟用户独立配置文件的目录。
保存退出。
虚拟用户配置
添加虚拟用户
添加虚拟用户:
在文件中添加虚拟用户名和密码:
Tips: 奇数行为用户名,偶数行为密码。
保存退出,并修改文件权限:
生成虚拟用户认证使用的数据库文件:
Tips:
每次修改
/etc/vsftpd/vuser文件内容后需重新生成一次认证文件。如果出现以下错误:
db_load: unexpected end of input data or key/data pair、db_load: odd number of key/data pairs
在
/etc/vsftpd/vuser最后添加一行空行,再重新生成用户认证文件。
修改认证文件权限:
PAM 认证配置
备份 vsftpd 默认的 PAM 认证文件:
重新创建 PAM 文件:
插入配置(64 位系统):
Tips:
如果是 32 位系统:
保存退出。
独立配置文件
新建用于存放虚拟用户独立配置文件的目录:
创建虚拟用户独立配置文件:
TIps:
test为虚拟用户的用户名,一个虚拟用户,一个单独的配置文件。
写入该用户的独立配置:
Tips:
local_root为该虚拟用户 FTP 主目录。
保存退出。
创建该虚拟用户的主目录:
修改目录所有者:
修改目录权限:
虚拟用户白名单
备份 vsftpd 默认的允许访问 FTP 的用户白名单文件:
重新创建白名单文件,并添加允许访问 FTP 的用户名:
Tips: 一行一个用户名。
保存退出。
chroot 白名单
创建允许执行 chroot 操作的虚拟用户白名单文件,根据需要添加用户名:
Tips:
正常虚拟用户会被限制在自己的主目录之内,允许执行
chroot表示可以切换到主目录之外的目录。一行一个用户名。
保存退出。
启动 vsftpd
启动 vsftpd 服务:
设置开机启动:
FirewallD 配置
查看 FirewallD 当前默认区域永久配置:
public target: default icmp-block-inversion: no interfaces: sources: services: ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
可见 services 没有添加了 ftp 服务,ports 中也没有添加 FTP 相关端口(20,21 等)。
永久添加 ftp 服务当当前默认区域:
给 ftp 服务添加额外的 FTP 相关端口:
查看重载 FirewallD 规则之后永久生效的服务:
ssh ftp
查看重载 FirewallD 规则之后永久生效的 ftp 服务的信息:
ftp ports: 21/tcp 20/tcp 18000-19000/tcp protocols: source-ports: modules: ftp destination:
重载 FirewallD 规则:
Tips: 阿里云主机需要在安全组规则中添加入方向的
20/tcp, 21/tcp, 18000-19000/tcp端口。
日志管理
如需开启日志功能,先取消掉主配置文件中的 #log_ftp_protocol=YES 注释。
创建日志文件:
设置文件权限:
重启 vsftpd 服务:
FTP 客户端
推荐使用免费开源全平台支持的 FileZilla:FileZilla 官方下载 。
第一次连接的时候会提示 “未知证书”,并显示之前填写的证书信息,勾选 “在以后的会话中始终信任该证书“ 并确定即可。
参考文献
Last updated
Was this helpful?