1. 程式人生 > >Linux基本防護措施

Linux基本防護措施

也會 gate pair creat 白名單 ... TP lease dom

1.案例1: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,以防止其內容被無意中修改
1.2 步驟
實現此案例需要按照如下步驟進行。
步驟一:修改用戶zhangsan的賬戶屬性,設置為2019-12-31日失效(禁止登錄)
1)正常情況下,未過期的賬號可以正常登錄,使用chage可以修改賬戶有效期。
1.chage命令的語法格式:
2.chage –l????賬戶名稱????????????????????????????????//查看賬戶信息
3.chage –E 時間 賬戶名稱????????????????????????????//修改賬戶有效期
2)失效的用戶將無法登錄
使用chage命令將用戶zhangsan的賬戶設為當前已失效(比如已經過去的某個時間):
1.[root@svr5 ~]# useradd zhangsan
2.[root@svr5 ~]# chage -E 2015-05-15 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
4.Password expires ????????????????????: never
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 可以在該主機上運行以下命令:

  1. (ALL) /usr/bin/systemctl
  2. 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
    ,

  3. !/usr/sbin/user root
    2)切換為useradm用戶,驗證sudo權限
    可以通過sudo方式來添加/刪除/修改普通用戶:
    1.[root@svr5 ~]# su – useradm
    2.[useradm@svr5 ~]$ sudo -l
    3... ..
    4.用戶useradm可以在該主機上運行以下命令:
  4. (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 ;
  5. 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: 操作成功
  6. 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:

  7. .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
  8. 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????????????????//啟動服務

  9. 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

  10. 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????????????//下載第一個文件,成功

  11. 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

  12. 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

  13. 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:????????????????????????????????????????//密碼為空(回車即可)

  14. 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:

  15. 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基本防護措施