FTP服务的搭建与浅析SELinux

本文介绍了在SELinux环境下,FTP服务可能遇到的访问限制问题以及如何解决。通过修改文件的安全上下文,如使用`chcon`和`semanage`命令,可以允许FTP服务正常访问文件。同时,文章讲解了如何查看和调整SELinux对FTP服务的控制策略,如`setsebool`用于开启FTP的本地用户写功能。最后,讨论了如何控制SELinux的状态,以及安装`setroubleshoot-server`来帮助理解SELinux的日志。
#####ftp服务安装####
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)








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值