前言
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。 [2]vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等(此部分解释来自百度百科)
安装
Centos版本:CentOS Linux release 7.4.1708
- 安装 yum -y install vsftpd
- 启动 systemctl start vsftpd.service
- 把服务添加到开机启动项 systemctl enable vsftpd
- 配置文件路径 /etc/vsftpd
功能一(匿名):
1、首先我们在企业中ftp服务器,一般情况下都会有个共享服务器,允许员工下载一些公司的软件或者常用的软件包(方便,不用再取外网去下载,也省带宽)
2、vsftp提供了匿名登录,默认anonymous_enable=YES的情况下,就启用了匿名访问,这种情况下你只能把需要给用户的文件,存放到/var/ftp/pub下(默认路径),如果想更改的话需要添加anon_root= /home/vsftpd,后面的路径就是匿名登录后实际访问的目录。
安装vsftpd后匿名访问需要保证以下3项为YES,配置文件vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
功能二(虚拟用户):
1.修改配置文件内容如下,vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
use_localtime=YES
local_enable=YES
allow_writeable_chroot=YES
xferlog_enable=YES
local_umask=022
pam_service_name=vsftpd
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=120
data_connection_timeout=120
guest_enable=YES
guest_username=ftpuser
user_config_dir=/etc/vsftpd/vuser_conf
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
2.创建宿主用户
useradd -d /home/vsftpd -s /sbin/nologin ftpuser
-d /home/vsftpd 指定将来的分享的根目录是:/home/vsftpd
-s /sbin/nologin 使此账户只能登陆ftp不能通过ssh登陆
设置ftpuser用户密码
passwd ftpuser
修改/home/vsftpd 的所有权
chown -R ftpuser.ftpuser /home/vsftpd
3.建立虚拟用户文件
touch /etc/vsftpd/vuser_passwd
# 编辑虚拟用户名单文件:(
# 第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)
vi /etc/vsftpd/vuser_passwd
# 编辑内容,下面是 vuser_passwd 内容
ftp1
12345678
ftp2
12345678
:wq!#保存退出
4.生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
chmod 600 /etc/vsftpd/vuser_passwd.db
5.创建用户配置
mkdir /etc/vsftpd/vuser_conf # 建立虚拟用户个人vsftp的配置文件
cd /etc/vsftpd/vuser_conf # 进入目录
touch ftp1 ftp2
每个文件(ftp1和ftp2写入如下内容,local_root=/home/vsftpd/ftp1 #这里写入这个用户的实际存储路劲)
local_root=/home/vsftpd/ftp1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
创建用户目录
mkdir -p /home/vsftpd/ftp1
mkdir -p /home/vsftpd/ftp2
6.生成虚拟用户的PAM文件
修改vsftpd文件内容(加入第二和第三行,下面的都全部注释,注意下面是64位操作系统,如果是32位的话lib64需要改成lib),vim /etc/pam.d/vsftpd
复制代码
#%PAM-1.0
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
#session optional pam_keyinit.so force revoke
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth required pam_shells.so
#auth include password-auth
#account include password-auth
#session required pam_loginuid.so
#session include password-auth
7.重启服务
systemctl restart vsftpd.service # 重启服务
systemctl status vsftpd.service # 服务状态查看
8.验证

9.注意事项
- 开放ftp服务添加到防火墙外,阿里云主机需要开启21端口出入
- 如果在使用的过程中遇到530错误,一般是目录的权限问题







Comments | NOTHING