Linux基本防護措施
2.案例2:使用sudo分配管理權限
3.案例3:提高SSH服務安全
4.案例4:SELinux安全防護
1 案例1:Linux基本防護措施
1.1 問題
本案例要求練習Linux系統的基本防護措施,完成以下任務:
1.修改用戶zhangsan的賬號屬性,設置為2019-12-31日失效(禁止登錄)
2.臨時鎖定用戶lisi的賬戶,使其無法登錄,驗證效果後解除鎖定
3.修改tty終端提示,使得登錄前看到的第一行文本為“Windows Server 2012 Enterprise R2”,第二行文本為“NT 6.2 Hybrid”
4.鎖定文件/etc/resolv.conf、/etc/hosts,以防止其內容被無意中修改
實現此案例需要按照如下步驟進行。
步驟一:修改用戶zhangsan的賬戶屬性,設置為2019-12-31日失效(禁止登錄)
1)正常情況下,未過期的賬號可以正常登錄,使用chage可以修改賬戶有效期。
1.chage命令的語法格式:
2.chage –l????賬戶名稱????????????????????????????????//查看賬戶信息
3.chage –E 時間 賬戶名稱????????????????????????????//修改賬戶有效期
2)失效的用戶將無法登錄
使用chage命令將用戶zhangsan的賬戶設為當前已失效(比如已經過去的某個時間):
1.[root@svr5 ~]# useradd zhangsan
嘗試以用戶zhangsan重新登錄,輸入正確的用戶名、密碼後直接閃退,返回登錄頁,說明此帳號已失效。
3)重設用戶zhangsan的屬性,將失效時間設為2015-12-31
1.[root@svr5 ~]# chage -E 2019-12-31 zhangsan ????????????//修改失效日期
2.[root@svr5 ~]# chage -l zhangsan ????????????????????//查看賬戶年齡信息
3.Last password change ????????????????????: May 15, 2017
5.Password inactive ????????????????????: never
6.Account expires ????????????????????????: Dec 31, 2019
7.Minimum number of days between password change ????????: 0
8.Maximum number of days between password change ????????: 99999
9.Number of days of warning before password expires ????????: 7
4)定義默認有效期(擴展知識)
/etc/login.defs這個配置文件,決定了賬戶密碼的默認有效期。
1.[root@svr5 ~]# cat /etc/login.defs
2.PASS_MAX_DAYS????99999????????????????????????//密碼最長有效期
3.PASS_MIN_DAYS????0????????????????????????????//密碼最短有效期
4.PASS_MIN_LEN????5????????????????????????????//密碼最短長度
5.PASS_WARN_AGE????7????????????????????????????//密碼過期前幾天提示警告信息
6.UID_MIN 1000????????????????//UID最小值
7.UID_MAX 60000????????????????//UID最大值
步驟二:臨時鎖定用戶lisi的賬戶,使其無法登錄,驗證效果後解除鎖定
1)鎖定用戶賬號
使用passwd或usermod命令將用戶lisi的賬戶鎖定。
1.[root@svr5 ~]# passwd -l lisi ????????????????????????//鎖定用戶賬號lock
2.鎖定用戶 lisi 的密碼。
3.passwd: 操作成功
4.
5.[root@svr5 ~]# passwd -S lisi ????????????????????????//查看狀態status
6.lisi LK 2018-02-22 0 99999 7 -1 (密碼已被鎖定。)
2)驗證用戶lisi已無法登錄,說明鎖定生效
輸入正確的用戶名、密碼,始終提示“Login incorrect”,無法登錄。
3)解除對用戶lisi的鎖定
1.[root@svr5 ~]# passwd -u lisi ????????????????????????//解鎖用戶賬號
2.解鎖用戶 lisi 的密碼 。
3.passwd: 操作成功
4.
5.[root@svr5 ~]# passwd -S lisi ????????????????????????//查看狀態
6.lisi PS 2018-08-14 0 99999 7 -1 (密碼已設置,使用 SHA512 加密。)
步驟三:修改tty登錄的提示信息,隱藏系統版本
1)賬戶在登錄Linux系統時,默認會顯示登陸信息(包括操作系統內核信息)
/etc/issue這個配置文件裏保存的就是這些登陸信息,修改該文件防止內核信息泄露。
1.[root@svr5 ~]# cat /etc/issue ????????????????????????????//確認原始文件
2.Red Hat Enterprise Linux Server release 6.5 (Santiago)
3.Kernel \r on an \m
4.
5.[root@svr5 ~]# cp /etc/issue /etc/issue.origin ????????????//備份文件
6.
7.[root@svr5 ~]# vim /etc/issue ????????????????????????????//修改文件內容
8.Windows Server 2012 Enterprise R2
9.NT 6.2 Hybrid
2)測試版本偽裝效果
退出已登錄的tty終端,或者重啟Linux系統,刷新後的終端提示信息會變成自定義的文本內容,如圖-1所示。
圖-1
步驟四:鎖定文件/etc/resolv.conf、/etc/hosts
1)語法格式:
1.# chattr +i 文件名????????????????????//鎖定文件(無法修改、刪除等)
2.# chattr -i 文件名????????????????????//解鎖文件
3.# chattr +a 文件名????????????????????//鎖定後文件僅可追加
4.# chattr -a 文件名????????????????????//解鎖文件
5.# lsattr 文件名????????????????????????//查看文件特殊屬性
2) 使用+i鎖定文件,使用lsattr查看屬性
1.[root@svr5 ~]# chattr +i /etc/resolv.conf /etc/hosts
2.[root@svr5 ~]# lsattr /etc/resolv.conf /etc/hosts
3.----i--------e- /etc/resolv.conf
4.----i--------e- /etc/hosts
2)測試文件鎖定效果
1.[root@svr5 ~]# rm -rf /etc/resolv.conf
2.rm: 無法刪除"/etc/resolv.conf": 不允許的操作
3.[root@svr5 ~]# echo "192.168.4.1 gateway.tarena.com" >> /etc/hosts
4.bash: /etc/hosts: 權限不夠
3)恢復這兩個文件原有的屬性(避免對後續實驗造成影響)
1.[root@svr5 ~]# chattr -i /etc/resolv.conf /etc/hosts
2.[root@svr5 ~]# lsattr /etc/resolv.conf /etc/hosts
3.-------------e- /etc/resolv.conf
4.-------------e- /etc/hosts
2 案例2:使用sudo分配管理權限
2.1 問題
本案例要求利用sudo機制分配管理操作權限,主要完成以下任務:
1.使用su命令臨時切換賬戶身份,並執行命令
2.允許softadm管理系統服務的權限
3.允許用戶useradm通過sudo方式添加/刪除/修改除root以外的用戶賬號
4.允許wheel組成員以特權執行/usr/bin/下的命令
5.為sudo機制啟用日誌記錄,以便跟蹤sudo執行操作
2.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:使用su命令臨時切換賬戶身份,並以root執行命令
su(Substitute User)命令可以快速切換賬戶身份,普通用戶切換賬戶身份時需要輸入密碼,root使用su命令切換任何身份都不需要密碼,如法格式如下:
1.# su – [賬戶名稱]
2.# su - [賬戶名稱] -c ‘命令‘
1)從普通用戶切換為root賬戶身份(如果沒有普通賬戶則需要先創建)
1.[jacob@svr5 ~]# whoami
2.jacob
3.[jacob@svr5 ~]# su –????????????????????//切換賬戶,默認切換為root賬戶
4.密碼:
5.[root@svr5 ~]# whoami????????????????????//確認結果
6.root
2)以普通身份創建目錄(如果沒有普通賬戶則需要先創建),以root身份重啟服務
1.[root@svr5 ~]# su - tom -c "mkdir /home/tom/test"????????//管理員切換普通用戶
2.[root@svr5 ~]# ll -d /home/tom/test
3.[tom@svr5 ~]# su - -c "systemctl restart sshd"????????????//以管理員重啟服務
4.密碼:
5.● sshd.service - OpenSSH server daemon
6.Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
7.active: active (running) since 五 2018-01-19 08:59:40 CST; 1 months 4 days ago
步驟二:允許softadm管理系統服務的權限
1)修改/etc/sudoers配置
修改/etc/sudoers可以直接使用vim編輯該文件,或使用visudo命令修改該文件。
為softadm授予相關腳本的執行權限,允許通過systemctl工具來管理系統服務。
如果沒有softadm賬戶可以先創建該賬戶。
1.[root@svr5 ~]# vim /etc/sudoers????????????//修改文件後,需要使用wq強制保存
2... ..
3.softadm ALL=(ALL) /usr/bin/systemctl ????????
4.//授權softadm以root身份執行systemctl命令
2)切換為softadm用戶,並驗證sudo執行權限
1.[root@svr5 ~]# su – softadm
2.[softadm@svr5 ~]$ sudo -l
3.… …
4.[sudo] password for softadm: ????????????????????????//輸入softadm的口令
5... ..
6.用戶 softadm 可以在該主機上運行以下命令:
- (ALL) /usr/bin/systemctl
-
9.[softadm@svr5 ~]$ systemctl start httpd ????????????????//不用sudo時啟動服務失敗
10.Authentication is required
11... ..
12.[softadm@svr5 ~]$ sudo systemctl restart httpd ????????//通過sudo啟動服務成功
步驟三:允許用戶useradm通過sudo方式添加/刪除/修改除root以外的用戶賬號
1)修改/etc/sudoers配置
為useradm授予用戶管理相關命令的執行權限,例外程序以!符號取反,放在後面。在執行相關程序時,可以利用通配符。
1.[root@svr5 ~]# vim /etc/sudoers
2... ..
3.useradm ALL=(ALL) /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user, - !/usr/sbin/user root
2)切換為useradm用戶,驗證sudo權限
可以通過sudo方式來添加/刪除/修改普通用戶:
1.[root@svr5 ~]# su – useradm
2.[useradm@svr5 ~]$ sudo -l
3... ..
4.用戶useradm可以在該主機上運行以下命令: - (root) /usr/bin/passwd, !/usr/bin/passwd root, /usr/sbin/user,
6.!/usr/sbin/user root
7.[useradm@svr5 ~]$ sudo useradd newuser01 ????????????????//可以添加用戶
8.[useradm@svr5 ~]$ sudo passwd newuser01 ????????????????//可以修改普通用戶的口令
9.更改用戶 newuser01 的密碼 。
10.新的 密碼:
11.重新輸入新的 密碼:
12.passwd: 所有的身份驗證令牌已經成功更新。
但是不能修改root用戶的密碼:
1.[useradm@svr5 ~]$ sudo passwd root
2.對不起,用戶 useradm 無權以 root 的身份在 localhost 上
3.執行 /usr/bin/passwd root。
步驟四:允許wheel組成員以特權執行/bin/下的所有命令
此案例用來展示sudo的便利性及設置不當帶來的危險性,生產環境下慎用。
實現時參考下列操作(如果沒有普通用戶則先創建該賬戶):
1.[root@svr5 ~]# vim /etc/sudoers
2... ..
3.%wheel ALL=(ALL) /bin/
4.[root@svr5 ~]# usermod -a -G wheel zengye
5.[zengye@svr5 ~]$ sudo -l
6... ..
7.用戶 zengye 可以在該主機上運行以下命令:
8.(root) /bin/*
步驟五:為sudo機制啟用日誌記錄,以便跟蹤sudo執行操作
1)修改/etc/sudoers配置,添加日誌設置
1.[root@svr5 ~]# visudo
2.Defaults logfile="/var/log/sudo"
3... ..
2)以root(默認有所有權限)執行sudo操作
1.[root@svr5 ~]# sudo -l ????????????????????????????????//查看授權的sudo操作
2.[softadm@svr5 ~]# sudo systemctl status httpd ????????????//查看授權的sudo操作
3)確認日誌記錄已生效
1.[root@svr5 ~]# tail /var/log/sudo
2... ..
3.May 16 22:14:49 : root : TTY=pts/1 ; PWD=/root ; USER=root ; COMMAND=list
4.Feb 22 22:35:43 : softadm : TTY=pts/11 ; PWD=/home/softadm ; USER=root ; - COMMAND=/bin/systemctl status httpd
3 案例3:提高SSH服務安全
3.1 問題
本案例要求提高Linux主機上SSH服務端的安全性,完成以下任務:
1.配置基本安全策略(禁止root、禁止空口令)
2.針對SSH訪問采用僅允許的策略,未明確列出的用戶一概拒絕登錄
3.實現密鑰驗證登錄(私鑰口令)、免密碼登入
4.確認密鑰驗證使用正常後,禁用口令驗證
3.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:配置基本安全策略
1)調整sshd服務配置,並重載服務
1.[root@svr5 ~]# vim /etc/ssh/sshd_config
2... ..
3.Protocol 2 ????????????????????????????????????????//去掉SSH協議V1
4.PermitRootLogin no ????????????????????????????????//禁止root用戶登錄
5.PermitEmptyPasswords no ????????????????????????????//禁止密碼為空的用戶登錄
6.UseDNS no ????????????????????????????????????????//不解析客戶機地址
7.LoginGraceTime 1m ????????????????????????????????//登錄限時
8.MaxAuthTries 3 ????????????????????????????????????//每連接最多認證次數
9... ..
10.[root@svr5 ~]# systemctl restart sshd
2)測試基本安全策略
嘗試以root用戶SSH登錄,失敗:
1.[root@svr5 ~]# ssh [email protected]
[email protected]‘s password:
3.Permission denied, please try again.
將服務器上用戶kate(如無該賬戶則先創建)的密碼設為空,嘗試SSH登錄,也會失敗:
1.[root@svr5 ~]# passwd -d kate ????????????????????????//清空用戶口令
2.清除用戶的密碼 kate。
3.passwd: 操作成功 -
5.[root@svr5 ~]# ssh [email protected]
[email protected]‘s password:
7.Permission denied, please try again.
步驟二:針對SSH訪問采用僅允許的策略,未明確列出的用戶一概拒絕登錄
1)調整sshd服務配置,添加AllowUsers策略,僅允許用戶zengye、john、useradm,其中useradm只能從網段192.168.4.0/24登錄。
1.[root@svr5 ~]# vim /etc/ssh/sshd_config
2... ..
3.AllowUsers zengye john [email protected]/24????????????//定義賬戶白名單
4.##DenyUsers USER1 USER2????????????????????????????????//定義賬戶黑名單
5.##DenyGroups GROUP1 GROUP2????????????????????????????//定義組黑名單
6.##AllowGroups GROUP1 GROUP2????????????????????????????//定義組白名單
7.[root@svr5 ~]# systemctl restart sshd
2)驗證SSH訪問控制,未授權的用戶將拒絕登錄。
1.[root@pc205 ~]# ssh [email protected] ????????????????//已授權的用戶允許登錄
[email protected]‘s password:
3.[useradm@svr5 ~]$ exit
4.[root@pc205 ~]# ssh [email protected] ????????????????//未授權的用戶被拒絕登錄
[email protected]‘s password:
6.Permission denied, please try again.
步驟三:實現密鑰對驗證登錄(私鑰口令)、免密碼登入
1)準備客戶機測試環境
為客戶機的用戶root建立SSH密鑰對
使用ssh-keygen創建密鑰對,將私鑰口令設為空(直接回車):
1.[root@client ~]$ ssh-keygen -t rsa
2.Generating public/private rsa key pair.
3.Enter file in which to save the key (/root/.ssh/id_rsa):
4.Created directory ‘/root/.ssh‘.
5.Enter passphrase (empty for no passphrase): ????????????//直接回車將口令設為空
6.Enter same passphrase again: ????????????????????????????//再次回車確認
7.Your identification has been saved in /root/.ssh/id_rsa.
8.Your public key has been saved in /root/.ssh/id_rsa.pub.
9.The key fingerprint is:
10.63:6e:cf:45:f0:56:e2:89:6f:62:64:5a:5e:fd:68:d2
11.The key‘s randomart image is:
12.+--[ RSA 2048]----+
13.| |
14.| |
15.| . . . |
16.| = = |
17.| S = B . |
18.| o B = . o |
19.| + + = E .|
20.| . + + o |
21.| o |
22.+-----------------+
23.[root@client ~]$ ls -lh ~/.ssh/id_rsa* ????????????????//確認密鑰對文件
24.-rw-------. 1 root root 1.8K 8月 15 10:35 /root/.ssh/id_rsa
25.-rw-r--r--. 1 root root 403 8月 15 10:35 /root/.ssh/id_rsa.pub
2)將客戶機上用戶root的公鑰部署到SSH服務器
以用戶root登入客戶機,使用ssh-copy-id命令將自己的公鑰部署到服務器:
1.[root@client ~]$ ssh-copy-id [email protected]
[email protected]‘s password:
3.Now try logging into the machine, with "ssh ‘[email protected]‘", and check in: - .ssh/authorized_keys
5.to make sure we haven‘t added extra keys that you weren‘t expecting.
3)在服務器上確認客戶機用戶root上傳的公鑰信息
默認部署位置為目標用戶的家目錄下 ~/.ssh/authorized_keys文件:
1.[root@svr5 ~]# tail -2 ~/.ssh/authorized_keys
2.ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzz+5AiFMGQ7LfuiV7eBnOcmRO9JRTcqRoynGO2y5
3.RyFL+LxR1IpEbkNrUyIZDk5uaX1Y8rwsf+pa7UZ2NyqmUEvNSUo0hQyDGsU9SPyAdzRCCvDgwpOFhaHi/OFnT+zqjAqXH2M9fFYEVUU4PIVL8HT19zCQRVZ/q3acQA34UsQUR0PpLJAobsf1BLe2EDM8BsSHckDGsNoDT9vk+u3e83RaehBMuy1cVEN5sLAaIrIeyM8Q0WxQNlqknL908HRkTlTeKrRoHbMnOBFj8StwlnscKHlkrsKkhUf8A9WWz/vL4GDwGND5jdca3I2hdITAySjMdfL1HMHnMYOgMjPM0Q== [email protected]
4)在客戶機上測試SSH密鑰對驗證
在客戶機用戶root的環境中,以遠程用戶root登入192.168.4.5主機時,無需驗證口令即可登入(因為私鑰口令為空):
1.[root@client ~]$ ssh [email protected] ????????????????????//免交互直接登入
2.Last login: Thu Aug 15 10:48:09 2013 from 192.168.4.100
步驟四:確認密鑰驗證使用正常後,禁用口令驗證
1)調整sshd服務配置,將PasswordAuthentication設為no
1.[root@svr5 ~]# vim /etc/ssh/sshd_config
2... ..
3.PasswordAuthentication no ????????????????????????????//將此行yes改成no -
5.[root@svr5 ~]# systemctl restart sshd
4 案例4:SELinux安全防護
4.1 問題
本案例要求熟悉SELinux防護機制的開關及策略配置,完成以下任務:
1.將Linux服務器的SELinux設為enforcing強制模式
2.從/root目錄下移動一個包文件到FTP下載目錄,調整策略使其能夠被下載
3.在SELinux啟用狀態下,調整策略打開vsftpd服務的匿名上傳訪問
4.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:將Linux服務器的SELinux設為enforcing強制模式
1)固定配置:修改/etc/selinux/config文件
確認或修改SELINUX為enforcing模式:
1.[root@svr5 ~]# vim /etc/selinux/config
2.SELINUX=enforcing????????????????????????????????//設置SELinux為強制模式
3.SELINUXTYPE=targeted????????????????????????????//保護策略為保護主要的網絡服務安全
2)臨時配置:使用setenforce命令
查看當前SELinux狀態,如果是disabled則需要根據第1)步的配置重啟系統;如果是permissive則使用setenforce命令修改為enforcing即可:
1.[root@svr5 ~]# getenforce????????????????????????//查看當前狀態為警告模式
2.Permissive
3.[root@svr5 ~]# setenforce 1 ????????????????????//設置SELinux為強制模式
4.[root@svr5 ~]# getenforce????????????????????????//查看當前模式為強制模式
5.Enforcing
6.[root@svr5 ~]# setenforce 0 ????????????????????//設置SELinux為強制模式
7.[root@svr5 ~]# getenforce????????????????????????//查看當前模式為警告模式
8.Permissive
步驟二:在SELinux啟用狀態下,調整策略打開vsftpd服務的匿名上傳訪問
1)配置一個允許匿名上傳的vsftpd服務作為測試環境
1.[root@svr5 ~]# yum –y install vsftpd
2... ..
3.[root@svr5 ~]# vim /etc/vsftpd/vsftpd.conf
4.anonymous_enable=YES ????????????????????????????????//開啟匿名訪問
5.write_enable=YES
6.anon_upload_enable=YES ????????????????????????????//允許上傳文件
7.anon_mkdir_write_enable=YES ????????????????????????//允許上傳目錄
8.[root@svr5 ~]# systemctl start vsftpd????????????????//啟動服務 -
10.//默認Vsftpd共享目錄為/var/ftp/
步驟三:從/root目錄下移動2個包文件到FTP下載目錄,調整文件的安全上下文
1)建立兩個FTP下載用的測試文件
由root用戶創建兩個測試壓縮包,一個直接建立到/var/ftp/目錄下,另一個先在/root/下建立,然後移動至/var/ftp/目錄。
1.//測試文件1,直接在ftp目錄下創建文件
2.[root@svr5 ~]# tar –czf /var/ftp/log1.tar /var/log
3.[root@svr5 ~]# mv log1.tar /var/ftp/
4.[root@svr5 ~]# ls -lh /var/ftp/
5.-rw-r--r--. 1 root root 8M 8月 16 10:16 log1.tar
6.[root@svr5 ~]# ls -Z /var/ftp/
7.-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log1.tar -
9.//測試文件2,在/root下建立,然後移動至/var/ftp目錄
10.[root@svr5 ~]# tar –czf log2.tar /var/log
11.[root@svr5 ~]# mv log2.tar /var/ftp/
12.[root@svr5 ~]# ls -lh /var/ftp/
13.-rw-r--r--. 1 root root 8M 8月 16 10:16 log2.tar
14.[root@svr5 ~]# ls -lZ /var/ftp/
15.-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0 log2.tar
3)通過FTP方式測試下載
使用wget命令分別下載這兩個包文件,第二個包將會下載失敗(看不到文件)。
1.[root@svr5 ~]# wget ftp://192.168.4.5/log1.tar????????????//下載第一個文件,成功 -
3.[root@svr5 ~]# wget ftp://192.168.4.5/log2.tar????????????//下載第二個文件,失敗
4)檢查該測試包的安全上下文,正確調整後再次下載第二個包成功。
文件已經存放到共享目錄下,但客戶端無法訪問下載,是因為被SELinux攔截了!
1.[root@svr5 ~]# ls -lZ /var/ftp/
2.-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log1.tar
3.-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0 log2.tar -
5.[root@svr5 ~]# chcon -t public_content_t /var/ftp/d2.tar.gz
6.[root@svr5 ~]# ls -Z /var/ftp/lo2.tar
7.-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log2.tar -
9.[root@svr5 ~]# wget ftp://192.168.4.5/log2.tar????????????//再次下載,成功
註意:上例中的chcon操作可替換為(效果相同):
#restorecon /var/ftp/d2.tar.gz
或者
#chcon --reference=/var/ftp/d1.tar.gz /var/ftp/d2.tar.gz
2)啟用SELinux時驗證FTP上傳訪問
在targeted策略的布爾值設置中,默認禁止FTP匿名寫入和完全訪問:
1.[root@client ~]# ls > test.txt
2.[root@client ~]# ftp 192.168.4.5
3... ..
4.Name (192.168.4.7:root): ftp????????????????????//使用匿名賬戶ftp登陸
5.331 Please specify the password.
6.Password:????????????????????????????????????????//密碼為空(回車即可) -
8.ftp> cd pub????????????????????????????????????????????????//切換共享目錄
9.250 Directory successfully changed.
10.ftp> put test.txt ????????????????????????????????????????//嘗試上傳測試文件
11.local: test.txt remote: test.txt
12.227 Entering Passive Mode (192,168,4,5,121,146).
13.553 Could not create file. ????????????????????????????????//上傳失敗
14.ftp> quit
15.221 Goodbye.
3)調整與FTP相關的SELinux布爾值,開放上傳寫入權限
檢查與allow_ftpd相關的SELinux布爾值,如果是off,則將其修改為on:
1.[root@svr5 ~]# getsebool -a |grep allow_ftpd ????????????????//查看布爾值
2.allow_ftpd_anon_write --> off
3.allow_ftpd_full_access --> off
4... .
5.[root@svr5 ~]# setsebool -P allow_ftpd_anon_write=1 ????????//設置布爾值
6.[root@svr5 ~]# setsebool -P allow_ftpd_full_access=1
7.[root@svr5 ~]# getsebool -a |grep allow_ftpd ????????????????//確認修改結果
8.allow_ftpd_anon_write --> on
9.allow_ftpd_full_access --> on
4)再次訪問vsftpd服務,經測試發現匿名上傳已經可用
1.[root@client ~]# ftp 192.168.4.5
2... ..
3.Name (192.168.4.5:root): ftp
4.331 Please specify the password.
5.Password: -
7.ftp> cd pub
8.250 Directory successfully changed.
9.ftp> put test.txt ????????????????????????????????????????//嘗試上傳測試文件
10.226 Transfer complete. ????????????????????????????????????//上傳成功
11.237 bytes sent in 6.3e-05 secs (3761.90 Kbytes/sec)
12.ftp> quit
13.221 Goodbye
Linux基本防護措施