系統安全應用
- 一、賬號安全控制
- 1.1、賬號安全基本措施
- 1.1.1、系統帳號清理
- 1.1.2、密碼安全控制
- 1.1.3、命令歷史限制
- 1.1.4、終端自動注銷
- 二、系統引導和登錄控制
- 2.1、使用su命令切換用戶
- 2.1.1、用途和用法
- 2.1.2、限制使用su命令的用戶
- 三、Liunx中的PAM安全認證
- 3.1、su命令的安全隱患
- 3.2、PAM認證原理
- 3.3、PAM認證的構成
- 3.4、PAM安全認證流程
- 四 、使用sudo機制提升權限
- 4.1、su命令的缺點
- 4.2、sudo命令的用途及用法
- 4.3、配置sudo授權
- 4.4、查看sudo操作記錄
- 五、開關機安全控制
- 5.1、調整BIOS引導設定
- 5.2、GRUB限制
- 5.3、終端登錄安全控制
- 5.3.1、限制root只在安全終端登錄
- 5.3.2、禁止普通用戶登錄
- 六、系統弱口令檢測
- 6.1、Joth the Ripper,簡稱為JR
- 6.2、安裝JR工具
- 6.3、檢測弱口令賬號
- 6.4、密碼檔案的暴力破解
- 6.5、弱口令自定義字典破解實驗
- 七、網路埠掃描
- 7.1、NMAP的掃描
- 7.2、NMAP的掃描
- 7.3、埠掃描實驗
一、賬號安全控制
1.1、賬號安全基本措施
1.1.1、系統帳號清理
- 將非登錄用戶的Shell設為/sbin/nologin
- 鎖定長期不使用的賬號
- 洗掉無用的賬號
- 鎖定賬號檔案passwd、shadow
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow
[root@localhost ~]# Isattr /etc/passwd /etc/shadow
-------- /etc/passwd
-------- /etc/shadow
①更改用戶登錄權限操作
1、進入vi /etc/passwd

2、在root用戶選更改tx用戶的登錄權限 改成/sbin/nologin

3、然后tx用戶退出登錄在登陸時,已經登陸不上了
②用passwd -l 鎖定賬戶 ,登陸不上;passwd -u 解鎖賬戶

用usermod -L 鎖定賬戶 ;usermod -U 解鎖賬戶

③洗掉無用賬戶
useradd先創建一個模擬的無用賬戶;
userdel -r 洗掉無用賬戶

④鎖定檔案
1、chattr +i /etc/passwd /etc/shadow
在vi編輯器里只能讀,不能寫

2、lsattr /etc/passwd /etc/shadow 查看檔案狀態

3、在vi編輯器里面操作是否可以讀寫,只讀不寫

解鎖檔案
1、chattr -i /etc/passwd /etc/shadow
在vi編輯器里可讀可寫了

2、lsattr /etc/passwd /etc/shadow 查看檔案狀態

1.1.2、密碼安全控制
- 設定密碼有效期
- 要求用戶下次登錄時修改密碼
[root@localhost ~]# vi /etc/login.defs 適用于新建用戶
PASS MAX DAYS 30
[root@localhost ~]# chage -M 30 lisi ## 適用于已有用戶
[root@localhost ~]# chage -d 0 zhangsan ##強制在下次登錄時更改密碼
①新建用戶更改密碼有效期:
1、進入 vi /etc/login.defs

2、找到下面這句話 ,把數值改為30(就是有效期為30天)

3、新建tx1用戶 ,給tx1設定密碼

4、這時候 vi /etc/shadow 查看新建的 tx1 用戶的密碼有效期已經改好了

②已有用戶更改密碼有效期:
1、更改已有用戶 tx 的密碼有效期為30天

2、進入vi /etc/shadow 查看

3、發現已經改為 ,密碼有效期改為30天了

③強制指定用戶在下次登錄時更改密碼
1、這句代碼的意思就是 強制指定tx用戶下次登陸時更改密碼

2、tx用戶原來的更改密碼有效期

3、tx用戶改完之后的更改密碼有效期
大家注意看,后面的時間引數是不一樣的!!!

4、重新登陸的時候,按照圖片輸入要輸入的密碼就可以了

