目录
【实验环境的部署】
vim /etc/sysconfig/selinux改成disable
getenforce关闭
reboot
systemctl restart vstpd
一.ftp介绍 :
ftp:file transfer proto
互联中最老牌的文件传输协议
二.vsftpd安装及启用 :
dnf search ftp
dnf install vsftpd.x86_64 lftp.x86_64 -y #安装服务器和客户端
rpm -ql vsftpd
systemctl enable --now vsftpd #开启vsftpd服务
netstat -antlupe | grep vsftpdsystemctl disable --now firewalld #关闭防火墙
开启两个shell分别链接虚拟机,一台当作服务器,一台当作客户端
我们在服务器中输入命令 vim /etc/vsftpd/vsftpd.conf 然后修改,开启匿名访问服务,然后重启服务systemctl restart vsftpd,然后我们在客户端进行测试,我们可以直接输入 lftp 172.25.254.80进行lftp链接 ,不用后面接用户 lftp 172.25.254.89 -u westos
然后我们在服务其中 cd cd /var/ftp 并且 touch westosfile ,然后我们在客户端中链接后输入ls可以看到在服务器中创建的文件 westosfile ,但是这种情况只能在我们这一台主机进行访问,在同一局域网的其他主机并不能进行访问链接,因此我们需要在服务器中输入命令
这样我们就可以通过浏览器进行访问
三.vsftpd基本信息:
服务名称: vsftpd.service 配置目录: /etc/vsftpd 主配置文件: /etc/vsftpd/vsftpd.conf 默认发布目录: /var/ftp 报错信息: 550 #程序本身拒绝 553 #文件系统权限限制 500 #权限过大 (目录文件权限过大) 530 #认证失败
四.匿名用户访问控制:
lftp 192.168.0.10 ##当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.0.10 -u westos ##本地用户访问———1.登陆控制 :anonymous_enable=YES|NO #是否开启匿名访问服务
———2. 家目录控制: anon_root=/westosdir #查看的是westosdir中的文件(这条命令自己写)
我们在服务器中建立一个目录westosdir,然后在目录中创建几个文件,然后在 vim /etc/vsftpd/vsftpd.conf中编辑anon_root=/westosdir ,意思是将我们的默认访问家目录成为westosdir,然后重启服务,这样就可以在客户端中访问的默认的是westosdir目录中的文件
——3. 上传控制 : anon_upload_enable=YES|NO (30行左右)
第一步我们首先在客户端的pub目录中上传文件,会提示我们550报错,是因为我们程序的本身设定有问题
第二步我们在服务器中进行程序的设定,这里我们取消掉30行的注释,表示我们开启了上传控制,重启服务之后我们在一次在客户端中进行put测试,会显示553报错,那是因为我们文件本身出的权限被限制
第三步我们需要在服务器进行设定,这样就可以在客户端中进行put上传文件
——4.目录建立控制:anon_mkdir_write_enable=YES|NO
下载控制 :anon_world_readable_only=NO ##匿名用户可以下载不能读的文件
删除重命令控制:anon_other_write_enable=YES|NO
取消掉注释
但是只能建立目录,并不能删除目录,删除目录会550报错
还需要在服务器中加入一些权限
这样就可以建立也可以删除了
——5.匿名用户上传文件权限设定 :
anon_umask=xxx
anon_umask=022 ##当设定chown_username之后上传文权限将不是用此参数设定
需要自己添加
——6.匿名用户上传文件的用户身份设定,设定之后上面的umask就没用了
取消注释并添加chown_upload_mode=0664,并且将其名字改成自己的用户
——7.登陆数量控制 : max_clients=2 :
——8. 上传速度控制 :anon_max_rate=102400
五.本地用户的访问 :
———— 登陆控制
useradd lee
useradd westos
echo lee(新密码) |passwd --stdin westos(用户)
echo lee | passwd --stdin leelocal_enable=NO|YES (本地用户是否可以登陆)
然后客户端链接 :lftp 172.25.254.123 -u westos
————家目录控制 :local_root=/var/ftp (指定用户的访问目录,比如/var/ftp)
————写权限控制: write_enable=NO|YES
写的总开关,在这里关闭了写或者开,匿名用户无论写是否开启都无法写东西,可以mkdir和rm
———— 上传文件权限控制 :local umask=077
设定完成之后新创建的目录就成了700了,文件不能直接创建,在服务机中创建一个文件,然后put /home/westos/Desktop/file,文件是再减111成600
————用户黑白名单 :
永久黑:/etc/vsftpd/ftpusers (至高无上) ##自带的
默认黑:/etc/vsftpd/user_list (经过一定设置可以变白)
白名单:编写userlist_deny=NO (表示关闭deny功能,双重否定表肯定,user_list就成了白名单)
在最后几行编写:
————锁定用户到自己的家目录 :
chmod u-w /home/* (将指定用户锁定在加目录中)
chroot_local_user=YES (109左右) ##取消掉注释
本来未限制权限之前我们可以cd到别的目录中,但是限制了权限之后我们就不能cd到别的目录,会550报错
———— 锁定用户到自己的加目录中的白名单 :
chroot_local_user=YES (是否将所有用户限制在家目录)
chroot_list_enable=YES (是否启动限制用户的名单)
chroot_list_file=/etc/vsftpd/chroot_list (是否限制在家目录下的用户名单)我们编写这个文件 /etc/vsftpd/chroot_list 并且将lee放入白名单
这样我们进行测试,只有lee用户可以cd到别的目录
———— 锁定用户到自己的家目录中的黑名单 :
chroot_local_user=NO (不将所有用户限制在家目录)
chroot_list_enable=YES (启动限制用户的名单)
chroot_list_file=/etc/vsftpd/chroot_list (是否限制在家目录下的用户名单)相反的如果我们关闭了 chroot_local_user=NO ,这样在 /etc/vsftpd/chroot_list名单中的用户就成了黑名单,我们的lee就可以cd到别的目录中
六. 虚拟用户访问 :
1.建立虚拟用户
vim /etc/vsftpd/westos_pam #建立认证文件模板 user1 123 user2 123 user3 123
vim /etc/vsftpd/vsftpd.conf (130左右)
listen_ipv6=YES
pam_service_name=westos ##指定认证策略文件
userlist_enable=YES
guest_enable=YES ##指定虚拟用户功能开启
guest_username=ftp ##指定虚拟用户在ftp服务器上的用户身份
#userlist_deny=NO ##注释掉lftp 172.25.254.123 -u user1
*********:如果错误是500 chmod u-x /pub 然后重启服务
七.虚拟用户家目录设定 :
1.mkdir -p /ftphome/user{1..3}
2.touch /ftphome/user1/user1file
touch /ftphome/user2/user2file
touch /ftphome/user3/user3file
3.mkdir /ftphome/user{1..3}/pub
4.ls -l /ftphome/user{1..3}
5.vim /etc/vsftpd/vsftpd.conf
130 listen_ipv6=YES
131
132 pam_service_name=westos
133 userlist_enable=YES
134 guest_enable=YES
135 guest_username=ftp
136 local_root=/ftphome/$USER
137 user_sub_token=$USER
139 #userlist_deny=NO
6.重启 systemctl restart vsftpd
八.用户配置独立 :
1.vim /etc/vsftpd/vsftpd.conf
注释几行,
31 #anon_upload_enable=YES
32 #anon_other_write_enable=YES
33 #anon_world_readable_only=NO
然后在最后几行加入 user_config_dir=/etc/vsftpd/westos
2.然后mkdir /etc/vsftpd/westos
3.vim /etc/vsftpd/westos/user1
写入 anon_upload_enable=YES
4.给权限chgrp ftp /ftphome/user1/pub/
chmod 775 /ftphome/user1/pub/
5.重启服务,测试user1是否可以独立配置
进入user1, 然后cd /pub,然后put /etc/passwd看是否成功