1.修改IP,配置yum源
2.yum install vsftpd.x86_64 -y ##安装vsftpd服务
3.systemctl start vsftpd ##开启服务
4.systemctl stop firewalld.service ##关闭火墙
5.touch /var/ftp/test ##建立测试文件(可以直接用浏览器访问测试)
命令测试
yum install lftp.x86_64 -y ##安装lftp
lftp 172.25.254.113 ##匿名用户(ftp用户)登陆,该服务的根为/var/ftp
lftp 172.25.254.113 -u student ##本地用户登陆(需要本地用户密码),该服务的根默认为本地用户家目录
##ftp服务的配置文件(/etc/vsftpd/vsftpd.conf)###
>12 anonymous_enable=YES ##允许匿名用户登陆(非本地用户)
>16 local_enable=NO ##允许本地用户登陆
>19 write_enable=YES ##允许本地用户写(只是在自己的家目录)
>29 anon_upload_enable=YES ##允许匿名用户上传权限
> anon_world_readable_only=NO ##允许匿名用户对自己建立的目录有读权限(当为)
> anon_other_write_enable=YES ##允许用户有写(删除)权限
> anon_mkdir_write_enable=YES ##允许用户建立目录
> anon_root=/westos ##修改匿名用户家目录为/westos
> local_root=/westos ##修改本地用户家目录为/westos
> anon_umask=022 ##修改匿名用户的umask为022
> chown_uploads=YES ##允许修改匿名用户
> chown_username=student ##修改匿名用户为student,组不变
> anon_max_rate=1024000 ##修改匿名用户文件传输最大速率为102400字节
> max_clients=2000 ##最大客户端连接数为2000
> chroot_local_user=YES ##不允许本地用户进入根目录
> chroot_list_enable=YES ##开启一个与上面相对的能否进入根的名单(这里是白名单)
> chroot_list_file=/etc/vsftpd/chroot_list ##指定名单的位置,里面直接写用户名即可
> userlist_deny=NO ##使得user_list成为登陆白名单(不再名单里的人都无法登录)(无或YES为登陆黑名单)
/etc/vsftpd/user_list ##临时黑名单
/etc/vsftpd/ftpusers ##永久黑名单(优先级高)
###匿名用户上传###
1.vim /etc/vsftpd/vsftpd.conf
>29 anon_upload_enable=YES ##开启你名用户上传
2.chgrp ftp /var/ftp/pub ##将目录给与pub
3.chmod 775 /var/ftp/pub ##修改权限使得匿名用户(ftp)可写
#####报错分析###
550 ##服务禁止
553 ##系统权限禁止
500 ##ftp根目录权限过大
530 ##ftp根目录权限过小或被加入黑名单
####虚拟用户的建立与登陆###
1.vim /etc/vsftpd/MR ##建立一个虚拟帐号身份文件
> user1 ##帐号
> 123 ##密码
> user2 ##帐号
> 456 ##密码
2.db_load -T -t hash -f /etc/vsftpd/MR /etc/vsftpd/MR.db##转化为db
3.vim /etc/pam.d/mrftp ##新建一个,名字自定
> account required pam_userdb.so db=/etc/vsftpd/MR ##用户名必须符合MR.db
> auth required pam_userdb.so db=/etc/vsftpd/MR ##密码必须符合MR.db
4.vim /etc/vsftpd/vsftpd.conf ##在配置文件的最后面编写
> pam_service_name=mrftp ##指向刚才的文件(修改后将不能用普通用户登陆)
> guest_enable=YES ##开启虚拟用户登陆
> guest_username=student ##以student用户登陆
5.systemctl restart vsftpd.service ##重启服务
####虚拟用户登陆目录独立###
1.mkdir -p /ftpdir/user1 ##建立目录user1
2.mkdir -p /ftpdir/user2 ##建立目录user2
3.touch /ftpdir/user1/1 ##建立测试文件1
4.touch /ftpdir/user2/2 ##建立测试文件2
5.vim vsftpd.conf ##编写配置文件
> pam_service_name=mrftp ##同上
> guest_enable=YES ##同上
> local_root=/ftpdir/$USER ##设定虚拟用户家目录为其用户名
> user_sub_token=$USER ##使用系统变量
> guest_username=student #以student用户登陆
6.systemctl restart vsftpd.service ##重启服务
####虚拟用户权限独立###
vim /etc/vsftpd/vsftpd.conf ##编辑配置文件并修改/ftpdir/user{1,2}的权限
user_config_dir=/etc/vsftpd/userconf ##添加子配置目录,子配置文件与虚拟用户名相同
mkdir -p /etc/vsftpd/userconf ##建立这个目录
vim /etc/vsftpd/userconf/ftpuser1 ##编辑子配置文件(加入上传,下载,删除权限)
##浅析SELINUX###
#######SElinux对文件的影响########
selinux打开时会对服务的文件进行访问限制,当你的FTP服务一切就绪是,还是无法访问到,你就可以考虑是不是selinux影响了服务。
selinux会影响文件的前后文,移动过来的文件与新建的文件前后文不同,服务只能看到新建的文件,无法看到"mv"过来的文件ll -Z file ##查看文件前后文
chcon -t public_content_t file ##修改file的文件前后文
######安全上下文的修改(SElinux对文件的控制)#####
->临时修改(selinux重启时恢复)
chcon -t public_content_t /westos -R##将/westos及其所有的子文件的安全上下文修改为public_content_t
->永久修改
semanage fcontext -l |grep /westos##查看上下文库中的关于/westos的信息
semanage fcontext -a -t public_content_t '/westos(/.*)?'
##在上下文库中添加/westos及其子目录的标签public_content_t(-a 添加 -t 指定 -d 删除)
restorecon -RvvF /westos/##刷新上下文库(-R:第归 -v:查看信息 -vv:包括子目录信息 -F:刷新)
###SElinux对服务的控制##
getsebool -a|grep ftp##查看selinux对ftp服务的限制信息
setsebool -P ftp_home_dir on##打开ftp的本地用户写功能(-P:永久设定)
##对SElinux状态的控制##
getenforce##查看selinux的状态
setenforce 1##设置selinux的状态为Enforcing(强制)
setenforce 0##设置selinux的状态为Permissive(警告)
yum install setroubleshoot-server.x86_64##安装selinux的翻译软件(delinux的日志/var/log/audit/audit.log:翻译后的日志/var/log/mesage)