目錄
一、PAM 安全認證及配置
????????1.1配置 su 命令的認證
????????1.2PAM 配置文件結構
二、賬號和密碼安全管理
????????2.1賬號管理
????????2.2系統賬號清理
????????2.3密碼安全控制
????????2.4密碼重設示例
????????2.5參考命令
三、命令歷史限制
????????3.1設置命令歷史記錄條數
????????3.2自動清除命令歷史記錄
????????3.4終端自動注銷
????????3.5結論
四、Linux 系統安全管理:PAM 安全認證
????????4.1什么是 PAM
????????4.2PAM 的工作原理
????????4.3PAM 配置文件結構???????
????????4.4PAM 認證模塊的控制標記
????????4.5實際應用
????????4.6結論
五、Linux 系統安全管理:使用 sudo 提升權限
????????5.1什么是 sudo
????????5.2sudo 配置文件 /etc/sudoers
????????5.3sudo 常用參數
????????5.4實例:配置 sudo 提權
????????5.5使用別名簡化 sudo 配置
????????5.6啟用 sudo 操作日志
????????5.7驗證 sudo 配置
????????5.8總結
六、如何確保服務器的開關機安全
????????6.1?物理環境安全防護
????????6.2?限制更改GRUB引導參數
????????6.3終端登錄安全控制
????????6.4系統弱口令檢測
????????6.5總結
七、使用Nmap進行網絡端口掃描與安全管理
????????7.1?網絡協議基礎
????????7.2?安裝Nmap
????????7.3.基本Nmap掃描類型
????????7.4實例演示
????????7.5禁用與啟用Ping
????????7.6?PAM模塊防止暴力破解
????????7.7?使用netstat查看網絡狀態
???????????????7.8總結
一、PAM 安全認證及配置
PAM(Pluggable Authentication Modules,可插拔認證模塊)是 Linux 系統中用于管理認證的一個靈活機制。PAM 配置文件位于 /etc/pam.d/
目錄下,每個文件對應一個服務或命令的認證設置。
1.1配置 su
命令的認證
默認情況下,所有用戶都可以使用 su
命令切換到其他用戶。這帶來了一定的安全風險,因為惡意用戶可以反復嘗試其他用戶(如 root)的登錄密碼。通過配置 pam_wheel
認證模塊,可以限制只有特定組(如 wheel
組)的用戶才能使用 su
命令。
配置步驟
-
編輯
/etc/pam.d/su
文件:vim /etc/pam.d/su
-
修改內容: 默認情況下,文件內容可能如下:
# auth ? ? ? sufficient ? pam_rootok.so # auth ? ? ? required ? ? pam_wheel.so use_uid
配置文件的每一行是一個獨立的認證過程,它們按從上往下的順序依次由 PAM 模塊調用。以下是幾種配置狀態的解釋:
a) 默認狀態:
plaintext auth sufficient pam_rootok.so # auth required pam_wheel.so use_uid
- 允許所有用戶使用su
命令進行切換。b) 兩行都注釋:
plaintext # auth sufficient pam_rootok.so # auth required pam_wheel.so use_uid
- 所有用戶可以使用su
命令,但 root 用戶切換到其他用戶需要輸入密碼。c) 開啟第二行:
plaintext # auth sufficient pam_rootok.so auth required pam_wheel.so use_uid
- 只有 root 用戶和wheel
組內的用戶可以使用su
命令。d) 注釋第一行,開啟第二行:
plaintext # auth sufficient pam_rootok.so auth required pam_wheel.so use_uid
- 只有wheel
組內的用戶可以使用su
命令,root 用戶也被禁用。 -
將用戶添加到
wheel
組:gpasswd -a zhangsan wheel
-
添加用戶
zhangsan
到wheel
組中。
-
-
確認
wheel
組成員:grep wheel /etc/group
-
確認
wheel
組的成員列表。
-
-
啟用
pam_wheel
認證:#%PAM-1.0 auth sufficient pam_rootok.so auth required pam_wheel.so use_uid
-
未加入到
wheel
組的其他用戶將無法使用su
命令,嘗試進行切換時將提示“拒絕權限”。
-
-
切換用戶測試:
-
使用
su
命令切換用戶的操作會記錄到/var/log/secure
文件中,可以根據需要進行查看。
-
1.2PAM 配置文件結構
PAM 配置文件中的每一行由四部分組成:
-
模塊類型:
-
auth
:對用戶身份進行識別。 -
account
:對賬號各項屬性進行檢查。 -
password
:使用用戶信息來更新數據。 -
session
:定義登錄前及退出后所要進行的會話操作管理。
-
-
控制標記:
-
required
:該行及所涉及模塊的成功是用戶通過鑒別的必要條件。 -
requisite
:與required
相似,但失敗會立即返回錯誤。 -
sufficient
:該行及所涉及模塊驗證成功是用戶通過鑒別的充分條件。 -
optional
:即使該行所涉及的模塊驗證失敗用戶仍能通過認證。 -
include
:調用其他 PAM 配置文件。
-
-
模塊名稱:
-
默認在
/lib64/security/
目錄下,如pam_wheel.so
。
-
-
模塊參數:
-
傳遞給模塊的參數,可以有多個,之間用空格分隔開。
-
實例說明
以下是一個 PAM 認證過程的實例:
auth required pam_env.so
auth sufficient pam_unix.so nullok try_first_pass
auth required pam_deny.so
用戶通過 PAM 模塊進行認證的過程:
-
用戶1:成功通過所有
auth
模塊的認證。 -
用戶2:在
pam_unix.so
認證失敗,因此最終認證失敗。 -
用戶3:通過
pam_unix.so
認證,但失敗于pam_deny.so
。 -
用戶4:成功通過所有
auth
模塊的認證。
二、賬號和密碼安全管理
在 Linux 系統中,賬號和密碼安全管理是確保系統安全的重要措施之一。以下是一些常見的操作和配置方法。
2.1賬號管理
2.1.1鎖定和解鎖賬號:
鎖定賬號:
usermod -L zhangsan ?# 鎖定賬號 zhangsan
passwd -S zhangsan ? # 查看賬號狀態
passwd -l zhangsan ? # 鎖定用戶賬戶
解鎖賬號:
usermod -U zhangsan ?# 解鎖賬號 zhangsan
passwd -u zhangsan ? # 解鎖用戶賬戶
刪除無用賬號:
userdel -r 用戶名 ?# 刪除無用的賬號,并刪除用戶的主目錄
鎖定賬號配置文件:
使用 chattr
命令鎖定或解鎖賬號配置文件,防止賬號配置文件被修改:
chattr +i /etc/passwd /etc/shadow ?# 鎖定文件
lsattr /etc/passwd /etc/shadow ? ? # 查看文件鎖定狀態
chattr -i /etc/passwd /etc/shadow ?# 解鎖文件
測試文件是否鎖住:
useradd lisi ?# 查看是否能添加用戶
2.2系統賬號清理
查找使用 /sbin/nologin
作為登錄 shell 的用戶:
grep "/sbin/nologin$" /etc/passwd
修改用戶的登錄 shell:
usermod -s /sbin/nologin 用戶名
2.3密碼安全控制
編輯 /etc/login.defs
文件:
vi /etc/login.defs
設置密碼有效期:
PASS_MAX_DAYS 30 # 設置密碼有效期為30天
設置最小密碼修改間隔:
PASS_MIN_DAYS 0 # 密碼最小修改間隔為0天
設置密碼最小長度:
PASS_MIN_LEN 5 # 密碼最小長度為5
設置密碼到期警告天數:
PASS_WARN_AGE 7 # 密碼到期前7天開始警告
使用 chage
命令設置密碼時限:
設置用戶密碼最大有效期:
chage -M 30 lisi # 設置lisi用戶的密碼最大有效期為30天
強制用戶下次登錄時重設密碼:
chage -d 0 zhangsan # 強制zhangsan下次登錄時重設密碼
查看用戶密碼到期信息:
chage -l zhangsan
chage -l lisi
2.4密碼重設示例
當密碼過期時,用戶會被強制要求在下次登錄時更改密碼,具體操作如下:
登錄提示:
WARNING: Your password has expired.
You must change your password now and login again!
用戶更改密碼:
(當前) UNIX 密碼:
新的 密碼:
無效的密碼:密碼未通過字典檢查 - 它基于字典單詞
新的 密碼:
無效的密碼:密碼未提供
新的 密碼:
重新輸入新的 密碼:
passwd:所有的身份驗證令牌已經成功更新。
2.5參考命令
鎖定文件:
chattr +i /etc/passwd /etc/shadow
解鎖文件:
chattr -i /etc/passwd /etc/shadow
查看文件鎖定狀態:
lsattr /etc/passwd /etc/shadow
?
三、命令歷史限制
????????在 Linux 系統中,命令歷史記錄可以幫助用戶追溯以前執行的命令,但在某些情況下(如安全或隱私需要),我們可能希望限制命令歷史的記錄和保存。
3.1設置命令歷史記錄條數
3.1.1為新登錄用戶設置歷史記錄條數:
編輯 /etc/profile
文件(適用于所有用戶):
vim /etc/profile
添加以下行:
HISTSIZE=18
3.1.2為當前用戶設置歷史記錄條數:
編輯用戶的 ~/.bashrc
文件:
vim ~/.bashrc
添加以下行:
export HISTSIZE=15
使配置生效:
source ~/.bashrc
驗證效果:
history
確認 history
命令只顯示最近的 15 條記錄。
3.1.3臨時清除歷史記錄:
清除當前 session 的歷史記錄:
history -c
3.1.4永久清除歷史記錄:
清空 .bash_history
文件:
echo " " > ~/.bash_history
3.2自動清除命令歷史記錄
3.2.1配置自動清除命令歷史記錄:
在用戶的 ~/.bashrc
文件中添加:
echo '' > ~/.bash_history
3.2.2每次用戶登出時清除歷史記錄:
編輯 /etc/skel/.bash_logout
文件,確保新用戶創建時包含該配置:
vim /etc/skel/.bash_logout
添加以下行:
rm -f $HOME/.bash_history
3.3.3環境變量的讀取順序
用戶登錄順序:
用戶登錄時,首先加載 ~/.bash_profile
文件。
~/.bash_profile
中通常配置加載 ~/.bashrc
文件:
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi
3.4終端自動注銷
為了防止用戶長時間閑置在終端,可以設置自動注銷時間。
3.4.1設置自動注銷時間:
編輯 /etc/profile
文件(適用于所有用戶):
vim /etc/profile
添加以下行:
export TMOUT=600 # 閑置600秒后自動注銷
使配置生效:
source /etc/profile
為當前用戶設置自動注銷時間:
export TMOUT=600
取消自動注銷:
unset TMOUT
3.4.2登出時清除歷史記錄:
編輯用戶的 ~/.bash_logout
文件:
vim ~/.bash_logout
添加以下行:
history -c
clear
通過以上配置和操作,能夠有效地管理 Linux 系統的命令歷史記錄和終端自動注銷,確保系統安全和用戶隱私。
3.5結論
????????在 Linux 系統中,通過合理配置賬號和密碼管理策略、限制命令歷史記錄以及設置終端自動注銷時間,可以顯著提升系統的安全性和用戶隱私保護。這些措施在企業環境和個人使用中都具有重要的實際意義。
?
四、Linux 系統安全管理:PAM 安全認證
????????在 Linux 系統中,確保系統的安全性是至關重要的。PAM(Pluggable Authentication Modules)提供了一種靈活和可定制的認證機制,使得系統管理員可以根據需要配置和管理各種服務的認證方式。
4.1什么是 PAM
????????PAM 是 Linux 系統中的可插拔認證模塊,允許系統管理員靈活地配置和管理各種服務的認證方式。PAM 的可插拔性并不意味著它是一個物理上的設備(如外部設備或 U 盤),而是指其可配置、可定制的特性。通過編輯配置文件,管理員可以定制某個服務的認證模塊,實現靈活高效的用戶級認證。
4.1.1以 .so
結尾的模塊是什么?
????????這些模塊是動態函數庫模塊。當一個服務運行時,會將認證過程交給 PAM,PAM 讀取相應的配置文件,然后根據配置調用適當的 PAM 認證模塊來實現認證功能。如果認證不成功,用戶將無法訪問該服務。
4.2PAM 的工作原理
PAM 認證的基本流程可以分為以下幾個步驟:
-
確定服務:首先確定哪個服務需要進行認證。
-
加載配置文件:加載該服務對應的 PAM 配置文件,通常位于
/etc/pam.d/
目錄下。 -
調用認證模塊:根據配置文件中的指示,調用相應的 PAM 認證模塊,這些模塊通常位于
/lib64/security/
目錄下。
具體來說,PAM 認證遵循以下順序:服務 -> 配置文件 -> 認證模塊。
-
服務:用戶訪問服務器時,某個服務程序會接收到用戶的請求。
-
配置文件:該服務會查找并加載對應的 PAM 配置文件。
-
認證模塊:根據配置文件中的內容,服務會調用相應的 PAM 認證模塊,進行安全認證。
如果認證成功,用戶將被允許訪問該服務;如果認證失敗,用戶將被拒絕訪問。
4.3PAM 配置文件結構
PAM 配置文件中的每一行都是一個獨立的認證過程,包含以下四個字段:
4.3.1認證類型:
auth
:對用戶身份進行識別,如提示輸入密碼。account
:檢查賬號屬性,如是否允許登錄系統。password
:用于修改用戶密碼。session
:管理會話,如記錄登錄信息。
4.3.2控制標記:
required
:模塊必須成功,失敗則整個認證失敗,但要繼續執行其他模塊。requisite
:模塊必須成功,失敗則立即返回失敗,終止認證過程。sufficient
:模塊成功則立即返回成功,忽略其他模塊,失敗則繼續執行其他模塊。optional
:模塊的成功與否無關緊要,通常用于 session 類型。include
:表示在驗證過程中調用其他的 PAM 配置文件。
模塊名稱:指定使用的 PAM 模塊,如 pam_unix.so
。
模塊參數:傳遞給模塊的參數,可以有多個,之間用空格分隔。
以下是一個示例配置文件 /etc/pam.d/su
:
#%PAM-1.0
auth ? ? ? sufficient ? pam_rootok.so
auth ? ? ? required ? ? pam_wheel.so use_uid
4.3.3示例解釋
-
auth sufficient pam_rootok.so
:如果調用者是 root 用戶,則認證立即成功。 -
auth required pam_wheel.so use_uid
:只有wheel
組的用戶才可以使用su
命令。
4.4PAM 認證模塊的控制標記
PAM 的控制標記決定了各個模塊的執行順序和結果處理方式:
required:
解釋:表示該行及所涉及模塊的成功是用戶通過鑒別的必要條件。如果失敗,不會立刻返回失敗,而是繼續執行其他模塊,所有此類型的模塊都執行完畢后再返回失敗。
舉例:如同面試時,面試官雖然對某個問題的回答不滿意,但仍然繼續面試,最后才決定結果。
requisite:
解釋:與 required
類似,但如果該模塊失敗,則立即返回失敗,終止認證過程。
舉例:如同面試時,只要有一個問題回答不上來,面試官立即宣布面試失敗。
sufficient:
解釋:如果該模塊成功,則立即返回成功,忽略后續的模塊;如果失敗,繼續執行其他模塊。
舉例:如同面試時,如果有關系背景,只要回答上來某個關鍵問題,就直接通過面試。
optional:
解釋:表示該行及所涉及模塊的成功與否無關緊要,通常用于 session 類型的模塊。
舉例:如同面試時,某個問題的回答僅作參考,不影響最終結果。
include:
解釋:表示在驗證過程中調用其他的 PAM 配置文件。
舉例:如同面試時,某個問題需要引用其他人的評價來輔助判斷。
4.5實際應用
通過配置 PAM,可以限制 su
命令的使用。例如,只有 wheel
組的用戶才能使用 su
命令:
將用戶添加到 wheel
組:
gpasswd -a username wheel
修改 /etc/pam.d/su
文件:
auth ? ? ? sufficient ? pam_rootok.so
auth ? ? ? required ? ? pam_wheel.so use_uid
驗證配置:
su - anotheruser ?# 嘗試切換用戶
4.6結論
????????Linux 系統的安全管理需要多方面的努力,通過靈活配置 PAM 安全認證,可以顯著提升系統的安全性。PAM 提供了一種高效、靈活的認證機制,允許管理員根據需要對服務進行細粒度的認證控制,從而確保系統和用戶數據的安全。通過深入理解和正確配置 PAM 模塊,可以有效地防止未經授權的訪問,保護系統的完整性和機密性。
五、Linux 系統安全管理:使用 sudo 提升權限
????????在 Linux 系統中,確保系統的安全性和管理的便捷性是至關重要的。使用 su
命令可以方便地切換為另一個用戶,但前提是必須知道目標用戶的密碼。這對于生產環境中的 Linux 服務器來說,每多一個人知道特權密碼,其安全風險也就增加一分。那么有沒有一種折中的辦法,既可以讓普通用戶擁有部分管理權限,又不需要將 root 用戶的密碼告訴他們呢?答案是肯定的,使用 sudo
命令就可以提升執行權限。本文將詳細介紹 sudo 的使用方法和配置。
5.1什么是 sudo
sudo
(superuser do)命令允許普通用戶在不泄露 root 密碼的情況下執行特權命令。管理員可以預先進行授權,指定哪些用戶可以以超級用戶(或其他用戶)的身份執行哪些命令。
5.2sudo 配置文件 /etc/sudoers
/etc/sudoers
文件是 sudo 的配置文件,用于定義哪些用戶可以在哪些主機上以誰的身份執行哪些命令。該文件的默認權限為 440,因此需要使用 visudo
工具進行編輯。雖然也可以用 vi
進行編輯,但保存時必須執行 :w!
命令來強制操作,否則系統將提示為只讀文件而拒絕保存。
5.2.1sudoers 文件的基本格式
user MACHINE=COMMANDS
-
user:可以是一個具體的用戶名,也可以是一個用戶組(使用
%組名
表示)。 -
MACHINE:主機名,通常設置為
ALL
代表所有主機。 -
COMMANDS:用戶被允許執行的命令的完整路徑,多個命令之間以逗號
,
分隔。
5.3sudo 常用參數
-
-l
:列出用戶在主機上可用的和被禁止的命令。 -
-v
:驗證用戶的時間戳。 -
-u
:指定以某個用戶執行特定操作。 -
-k
:刪除時間戳,下一個 sudo 命令要求用戶提供密碼。
5.4實例:配置 sudo 提權
5.4.1案例一:用戶 wangliu 可以使用 useradd 和 usermod 命令
-
編輯 sudoers 文件:
visudo
-
添加以下配置:
wangliu ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod
-
驗證配置:
su - wangliu sudo /usr/sbin/useradd tom
5.4.2案例二:用戶 Tom 可以臨時創建網卡
-
編輯 sudoers 文件:
visudo
-
添加以下配置:
Tom ALL=(root) NOPASSWD:/usr/sbin/ifconfig
-
驗證配置:
su - Tom sudo /usr/sbin/ifconfig ens33:0 192.168.1.11/24
5.5使用別名簡化 sudo 配置
當使用相同授權的用戶較多,或者授權的命令較多時,可以采用集中定義的別名。用戶、主機、命令部分都可以定義為別名,通過關鍵字 User_Alias
、Host_Alias
、Cmnd_Alias
來進行設置。
5.5.1案例一:定義用戶別名、主機別名和命令別名
-
編輯 sudoers 文件:
visudo
-
添加以下配置:
Host_Alias MYHOSTS = kgc,localhost User_Alias MYUSERS = zhangsan,wangwu,lisi Cmnd_Alias MYCMNDS = /sbin/*,!/sbin/reboot,!/sbin/poweroff,!/sbin/init,!/usr/bin/rm MYUSERS MYHOSTS=NOPASSWD:MYCMNDS
-
解釋:
MYHOSTS
定義了主機別名,包含kgc
和localhost
。MYUSERS
定義了用戶別名,包含zhangsan
、wangwu
和lisi
。MYCMNDS
定義了命令別名,包含/sbin/
目錄下的所有命令,但排除了reboot
、poweroff
、init
和rm
命令。
5.5.2案例二:用戶別名和命令別名的綜合使用
-
編輯 sudoers 文件:
visudo
-
添加以下配置:
User_Alias USERADMIN = wangliu,%wangliu,%useradmin Cmnd_Alias USERADMINCMND = /usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root USERADMIN ALL=(root) NOPASSWD: USERADMINCMND
-
解釋:
USERADMIN
定義了用戶別名,包含wangliu
用戶和wangliu
、useradmin
兩個用戶組。USERADMINCMND
定義了命令別名,包含useradd
、usermod
、userdel
和passwd
命令,但排除了passwd root
。USERADMIN
在所有主機上可以無密碼執行USERADMINCMND
別名下的命令。
5.6啟用 sudo 操作日志
為了更好地審計和追蹤 sudo 操作,可以啟用 sudo 操作日志。
-
編輯 sudoers 文件:
visudo
-
添加以下配置:
Defaults logfile="/var/log/sudo"
-
解釋:
- 該配置將 sudo 的操作日志記錄到
/var/log/sudo
文件中。
5.7驗證 sudo 配置
-
使用
sudo -l
查看當前用戶獲得的 sudo 授權:sudo -l
-
通過 sudo 執行特權命令:
sudo /sbin/ifconfig ens33:0 192.168.1.11/24
5.8總結
????????通過合理配置 sudo,可以在不泄露 root 密碼的情況下,靈活地為普通用戶分配特權命令的執行權限。這不僅提高了系統的安全性,還使得管理更加方便和高效。通過定義別名和啟用操作日志,可以進一步簡化配置和加強審計,確保系統的安全性和可追溯性。對于初學者,理解 sudo 的基本概念和配置方法是邁向 Linux 系統管理的重要一步。
六、如何確保服務器的開關機安全
在互聯網環境中,大部分服務器是通過遠程登錄進行管理的,而本地引導和終端登錄過程往往容易被忽視,從而留下安全隱患。特別是當服務器所在的機房環境缺乏嚴格、安全的管控制度時,防止其他用戶的非授權介入就變得尤為重要。本文將詳細介紹如何確保服務器的開關機安全,包括物理安全防護、GRUB引導參數的限制、更改終端登錄安全控制、以及系統弱口令檢測等方面的內容。
6.1?物理環境安全防護
服務器的物理環境安全防護至關重要:
-
機箱和機柜保護:確保機箱完好,機柜鎖閉,防止非授權人員接觸硬件設備。
-
人員進出控制:嚴格控制機房的人員進出,只有授權人員才能進入機房。
-
硬件設備接觸:限制對硬件設備的現場接觸,防止設備被非法操作或破壞。
6.2?限制更改GRUB引導參數
修改GRUB引導參數可以修復系統問題,但如果任何人都能修改GRUB引導參數,對服務器的安全構成極大威脅。為此,可以為GRUB菜單設置一個密碼,只有提供正確的密碼才被允許修改引導參數。
6.2.1設置GRUB菜單密碼步驟:
-
生成加密密碼:
grub2-mkpasswd-pbkdf2
按提示輸入并確認密碼,生成的PBKDF2加密字符串會被用于GRUB配置。
-
備份配置文件:
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
-
修改配置文件: 編輯
/etc/grub.d/00_header
文件,添加以下內容:cat << EOF set superusers="root" password_pbkdf2 root grub.pbkdf2.sha512.10000.<加密字符串> EOF
-
生成新的GRUB配置文件:
grub2-mkconfig -o /boot/grub2/grub.cfg
重啟系統進入GRUB菜單時,按e
鍵需要輸入賬號和密碼才能修改引導參數。
6.3終端登錄安全控制
為了增強終端登錄的安全性,限制root
只在安全終端登錄,并且在需要時禁止普通用戶登錄。
6.3.1限制root只在安全終端登錄:
編輯/etc/securetty
文件,注釋掉不需要的終端,例如:
#tty4
禁止普通用戶登錄:
當服務器進行備份或調試時,可以暫時禁止普通用戶登錄:
touch /etc/nologin
刪除/etc/nologin
文件或重啟主機后恢復正常。
使用last命令顯示用戶或終端登錄情況:
last
6.4系統弱口令檢測
檢測系統中的弱口令可以有效提高安全性。使用John the Ripper
工具進行弱口令檢測。
6.4.1安裝和使用John the Ripper:
-
下載和解包:
tar zxvf john-1.8.0.tar.gz -C /opt/
-
安裝編譯環境:
yum install gcc gcc-c++ -y cd /opt/john-1.8.0/src make clean linux-x86-64
-
添加測試用戶并準備文件:
useradd zhangsan passwd zhangsan cp /etc/shadow /root/shadow.txt
-
運行John the Ripper:
cd /opt/john-1.8.0/run ./john /root/shadow.txt ./john --show /root/shadow.txt
-
使用字典文件檢測弱口令:
./john --wordlist=./password.lst /root/shadow.txt
通過上述步驟,可以有效檢測并處理系統中的弱口令,提升系統安全性。
6.5總結
????????確保服務器的開關機安全涉及多個方面,包括物理環境安全防護、限制GRUB引導參數、更改終端登錄安全控制、以及系統弱口令檢測。通過實施這些措施,可以大大減少服務器被非授權用戶介入的風險,提升服務器的整體安全性。
七、使用Nmap進行網絡端口掃描與安全管理
????????網絡端口掃描是網絡安全評估的重要步驟。通過Nmap,可以檢測網絡中開放的端口和服務,從而識別潛在的安全風險。本文將詳細介紹Nmap的使用方法及相關的網絡安全管理措施,適合初學者。
7.1?網絡協議基礎
在開始使用Nmap之前,了解一些基本的網絡協議是非常重要的:
-
SYN (synchronous 建立聯機)
-
ACK (acknowledgement 確認)
-
PSH (push 傳送)
-
FIN (finish 結束)
-
RST (reset 重置)
-
URG (urgent 緊急)
????????每個TCP包都包含順序號碼(Sequence number)和確認號碼(Acknowledge number),這些字段用于確保數據的有序傳輸和確認。
7.2?安裝Nmap
首先,確保Nmap已安裝在你的系統中:
rpm -qa | grep nmap
yum install -y nmap
7.3.基本Nmap掃描類型
Nmap支持多種掃描類型,每種類型適用于不同的檢測需求:
-
-sS,TCP SYN 掃描(半開掃描):發送SYN數據包,如果收到SYN/ACK響應包,就認為端口開放。
nmap -sS <target>
-
-sT,TCP 連接掃描:建立完整的TCP連接,確認端口是否開放。
nmap -sT <target>
-
-sF,TCP FIN 掃描:發送FIN數據包,開放的端口會忽略,關閉的端口會回應RST數據包。
nmap -sF <target>
-
-sU,UDP 掃描:探測目標主機提供的UDP服務。
nmap -sU <target>
-
-sP,ICMP 掃描:類似于ping檢測,快速判斷目標主機是否存活。
nmap -sP <target>
-
-P0,跳過ping檢測:直接掃描目標主機,適用于對方不響應ICMP請求的情況。
nmap -P0 <target>
7.4實例演示
下面是一些具體的Nmap使用實例:
-
掃描本地主機的常用TCP端口:
nmap -sT 127.0.0.1
-
掃描本地主機的常用UDP端口:
nmap -sU 127.0.0.1
-
使用ICMP掃描判斷主機是否存活:
nmap -sP 127.0.0.1
-
跳過ping檢測,掃描一個網段:
nmap -P0 192.168.10.0/24
-
掃描特定端口(如文件共享服務端口):
nmap -p 139,445 192.168.4.100-200
7.5禁用與啟用Ping
臨時禁用Ping:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
啟用Ping:
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
永久禁用Ping: 編輯/etc/sysctl.conf
文件,添加或修改以下行:
net.ipv4.icmp_echo_ignore_all = 1
刷新配置:
sysctl -p
7.6?PAM模塊防止暴力破解
通過PAM模塊,可以防止暴力破解登錄: 編輯/etc/pam.d/sshd
,在第一行下面添加:
auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=1200
參數說明:
-
deny
:指定最大認證錯誤次數。 -
unlock_time
:鎖定多長時間(秒)。 -
even_deny_root
:鎖定root用戶。 -
root_unlock_time
:root用戶鎖定時間。
手動解除鎖定: 查看某用戶錯誤登錄次數:
pam_tally2 --user <username>
清空某用戶錯誤登錄次數:
pam_tally2 --user <username> --reset
7.7?使用netstat查看網絡狀態
netstat
命令可以查看當前操作系統的網絡連接狀態、路由表、接口統計等信息:
netstat -natp ? # 查看正在運行的使用TCP協議的網絡狀態信息
netstat -naup ? # 查看正在運行的使用UDP協議的網絡狀態信息
常用參數:
-
-n
:以數字形式顯示主機地址和端口。 -
-r
:顯示路由表信息。 -
-a
:顯示所有活動的網絡連接信息。 -
-l
:顯示處于監聽狀態的網絡連接及端口信息。 -
-t
:查看TCP相關信息。 -
-u
:查看UDP相關信息。 -
-p
:顯示與網絡連接相關聯的進程信息(需要root權限)。
7.8總結
????????通過使用Nmap和其他工具,可以有效地檢測和管理網絡端口,確保網絡安全。同時,結合PAM模塊和netstat命令,可以進一步加強系統的安全性。希望這篇博客能幫助初學者快速掌握這些基本的網絡安全技能。
?
?