然后在回車重新登錄的時候輸入剛才的密碼
下次登錄改密碼的時候要把密碼弄復雜點
我弄的是 Tx!@#¥%……&W*
如果要取消強制登陸,直接進入vi編輯器直接更改成原來的引數
1.1.3、命令歷史限制
- 減少記錄的命令條數
- 注銷時自動清空命令歷史
修改歷史命令數量的限制
方法一:
1、進入vi /etc/profile 里面直接改里面的引數,從而達到修改歷史命令數量的限制

2、按 shift+:然后輸入 /HIST 然后回車,會跳到這個地方,然后手動修改一下引數,修改成70條

3、重繪一下

4、重啟一下

5、然后查看一下歷史命令,修改成功

方法二:
1、進入vi /etc/profile 里面

2、在最后一行直接輸入這句話,這次我們改成最多只能60條

3、這條命令重繪一下

4、重啟虛擬機

5、查看歷史命令,只有60條命令,試驗成功

1.1.4、終端自動注銷
- 閑置600秒后自動注銷
注意,注銷的時候必須是閑置的時候!!!不能動
[root@localhost ~]# vi /etc/profile
HISTSIZE=200
[root@localhost ~]# vi ~/.bash_ logout
history -C
clear
①針對所有用戶的注銷
1、進入vi編輯器后,在最后一行輸入這句話,100秒后注銷

2、退出編輯器,然后重繪下

3、賬戶注銷了

②針對單個用戶修改注銷時間

1、修改時間為20S

2、重繪一下

3、賬戶注銷了

二、系統引導和登錄控制
2.1、使用su命令切換用戶
2.1.1、用途和用法
■用途及用法
- 用途: Substitute User, 切換用戶
- 格式: su - 目標用戶
■密碼驗證
- root→任意用戶,不驗證密碼
- 普通用戶>其他用戶,驗證目標用戶的密碼
2.1.2、限制使用su命令的用戶
■限制使用su命令的用戶
- 將允許使用su命令的用戶加入wheel組,在wheel組內的用戶才可以使用su切換用戶命令
- 啟用pam_wheel認證模塊
■查看su操作記錄
- 安全日志檔案:/var/log/secure
限制使用su命令的用戶實驗
1、把 tx 用戶加入 wheel 組

2、查看是否把 tx 用戶放進 wheel 組

3、tx 用戶在 wheel 組

4、進入 vi /etc/pam.d/su

5、把框出來的行前面的#號刪掉

6、進入 vi /etc/login.defs

7、在末行輸入這句話

8、查看一下 cat /etc/group ,tx 用戶 在 wheel 組

9、這是我們登錄 tx 用戶然后切換為 root用戶可以切換,因為已經把 tx 用戶放入 wheel組了

10、但是 tx1 用戶卻不能切換為 root 用戶,因為 tx1 用戶沒有放進 wheel 組

三、Liunx中的PAM安全認證
3.1、su命令的安全隱患
- su命令的安全隱患
默認情況下,任何用戶都允許使用su命令,從而惡意用戶有機會反復嘗試其他用戶(如root)的登錄密碼,帶來安全風險
為了加強su命令的使用控制,可以借助于PAM認證模塊,只允許極個別用戶使用su命令進行切換
PAM(Pluggable Authentication Modules)可拔插式認證模塊,它是一種高效而且靈活便利的用戶級別的認證方式,也是當前Linux服務器普遍使用的認證方式
3.2、PAM認證原理
- PAM認證一般遵循的順序:Service(服務)>PAM(組態檔)>pam_*.so
PAM認證首先要確定哪一項服務,然后加載相應的PAM的組態檔(位于/etc/pam.d下),最后呼叫認證檔案(位于/lib/security下)進行安全認證
用戶訪問服務器的時候,服務器的某一個服務程式把用戶的請求發送到PAM模塊進行認證
不同的應用程式所對應的PAM模塊也是不同的
.so 為結尾的就是模塊檔案
3.3、PAM認證的構成
- 查看某個程式是否支持PAM認證,可以用ls命令進行查看/etc/pam.d,然后管道符號檢索想要查詢的程式;例如查看su是否支持PAM模塊認證
ls /etc/pam.d | grep su
查看su的PAM組態檔:cat /etc/pam.d/su
每一行都是獨立的認證程序
每一行可以區分為三個欄位
認證型別
控制型別
PAM模塊及其引數
3.4、PAM安全認證流程
- 控制型別也可以乘坐Control Flags,用于PAM驗證型別的回傳結果
1.required驗證失敗時仍然繼續,但回傳Fail
2.requisite驗證失敗則立即結束整個驗證程序,回傳fail(最重要的一步)
3.sufficient驗證成功則立即回傳,不再繼續,否則忽略結果并繼續
4.optional不用于驗證,只顯示資訊(通常用session型別)

