應用及安全

目錄

一、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 命令。

配置步驟

  1. 編輯 /etc/pam.d/su 文件

    vim /etc/pam.d/su
  2. 修改內容: 默認情況下,文件內容可能如下:

    # 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 用戶也被禁用。

  3. 將用戶添加到 wheel

    gpasswd -a zhangsan wheel
    • 添加用戶 zhangsanwheel 組中。

  4. 確認 wheel 組成員

    grep wheel /etc/group
    • 確認 wheel 組的成員列表。

  5. 啟用 pam_wheel 認證

    #%PAM-1.0
    auth sufficient pam_rootok.so
    auth required pam_wheel.so use_uid
    • 未加入到 wheel 組的其他用戶將無法使用 su 命令,嘗試進行切換時將提示“拒絕權限”。

  6. 切換用戶測試

    • 使用 su 命令切換用戶的操作會記錄到 /var/log/secure 文件中,可以根據需要進行查看。

1.2PAM 配置文件結構

PAM 配置文件中的每一行由四部分組成:

  1. 模塊類型

    • auth:對用戶身份進行識別。

    • account:對賬號各項屬性進行檢查。

    • password:使用用戶信息來更新數據。

    • session:定義登錄前及退出后所要進行的會話操作管理。

  2. 控制標記

    • required:該行及所涉及模塊的成功是用戶通過鑒別的必要條件。

    • requisite:與 required 相似,但失敗會立即返回錯誤。

    • sufficient:該行及所涉及模塊驗證成功是用戶通過鑒別的充分條件。

    • optional:即使該行所涉及的模塊驗證失敗用戶仍能通過認證。

    • include:調用其他 PAM 配置文件。

  3. 模塊名稱

    • 默認在 /lib64/security/ 目錄下,如 pam_wheel.so

  4. 模塊參數

    • 傳遞給模塊的參數,可以有多個,之間用空格分隔開。

實例說明

以下是一個 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 認證的基本流程可以分為以下幾個步驟:

  1. 確定服務:首先確定哪個服務需要進行認證。

  2. 加載配置文件:加載該服務對應的 PAM 配置文件,通常位于 /etc/pam.d/ 目錄下。

  3. 調用認證模塊:根據配置文件中的指示,調用相應的 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 命令

  1. 編輯 sudoers 文件:

    visudo
  2. 添加以下配置:

    wangliu ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod
  3. 驗證配置:

    su - wangliu
    sudo /usr/sbin/useradd tom

5.4.2案例二:用戶 Tom 可以臨時創建網卡

  1. 編輯 sudoers 文件:

    visudo
  2. 添加以下配置:

    Tom ALL=(root) NOPASSWD:/usr/sbin/ifconfig
  3. 驗證配置:

    su - Tom
    sudo /usr/sbin/ifconfig ens33:0 192.168.1.11/24

5.5使用別名簡化 sudo 配置

當使用相同授權的用戶較多,或者授權的命令較多時,可以采用集中定義的別名。用戶、主機、命令部分都可以定義為別名,通過關鍵字 User_AliasHost_AliasCmnd_Alias 來進行設置。

5.5.1案例一:定義用戶別名、主機別名和命令別名

  1. 編輯 sudoers 文件:

    visudo
  2. 添加以下配置:

    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
  3. 解釋:

  • MYHOSTS 定義了主機別名,包含 kgclocalhost
  • MYUSERS 定義了用戶別名,包含 zhangsanwangwulisi
  • MYCMNDS 定義了命令別名,包含 /sbin/ 目錄下的所有命令,但排除了 rebootpoweroffinitrm 命令。

5.5.2案例二:用戶別名和命令別名的綜合使用

  1. 編輯 sudoers 文件:

    visudo
  2. 添加以下配置:

    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
  3. 解釋:

  • USERADMIN 定義了用戶別名,包含 wangliu 用戶和 wangliuuseradmin 兩個用戶組。
  • USERADMINCMND 定義了命令別名,包含 useraddusermoduserdelpasswd 命令,但排除了 passwd root
  • USERADMIN 在所有主機上可以無密碼執行 USERADMINCMND 別名下的命令。

5.6啟用 sudo 操作日志

為了更好地審計和追蹤 sudo 操作,可以啟用 sudo 操作日志。

  1. 編輯 sudoers 文件:

    visudo
  2. 添加以下配置:

    Defaults logfile="/var/log/sudo"
  3. 解釋:

  • 該配置將 sudo 的操作日志記錄到 /var/log/sudo 文件中。

