实验前准备工作:
若显示为disabled表示更改成功
###################2.部署ftp服务##########################################################################
在服务端(server虚拟机)
systemctl enable vsftpd 开机启动服务
firewall-cmd --get-services 查看防火墙可以允许的服务
firewall-cmd --permanent --add-service=ftp 将ftp服务加进防火墙
firewall-cmd --reload 重新加载防火墙
firewall-cmd --list-all 查看服务状态
在客户端lftp 服务端ip,连接服务端查看能否连接成功,或者服务端也装有lftp,也可以查看是否连接成功。
######################3.vsftp服务的配置###################################################################################
匿名用户:
###########1.匿名用户家目录的修改
在服务端虚拟机:
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# ls
pub
[root@localhost ftp]# touch westosfile ##建立一个文件有利于后面操作查看的结果
[root@localhost ftp]# ls
pub westosfile
[root@localhost ftp]# mkdir /ftpdir/westosdir -p ##建立一个新的家目录
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf
13 anon_root=/ftpdir ##用户家目录修改
[root@localhost ftp]# systemctl restart vsftpd ##重启vsftpd
[root@localhost ftp]# lftp 172.25.254.228
lftp 172.25.254.228:~> ls
drwxr-xr-x 2 0 0 6 May 07 11:10 westosdir ##可以看到家目录的修改
################2.匿名用户登录限制##################################
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES|NO ##N0表示不可以登录,YES表示可以。
################3.匿名用户上传##############################
vim /etc/vsftpd/vsftpd.conf
write_enable=YES ##ftp写权限(包括本地用户),匿名用户还有独立的开关,
anon_upload_enable=YES ##匿名用户上传
systemctl restart vsftpd
chgrp ftp /var/ftp/pub ##需要修改文件夹所属组chmod 775 /var/ftp/pub ##修改权限,修改权限后匿名用户才能上传文件到put目录
[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf
28 anon_upload_enable=YES ##匿名用户上传
[root@localhost ftp]# systemctl restart vsftpd
[root@localhost ftp]# chgrp ftp /var/ftp/pub ##建立一个组
[root@localhost ftp]# chmod 775 /var/ftp/pub
[root@localhost ftp]# lftp 172.25.254.219 ##匿名用户
lftp 172.25.254.228:~> ls
drwxr-xr-x 2 0 0 6 Mar 07 2014 pub
-rw-r--r-- 1 0 0 0 May 05 07:33 westosfile
[root@localhost ftp]# lftp 172.25.254.219
lftp 172.25.254.219:~> cd /pub ##必须要有这个目录才可以上传到这里
cd ok, cwd=/pub
lftp 172.25.254.219:/pub> put /etc/passwd
2397 bytes transferred ##上传成功
###############4.匿名用户删除############
编写内容:
###############5.匿名用户的下载####################
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
修改: anon_world_readable_only=NO ##设定参数为no表示匿名用户可以下载
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.228
lftp 172.25.254.228:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.228:/pub> ls
-rw------- 1 14 50 2048 May 08 12:40 passwd
lftp 172.25.254.228:/pub> get passwd ##下载pub目录里有的文件
2048 bytes transferred ##下载成功
##################6.匿名用户建立目录##################
vim /etc/vsftpd/vsftpd.conf
编写:
#####################7.匿名用户上传文件权限###########
vim /etc/vsftpd/vsftpd.conf
编写内容:anon_umask=022 ##匿名用户
lftp 172.25.254.219
cd pub/
put /etc/group
-rw-r--r-- 1 14 50 865 May 06 02:23 group ##权限为644
group权限依然为600;
group权限变为644.
######################8.匿名用户限制上传速度###########################
cd /mnt/
dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000 ##截取
vim /etc/vsftpd/vsftpd.conf
systemctl restart vsftpd
lftp 172.25.254.219
cd pub/
put /mnt/bigfile
本地用户:
local_enable=YES|NO ##本地用户登陆限制
write_enable=YES|NO ##本地用户写权限限制
local_root=/directory ##本地用户家目录修改
local_umask=xxx ##本地用户上传文件权限
#########################1,本地用户上传文件权限######
没有修改权限时:
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
编写:24 local_umask=022 ##本地用户上传权限
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.228 -u student
Password:
lftp student@172.25.254.228:~> put /etc/passwd
2048 bytes transferred
lftp student@172.25.254.228:~> ls
-rw-r--r-- 1 1000 1000 2048 May 08 13:26 passwd ##上传的passwd权限为644
drwxrwxr-x 2 1000 1000 19 May 08 12:27 pub
####################2.限制本地用户浏览/目录#############
chmod u-w /home/* ##所有用户被锁定到自己的家目录中
vim /etc/vsftpd/vsftpd.conf
102 chroot_local_user=YES ##默认任何人都不可以访问家目录
systemctl restart vsftpd
lftp 172.25.254.228 -u student
lftp student@172.25.254.228:~> ls
drwxrwxr-x 2 1000 1000 19 May 08 12:27 pub
lftp student@172.25.254.228:/> cd / ##切换到 / 下家目录,不能访问到
lftp student@172.25.254.228:/> ls
drwxrwxr-x 2 1000 1000 19 May 08 12:27 pub
####################3.本地用户黑名单的建立
vim /etc/vsftpd/vsftpd.conf
打开:chroot_local_user=NO ##所有人可以浏览
hroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
systemctl restart vsftpd
vim /etc/vsftpd/chroot_list ##编写黑名单用户名
lftp 172.25.254.219 -u 黑名单用户名
cd /
ls ##看不到/目录
用户名当用户是非黑名单用户时,可以看到/目录
######4.本地用户白名单的建立
白名单的文件配置非常相像,只是要把主配置文件的所有人浏览改为YES,意思是所有人不能浏览。只有白名单里的用户可以。
白名单可以查看目录
除了白名单以外的用户查看不到目录
##############################3.ftp虚拟机用户的设定#################################
(1)创建虚拟机账号身份
vim /etc/vsftpd/user ##添加虚拟用户密码(文件名称任意)
编写内容:user1 ##普通用户
123 ##密码
user2
123
user3
123
db_load -T -t hash -f /etc/vsftpd/user /etc/vsftpd/user.db ##加密
vim /etc/pam.d/westos ##编辑帐号密码文件(文件名称任意)
编写内容: account required pam_userdb.so db=/etc/vsftpd/user
auth required pam_userdb.so db=/etc/vsftpd/user
vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos ##创建虚拟机帐号身份文件名
guest_enable=YES
systemctl restart vsftpd
account:帐号
required:必须通过否则认证被拒绝
pam_userdb.so:认证帐号
db=/etc/vsftpd/user:后缀不需要,用户名单
auth:密码
required:必须通过否则认证被拒绝
pam_userdb.so:认证密码
db=/etc/vsftpd/user:密码名单
在vim /etc/vsftpd/user 文件中编写普通用户以及密码
在vim /etc/pam.d/westos 文件中写入:
在 /etc/vsftpd/vsftpd.conf 文件中写入pam_service_name=westos和 guest_enable=YES
####################2.虚拟账号身份制定
vim /etc/vsftpd/vsftpd.conf
guest_username=student ##已经有的用户名称
systemctl restart vsftpd
chmod u-w /home/student ##赋予权限
lftp 172.25.254.219 -u user1 ##查看user1用户
mkdir /vftpdir ##建立目录
touch /vftpdir/vftpfile
vim /etc/vsftpd/vsftpd.conf
编写内容:local_root=/vftpdir ##建立目录名称
systemctl restart vsftpd.service
cd /vftpdir/
ls
mkdir user{1..3} ##要和上一个实验的创建虚拟机帐号身份的文件名一致
ll
touch user1/user1file
touch user2/user2file ##建立文件
touch user3/user3file
ls
cd user1
ll
vim /etc/vsftpd/vsftpd.conf
编写内容:local_root=/vftpdir/$USER
user_sub_token=$USER
systemctl restart vsftpd.service
lftp 172.25.254.219 -u user2
ls
mkdir user{1..3}/pub
vim /etc/vsftpd/vsftpd.conf
编写内容:user_config_dir=/etc/vsftpd/conf_dir
chgrp student user{1..3}/pub
chmod 775 user{1..3}/pub
cd vftpdir
mkdir user{1..3}
vim /etc/vsftpd/vsftpd.conf
注释:anon_other_write_enable=YES ##删除
anon_upload_enable=YES ##上传
anon_max_rate=102400 ##限速
anon_mkdir_write_enable=YES ##可写
mkdir /etc/vsftpd/conf_dir -p ##建立主配置文件中的目录
vim /etc/vsftpd/conf_dir/user2 ##给虚拟用户单独的上传权限
cat /etc/vsftpd/conf_dir/ftpuser2 ##ftpuser2可以上传
anon_upload_enable=YES
lftp 172.25.254.219 -u user2
cd pub/
put /etc/passwd ##可以上传
lftp 172.25.254.219 -u user1
cd pub/
put /etc/passwd ##不可以上传
在配置文件中写入:
在 /etc/vsftpd/conf_dir/user2文件中写入单独上传权限:
user2可以上传: