天下風雲出我輩
一入江湖歲月催

Vsftp安装及使用

vsftpd

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

 

安装部署

系统:centos7.3

1、关闭防火墙及Selinx

#关闭防火墙
 systemctl stop firewalld

# 关闭selinux:更改selinux配置文件/etc/selinux/config中的参数SELINUX=disabled
# getenforce
Disabled

2、安装vsftp并创建用户

!!!注意:前方有坑,:cetnos7.6的系统/etc/shells 文件中没有/sbin/nologin路径,创建用户指定的时候虽然不会报错,但是ftp登录的时候鉴权会失败,530妥妥的报错,你会一脸懵逼,必须手动写入文件中才行。

yum install -y vsftpd pam* db4*

#管理vsftp服务命令
systemctl  (start | stop | restart | enable |disable)  vsftpd

#创建用户并指定家目录
useradd -d /opt/test -s /sbin/nologin  test

#创建密码
passwd test

#更改/etc/vsftpd/vsftpd.conf配置文件,取消匿名权限,并限制登陆用户不能离开主目录

anonymous_enable=NO           #不允许匿名用户登录
chroot_list_enable=YES         #是否禁锢chroot_list中的用户
chroot_list_file=/etc/vsftpd/chroot_list   # chroot_list文件保存位置 
allow_writeable_chroot=YES           #允许在主目录下有写权限

#将限制的用户名填入chroot_list中
echo "test" > /etc/vsftpd/chroot_list

备注:从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!
如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。
或者你可以在vsftpd的配置文件中增加下列两项中的一项:
allow_writeable_chroot=YES

#重启服务便可以使用创建的账号密码登录上传下载文件了。
systemctl restart vsftpd

 

常用配置文件参数更改

anonymous_enable=NO         #不允许匿名用户登录
listen_port=21               #FTP监听端口
local_enable=YES             #允许本地用户登录
write_enable=YES             #是否允许本地用户具有写入权限
local_umask=022              #设置上传umask值为系统默认umask值
dirmessage_enable=YES        #允许为配置目录显示信息
xferlog_enable=YES           #打开日志记录功能
connect_from_port_20=YES     #启用FTP数据端口的连接请求
xferlog_std_format=YES       #是否以标准xferlog的格式书写传输日志文件
chroot_local_user=YES
chroot_list_enable=YES       #是否禁锢chroot_list中的用户
chroot_list_file=/etc/vsftpd/chroot_list   # chroot_list文件保存位置
listen=NO                   #是否作为一个独立守护进程运行
userlist_enable=YES
tcp_wrappers=YES            #可以实现linux系统中网络服务的基于主机地址的访问控制
allow_writeable_chroot=YES    #使主目录具有写权限

 

使用虚拟用户登录

以上创建的test用户为映射虚拟用户的宿主

1、创建虚拟用户列表

vim /etc/vsftpd/vuser.txt
goodjob    # 账号
1234   # 密码
anonym
4567
......
......
像上述那样,单数行是用户名,双数行是密码每两行一条记录
!!!注意这里的账号也需要写入到/etc/vsftpd/chroot_list,否则将可以浏览所有目录
echo "goodjob" >> /etc/vsftpd/chroot_list
echo "anonym" >> /etc/vsftpd/chroot_list

2、生成虚拟用户的db数据库文件

db_load -T -t hash -f /etc/vsftpd/vuser.txt  /etc/vsftpd/vuser.db

3、创建新的pam.d文件

vim /etc/pam.d/vsftpdnew

特别注意 以下区别
32位系统增加以下两句:
auth      required     pam_userdb.so db=/etc/vsftpd/vuser
account   required     pam_userdb.so db=/etc/vsftpd/vuser

64位系统增加以下两句:
auth   required    /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required    /lib64/security/pam_userdb.sodb=/etc/vsftpd/vuser

4、编辑配置文件开启虚拟用户登录


guest_enable=YES          #开启虚拟用户

guest_username=test         #FTP虚拟用户对应的系统用户

virtual_use_local_privs=YES     #是否与本地用户同一权限,默认是NO,是无法删除文件的。

user_config_dir=/etc/vsftpd/vuser_conf     #FTP虚拟用户所在目录配置文件,文件名对应虚拟用户名

pam_service_name=/etc/pam.d/vsftpdnew        #PAM认证文件

5、创建虚拟用户配置目录及文件

mkdir /etc/vsftpd/vuser_conf
vim goodjob

#配置文件参数
local_root=opt/test          # 默认主目录,此目录需自己创建

write_enable=YES               #(可上传写入)

anon_umask=022                 #(掩码权限)

anon_world_readable_only=NO    #(浏览目录等)

anon_upload_enable=YES         #(上传文件)

anon_mkdir_write_enable=YES    #(新建文件夹)

anon_other_write_enable=YES    #(写入)

!!!注意此内容里面两边不能有空格,否则登录会出现问题。

#最后重启服务,使用虚拟用户登录
systemctl restart vsftpd

 

赞(4) 打赏
未经允许不得转载:Anonym0x1 » Vsftp安装及使用

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