5.7驗證 sudo 配置

  1. 使用 sudo -l 查看當前用戶獲得的 sudo 授權:

    sudo -l
  2. 通過 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菜單密碼步驟:

  1. 生成加密密碼

    grub2-mkpasswd-pbkdf2

    按提示輸入并確認密碼,生成的PBKDF2加密字符串會被用于GRUB配置。

  2. 備份配置文件

    cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
    cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
  3. 修改配置文件: 編輯/etc/grub.d/00_header文件,添加以下內容:

    cat << EOF
    set superusers="root"
    password_pbkdf2 root grub.pbkdf2.sha512.10000.<加密字符串>
    EOF
  4. 生成新的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:

  1. 下載和解包

    tar zxvf john-1.8.0.tar.gz -C /opt/
  2. 安裝編譯環境

    yum install gcc gcc-c++ -y
    cd /opt/john-1.8.0/src
    make clean linux-x86-64
  3. 添加測試用戶并準備文件

    useradd zhangsan
    passwd zhangsan
    cp /etc/shadow /root/shadow.txt
  4. 運行John the Ripper

    cd /opt/john-1.8.0/run
    ./john /root/shadow.txt
    ./john --show /root/shadow.txt
  5. 使用字典文件檢測弱口令

    ./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命令,可以進一步加強系統的安全性。希望這篇博客能幫助初學者快速掌握這些基本的網絡安全技能。

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37263.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【問chatgpt】

這采用的是什么腳手架初始化的&#xff1f;這樣問詢chatgpt 從文件結構來看&#xff0c;這個項目很可能是使用 Express 框架初始化的。這些文件夾和命名約定常見于 Express 項目結構&#xff0c;特別是&#xff1a; controllers: 控制器文件夾&#xff0c;通常用于處理請求邏…

同城小商城貨到付款系統源碼小程序

&#xff1a;便捷購物新選擇 &#x1f680; 一、快速便捷&#xff0c;同城直達 在這個快節奏的時代&#xff0c;時間就是金錢。你是否曾因為等待快遞而焦慮不安&#xff1f;現在&#xff0c;有了“同城商城貨到付款小程序”&#xff0c;這一切都變得不再是問題。它專注于同城…

<商務世界>《79 微課堂 <客戶是核心:2 客戶溝通的技巧《揚長避短進行溝通》(全文原創首發)>》

1 說明 符合表示★關鍵信息▲必要信息●一般信息 2 規則 等級信息★1、無準備&#xff0c;不溝通。▲2、做最準備充分&#xff0c;準備不設上限★3、掌握自己的節奏&#xff0c;不在他人節參中被動●4、準備充分、心態平穩、揚長避短。●5、溝通就是對消息的處理。發送、接收…

谷歌如何進行失效鏈接建設?

失效鏈接建設是一種高效的外鏈建設策略&#xff0c;通過發現并利用失效鏈接來提升自己網站的SEO。以下是詳細的步驟&#xff1a; 尋找失效頁面&#xff1a;你需要使用SEO工具&#xff0c;如Ahrefs&#xff0c;來查找與你的網站內容相關的失效頁面。這些頁面可能是競爭對手的失…

傳神社區|數據集合集第4期|中文NLP數據集合集

自從ChatGPT等大型語言模型&#xff08;Large Language Model, LLM&#xff09;出現以來&#xff0c;其類通用人工智能&#xff08;AGI&#xff09;能力引發了自然語言處理&#xff08;NLP&#xff09;領域的新一輪研究和應用浪潮。尤其是ChatGLM、LLaMA等普通開發者都能運行的…

基于深度學習的相機內參標定

基于深度學習的相機內參標定 相機內參標定&#xff08;Camera Intrinsic Calibration&#xff09;是計算機視覺中的關鍵步驟&#xff0c;用于確定相機的內部參數&#xff08;如焦距、主點位置、畸變系數等&#xff09;。傳統的標定方法依賴于已知尺寸的標定板&#xff0c;通常…

一文弄懂線性回歸模型

1、引言 今天&#xff0c;我們將深入探討機器學習中的三個關鍵概念&#xff1a;線性回歸、代價函數和梯度下降。這些概念構成了許多機器學習算法的基礎。起初&#xff0c;我決定不寫一篇關于這些主題的文章&#xff0c;因為它們已經被廣泛涉及。不過&#xff0c;我改變了主意&…

[圖解]SysML和EA建模住宅安全系統-02-現有運營領域-塊定義圖

1 00:00:00,840 --> 00:00:02,440 首先我們來看畫在哪里 2 00:00:02,570 --> 00:00:08,310 你看&#xff0c;這是圖的類型&#xff0c;圖里面內容 3 00:00:08,320 --> 00:00:10,780 這是元素類型 4 00:00:10,790 --> 00:00:14,900 這是位置&#xff0c;哪個包 …

Halcon 文本文件操作,形態學

一文件的讀寫 *******************************************************向文本文件寫入字符串內容*************************************************************read_image (Image, fabrik)threshold (Image, Region, 0, 120)area_center (Region, Area, Row, Column)open_…

【前端面試題】vue2.0與vue3.0不同處大全

