两台主机必须在同一个网段,做实验时vim /etc/sysconfig/selinux 改为 disable
做完这一步必须重启
yum install vsftpd
systemctl start vsftpd
systemctl enable vsftpd
firewalld-cmd --permanent --add-service=ftp
firewalld-cmd --reload
lftp 另一台主机ip
ls
二:vsftpd的配置
vim /etc/vsftpd/vsftpd.conf
lftp ip ###匿名用户登录
lftp ip -u 用户 ####本地用户登陆
anonymous_enable=YES|NO #匿名用户是否可以登陆
此时退出保存重启vsftpd后,匿名用户将不可以登陆
重新设置为YES既可登陆
本地用户
local_enable=YES|NO #本地用户是否可以登陆
此时本地用户无法登录
write_enable=YES|NO #ftp对登陆用户是否可写
此时本地用户将在登陆后无法写入
##匿名用户家目录修改
anon_root=/dir
### 匿名用户删除###
anon_other_write_enable=YES
###最大上传速率###
anon_max_rate=102400
截取一个文件
速率保持在100K左右
###本地用户上传文件权限设置###
本地用户
local_umask=022
匿名用户
anon_umask=077
######限制本地用户浏览/目录#######
没有限制之前:
本地用户是可以浏览/目录的
chroot_list_file=etc/vsftpd/chroot_list 需要编辑这个文件 (黑/白名单)
chroot_local_user=YES
chmod u-w /home/*
设置之后:
本地用户无法浏览/目录
#设置黑名单#
vim /etc/vsftpd/chroot_list
在里面写入需要添加到黑名单的用户名
#设置白名单#
chroot_local_user=YES
vim /etc/vsftpd/chroot_list
在里面写入需要添加到白名单的用户
systemctl restart vsftpd
######限制本地用户登陆#####
黑名单
cd /etc/vsftpd/
ftpusers ###永久黑名单,优先级高
user_list ###临时黑名单,在一定情况下可转变成白名单
vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO #####将 user_list 转变为白名单
如果同一个用户同时在ftpusers 与 为白名单的user_list中,则这个用户不能登陆,因为ftpusers优先级高
#####建立lftp虚拟用户####
1:vim /etc/vsftpd/guest
ftpuser1
123
ftpuser2
123
ftpuser3
123
db_load -T -t hash -f /etc/vsftpd/guest /etc/vsftpd/guest.db 哈希加密
2:vim /etc/pam.d/gd
account required pam_userdb.so db=/etc/vsftpd/guest
auth required pam_userdb.so db=/etc/vsftpd/guest
3:vim /etc/vsftpd/vsftpd.conf
pam_service_name=gd
guest_username=ftp
guest_enable=YES
#########虚拟账户家目录独立设定#####
1:vim /etc/vsftpd/vsftpd.conf
lcal_root=/ftpguo/$USER
user_sub_token=$USER $USER变量只能用在shell里面,不能用在配置文件里面,需要用这个设置将$USER引入配置文件
2:mkdir /ftpguo
chgrp westos /ftpguo
chmod g+s /ftpguo
mkdir /ftpguo/ftpuser{1..3}
touch /ftpguo/ftpuser1/file1
touch /ftpguo/ftpuser2/file2
touch /ftpguo/ftpuser3/file3
3:lftp 172.25.254.103 -u ftpuser1
ls
##############指定虚拟用户上传文件######################
1:vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
2:mkdir /etc/vsftpd/userconf
3:注释配置文件中属于匿名文件的
cd /ftpguo
mkdir ftpuser{1..3}/pub
vim /etc/vsftpd/userconf/ftpuser1
chmod 775 /etc/ftpguo/ftpuser{1..3}/pub
lftp 172.25.66.167 -u ftpuser1
lftp 172.25.66.167 -u ftpuser2
################################################################################################
#########selinux##########
1:rm -fr /etc/vsftpd/*
yum reinstall vsftpd -y
2:进入 /etc/sysconfig/selinux
将 disable 改为 en.....
3:touch /mnt/westos
4:mv /mnt/westos /var/ftp/
5:getenforce
6:lftp 172.25.254.103
ls
看有没有westos
7:setenforce 0|1 0:警告,可以查看 1:强制,不能查