原创

使用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参数。

正文到此结束
本文目录