Vue 3.0與Vue 2.0在細節上存在多個顯著的不同之處&#xff0c;以下是對這些區別的詳細歸納和解釋&#xff1a; 性能提升&#xff1a; Vue 3.0的性能相比Vue 2.x快了1.2至2倍。這主要得益于內部對虛擬DOM的完全重寫&#xff0c;mounting和patching的提速&#xff0c;以及基于Pr…

嘉立創學習

1.兩個設置&#xff0c;一般用左邊那個 2.焊盤分類 基本焊盤 熱風盤&#xff1a;也叫花焊盤&#xff08;負片&#xff09; 隔離焊盤&#xff1a;外面那圈黑色&#xff0c;用作隔離&#xff08;負片&#xff09; 鋼網層&#xff1a;&#xff08;錫膏&#xff09; 阻焊層&…

【php】【mysql】【layui】 原生初級簡易留言簿系統成品代碼動態網站開發網頁WEB瀏覽器端B/S結構

更多項目點擊&#x1f446;&#x1f446;&#x1f446;完整項目成品專欄 【php】【mysql】【layui】 原生初級簡易留言簿系統成品代碼動態網站開發網頁WEB瀏覽器端B/S結構 獲取源碼方式項目說明&#xff1a;文件包含&#xff1a;項目運行環境項目運行截圖 獲取源碼方式 加Q群…

妙解設計模式之橋接模式

橋接模式的概念 橋接模式&#xff08;Bridge Pattern&#xff09;是一種結構型設計模式&#xff0c;用于將抽象部分和實現部分分離&#xff0c;使它們可以獨立變化。這種模式通過組合而不是繼承來實現這個目標&#xff0c;從而提高系統的靈活性和可擴展性。 抽象部分&#xf…

如何使用C++進行文件讀寫操作

在C中&#xff0c;我們可以使用標準庫中的 <fstream>&#xff08;文件流&#xff09;來進行文件的讀寫操作。以下是一些基本的文件讀寫操作的示例。 讀取文件 cpp復制代碼 #include <fstream> #include <iostream> #include <string> int main() { s…

MySQL高級-SQL優化- update 優化(盡量根據主鍵/索引字段進行數據更新,避免行鎖升級為表鎖)

文章目錄 0、update 優化1、創建表2、默認是行鎖3、行鎖升級為表鎖4、給name字段建立索引 0、update 優化 InnoDB的行鎖是針對索引加的鎖&#xff0c;不是針對記錄加的鎖&#xff0c;并且該索引不能失效&#xff0c;否則會從行鎖升級為表鎖。 1、創建表 create table course(…

【嚴正聲明】鑒于CSDN的流氓行為,現已清空所有文章,資源下載分統一改為0

【嚴正聲明】鑒于CSDN的流氓行為&#xff0c;現已清空所有文章&#xff0c;資源下載分統一改為0 鑒于CSDN的流氓行為&#xff0c;現已清空所有文章&#xff0c;資源下載分統一改為0 鑒于CSDN的流氓行為&#xff0c;現已清空所有文章&#xff0c;資源下載分統一改為0 如果你在C…

CUDA 編程

## blocksize和gridsize設置 使用deviceQuery查看GPU相關信息(下圖為1080 ti)blocksize的最大值建議不要超過Maximum number of threads per block&#xff08;1024&#xff09;由于每個block里的線程需要被分為數個wrap&#xff0c;而wrap size為32&#xff08;Warp size&…

搭建企業內網pypi鏡像庫,讓python在內網也能像互聯網一樣安裝pip庫

目錄 知識點實驗1.服務器安裝python2.新建一個目錄/mirror/pip&#xff0c;用于存儲pypi文件&#xff0c;作為倉庫目錄3.下載python中的所需包放至倉庫文件夾/mirror/pip3.1. 新建requirement.py腳本&#xff08;將清華pypi鏡像庫文件列表粘貼到requirement.txt文件中&#xff…

【MATLAB源碼-第231期】基于matlab的polar碼編碼譯碼仿真,對比SC,SCL,BP,SCAN,SSC等譯碼算法誤碼率。

操作環境&#xff1a; MATLAB 2022a 1、算法描述 極化碼&#xff08;Polar Code&#xff09; 極化碼&#xff08;Polar Code&#xff09;是一種新型的信道編碼技術&#xff0c;由土耳其裔教授Erdal Ar?kan在2008年提出。極化碼在理論上被證明能夠在信道容量上達到香農極限…

成熟ICT測試系統與LabVIEW定制開發的比較

ICT&#xff08;In-Circuit Test&#xff09;測試系統是電子制造行業中用于電路板&#xff08;PCB&#xff09;組件檢測的重要工具。市場上有許多成熟的ICT測試系統&#xff0c;如Keysight、Teradyne、SPEA等公司提供的商用解決方案。此外&#xff0c;LabVIEW作為一種強大的圖形…