首先作实验前需要部署实验环境:
1,重置server虚拟机
2,进去配置ip
3,进去配置yum源
完成后就执行以下操作来进行ftp服务的查看:
[root@localhost ~]# vim /etc/sysconfig/selinux 编辑文件
[root@localhost ~]# cat /etc/sysconfig/selinux
SELINUX=disabled 这行改为disabled即可
[root@localhost ~]# reboot 重启
[kiosk@foundation21 Desktop]$ ssh root@172.25.254.221
[root@localhost ~]# getenforce 查看是否更改成功
Disabled
[root@localhost ~]# yum install vsftpd lftp -y 安装ftp和lftp
Complete!
[root@localhost ~]# systemctl start vsftpd 打开服务
[root@localhost ~]# systemctl enable vsftpd 开机自启动
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'
[root@localhost ~]# netstat -antlupe | grep vsftpd 查看端口是否开启
tcp6 0 0 :::21 :::* LISTEN 0 38124 1789/vsftpd
[root@localhost ~]# firewall-cmd --list-all 查看防火墙支持状态
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp
success 添加ftp进去
[root@localhost ~]# firewall-cmd --reload 重新读入
success
[root@localhost ~]# firewall-cmd --list-all ftp被允许
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ftp ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
[root@localhost ~]# cd /var/ftp/ 所有操作在此目录下
[root@localhost ftp]# ls
pub
[root@localhost ftp]# touch xfl
[root@localhost ftp]# ls
pub xfl
[root@localhost ftp]# lftp 172.25.254.221 测试进去可以看到建立的文件xfl
lftp 172.25.254.221:~> ls
drwxr-xr-x 2 0 0 6 Aug 03 2015 pub
-rw-r--r-- 1 0 0 0 May 05 07:07 xfl
设置selinux状态,安装ftp和lftp:
开启服务并设置开机自启动:
配置火墙状态并添加ftp,在根目录下建立文件方便测试效果:
直接在虚拟机通过lftp命令连接进行查看文件
vsftpd服务的配置参数:
在进行参数的配置时总会有一些报错。
报错ID的解析:
500 文件系统权限过大
530 用户认证失败
550 服务本身功能没有开放
553 本地文件系统权限过小
1,匿名用户设定
anonymous_enable=YES|NO 匿名用户登陆限制,将十二行改为NO就是不可以登录。
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> ls
drwxrwxr-x 2 0 50 20 May 06 01:38 pub
-rw-r--r-- 1 0 0 0 May 05 07:07 xfl
lftp 172.25.254.221:/> quit
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> ls
Interrupt 然后将匿名用户打开。
文件更改内容:
在主配置文件中将匿名用户关闭就不可以登陆,然后重新打开重启服务。
2,<匿名用户上传>
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
write_enable=YES
anon_upload_enable=YES
匿名用户依赖于普通用户可写,需要同时打开服务
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub 赋予权限不然会报错权限太小
测试连接lftp 172.25.254.221,cd /pub,put /etc/passwd,或者pub /etc/group就可以进行效果的测试。
详细操作:
[root@localhost ftp]# lftp 172.25.254.221
lftp 172.25.254.221:~> ls
drwxr-xr-x 2 0 0 6 Mar 07 2014 pub
-rw-r--r-- 1 0 0 0 May 07 01:27 xfl
lftp 172.25.254.221:/> cd /pub
lftp 172.25.254.221:/pub> ls
lftp 172.25.254.221:/pub> put /etc/passwd
put: Access failed: 550 Permission denied. (passwd) 服务功能没有开放
lftp 172.25.254.221:/pub> quit
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf 打开匿名用户上传功能
[root@localhost ftp]# systemctl restart vsftpd
[root@localhost ftp]# lftp 172.25.254.221
lftp 172.25.254.221:~> ls
drwxr-xr-x 2 0 0 6 Mar 07 2014 pub
-rw-r--r-- 1 0 0 0 May 07 01:27 xfl
lftp 172.25.254.221:/> cd /pub
lftp 172.25.254.221:/pub> ls
lftp 172.25.254.221:/pub> put /etc/passwd
put: Access failed: 553 Could not create file. (passwd)
lftp 172.25.254.221:/pub> ls
lftp 172.25.254.221:/pub> put /etc/group 报错因为权限过小
put: Access failed: 553 Could not create file. (group)
lftp 172.25.254.221:/pub> quit
[root@localhost ftp]# chgrp ftp /var/ftp/pub
[root@localhost ftp]# chmod 775 /var/ftp/pub 赋予权限
[root@localhost ftp]# lftp 172.25.254.221
lftp 172.25.254.221:~> ls
drwxrwxr-x 2 0 50 6 Mar 07 2014 pub
-rw-r--r-- 1 0 0 0 May 07 01:27 xfl
lftp 172.25.254.221:/> cd /pub
lftp 172.25.254.221:/pub> put /etc/group 可以上传
863 bytes transferred
lftp 172.25.254.221:/pub> ls
-rw------- 1 14 50 863 May 07 01:54 group
lftp 172.25.254.221:/pub> quit
文件更改内容:
更改了主配置文件之后上传报错从550到553,代表权限太小,需要赋予权限:
赋予权限再次上传成功:
3,匿名用户家目录修改
anon_root=/ftpdir
在主配置文件中任意一行添加即可。
[root@localhost ~]# mkdir /ftpdir/westosdir -p
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> ls
drwxr-xr-x 2 0 0 6 May 05 07:36 westosdir家目录已经被更改
lftp 172.25.254.221:/> quit
效果已经出现进去删除添加的家目录重启服务即可。
文件更改内容:
查看家目录已经被更改,作完实验删除添加的家目录重启服务:
4,匿名用户上传文件默认权限修改
将主配置文件中的默认权限修改为:
anon_umask=055进行效果查看。
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.221:/pub> put /etc/passwd
2048 bytes transferred
lftp 172.25.254.221:/pub> ls
drwx------ 2 14 50 6 May 06 02:34 aaa
-rw------- 1 14 50 3339674 May 06 02:17 bigfile
-rw------- 1 14 50 2048 May 06 02:39 passwd 权限为600
lftp 172.25.254.221:/pub> quit
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.221:/pub> put /etc/group
865 bytes transferred
lftp 172.25.254.221:/pub> ls
drwx------ 2 14 50 6 May 06 02:34 aaa
-rw------- 1 14 50 3339674 May 06 02:17 bigfile
-rw--w--w- 1 14 50 865 May 06 02:40 group 修改权限为622
-rw------- 1 14 50 2048 May 06 02:39 passwd
lftp 172.25.254.221:/pub> quit
文件更改内容:
未添加权限为600
添加权限之后上传文件权限就变成了622
5,匿名用户建立目录
anon_mkdir_write_enable=YES|NO将主配置文件更改为YES就可以匿名用户建立目录。
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.221:/pub> ls
-rw------- 1 14 50 3339674 May 06 02:17 bigfile
lftp 172.25.254.221:/pub> mkdir aaa
mkdir: Access failed: 550 Permission denied. (aaa) 不可以建立文件夹,没有权限
lftp 172.25.254.221:/pub> quit
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.221:/pub> ls
-rw------- 1 14 50 3339674 May 06 02:17 bigfile
lftp 172.25.254.221:/pub> mkdir aaa 改为YES就可以建立文件夹
mkdir ok, `aaa' created
lftp 172.25.254.221:/pub> ls
drwx------ 2 14 50 6 May 06 02:34 aaa
-rw------- 1 14 50 3339674 May 06 02:17 bigfile
lftp 172.25.254.221:/pub> quit
文件更改内容:
操作演示:
6,匿名用户下载:
anon_world_readable_only=YES|NO ##设定参数值为no表示匿名用户可以下载。
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> ls
drwxrwxr-x 2 0 50 20 May 06 02:16 pub
-rw-r--r-- 1 0 0 0 May 05 07:07 xfl
lftp 172.25.254.221:/> cd /pub
lftp 172.25.254.221:/pub> ls
-rw------- 1 14 50 3339674 May 06 02:17 bigfile
lftp 172.25.254.221:/pub> get bigfile 匿名用户不可以下载
get: Access failed: 550 Failed to open file. (bigfile)
lftp 172.25.254.221:/pub> quit
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.221:/pub> ls
-rw------- 1 14 50 3339674 May 06 02:17 bigfile
lftp 172.25.254.221:/pub> get bigfile 匿名用户可以下载
3339674 bytes transferred
lftp 172.25.254.221:/pub> ls
-rw------- 1 14 50 3339674 May 06 02:17 bigfile
lftp 172.25.254.221:/pub> quit
文件更改内容:
操作演示:
7,匿名用户删除:
anon_other_write_enable=YES|NO 改变成yes代表可以删除。
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> ls
drwxrwxr-x 2 0 50 20 May 06 02:09 pub
-rw-r--r-- 1 0 0 0 May 05 07:07 xfl
lftp 172.25.254.221:/> cd /pub
lftp 172.25.254.221:/pub> ls
-rw------- 1 14 50 2097152000 May 06 01:40 bigfile
lftp 172.25.254.221:/pub> rm -fr bigfile 未开启时不可以删除
lftp 172.25.254.221:/pub> ls
-rw------- 1 14 50 2097152000 May 06 01:40 bigfile
lftp 172.25.254.221:/pub> quit
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> ls
drwxrwxr-x 2 0 50 20 May 06 02:09 pub
-rw-r--r-- 1 0 0 0 May 05 07:07 xfl
lftp 172.25.254.221:/> cd /pub
lftp 172.25.254.221:/pub> ls
-rw------- 1 14 50 2097152000 May 06 01:40 bigfile
lftp 172.25.254.221:/pub> rm -fr bigfile 开启了之后匿名用户可以删除。
rm ok, `bigfile' removed
lftp 172.25.254.221:/pub> ls
lftp 172.25.254.221:/pub> quit
文件更改内容:
未更改前匿名用户不可以删除文件:
更改后匿名用户可以删除:
8,最大上传速率:
在主配置文件中添加限速anon_max_rate=102400。
[root@localhost ~]# dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB) copied, 23.258 s, 90.2 MB/s
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> ls
drwxrwxr-x 2 0 50 6 May 06 02:11 pub
-rw-r--r-- 1 0 0 0 May 05 07:07 xfl
lftp 172.25.254.221:/> cd /pub
lftp 172.25.254.221:/pub> ls
lftp 172.25.254.221:/pub> put /mnt/bigfile
2097152000 bytes transferred in 38 seconds (52.96M/s) 速度特别快
lftp 172.25.254.221:/pub> quit
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.221
lftp 172.25.254.221:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.221:/pub> ls
-rw------- 1 14 50 453701444 May 06 02:15 bigfile
lftp 172.25.254.221:/pub> rm bigfile
rm ok, `bigfile' removed
lftp 172.25.254.221:/pub> put /mnt/bigfile 有明显的速度对比
Interrupt
lftp 172.25.254.221:/pub> quit删除限速文件。
文件更改内容:
前后速度对比:
9,本地用户设定:
local_enable=YES|NO 本地用户登陆限制,建立一个本地用户登录的时候显示不出来
write_enable=YES|NO 本地用户写权限限制,不能上传put /etc/passwd用此命令实现
一开始将配置文件登陆以及可写全部关闭:
查看效果报错530,不认证用户:
开启登陆可写一次性进行测试:
可以登陆进行上传文件:
10,本地用户上传文件权限
local_umask=077(从022改为077)
默认为022,我们将其更改为077查看效果。
[root@localhost ~]# id westos
uid=1001(westos) gid=1001(westos) groups=1001(westos)
[root@localhost ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@localhost ~]# lftp 172.25.254.221 -u westos
Password:
lftp westos@172.25.254.221:~> ls
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp westos@172.25.254.221:~> ls
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp westos@172.25.254.221:~> put /etc/group
865 bytes transferred
lftp westos@172.25.254.221:~> ls
-rw-r--r-- 1 1001 1001 865 May 06 02:04 group 建立的group权限为644
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp westos@172.25.254.221:~> quit
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.221 -u westos
Password:
lftp westos@172.25.254.221:~> ls
-rw-r--r-- 1 1001 1001 865 May 06 02:04 group
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp westos@172.25.254.221:~> put /etc/westos
put: /etc/westos: No such file or directory
lftp westos@172.25.254.221:~> rm -fr group 可以删除是因为开启了本地用户删除
rm ok, `group' removed
lftp [email protected]:~> put /etc/group
865 bytes transferred
lftp [email protected]:~> ls
-rw------- 1 1001 1001 865 May 06 02:06 group 重新建立权限为600
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
看到效果恢复权限。
文件更改内容;
未更改前上传文件权限为644:
更改后上传文件权限为600:
11,限制本地用户浏览目录
限制本地用户浏览/目录,所有用户被锁定到自己的家目录中
chroot_local_user=YES,变成NO表示可以随意浏览
chmod u-w /home/* 赋予权限
[root@localhost ~]# lftp 172.25.254.221 -u westos
Password:
lftp westos@172.25.254.221:~> ls
-rw------- 1 1001 1001 865 May 06 02:06 group
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp westos@172.25.254.221:~> cd /
cd ok, cwd=/
lftp [email protected]:/> ls
lrwxrwxrwx 1 0 0 7 May 07 2014 bin -> usr/bin
dr-xr-xr-x 4 0 0 4096 Jul 10 2014 boot
drwxr-xr-x 18 0 0 2800 May 07 01:23 dev
drwxr-xr-x 134 0 0 8192 May 07 03:00 etc
drwxr-xr-x 3 0 0 22 May 07 02:09 ftpdir
drwxr-xr-x 4 0 0 33 May 07 03:00 home
lrwxrwxrwx 1 0 0 7 May 07 2014 lib -> usr/lib
lrwxrwxrwx 1 0 0 9 May 07 2014 lib64 -> usr/lib64
drwxr-xr-x 2 0 0 6 Mar 13 2014 media
drwxr-xr-x 2 0 0 20 May 07 02:49 mnt
drwxr-xr-x 3 0 0 15 Jul 10 2014 opt
dr-xr-xr-x 132 0 0 0 May 07 01:23 proc
dr-xr-x--- 18 0 0 4096 May 07 03:20 root
drwxr-xr-x 34 0 0 1100 May 07 01:24 run
lrwxrwxrwx 1 0 0 8 May 07 2014 sbin -> usr/sbin
drwxr-xr-x 2 0 0 6 Mar 13 2014 srv
dr-xr-xr-x 13 0 0 0 May 07 01:23 sys
drwxrwxrwt 10 0 0 4096 May 07 03:07 tmp
drwxr-xr-x 13 0 0 4096 May 07 2014 usr
drwxr-xr-x 23 0 0 4096 May 07 01:24 var
lftp westos@172.25.254.221:~> quit
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# chmod u-w /home/* 必须缩减权限不然会提醒权限太大
[root@localhost ~]# lftp 172.25.254.221 -u westos
Password:
lftp westos@172.25.254.221:~> ls
-rw------- 1 1001 1001 865 May 06 02:06 group
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp westos@172.25.254.221:/> cd /
lftp westos@172.25.254.221:/> ls
-rw------- 1 1001 1001 865 May 06 02:06 group
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp [email protected]:/> quit
文件更改内容变成YES代表锁在家目录中:
更改前用户可以自由浏览目录:
更改后用户被限制到自己的家目录中。
11-1用户黑名单建立
chroot_local_user=NO 意味着所有人可以浏览
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
[root@localhost ~]# vim /etc/vsftpd/chroot_list 所以这就是黑名单
[root@localhost ~]# cat /etc/vsftpd/chroot_list
westos
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.221 -u student 非黑名单用户可以自由浏览
Password:
lftp student@172.25.254.221:~> ls
lftp student@172.25.254.221:~> cd /
cd ok, cwd=/
lftp student@172.25.254.221:/> ls
lrwxrwxrwx 1 0 0 7 May 07 2014 bin -> usr/bin
dr-xr-xr-x 4 0 0 4096 Jul 10 2014 boot
drwxr-xr-x 18 0 0 2880 May 06 01:00 dev
drwxr-xr-x 134 0 0 8192 May 06 02:51 etc
drwxr-xr-x 3 0 0 22 May 05 07:36 ftpdir
drwxr-xr-x 4 0 0 33 May 05 07:41 home
lrwxrwxrwx 1 0 0 7 May 07 2014 lib -> usr/lib
lrwxrwxrwx 1 0 0 9 May 07 2014 lib64 -> usr/lib64
drwxr-xr-x 2 0 0 6 Mar 13 2014 media
drwxrwxrwx 2 0 0 20 May 06 01:24 mnt
drwxr-xr-x 3 0 0 15 Jul 10 2014 opt
dr-xr-xr-x 154 0 0 0 May 06 00:52 proc
dr-xr-x--- 15 0 0 4096 May 06 02:51 root
drwxr-xr-x 35 0 0 1140 May 06 01:00 run
lrwxrwxrwx 1 0 0 8 May 07 2014 sbin -> usr/sbin
drwxr-xr-x 2 0 0 6 Mar 13 2014 srv
dr-xr-xr-x 13 0 0 0 May 06 00:52 sys
drwxrwxrwt 14 0 0 4096 May 06 01:00 tmp
drwxr-xr-x 13 0 0 4096 May 07 2014 usr
drwxr-xr-x 23 0 0 4096 May 06 00:52 var
lftp student@172.25.254.221:/> quit
[root@localhost ~]# lftp 172.25.254.221 -u westos
Password:
lftp westos@172.25.254.221:~> cd / 黑名单用户被锁在家目录中
cd ok, cwd=/
lftp westos@172.25.254.221:/> ls
-rw------- 1 1001 1001 865 May 06 02:06 group
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp westos@172.25.254.221:/> cd /
lftp westos@172.25.254.221:/> ls
-rw------- 1 1001 1001 865 May 06 02:06 group
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp westos@172.25.254.221:/> quit
文件更改内容:
非黑名单用户可以自由浏览:
黑名单用户被锁定在自己的家目录中:
11-2用户白名单建立
chroot_local_user=YES 将所有人锁定在家目录
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# vim /etc/vsftpd/chroot_list 建立的为白名单
[root@localhost ~]# cat /etc/vsftpd/chroot_list
westos
[root@localhost ~]# lftp 172.25.254.221 -u westos 白名单用户可以自由浏览
Password:
lftp westos@172.25.254.221:~> cd /
cd ok, cwd=/
lftp westos@172.25.254.221:/> ls
lrwxrwxrwx 1 0 0 7 May 07 2014 bin -> usr/bin
dr-xr-xr-x 4 0 0 4096 Jul 10 2014 boot
drwxr-xr-x 18 0 0 2880 May 06 01:00 dev
drwxr-xr-x 134 0 0 8192 May 06 02:51 etc
drwxr-xr-x 3 0 0 22 May 05 07:36 ftpdir
drwxr-xr-x 4 0 0 33 May 05 07:41 home
lrwxrwxrwx 1 0 0 7 May 07 2014 lib -> usr/lib
lrwxrwxrwx 1 0 0 9 May 07 2014 lib64 -> usr/lib64
drwxr-xr-x 2 0 0 6 Mar 13 2014 media
drwxrwxrwx 2 0 0 20 May 06 01:24 mnt
drwxr-xr-x 3 0 0 15 Jul 10 2014 opt
dr-xr-xr-x 154 0 0 0 May 06 00:52 proc
dr-xr-x--- 15 0 0 4096 May 06 02:54 root
drwxr-xr-x 35 0 0 1140 May 06 01:00 run
lrwxrwxrwx 1 0 0 8 May 07 2014 sbin -> usr/sbin
drwxr-xr-x 2 0 0 6 Mar 13 2014 srv
dr-xr-xr-x 13 0 0 0 May 06 00:52 sys
drwxrwxrwt 14 0 0 4096 May 06 01:00 tmp
drwxr-xr-x 13 0 0 4096 May 07 2014 usr
drwxr-xr-x 23 0 0 4096 May 06 00:52 var
lftp westos@172.25.254.221:/> quit
[root@localhost ~]# lftp 172.25.254.221 -u student非白名单用户不可以浏览。
Password:
lftp student@172.25.254.221:~> cd /
cd ok, cwd=/
lftp student@172.25.254.221:/> ls
lftp student@172.25.254.221:/> cd /
lftp student@172.25.254.221:/> ls
lftp student@172.25.254.221:/> quit
做完实验注释掉:
文件更改内容:
非白名单用户不可以随意浏览:
白名单用户可以随意浏览:
12,限制本地用户登录
12-1 vim /etc/vsftpd/ftpusers 用户黑名单永久的,级别最高
vim /etc/vsftpd/ftpusers ##用户黑名单永久的,级别最高
[root@localhost ftp]# vim /etc/vsftpd/ftpusers 添加westos为黑名单
[root@localhost ftp]# systemctl restart vsftpd
[root@localhost ftp]# lftp 172.25.254.221 -u westos 黑名单用户没办法登陆
Password:
lftp westos@172.25.254.221:~> ls
ls: Login failed: 530 Login incorrect.
lftp westos@172.25.254.221:~> quit
[root@localhost ftp]# lftp 172.25.254.221 -u student 其他用户可以登陆
Password:
lftp student@172.25.254.221:~> ls
lftp student@172.25.254.221:~> quit
[root@localhost ftp]# vim /etc/vsftpd/ftpusers 删除黑名单用户
[root@localhost ftp]# systemctl restart vsftpd
[root@localhost ftp]# lftp 172.25.254.221 -u westos westos用户可以登陆
Password:
lftp westos@172.25.254.221:~> ls
-rw------- 1 1001 1001 878 May 07 03:20 group
-rw-r--r-- 1 1001 1001 2092 May 07 03:03 passwd
lftp westos@172.25.254.221:~> quit
永久黑名单用户添加:
操作演示:
12-2 vim /etc/vsftpd/user_list 用户临时黑名单
[root@localhost ~]# vim /etc/vsftpd/user_list 添加westos为临时黑名单用户
[root@localhost ~]# lftp 172.25.254.221 -u westos 不可以登陆
Password:
lftp westos@172.25.254.221:~> ls
ls: Login failed: 530 Permission denied.
lftp westos@172.25.254.221:~> quit
[root@localhost ftp]# lftp 172.25.254.221 -u student 非黑名单用户可以登陆
Password:
lftp student@172.25.254.221:~> ls
lftp student@172.25.254.221:~> quit
[root@localhost ~]# vim /etc/vsftpd/user_list 删除黑名单用户可以登陆
[root@localhost ~]# lftp 172.25.254.221 -u westos
Password:
lftp westos@172.25.254.221:~> ls
-rw------- 1 1001 1001 865 May 06 02:06 group
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp westos@172.25.254.221:~> quit
文件更改内容:
操作演示:
12-3 用户白名单设定:
主配置文件更改;
124 pam_service_name=vsftpd
125 userlist_enable=YES
126 userlist_deny=NO
127 tcp_wrappers=YES
设置解释:
userlist_deny=NO
/etc/vsftpd/user_list 参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆ftp。
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# vim /etc/vsftpd/user_list 也是添加westos为白名单可以登陆
[root@localhost ~]# lftp 172.25.254.221 -u westos
Password:
lftp westos@172.25.254.221:~> ls
-rw------- 1 1001 1001 865 May 06 02:06 group
-rw-r--r-- 1 1001 1001 2538 May 05 07:49 passwd
lftp westos@172.25.254.221:~> quit
[root@localhost ~]# lftp 172.25.254.221 -u student 非白名单用户不可以登陆
Password:
lftp student@172.25.254.221:~> ls
ls: Login failed: 530 Permission denied.
lftp student@172.25.254.221:~> quit
文件更改内容:
操作演示:
12-4 黑白名单同时存在:
如果黑白名单同时有一个人,则ftpusers永久黑名单权限最高,还是不能执行。
[root@localhost ~]# vim /etc/vsftpd/user_list 添加westos白名单
[root@localhost ~]# vim /etc/vsftpd/ftpusers 添加westos黑名单
[root@localhost ~]# lftp 172.25.254.221 -u westos 黑名单权限高不可以登陆
Password:
lftp westos@172.25.254.221:~> ls
Interrupt
lftp westos@172.25.254.221:~> quit
删除黑白名单,还原原来。
黑名单权限高。
13,ftp虚拟用户的设定,系统不识别明文规定。 (创建虚拟帐号身份)
vim /etc/vsftpd/westos 文件名称任意
ftpuser1 添加虚拟用户
123
ftpuser2
123
ftpuser3
123
db_load -T -t hash -f /etc/vsftpd/westos /etc/vsftpd/westos.db 加密
vim /etc/pam.d/westos 文件名称任意
account帐号 required必须通过否则认证被拒绝 pam_userdb.so认证帐号 db=/etc/vsftpd/westos后缀不需要,用户名单
auth密码 required必须通过否则认证被拒绝 pam_userdb.so认证密码 db=/etc/vsftpd/westos密码名单
vim /etc/vsftpd/vsftpd.conf
文件添加内容:
pam_service_name=westos 文件中为认证策略
guest_enable=YES
(虚拟帐号身份指定)
guest_username=ftpuser
chmod u-w /home/ftpuser 修改权限
[root@localhost vsftpd]# vim westos 添加虚拟用户密码
[root@localhost vsftpd]# cat westos
ftpuser1
123
ftpuser2
123
ftpuser3
123
[root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/westos /etc/vsftpd/westos.db 加密文件
[root@localhost vsftpd]# ls 查看时候加密已经存在
chroot_list user_list vsftpd.conf westos
ftpusers vsftp.conf vsftpd_conf_migrate.sh westos.db
[root@localhost vsftpd]# vim /etc/pam.d/westos 编辑帐号密码文件
[root@localhost vsftpd]# cat /etc/pam.d/westos
account required pam_userdb.so db=/etc/vsftpd/westos
auth required pam_userdb.so db=/etc/vsftpd/westos
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf 编辑主配置文件
[root@localhost vsftpd]# cat /etc/vsftpd/vsftpd.conf | tail -n 5
pam_service_name=westos 读取的密码文件
guest_enable=YES
guest_username=westos 虚拟机中存在的用户即可
userlist_enable=YES
tcp_wrappers=YES
[root@localhost vsftpd]# systemctl restart vsftpd 重启
[root@localhost vsftpd]# lftp 172.25.254.221 -u ftpuser1 登录
Password:
lftp ftpuser1@172.25.254.221:~> ls
注意文件内容即可,不错误就可以。
注意密码文件名字需要与文件中对应即可,如图虚拟用户可以登陆:
主配置文件内容:
14,虚拟帐号家目录独立指定
vim /etc/vsftpd/vsftpd.conf 编辑主配置文件
local_root=/vftpdir/$USER
user_sub_token=$USER
详细操作
[root@localhost ~]# mkdir /vftpdir 建立文件夹
[root@localhost ~]# touch /vftpdir/vftpfile
[root@localhost ~]# cd /vftpdir
[root@localhost vftpdir]# ls
vftpfile
[root@localhost vftpdir]# mkdir ftpuser{1..3}
[root@localhost vftpdir]# ll
total 0
drwxr-xr-x 2 root root 6 May 6 03:12 ftpuser1
drwxr-xr-x 2 root root 6 May 6 03:12 ftpuser2
drwxr-xr-x 2 root root 6 May 6 03:12 ftpuser3
-rw-r--r-- 1 root root 0 May 6 03:12 vftpfile
[root@localhost vftpdir]# touch ftpuser1/ftpuser1file
[root@localhost vftpdir]# touch ftpuser2/ftpuser2file
[root@localhost vftpdir]# touch ftpuser3/ftpuser3file
[root@localhost vftpdir]# ls
ftpuser1 ftpuser2 ftpuser3 vftpfile
[root@localhost vftpdir]# cd ftpuser1
[root@localhost ftpuser1]# ll
total 0
-rw-r--r-- 1 root root 0 May 6 03:12 ftpuser1file
[root@localhost ftpuser1]# vim /etc/vsftpd/vsftpd.conf
[root@localhost ftpuser1]# cat /etc/vsftpd/vsftpd.conf | tail -n 6
guest_enable=YES
guest_username=westos
local_root=/vftpdir/$USER vftpdir指一开始建立的目录
user_sub_token=$USER
userlist_enable=YES
tcp_wrappers=YES
[root@localhost ftpuser1]# systemctl restart vsftpd 每次操作都需要重启
[root@localhost ftpuser1]# lftp 172.25.254.221 -u ftpuser1 查看各自的家目录已经成功
Password:
lftp ftpuser1@172.25.254.221:~> ls
-rw-r--r-- 1 0 0 0 May 06 07:12 ftpuser1file
lftp ftpuser1@172.25.254.221:/> quit
[root@localhost ftpuser1]# lftp 172.25.254.221 -u ftpuser2
Password:
lftp ftpuser2@172.25.254.221:~> ls
-rw-r--r-- 1 0 0 0 May 06 07:12 ftpuser2file
lftp ftpuser2@172.25.254.221:/> quit
[root@localhost ftpuser1]# lftp 172.25.254.221 -u ftpuser3
Password:
lftp ftpuser3@172.25.254.221:~> ls
-rw-r--r-- 1 0 0 0 May 06 07:12 ftpuser3file
lftp ftpuser3@172.25.254.221:/> quit
建立目录创造实验环境:
编辑主配置文件:
进行查看独立家目录是否成功:
15,虚拟帐号配置独立
虚拟用户也依赖于匿名用户的参数控制。
vim /etc/vsftpd/vsftpd.conf
最后一行添加:
user_config_dir=/etc/vsftpd/userconf
操作演示:
[root@localhost ftpuser1]# vim /etc/vsftpd/vsftpd.conf 最后一行添加制定内容
[root@localhost ftpuser1]# systemctl restart vsftpd
[root@localhost ftpuser1]# cd /vftpdir
[root@localhost vftpdir]# ls
ftpuser1 ftpuser2 ftpuser3 vftpfile
[root@localhost vftpdir]# ll
total 0
drwxr-xr-x 2 root root 25 May 6 03:12 ftpuser1
drwxr-xr-x 2 root root 25 May 6 03:12 ftpuser2
drwxr-xr-x 2 root root 25 May 6 03:12 ftpuser3
-rw-r--r-- 1 root root 0 May 6 03:12 vftpfile
[root@localhost vftpdir]# mkdir ftpuser{1..3}/pub 建立/pub目录
[root@localhost vftpdir]# vim /etc/vsftpd/vsftpd.conf
[root@localhost vftpdir]# vim /etc/vsftpd/vsftpd.conf 将匿名用户上传关闭,因为虚拟用户依赖于匿名用户。
[root@localhost vftpdir]# systemctl restart vsftpd 重启
[root@localhost vftpdir]# chgrp westos ftpuser{1..3}/pub
[root@localhost vftpdir]# chmod 775 ftpuser{1..3}/pub 赋予权限
[root@localhost vftpdir]# lftp 172.25.254.221 -u ftpuser3
Password:
lftp ftpuser3@172.25.254.221:~> ls
-rw-r--r-- 1 0 0 0 May 06 07:12 ftpuser3file
drwxrwxr-x 2 0 1001 6 May 06 07:40 pub
lftp ftpuser3@172.25.254.221:/> cd /pub
lftp ftpuser3@172.25.254.221:/pub> ls
lftp ftpuser3@172.25.254.221:/pub> put /etc/passwd 不可上传因为功能关闭
put: Access failed: 550 Permission denied. (passwd)
lftp ftpuser3@172.25.254.221:/pub> quit
[root@localhost vftpdir]# mkdir /etc/vsftpd/conf_dir -p 建立主配置文件中的目录
[root@localhost vftpdir]# vim /etc/vsftpd/conf_dir/ftpuser2 给虚拟用户单独的上传权限
[root@localhost vftpdir]# cat /etc/vsftpd/conf_dir/ftpuser2 ftpuser2可以上传
anon_upload_enable=YES
[root@localhost vftpdir]# systemctl restart vsftpd
[root@localhost vftpdir]# lftp 172.25.254.221 -u ftpuser3
Password:
lftp ftpuser3@172.25.254.221:~> ls
-rw-r--r-- 1 0 0 0 May 06 07:12 ftpuser3file
drwxrwxr-x 2 0 1001 6 May 06 07:40 pub
lftp ftpuser3@172.25.254.221:/> cd /pub
lftp ftpuser3@172.25.254.221:/pub> ls
lftp ftpuser3@172.25.254.221:/pub> put /etc/group 不可以上传因为没有权限
put: Access failed: 550 Permission denied. (group)
lftp ftpuser3@172.25.254.221:/pub> quit
[root@localhost vftpdir]# lftp 172.25.254.221 -u ftpuser2
Password:
lftp ftpuser2@172.25.254.221:~> ls
-rw-r--r-- 1 0 0 0 May 06 07:12 ftpuser2file
drwxrwxr-x 2 0 1001 6 May 06 07:40 pub
lftp ftpuser2@172.25.254.221:/> cd /pub
lftp ftpuser2@172.25.254.221:/pub> ls
lftp ftpuser2@172.25.254.221:/pub> put /etc/passwd 可以上传,有自己单独的权限
2048 bytes transferred
lftp ftpuser2@172.25.254.221:/pub> ls
-rw------- 1 1001 1001 2048 May 06 07:52 passwd
lftp ftpuser2@172.25.254.221:/pub> quit
主配置文件中添加内容:
主配置文件中关闭匿名用户上传功能:
操作演示:
ftpuser3用户没有独立的上传权限不可以上传:
ftpuser2用户可以上传:
还原最初环境:
[root@localhost vftpdir]# rm -fr /etc/vsftpd/ 删除建立的目录
[root@localhost vftpdir]# yum reinstall vsftpd -y 重装ftp