四 、使用sudo機制提升權限
4.1、su命令的缺點
- 默認情況下,任何用戶都允許使用su命令,從而惡意用戶有機會反復嘗試其他用戶(如root)的登錄密碼,帶來安全風險
4.2、sudo命令的用途及用法
- 用途:以其他用戶身份(如root)執行授權的命令
- 用法:sudo 授權命令
4.3、配置sudo授權
- visudo命令 或者 vim /etc/sudoers
- 記錄格式: 用戶 主機名串列 = 命令程式串列
root@localhost log]# visudo
......
用戶 主機名串列 = 命令程式串列
%wheel ALL = NOPASSWD:ALL
jerry localhost = /sbin/ifconfig
syrianer localhost = /sbin/*,!/sbin/ifconfig,!/sbin/route
'可以使用通配符號*和取反符號!'
Cmnd_Alias PKGTOOLS = /bin/rpm,/usr/bin/yum
mike localhost = PKGTOOLS
4.4、查看sudo操作記錄
■查看sudo操作記錄
- 需啟用Defaults logfile 配置
- 默認日志檔案: /var/log/sudo
■查詢授權的sudo操作
- sudo -|
使用sudo機制提升權限實驗
1、先在tx用戶上測驗,先輸入(ifconfig ens33:1 192.168.10.10)創建網卡;
發現是不允許操作的,因為沒有權限

2、需要在root用戶visudo 或者/etc/sudoers都可以進組態檔添加提權用戶;

3、組態檔末行加入你想要提權的用戶;(KGC是主機名)

tx KGC=/sbin/*,!/sbin/reboot (tx用戶在KGC主機下執行/sbin下所有命令,除了reboot)
4、再去tx用戶上再去(sudo ifconfig ens33:1 192.168.10.10)創建網卡那條命令,發現是可以做操作的權限已經有了

5、ifconfig 查看一下是不是創建成功

五、開關機安全控制
5.1、調整BIOS引導設定
- 將第一引導設備設為當前系統所在硬碟
- 禁止從其他設備(光碟、U盤、網路)引導系統
- 將安全級別設為isetup,并設定管理員密碼
- 備注:禁止從其他設備引導系統操作,感覺若是出現忘記root密碼就可能無法從光驅去修改,所以還是謹慎操作
調整BIOS引導設定實操
虛擬機重啟之后,按F2進入BIOS

設定進入BIOS的密碼,設定完之后確認

設定開機就要輸入密碼


F10保存退出!

5.2、GRUB限制
- 使用grub2-mkpasswd-pbkdf2生成密鑰
- 修改/etc/grub.d/00_header檔案中,添加密碼記錄
- 生成新的grub.cfg組態檔
5.3、終端登錄安全控制
5.3.1、限制root只在安全終端登錄
■限制root只在安全終端登錄
- 安全終端配置: /etc/securetty
[root@localhost ~]# vi letc/securetty
......
#tty5 ## 禁止root用戶從終端tty5,tty6登錄
#tty6
限制root只在安全終端登錄實驗:
1、先在虛擬機終端里面 init 3切換字符界面,然后登陸進去

2、who 查看一下當前用戶登陸的終端

3、打開 vi /etc/securetty,在tty2前加上#號,然后wq保存退出

4、記住當前我們是在tty1終端里面,然后按ctrl+alt+F2切換成tty2終端,
進tty2終端后,正常輸入root用戶和密碼,應該是進不去的,
因為剛才我們已經把終端tty2給關閉了,
意思就是禁止 root 用戶從終端tty2進入

注意:如果我們此時在tty1終端,然后在進入vi /etc/securetty把tty1終端給關掉,是沒有用的,因為我們當時已經在tty1終端里面了,所以是沒有效果的,
ctrl+alt+F1—9 是切換終端用的(在字符界面使用)
5.3.2、禁止普通用戶登錄
■禁止普通用戶登錄
- 建立/etc/nologin檔案
- 洗掉nologin檔案或重啟后即恢復正常
[root@localhost ~]# touch /etc/nologin ## 禁止普通用戶登錄
[root@localhost ~]# rm -rf /etc/nologin ## 取消上述登錄限制
禁止普通用戶登錄實驗:
當服務器正在進行備份或除錯等維護作業時,可能不希望在有新的用戶登陸系統,這時候,只需要間的建立 /etc/nologin檔案即可,login程式會檢查 /etc/nologin 檔案是否存在,如果存再則拒絕普通用戶登錄系統(root用戶不受限制),這里我們做個實驗驗證一下,
1、先創建并進入touch /etc/nologin檔案里面

2、這時候我們在登錄普通用戶試驗一下看是否可以登錄成功

3、登陸失敗!
4、當我們在 vi /etc/nologin 里面輸入別的字符,當其他用戶(除root用戶)在登陸自己的用戶時就會顯示我們剛才在 vi /etc/nologin里面輸入的字符,我們這里驗證一下,
①我們先進入 vi /etc/nologin ,在里面輸入 Hello World,并 wq 保存退出


②當我們登錄 tx 用戶時,雖然登錄不上,但是顯示了剛才在 vi /etc/nologin里面輸入的字符 Hello World

取消登錄限制:
- rm -rf /etc/nologin 就是把這個檔案洗掉

- 洗掉 /etc/nologin 檔案之后,其他的用戶又可以登錄了

六、系統弱口令檢測
6.1、Joth the Ripper,簡稱為JR
- 款密碼分析工具,支持字典式的暴力破解
- 通過對shadow檔案的口令分析,可以檢測密碼強度
- 官方網站: http://www.openwall.com/john/

6.2、安裝JR工具
- 安裝方法 make clean系統型別
- 主程式檔案為john
6.3、檢測弱口令賬號
- 獲得Linux/Unix服務器的shadow檔案
- 執行john程式,將shadow檔案作為引數
6.4、密碼檔案的暴力破解
- 準備好密碼字典檔案,默認為password.lst
- 執行john程式,結合–wordlist=字典檔案
6.5、弱口令自定義字典破解實驗
1、把軟體包放入 /opt目錄里

2、進入 /opt目錄

3、用tar軟體包解壓這個壓縮包

4、進入 john-1.8.0/

5、ll 查看一下解壓過后軟體包的內容


6、回到上一層為了進入run/目錄

7、進入run/并查看下里面有這個檔案

8、把/etc/shadow復制到/root/shadow.lst(這時候沒有shadow.lst)

9、進入 /root目錄查看下shadow.lst檔案是否創建成功

10、創建passwd.lst檔案并打開,在里面輸入root的密碼是Tx123,然后隨便輸入幾個其他的密碼
11、進入 /opt目錄看下檔案是否依然還在

12、輸入如下代碼,就可以查出root用戶的密碼和tx用戶的密碼,
注意!!!
輸入 vi john.opt會查看剛才root和tx用戶密碼的密文
這時候退出來在破解密碼,就不能在進行破解了,提示已經破解過了

弱口令窮舉破解實驗:
1、進入之后,按 100dd,就會把下面的密文密碼一次性清除了
2、這是已經把密文密碼清除了

3、輸入如下代碼就可以進行暴力破解了

七、網路埠掃描
7.1、NMAP的掃描
- nmap [掃描型別] [選項] <掃描目標…
7.2、NMAP的掃描
- -sS、-sT、 -sF、 -sU、-sP、-PO
7.3、埠掃描實驗
1、進行掛載
2、安裝nmap掃描工具
3、查看本機開了多少埠(127.0.0.1是本機的回環口)

4、掃描本機的UDP埠

5、查看掃描20.0.0.0/24欄位的FTP服務(21是FTP埠號)
6、查看掃描20.0.0.0/24段存活哪些主機(能ping通);-sP類似于ping檢測,快速判斷目標主機是否存活,不做其他掃描

7、查看20.0.0.0—200主機是否開啟檔案共享

今天博客的內容就到此結束啦,內容有點多,希望大家可以仔細觀看,寫的非常詳細了,真是嘔心瀝血啊!希望大家可以給我這個新手來個一鍵三連!感謝各位鐵汁了!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/45844.html
標籤:其他
上一篇:spark環境搭好,spark-shell可以用,spark-submit提交例子程式報錯
下一篇:虛擬機開啟部分報錯解決方法
