Linux--系統安全及應用(賬號安全控制(賬戶安全基本措施,用戶切換與提權,PAM安全認證,sudo機制提升權限,實驗),系統引導和登陸控制,弱口控制,端口掃描)
一:賬戶安全控制
1.1:賬號安全基本措施
1.1.1:系統賬號清理
-
將非登錄用戶的Shell設爲/sbin/nologin
-
鎖定長期不使用的賬號
-
刪除無用的賬號
-
鎖定賬號文件passwd、shadow
在Linux系統中,除了用戶手動創建的各種賬號之外,還包括隨系統或程序安裝過程而產生的其他大量賬號。
除了root之外,其他大量賬號只是用來維護系統運作,啓動或保持服務進程,一般是不允許登錄的,也稱爲非登錄用戶。
常見的非登錄用戶包括bin,daemon,adm,lp,mail,nobody,apache,mysql,dbus,ftp,gdm,haldaemon等。
爲了確保系統安全,這些用戶的登錄shell通常是/sbin/nologin,表示禁止終端登錄,應確保不被人爲改動。
[root@localhost ~]# grep "/sbin/nologin$" /etc/passwd '#查看非登錄用戶'
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
...省略部分內容
[root@localhost ~]# grep "bash$" /etc/passwd '查看當前可以登錄的用戶'
-
各種非登錄用戶中,還有相當一部分是很少用到的,如news. uucp、 games、gopher.這些用戶可以視爲冗餘賬號,直接刪除即可。
-
除此之外,還有一些隨應用程序安裝的用戶賬號,若程序卸載以後未能自動刪除,則需要管理員手動進行清理。
-
對於Limux服務器中長期不用的用戶賬號,若無法確定是否應該刪除,可以暫時將其鎖定。
-
例如,若要鎖定、解鎖名爲zhangsan的用戶賬號,可以執行以下操作(passwd、uisermod命令都可用來鎖定、解鎖賬號)。
[root@localhost ~]# passwd -l zhangsan (或者 usermod -L zhangsan ) '#鎖定用戶zahngsan'
鎖定用戶 zhangsan 的密碼 。
passwd: 操作成功
[root@localhost ~]# usermod -U zahngsan (或者 passwd -u zahngsan) '#解鎖用戶zhangsan'
[root@localhost ~]# passwd -S zahngsan '#查看賬號狀態'
lisi PS 2019-11-14 0 99999 7 -1 (密碼已設置,使用 SHA512 算法。)
- 如果服務器中的用戶賬號已經固定,不在進行更改,還可以採取鎖定賬號配置文件的方法使用chattr命令,分別結合“+i”“-i”選項來鎖定,解鎖文件,使用lsattr命令可以查看文件鎖定情況
chattr命令基本格式
chattr +i [目標文件] '鎖定目標文件'
chattr -i [目標文件] '解鎖目標文件'
lsattr [目標文件] '查看目標文件'
例如
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow '鎖定目標文件'
[root@localhost ~]# lsattr /etc/passwd /etc/shadow '查看目標文件是否被鎖定'
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow '解鎖目標文件'
[root@localhost ~]# lsattr /etc/passwd /etc/shadow '查看目標文件是否解鎖'
---------------- /etc/passwd
---------------- /etc/shadow
- 在賬號文件被鎖定的情況下,其內容將不允許變更,因此無法添加,刪除賬號,也不能更改用戶的密碼,登錄shell,宿主目錄等屬性信息
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow ‘鎖定目標文件’
[root@localhost ~]# id lisi ‘查看是否存在lisi用戶’
id: lisi: no such user
[root@localhost ~]# useradd lisi ‘嘗試添加lisi用戶’
useradd:cannot open /etc/passwd ‘提示無法添加,文件已被鎖定’
1.1.2:密碼安全控制
-
設置密碼有效期
-
要求用戶下次登錄時修改密碼
在不安全的網絡環境中,爲了降低密碼被猜出或者被暴力破解的風險,用戶應養成定期修改密碼的習慣,避免長期使用同一個密碼。
管理員可以在服務器端限制用戶密碼的最大有效天數
對於密碼已經過期的用戶,登錄時將被要求重新設置密碼,否則拒絕登錄
chage 命令用於設置密碼的時限
例如:執行以下操作可將密碼的有效期設爲30天(chage命令用於設置密碼時限)
[root@localhost ~]# vi /etc/login.defs '對於未創建的用戶,使用此命令修改配置文件'
PASS_MAX_DAYS 30 "見下圖"
[root@localhost ~]# chage -M 30 lisi '對於已創建的用戶,用這條命令'
在某些情況下會要求用戶初次登錄的時候必須自設密碼,根據安全規劃統一要求所有用戶更新密碼等,可以由管理員執行強行策略,以便用戶在下次登錄時必須修改密碼。
例如,執行以下操作可強制要求用戶zhangsan下次登錄時重設密碼
例如,強制要求用戶zhangsan下次登錄時重設密碼 ‘(重設的密碼有密碼複雜性要求,例如不可是連續的數字,連續的字母等)’
[root@localhost ~]# chage -d 0 zhangsan
[lisi@localhost root]$ su - zhangsan
密碼:
您需要立即更改密碼(root 強制)
爲 lisi 更改 STRESS 密碼。
(當前)UNIX 密碼:
新的 密碼:
無效的密碼: 密碼與原來的太相似
新的 密碼:
無效的密碼: 密碼未通過字典檢查 - 過於簡單化/系統化
新的 密碼:
無效的密碼: 密碼未通過字典檢查 - 它基於字典單詞
su: 已經超出服務重試的最多次數
'重設密碼有很多限制,比較麻煩'
1.1.3:命令歷史,自動註銷
- 命令歷史限制
Bash終端環境中,歷史命令的記錄條數由變量HISTSIZE控制,默認爲1000條。通過修改/etc/profile文件中的HISTSIZE變量值,可以影響系統中的所有用戶。
例如,可以設置最多200條歷史命令。
[root@localhost ~]# vi /etc/profile '對於未創建的用戶,使用此命令修改配置文件'
...省略部分內容
將其中的HISTSIZE=1000,修改爲HISTSIZE=200
[root@localhost ~]# export HISTSIZE=200 '該命令適用於當前用戶,及時成效'
- 每當編輯完/etc/profile文件後,都需要使用命令source /etc/profile或者換重啓使之生效
除此之外,註銷時自動清空命令歷史:修改用戶宿主目錄中的~/.bash_logout文件,添加清空歷史命令的操作語句。即:當用戶註銷(退出已登錄的bash環境)時,所記錄的歷史命令將自動清空。
[root@localhost ~]# vi .bash_logout
history -c
clear
[root@localhost ~]# history
[root@localhost ~]# source .bash_logout
或者
使用vi /etc/profile,將其中的history值改爲0
但是將history值改爲0後,↑無法顯示剛剛輸入的命令。
- 終端自動註銷
Bash終端環境中,可以設置一個閒置超時時間,當超過指定時間沒有任何輸入時即自動註銷終端,這樣可以有效避免當管理員不在時其他人員對服務器的誤操作風險。閒置時間有變量TMOUT來控制,默認單位爲秒
[root@localhost ~]# vi /etc/profile '適用於新登錄的用戶'
...中間省略內容
export TMOUT=20 '閒置時間設置爲20s'
[root@localhost ~]# source /etc/profile '使設置生效'
[root@localhost ~]# export TMOUT=20 '適用於當前用戶'
1.2:用戶切換與提權
大多數Linux服務器並不建議用戶直接以root用戶進行登錄。一方面可以大大減少因誤操作而導致的破壞,另一方面也降低了特權密碼在不安全的網絡中被泄露的風險。鑑於這些原因,需要爲普通用戶提供一種身份切換或權限提升機制,以便在必要的時候執行管理任務。
linux系統爲我們提供了su,sudo兩種命令,其中su命令主要用來切換用戶,而sudo命令用來替身執行權限。
1.2.1:su命令-切換用戶
- 使用su命令,可以切換爲指定的另一個用戶,從而具有該用戶的所有權限
切換時需要對目標用戶的密碼進行驗證(從root用戶切換爲其他用戶不需要)
su命令基本格式(Substitute User,切換用戶)
su - 目標用戶
[root@localhost ~]# su - lisi '從root切換到其他用戶不需要輸入密碼'
[lisi@localhost ~]$ su - root '從其他用戶切換到root用戶需要輸入密碼'
密碼: '輸入用戶root的密碼'
上一次登錄:四 11月 14 16:18:30 CST 2019從 192.168.197.1pts/0 上
[root@localhost ~]# '驗證成功後獲得root權限'
上述操作中,“-”等同於“–login”“-l”,表示切換後進入目標用戶的登錄shell環境。若缺少此選項則僅切換身份,不切換用戶環境
- 限制使用su命令的用戶
默認情況下,任何用戶都允許使用su命令,從而有機會反覆嘗試其他用戶(如root)的登錄密碼,帶來安全風險。爲了加強su命令的使用控制,可以藉助於wheel認證模塊,只允許極個別用戶使用su命令進行切換。實現過程如下:將授權使用su命令的用戶添加到wheel組,修改/te/pam./su認證配置以啓用pam wheel認證。
[root@localhost ~]# id lisi '查看lisi用戶信息'
uid=1001(lisi) gid=1001(lisi) 組=1001(lisi) '發現不在wheel組中'
[root@localhost ~]# gpasswd -a lisi wheel '將lisi用戶添加到wheel組中'
正在將用戶“lisi”加入到“wheel”組中
[root@localhost ~]# grep wheel /etc/group '確認wheel組成員'
或者
[root@localhost ~]# id lisi
uid=1001(lisi) gid=1001(lisi) 組=1001(lisi),10(wheel) '添加成功'
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# id zhangsan
uid=1002(zhangsan) gid=1002(zhangsan) 組=1002(zhangsan)
1.2.2:啓用pam_wheel認證模塊
啓用pam_wheel認證以後,未加入到wheel組內的其他用戶將無法使用su命令
嘗試進行切換時將會按照“拒絕權限”來處理,從而將切換用戶的權限控制在最小範圍內
/pam.d 服務模塊目錄
使用su命令切換用戶的操作將會記錄到安全日誌/var/log/secure文件中,可以根據需要進行查看
[root@localhost ~]# su - zhangsan '之前添加了zhangsan用戶,但並未加入到wheel組中'
上一次登錄:四 11月 14 16:39:40 CST 2019pts/0 上
[zhangsan@localhost ~]$ su - lisi '無法使用su命令'
密碼:
su: 拒絕權限
[zhangsan@localhost ~]$ su - lisi '無法使用su命令'
密碼:
su: 拒絕權限
[zhangsan@localhost ~]$ exit '返回root用戶'
登出
[root@localhost ~]# su - lisi 'root切換到lisi用戶不需要密碼'
上一次登錄:四 11月 14 16:39:17 CST 2019pts/0 上
[lisi@localhost ~]$ su - zhangsan 'lisi切換到zhangsan用戶'
密碼:
上一次登錄:四 11月 14 16:41:57 CST 2019pts/0 上
[zhangsan@localhost ~]$ exit '返回lisi'
登出
[lisi@localhost ~]$ su - root '切換爲root'
密碼:
上一次登錄:四 11月 14 16:41:35 CST 2019pts/0 上
[root@localhost ~]#
1.3:linux中的PAM安全認證
-
PAM (Pluggable Authentication Modules),是Linux系統可插拔認證模塊。
-
Linux系統使用su命令存在安全隱患,默認情況下,任何用戶都允許使用su命令,從而有機會反覆嘗試其他用戶(如root)的登錄密碼,帶來安全風險。
-
爲了加強su命令的使用控制,可以藉助於PAM認證模塊,只允許極個別用戶使用su命令進行切換。
1.3.1:PAM及其作用
(1)PAM是一種高效而且靈活便利的用戶級別認證方式,它也是當前Linux服務器普遍使用的認證方式。
(2) PAM提供了對所有服務進行認證的中央機制,適用於login,遠程登錄(telnet,rlogin,fsh,fp),su 等應用程序。
(3)系統管理員通過PAM配置文件來制定不同應用程序的不同認證策略。
1.3.2:PAM認證原理
-
PAM(Pluggable Authentication Modules)可插拔式認證模塊,它是一種高效而且靈活便利的用戶級別的認證方式,它也是當前Linux服務器普遍使用的認證方式
-
PAM認證一般遵循的順序:Service(服務)→PAM(配置文件)→pam_*.so(.so 後綴代表模塊文件)
-
PAM認證首先要確定哪一項服務,然後加載相應的PAM的配置文件(位於/etc/pam.d下),最後調用認證文件(位於/lib/security下)進行安全認證
-
用戶訪問服務器的時候,服務器的某一個服務程序把用戶的不同請求發送到PAM模塊進行認證
-
不同的應用程序所對應的PAM模塊也是不同的
1.3.3:PAM認證的構成
- 查看某個程序是否支持PAM認證,可以用ls命令進行查看,例如查看su是否支持PAM模塊認證
[root@localhost ~]# ls /etc/pam.d | grep su
- 查看su的PAM配置文件:cat /etc/pam.d/su
每一行都是一個獨立的認證過程
每一行可以區分爲三個字段(認證類型,控制類型,PAM模塊及其參數)
1.3.4:PAM認證類型
(1)認證管理(authentication management)
接受用戶名和密碼,進而對該用戶的密碼進行認證。
(2)賬戶管理( account management)
檢查賬戶是否被允許登錄系統,賬號是否已經過期,賬號的登錄是否有時間段的限制等。
(3)密碼管理(password management)
主要是用來修改用戶的密碼。
(4)會話管理(session management)
主要是提供對會話的管理和記賬。
1.3.5:PAM安全認證流程
- 控制類型也可以稱作Control Flags,用於PAM驗證類型的返回結果
1.required驗證失敗時仍然繼續,但返回Fail
2.requisite驗證失敗則立即結束整個驗證過程,返回Fail
3.sufficient驗證成功則立即返回,不在繼續,否則忽略結果並繼續
4.optional不用於驗證,只顯示信息(通常用於session(會話)類型)
1.4:使用sudo機制提升權限
1.4.1:su命令的缺點
- 用過su命令可以非常方便的切換爲另一個用戶,但前提條件是必須知道目標用戶的登錄密碼
- 對於生產環境中的Linux服務器,每多一個人知道特權密碼,其安全風險也就增加一分
1.4.2:sudo命令的用途及用法
-
用途:以其他用戶身份(如root)執行授權的命令
-
用法:sudo 授權命令
1.4.3:配置sudo授權
- visudo 或者 vi /etc/sudoers :sudo機制的配置文件爲/etc/sudoers,文件的默認權限是440,需要使用專門的visudo工具進行編輯。若使用vi編輯,保存時必須執行“:w!”命令強制操作,否則系統將提示爲只讀文件而拒絕保存
配置文件/etc/sudoers中,授權記錄的基本配置格式
用戶 主機名列表 = 命令程序列表
命令程序列表是絕對列表
例如:
[root@localhost ~]# visudo
zhangsan localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route '表示張三用戶在本地主機擁有以下權限 (/sbin下的所有權限,除了/sbin/ifconfig,除了/sbin/route權限)'
*:通配符號
!:取反符號
%:代表組
1.5:實驗
1.5.1:sudo實驗
- 我們現在用tom和lisi這兩個用戶來做修改ip地址的sudo實驗
[root@localhost ~]# id tom
uid=1002(tom) gid=1002(tom) 組=1002(tom)
[root@localhost ~]# id lisi
uid=1001(lisi) gid=1001(lisi) 組=1001(lisi),10(wheel)
'1.我們先用lisi用戶嘗試修改IP地址'
[root@localhost ~]# su - lisi '切換到lisi用戶'
[lisi@localhost ~]$ ifconfig '查看主機IP'
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.197.141 netmask 255.255.255.0 broadcast 192.168.197.2
...省略部分信息
[lisi@localhost ~]$ sudo ifconfig ens33 12.12.12.12 '使用sudo命令修改IP地址'
我們信任您已經從系統管理員那裏瞭解了日常注意事項。
總結起來無外乎這三點:
#1) 尊重別人的隱私。
#2) 輸入前要先考慮(後果和風險)。
#3) 權力越大,責任越大。
[sudo] lisi 的密碼:
[lisi@localhost ~]$ ifconfig '發現修改成功'
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 12.12.12.12 netmask 255.0.0.0 broadcast 12.255.255.255
...此處省略部分信息
'2.我們用tom用戶嘗試修改IP地址'
[root@localhost ~]# su - tom
[tom@localhost ~]$ id tom
uid=1002(tom) gid=1002(tom) 組=1002(tom)
[tom@localhost ~]$ sudo ifconfig ens33 13.13.13.13
我們信任您已經從系統管理員那裏瞭解了日常注意事項。
總結起來無外乎這三點:
#1) 尊重別人的隱私。
#2) 輸入前要先考慮(後果和風險)。
#3) 權力越大,責任越大。
[sudo] tom 的密碼:
tom 不在 sudoers 文件中。此事將被報告。 '我們發現tom用戶無法修改IP地址'
總結
[root@localhost ~]# id tom
uid=1002(tom) gid=1002(tom) 組=1002(tom)
[root@localhost ~]# id lisi
uid=1001(lisi) gid=1001(lisi) 組=1001(lisi),10(wheel)
'我們發現lisi用戶在wheel組中,而tom用戶不在'
[root@localhost ~]# visudo '或者使用vi /etc/sudoers 命令進入sudo配置文件'
...此處省略部分信息
root ALL=(ALL) ALL '發現root用戶擁有所有權限'
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL '發現wheel組中的用戶也擁有所有權限'
...此處省略部分信息
'因此,在wheel組中的lisi用戶擁有修改IP地址的權限'
' 不在wheel組中的tom用戶沒有權限修改IP地址'
'實現沒有權限的wnagwu用戶修改IP地址的方法'
'1.將tom用戶添加到wheel組中(方法簡單,不贅述)'
'2.在sudo配置文件中給tom用戶提權'
第二種方法步驟
[root@localhost ~]# which ifconfig '查詢ifconfig命令所在位置'
/usr/sbin/ifconfig
[root@localhost ~]# visudo '修改sudo配置文件,將wngwu用戶的ifconfig權限添加進去'
將這條命令添加進去
tom localhost = /sbin/ifconfig '用戶wngwu的本地主機添加 /sbin/ifconfig 權限'
[root@localhost ~]# su - tom '切換到tom用戶'
上一次登錄:四 11月 14 19:11:33 CST 2019pts/1 上
[tom@localhost ~]$ sudo ifconfig ens33 33.33.33.33 '修改ens33網卡IP地址'
[sudo] tom 的密碼:
[tom@localhost ~]$ ifconfig '修改成功'
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 33.33.33.33 netmask 255.0.0.0 broadcast 33.255.255.255
'實驗成功'
1.5.2:查看sudo操作記錄
查看sudo操作記錄
需啓用Defaults logfile 配置
默認日誌文件:/var/log/sudo
[root@localhost ~]# visudo 'vi sudo配置文件'
在配置文件中添加
Defaults logfile = "/var/log/sudo" '將之添加至配置文件中'
[root@localhost ~]# su - tom '切換tom用戶'
上一次登錄:四 11月 14 19:34:45 CST 2019pts/1 上
[tom@localhost ~]$ sudo ifconfig ens33 22.22.22.22 '做一個操作,看日誌文件是否會記錄下來'
[sudo] tom 的密碼:
[tom@localhost ~]$ exit '因爲tom用戶沒有權限查看,所以我們用root用戶查看日誌文件'
登出
[root@localhost ~]# cat /var/log/sudo '查看日誌文件'
Nov 14 19:44:17 : tom : TTY=pts/1 ; PWD=/home/tom ; USER=root ;
COMMAND=/sbin/ifconfig ens33 22.22.22.22 '剛剛的操作已經顯示在其中'
1.5.3:僅允許用戶radmin使用su命令
- 先創建一個普通用戶radmin,設置密碼
2.將用戶radmin加入到wheel組中,並且查看wheel組中是否有radmin的用戶
3.修改/etc/pam.d/su 認證配置以啓用pam_wheel認證
- 加入wheel組的用戶radmin可以使用su命令,沒有加入的用戶不能使用
1.5.3:允許用戶zhangsan通過sudu方式管理員工賬號:
- 先創建普通用戶zhangsan,並設置密碼
- 把用戶zhangsan加入到wheel組中
- 給用戶zhangsan管理賬號的權限,visudo
4. 用戶zhangsan有了可以管理賬戶的權力
1.5.4:允許用戶lisi通過sudo方式執行特權命令:
1.創建用戶lisi,並將其加入到wheel組中
2.允許lisi用戶可以執行特權命令,visudo
3.切換到lisi用戶中,使用sudo -l命令查看自己的sudo配置
二:系統引導和登錄控制
在互聯網環境中,大部分服務器是通過遠程登陸的方式來進行管理的,而本地引導和終端登陸過程往往容易被忽視,從而留下安全隱患。
2.1:開關機安全控制
對於服務器主機,其物理環境的安全防護是非常重要的,不僅要保持機箱完好、機櫃鎖閉,還要嚴格控制機房的人 員進出、硬件設備的現場接觸等過程。在開關機安全控制方面,除了要做好物理安全防護以外,還要做好系統本身的一些安全措施 。
2.1.1:調整BIOS引導設置
- 將第一引導設備設爲當前系統所在硬盤
- 禁止從其他設備(光盤,U盤,網絡)引導系統
- 將安全級別設爲setup,並設置管理員密碼
2.1.2:禁止Ctrl+Alt+Del快捷鍵重啓
先查看/etc/inittab 的文件,並且將ctrl-ait-delete的文件位置註釋掉
2.1.3:GRUB限制
- 使用grub2-mkpasswd-pbkdf2生成祕鑰
- 修改/etc/grub.d/00_header文件中,添加密碼記錄
- 生成新的grub.cfg配置文件
2.2:終端及登錄安全控制
在linux服務器中,默認開啓了6個tty終端,允許任何用戶進行本地登陸。關於本地登陸的安全控制,可以從這幾個方面着手。
2.2.1:減少開放的tty終端個數
對於遠程維護的Linux服務器,6個ty終端實際上有點多餘。在CentOS 7系統中,控制終端的配置文件如下:
/etc/init/tty.conf //控制tty終端的開啓
/etc/init/start-ttys. conf //控制tty終端的開啓數量、設備文件
/etc/sysconfig/init //控制ty終端的開啓數量、終端顏色
通過修改/t/init/start-ttys.conf和/etc/sysconfig/init,可以減少開放的tty終端數量。例如,若只希望開啓ty4、ty5、 ty6 三個終端,修改後的操作如下所示。
[root@localhost ~]# vi //itstat-ttys.conf
...... //省略部分內容
env ACTIVE CONSOLED=/dev/tty[456] //修改爲456
rot@localhost ~]# vi /etc/sysconfig/init //省略部分內容
......
ACTIVE CONSOLES=/dev/tty[456] //修改爲456
froot@localhost ~]# reboot
禁用tty1、tty2. tty3終端以後,重新開機並進入字符模式時,默認將無法登錄。必須按Alt+F4組合鍵或Alt+F5、Alt+F6組合鍵切換到可用的終端,然後才能進行登錄操作。
2.2.2:禁止root用戶登錄
- 安全終端配置:/etc/securetty
- 若要禁止root用戶從指定的終端登陸,只需從改文件中刪除或者註釋掉對應的行即可。
- 例如,若要禁止root用戶從tty2,tty3登陸,可以修改/etc/securetty文件,將tty2,tty3行註釋掉
[root@localhost ~]# vim /etc/securetty '進入終端配置'
...省略部分內容
vc/9
vc/10
vc/11
tty1
#tty2 '禁止終端tty2登錄,在其前方輸入#即可'
#tty3 '禁止終端tty3登錄,在其前方輸入#即可'
tty4
tty5
tty6
tty7
..省略部分內容
2.2.3:禁止普通用戶登錄
- 建立/etc/nologin文件
- 刪除nologin文件或重啓後即恢復正常
[root@localhost ~]# touch /etc/nologin '禁止普通用戶登錄'
[root@localhost ~]# rm -rf /etc/nologin '取消上述登錄限制'
'一般做維護的時候使用(只有root用戶可以登錄,其他用戶不可登錄)'
例如
[root@localhost ~]# touch /etc/nologin
此時,再用其他用戶登錄,即便密碼輸入正確也會提示密碼沒有奏效,從而無法登錄,只有root用戶可以登錄
[root@localhost ~]#rm -rf /etc/nologin
此時,將之前的登錄限制取消之後,其他用戶也可以正常登錄了
三:弱口令檢測
3.1:Joth the Ripper,簡稱爲 JR
-
John the Ripper是一款開元的密碼破解工具,能夠在已知密文的情況下快速分析出明文的密碼子串,支持DES、MD5等多種加密算法,而且允許使用密碼字典來進行暴力破解。
-
通過對shadow文件的口令分析,可以檢測密碼強度
3.2:弱口令實驗:通過john工具查看自己的密碼
解壓後可以看到三個子目錄—doc、run、scr,分別表示手冊文檔,運行程序,源碼文件
四:端口掃描
4.1:NMAP
一款強大的網絡掃描,安全檢測工具
可以探測局域網中那些主機在線,或者某臺主機中開了那些端口
NMAP的掃描語法
nmap [掃描類型] [選項] <掃描目標…>
常用的掃描類型
-sS,-sT,-sF,-sU,-sP,-P0
-sT:TCP端口
-sU:UDP端口
-sP:ping
4.2:nmap實驗
[root@localhost run]# rpm -q nmap
未安裝軟件包 nmap
[root@localhost run]# yum install nmap -y
...此處省略內容
nmap命令基本格式
nmap [掃描類型][選項]<掃描目標>
比較常用的幾種掃描類型:
-sS, TCPSYN掃描(半開掃描):只向目標發出SYN數據包,如果收到SYNACK響應包就認爲目標端口正在監聽,並立即斷開連接;否則認爲目標端口並未開放。
-sT,TCP 連接掃描:這是完整的TCP掃描方式,用來建立一個TCP連接,如果成功則認爲目標端口正在監聽服務,否則認爲目標端口並未開放。
-sF,TCP FIN掃描: :開放的端口會忽略這種數據包,關閉的端口會迴應RST數據包。許多防火牆只對SYN數據包進行簡單過濾,而忽略了其他形式的TCP攻擊包。這種類型的掃描可間接檢測防火牆的健壯性。
-sU, UDP掃描:探測目標主機提供哪些UDP服務,UDP掃描的速度會比較慢。
-sP, ICMP掃描:類似於ping檢測,快速判斷目標主機是否存活,不做其他掃描。
-P0, 跳過ping檢測:這種方式認爲所有的目標主機是存活的,當對方不響應ICMP請求時,使用這種方式可以避免因無法ping通而放棄掃描。