使用vsftpd在Linux系统配置ftp说明
FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行文件传输的标准协议,它允许用户将文件从本地计算机上传到远程服务器,或从远程服务器下载文件到本地计算机。
在linux上一般使用vsftpd搭建FTP服务器,vsftpd是Linux系统下的一款开源的FTP服务器软件,具有较高的安全性和稳定性。
本次安装使用Centos7系统,本文记录一下vsftp安装配置过程方便参考。
一、安装vsftpd
1.使用yum源安装
yum install vsftpd 
2.其他安装方式
若yum源中没有vsftpd安装包,可以在开源镜像站中下载rpm包,或者在官网下载源码包编译安装。
阿里云开源镜像站:https://developer.aliyun.com/mirror/
移动云开源镜像站:https://mirrors.cmecloud.cn/
vsftpd源码:https://security.appspot.com/vsftpd.html
二、创建用户
1.创建系统用户
#创建用户目录(FTP目录)
mkdir -p /data/ftproot
#创建系统用户
useradd -d /data/ftproot -s /sbin/nologin ftpuser
#设置FTP的目录权限应为:755
chmod 755 /data/ftproot 2.创建虚拟用户
首先新建虚拟用户列表文件:
vi /etc/vsftpd/virtual_users 注意创建用户列表的文件格式,奇数行输入用户名,偶数行输入密码。
比如新建两个用户user1和user2:

3.生成虚拟用户认证文件
如果修改了列表中的用户密码,需要重新生成认证文件:
db_load -T -t hash -f /etc/vsftpd/virtual_users /etc/vsftpd/virtual_users.db 4.配置PAM认证
vi /etc/pam.d/vsftpd 需要将原先本地认证的配置注释掉,然后加入虚拟用户认证:
auth required pam_userdb.so db=/etc/vsftpd/virtual_users
account required pam_userdb.so db=/etc/vsftpd/virtual_users 修改完成状态:

三、修改配置文件
1.修改vsftpd主配置文件
先过滤一下注释行:
grep -v '^#' /etc/vsftpd/vsftpd.conf 查看默认配置文件都开启了哪些选项:

需要对应做下面的修改:
anonymous_enable=NO #关闭匿名访问
local_enable=YES #关闭本地用户访问
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES #监听IPV4地址,以独立守护进程模式运行
listen_ipv6=NO #关闭ipv6监听
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES 同时增加下面配置:
guest_enable=YES #启用虚拟用户
guest_username=ftpuser #指定虚拟用户映射的系统用户
write_enable=YES #允许用户上传文件
user_config_dir=/etc/vsftpd/virtual_user_conf #设置虚拟用户配置文件目录
allow_writeable_chroot=YES #允许主目录中写入(vsftpd2.3.5版本后增强了安全检查)
pasv_max_port=50010 #被动模式最大端口号(显式指定方便设置防火墙)
pasv_min_port=50000 #被动模式最小端口号(显式指定方便设置防火墙) 配置完成结果:

2.添加虚拟用户配置文件
创建虚拟用户配置文件:
touch /etc/vsftpd/virtual_user_conf/{user1,user2} 为每个虚拟用户单独编写配置:
local_root=/data/ftproot #设置虚拟用户数据目录
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
max_per_ip=1000
max_clients=100 
四、启动vsftpd服务
systemctl start vsftpd 设置开机自动启动:
systemctl enable vsftpd 查看启动状态:
systemctl status vsftpd 五、开放端口测试
需要在防火墙中将对应的端口开放,包括监听端口21,和自己设置的被动模式端口范围50000-50010,如果需要公网访问的话,也需要在对应的公网安全组中放通这些端口。
端口放开后,使用FileZilla进行登录测试,可以正常上传下载文件,完工。

扩展说明:
1.配置文件参考:https://security.appspot.com/vsftpd/vsftpd_conf.html
2.如果需要公网访问,可以增加pasv_address=公网IP参数。
- 本文标签: Linux
- 本文链接: https://blog.eyyyye.com/article/105
- 版权声明: 本文由爱做梦的比特原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
