Vsftpd服务
一:VSFTP简介
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全。
安全性是编写VSFTP的初衷,除了这与生俱来的安全特性以外,高速与高稳定性也是VSFTP的两个重要特点。
在速度方面,使用ASCII代码的模式下载数据时,VSFTP的速度是Wu-FTP的两倍,如果Linux主机使用2.4.*的内核,在千兆以太网上的下载速度可达86MB/S。
在稳定方面,VSFTP就更加的出色,VSFTP在单机(非集群)上支持4000个以上的并发用户同时连接,根据Red Hat的Ftp服务器的数据,VSFTP服务器可以支持15000个并发用户。
二:特点
vsftpd是一款在 Linux发行版中最受推崇的FTP服务器程序小巧轻快,安全易用,支持虚拟用户、支持带宽限制等功能
三:实验
3.1:实验目的
搭建vsftp,以及创建虚拟用户使用FTP
3.2:环境准备
一台win10 充当客户机
一台centos7充当vsftp服务机
两台机互联互通
3.3:vsftp搭建实验步骤
关闭防火墙
systemctl stop firewalld
关闭核心防护
setenforce 0
下面赋予账户权限
[root@shell vsftpd]# man vsftpd.conf
[root@shell vsftpd]# vim vsftpd.conf
[root@shell vsftpd]# grep -v "#" vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@shell vsftpd]# systemctl restart vsftpd
[root@shell var]# chmod 755 ftp/
[root@shell var]# ls
account crash ftp kerberos lock named preserve target yp
adm db games lib log nis run tmp
cache empty gopher local mail opt spool www
[root@shell var]# chmod 777 ftp/pub #最大权限
[root@shell var]# cd ftp
[root@shell ftp]# ll
总用量 4
drwxrwxrwx. 2 root root 6 4月 1 12:55 pub
-rw-r--r--. 1 root root 13 7月 20 09:43 test.txt
[root@shell var]# cd -
/var/ftp
[root@shell ftp]# ls
pub test.txt
[root@shell ftp]# cd pub
[root@shell pub]# ls
tes.txt
[root@shell pub]# cat tes.txt
this is test
[root@shell ftp]# useradd zhangsan
[root@shell ftp]# useradd lisi
[root@shell ftp]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@shell ftp]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
开启紧固在自己主目录
[root@shell vsftpd]# systemctl restart vsftpd
[root@shell vsftpd]# echo "zhangsan" >> /etc/vsftpd/user_list
[root@shell vsftpd]# cat user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
zhangsan
[root@shell vsftpd]# systemctl restart vsftpd
[root@shell vsftpd]# vim vsftpd.conf
仅允许 userlist访问
匿名用户也无法登陆
userlist的外其他列表都无法登陆
3.4:建立虚拟用户账户使用FTP
创建伪用户账户
[root@shell vsftpd]# db_load -T -t hash -f vuser vuser.db
-T:转化
-t:类型
hash:表示一种算法
-f:指定文件
[root@shell vsftpd]# db_load -T -t hash -f vuser vuser.db
[root@shell vsftpd]# ls -l
总用量 36
-rw-------. 1 root root 125 4月 1 12:55 ftpusers
-rw-------. 1 root root 370 7月 20 11:00 user_list
-rw-------. 1 root root 5160 7月 20 11:12 vsftpd.conf
-rwxr--r--. 1 root root 338 4月 1 12:55 vsftpd_conf_migrate.sh
-rw-r--r--. 1 root root 23 7月 20 11:15 vuser
-rw-r--r--. 1 root root 12288 7月 20 11:16 vuser.db '数据库文件'
'让其他用户无法访问这两个文件'
[root@shell vsftpd]# chmod 600 vuser vuser.db
[root@shell vsftpd]# ls -l
总用量 36
-rw-------. 1 root root 125 4月 1 12:55 ftpusers
-rw-------. 1 root root 370 7月 20 11:00 user_list
-rw-------. 1 root root 5160 7月 20 11:12 vsftpd.conf
-rwxr--r--. 1 root root 338 4月 1 12:55 vsftpd_conf_migrate.sh
-rw-------. 1 root root 23 7月 20 11:15 vuser
-rw-------. 1 root root 12288 7月 20 11:16 vuser.db
[root@shell vsftpd]# useradd -d /opt/vuser -s /sbin/nologin vuser
创建一个用户为vuser 指定家目录/opt/vuser并不适用shell登陆
[root@shell vsftpd]# id vuser
uid=1028(vuser) gid=1028(vuser) 组=1028(vuser)
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
'创建pam认证允许远程用户登陆'
[root@shell vsftpd]# vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
'开启来宾用户访问'
[root@shell vsftpd]# vim /etc/vsftpd/vsftpd.conf
末尾插入
#pam_service_name=vsftpd '注释掉,防止和下面冲突'
guest_enable=YES
guest_username=vuser '开启vuser用户'
pam_service_name=vsftpd.vu
[root@shell vsftpd]# cd /opt/vuser
[root@shell vuser]# ls
tes.txt
[root@shell vuser]# ll
总用量 4
-rw-------. 1 vuser vuser 13 7月 20 11:44 tes.txt
[root@shell vuser]# ll
总用量 8
-rw-------. 1 vuser vuser 13 7月 20 11:44 tes.txt
-rw-------. 1 vuser vuser 13 7月 20 11:51 te.txt
[root@shell vsftpd]# vim /etc/vsftpd/vsftpd.conf
.......
#pam_service_name=vsftpd
userlist_enable=YES
#userlist_deny=NO
tcp_wrappers=YES
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/vu_dir 添加单独用户配置文件夹
'在配置文件夹里创建用户配置文件'
[root@localhost vsftpd]# mkdir vu_dir
[root@localhost vsftpd]# cd vu_dir/
[root@localhost vu_dir]# vim tom
anon_umask=022
[root@shell vu_dir]# systemctl restart vsftpd
[root@shell vu_dir]# systemctl restart vsftpd
[root@shell vu_dir]# ls /opt/vuser/ -l
总用量 12
-rw-r--r--. 1 vuser vuser 13 7月 20 12:03 222.txt
-rw-------. 1 vuser vuser 13 7月 20 11:44 tes.txt
-rw-------. 1 vuser vuser 13 7月 20 11:51 te.txt
[root@shell vu_dir]# pwd
/etc/vsftpd/vu_dir
'单独用户配置权限' '上传后变成644'