selinux #內核加強型火牆
準備工作:
vim /etc/sysconfig/selinux ##開啓內核加強型火牆
SELINUX=enforcing (強制並拒絕)
reboot
rm -rf /etc/vsftpd
yum reinstall vsftpd ##重裝vsftpd服務保持一個純淨的環境
mkdir /westos
touch /westos/westosfile{1…3}
1.上下文訪問標籤的更改
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos ##設定默認用戶的家目錄爲/westos
此時通過匿名登陸216,並不能看到/westos下的文件
原因爲當selinux開啓後,只有上下文訪問標籤相同才能正常顯示
ls -Zd /westos/ ##查看/westos的上下文訪問標籤
ls -Zd /var/ftp/pub/ ##查看/pub的上下文訪問標籤
解決方法:
1:臨時設定:
chcon -t public_content_t /westos/ -R ##臨時設定/westos的上下文訪問標籤
ls -Zd /westos/ ##再次查看/westos的上下文訪問標籤
此時
可以正常鏈接
restorecon -FvvR /westos/ ##執行刷新
ls -Zd /westos/ ##由於是臨時的所以執行刷新後又變了回來(selinx的開啓和關閉也會導致臨時設定失效)
2:永久設定
semanage fcontext -a -t public_content_t ‘/westos(/.*)?’
##永久設定
semanage fcontext -l | grep westos
此時查看/westos的上下文訪問標籤發現並未更改
ls -Zd /westos/
執行刷新
restorecon -FvvR /westos/
再次查看/westos的上下文訪問標籤發現發生了更改
ls -Zd /westos/
此時便可正常連接
lftp 172.25.254.216
2.服務默認bool值的設置
chmod 775 /home/student ##給家目錄權限
##本地用戶開啓上傳權限
lftp 172.25.254.216 -u student
getsebool -a | grep ftp ##查看ftp服務的bool值
setsebool -P ftp_home_dir on ##更改默認bool值 -P(永久)
此時本地用戶便可正常上傳
lftp 172.25.254.216 -u student
##匿名用戶開啓上傳權限
vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
systemctl restart vsftpd.service
getsebool -a | grep ftp
setsebool -P ftpd_anon_write on ##更改默認bool值
semanage fcontext -a -t public_content_rw_t /var/ftp/pub
##將pub目錄的安全上下文改爲可寫
restorecon -RvvF /var/ftp/pub/ ##執行刷新
此時匿名用戶便可正常上傳
4.如何更改selinux工作狀態
selinux的工作狀態:
Enforcing | ##強制並拒絕 |
---|---|
Permissive | ##警告 可以在/var/log/audit/audit.log查看警告 |
disabled | ##不工作 |
getenforce ##查看當前工作狀態
setenforce 0|1 ##更改當前工作狀態1(Enforcing) 0(Permissive)