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		'對於已創建的用戶,用這條命令'

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Z6t69bDr-1592923457034)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622192710134.png)]

在某些情況下會要求用戶初次登錄的時候必須自設密碼,根據安全規劃統一要求所有用戶更新密碼等,可以由管理員執行強行策略,以便用戶在下次登錄時必須修改密碼。

例如,執行以下操作可強制要求用戶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安全認證流程

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-TcPiPuOa-1592923457036)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622222518413.png)]

  • 控制類型也可以稱作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命令

  1. 先創建一個普通用戶radmin,設置密碼

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-uyJJm8PV-1592923457039)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622230530890.png)]

2.將用戶radmin加入到wheel組中,並且查看wheel組中是否有radmin的用戶

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-WBeYBplO-1592923457041)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622230542960.png)]

3.修改/etc/pam.d/su 認證配置以啓用pam_wheel認證

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-STbLzaAr-1592923457042)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622230554311.png)]

  1. 加入wheel組的用戶radmin可以使用su命令,沒有加入的用戶不能使用

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NKe2jjnx-1592923457042)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622230619923.png)]

1.5.3:允許用戶zhangsan通過sudu方式管理員工賬號:

  1. 先創建普通用戶zhangsan,並設置密碼

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-7wmmk63S-1592923457043)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622230737873.png)]

  1. 把用戶zhangsan加入到wheel組中

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-nUcGhomB-1592923457043)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622230806481.png)]

  1. 給用戶zhangsan管理賬號的權限,visudo

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-h4iPKdfe-1592923457044)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622230826671.png)]

​ 4. 用戶zhangsan有了可以管理賬戶的權力

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-XclokwJ5-1592923457044)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622230859828.png)]

1.5.4:允許用戶lisi通過sudo方式執行特權命令:

1.創建用戶lisi,並將其加入到wheel組中

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-lxI8pbpT-1592923457045)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622230949904.png)]

2.允許lisi用戶可以執行特權命令,visudo

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-gTfbiscY-1592923457045)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622231000402.png)]

3.切換到lisi用戶中,使用sudo -l命令查看自己的sudo配置

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-NcAmRjK0-1592923457046)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622231013519.png)]

二:系統引導和登錄控制

在互聯網環境中,大部分服務器是通過遠程登陸的方式來進行管理的,而本地引導和終端登陸過程往往容易被忽視,從而留下安全隱患。

2.1:開關機安全控制

對於服務器主機,其物理環境的安全防護是非常重要的,不僅要保持機箱完好、機櫃鎖閉,還要嚴格控制機房的人 員進出、硬件設備的現場接觸等過程。在開關機安全控制方面,除了要做好物理安全防護以外,還要做好系統本身的一些安全措施 。

2.1.1:調整BIOS引導設置

  • 將第一引導設備設爲當前系統所在硬盤
  • 禁止從其他設備(光盤,U盤,網絡)引導系統
  • 將安全級別設爲setup,並設置管理員密碼

2.1.2:禁止Ctrl+Alt+Del快捷鍵重啓

先查看/etc/inittab 的文件,並且將ctrl-ait-delete的文件位置註釋掉

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-XZAGkEaJ-1592923457046)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622231953613.png)]

2.1.3:GRUB限制

  • 使用grub2-mkpasswd-pbkdf2生成祕鑰
  • 修改/etc/grub.d/00_header文件中,添加密碼記錄
  • 生成新的grub.cfg配置文件

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-xjAeusKp-1592923457046)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622232111591.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-LqP721aC-1592923457047)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622232126811.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-WP8cQx0H-1592923457047)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200622232145926.png)]

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通而放棄掃描。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-UL5rvf1M-1592923457049)(C:\Users\kevin\AppData\Roaming\Typora\typora-user-images\image-20200623000731426.png)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章