Linux-centos7-系統安全及應用 理論+實操演示(賬號安全,用戶安全與提權,PAM安全認證,系統引導和登錄安全,密碼安全,端口掃描)

前言

作爲一種開放源代碼的操作系統,Linux服務器以其安全,高效和穩定的顯著優勢得以廣泛應用
可以從賬號安全控制,系統引導和登錄控制的角度控制Linux系統的安全優化
還可以使用基於Linux系統環境的弱口令檢測,網絡掃描等安全工具,查找隱患,及時採取有針對性的防護措施

一:賬號安全控制

1.1:賬號安全基本措施

1.1.1:系統賬號清理

將非登錄用戶的Shell設爲/sbin/nologiin

在Linux系統中,除了用戶手動創建的各種賬號之外,還包括隨系統或程序安裝過程而產生的其他大量賬號

除了root之外,其他大量賬號只是用來維護系統運作,啓動或保持服務進程,一般是不允許登錄的,也稱爲非登錄用戶

常見的非登錄用戶包括bin,daemon,adm,lp,mail,nobody,apache,mysql,dbus,ftp,gdm,haldaemon等。

爲了確保系統安全,這些用戶的登錄shell通常是/sbin/nologin,表示禁止終端登錄,應確保不被人爲改動
在這裏插入圖片描述

在這裏插入圖片描述

對於長期不用的用戶賬號,若無法確定是否刪除,可以暫時將其鎖定,(passwd,usermod命令都可以用來鎖定和解鎖賬號)

在這裏插入圖片描述

在非登錄用戶中,還有一部分是很少用到的,如news,uucp,games,gopher等,這些用戶可視爲冗餘賬號,可以直接刪除

此外,還有一些隨着應用程序安裝的用戶賬號,若程序卸載以後未能自動刪除,需要人爲手動刪除

鎖定賬號文件passwd,shadow

如果服務器中的用戶賬號已經固定,不在進行更改,還可以採取鎖定賬號配置文件的方法

使用chattr命令,分別結合“+i”“-i”選項來鎖定,解鎖文件,使用lsattr命令可以查看文件鎖定情況

chattr命令基本格式
chattr +i [目標文件] ‘鎖定目標文件’
chattr -i [目標文件] ‘解鎖目標文件’
lsattr [目標文件] ‘查看目標文件’

在賬號文件被鎖定的情況下,其內容將不允許變更,因此無法添加,刪除賬號,也不能更改用戶的密碼,登錄shell,宿主目錄等屬性信息
在這裏插入圖片描述
在這裏插入圖片描述

1.1.2:密碼安全控制

設置密碼有效期

在不安全的網絡環境中,爲了降低密碼被猜出或者被暴力破解的風險,用戶應養成定期修改密碼的習慣,避免長期使用同一個密碼。

管理員可以在服務器端限制用戶密碼的最大有效天數

對於密碼已經過期的用戶,登錄時將被要求重新設置密碼,否則拒絕登錄

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在某些情況下會要求用戶初次登錄的時候必須更改密碼

例如,強制要求用戶test2下次登錄時重設密碼 ‘(重設的密碼有密碼複雜性要求,例如不可是連續的數字,連續的字母等)’

在這裏插入圖片描述
在這裏插入圖片描述

1.1.3:命令歷史,自動註銷

命令歷史限制

減少記錄的命令條數:bash終端環境中,歷史命令的記錄條數由變量HISTSIZE控制,默認爲1000條。通過修改/etc/profile文件中的HISTSIZE變量值,可以影響系統中 的所有用戶

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
註銷時自動清空命令歷史:修改用戶宿主目錄中的~/.bash_logout文件,添加清空歷史命令的操作語句。即:當用戶註銷(退出已登錄的bash環境)時,所記錄的歷史命令將自動清空
在這裏插入圖片描述
在這裏插入圖片描述

或者
使用vi /etc/profile,將其中的history值改爲0
但是將history值改爲0後,↑無法顯示剛剛輸入的命令。

終端自動註銷

bash終端環境中,可以設置一個閒置超時時間,當超過指定時間沒有任何輸入時即自動註銷終端,這樣可以有效避免當管理員不在時其他人員對服務器的誤操作風險。閒置時間有變量TMOUT來控制,默認單位爲秒
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

1.2:用戶切換與提權

大多數Linux服務器並不建議用戶直接以root用戶進行登錄。

一方面可以大大減少因誤操作而導致的破壞

另一方面也降低了特權密碼在不安全的網絡中被泄露的風險

su ,sudo 兩種命令

su命令主要用來切換用戶

sudo命令用來提升執行權限

1.2.1:su 命令 -切換用戶

使用su命令,可以切換爲指定的另一個用戶,從而具有該用戶的所有權限

切換時需要對目標用戶的密碼進行驗證(從root用戶切換爲其他用戶不需要)

su命令基本格式(Substitute User,切換用戶)
su - 目標用戶
在這裏插入圖片描述
上述操作中,“-”等同於“–login”“-l”,表示切換後進入目標用戶的登錄shell環境。若缺少此選項則僅切換身份,不切換用戶環境
在這裏插入圖片描述

1.2.2限制使用su命令的用戶

1.將允許使用su命令的用戶加入wheel組
在這裏插入圖片描述
在這裏插入圖片描述
2.啓用pam_wheel認證模塊在這裏插入圖片描述
在這裏插入圖片描述
啓用pam_wheel認證以後,未加入到wheel組內的其他用戶將無法使用su命令
嘗試進行切換時將會按照“拒絕權限”來處理,從而將切換用戶的權限控制在最小範圍內
/pam.d 服務模塊目錄
使用su命令切換用戶的操作將會記錄到安全日誌/var/log/secure文件中,可以根據需要進行查看在這裏插入圖片描述
在這裏插入圖片描述

1.3:Linux中的PAM安全認證

1.3.1:su命令的安全隱患

默認情況下,任何用戶都允許使用su命令,從而有機會反覆嘗試其他用戶的登錄密碼,帶來風險

藉助pam_wheel認證模塊,可以實現指定允許的用戶使用su命令

1.3.2:PAM認證原理

PAM(Pluggable Authentication Modules)可插拔式認證模塊,它是一種高效而且靈活便利的用戶級別的認證方式,它也是當前Linux服務器普遍使用的認證方式
在這裏插入圖片描述

1.3.3:PAM認證的構成

在這裏插入圖片描述
在這裏插入圖片描述
查看su的PAM配置文件:cat /etc/pam.d/su

每一行都是一個獨立的認證過程

每一行可以區分爲三個字段(認證類型,控制類型,PAM模塊及其參數)

1.3.4: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中,授權記錄的基本配置格式
用戶 主機名列表 = 命令程序列表
命令程序列表是絕對列表

例如:
在這裏插入圖片描述在這裏插入圖片描述用戶在本地主機擁有以下權限 (/sbin下的所有權限,除了/sbin/ifconfig,除了/sbin/route權限)’
*:通配符號
!:取反符號
%:代表組在這裏插入圖片描述

1.4.4:sudo實驗

我們現在用wangwu和lisi這兩個用戶來做修改ip地址的sudo實驗

在這裏插入圖片描述
在這裏插入圖片描述

1.4.5:查看sudo操作記錄

查看sudo操作記錄

需啓用Defaults logfile 配置

默認日誌文件:/var/log/sudo

[root@localhost ~]# visudo ‘vi sudo配置文件’
在配置文件中添加
Defaults logfile = “/var/log/sudo” ‘將之添加至配置文件中’
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述

二:系統引導和登錄控制

2.1:開關機安全控制

2.1.1:調整BIOS引導設置

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

2.1.2:GRUB限制

使用grub2-mkpasswd-pbkdf2生成祕鑰
修改/etc/grub.d/00_header文件中,添加密碼記錄
生成新的grub.cfg配置文件
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

2.1.3:禁用ctrl+alt+del 鍵盤

在這裏插入圖片描述

2.2:終端登錄安全控制

2.2.1:限制root只在安全終端登錄

安全終端配置:/etc/securetty

在這裏插入圖片描述
在這裏插入圖片描述

2.2.2:禁止普通用戶登錄

建立/etc/nologin文件

在這裏插入圖片描述
在這裏插入圖片描述
‘一般做維護的時候使用(只有root用戶可以登錄,其他用戶不可登錄)’
在這裏插入圖片描述

三:弱口令檢測

3.1:Joth the Ripper,簡稱爲 JR

一款密碼分析工具,支持字典式的暴力破解
通過對shadow文件的口令分析,可以檢測密碼強度
資源有需要可以私我

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

四:端口掃描

4.1:NMAP

一款強大的網絡掃描,安全檢測工具

可以探測局域網中那些主機在線,或者某臺主機中開了那些端口

NMAP的掃描語法

nmap [掃描類型] [選項] <掃描目標…>

常用的掃描類型

-sS,-sT,-sF,-sU,-sP,-P0

-sT:TCP端口

-sU:UDP端口

-sP:ping

4.2:nmap實驗

在這裏插入圖片描述
在這裏插入圖片描述

4.3 常見用法

1、查看1-200之間的端口是否開放

nmap -p 1-200 192.168.255.130

2、指定端口

nmap -p 22 192.168.255.130

作用
檢測網絡上的主機
檢測主機上開放的端口
檢測操作系統,硬件地址,以及軟件版本
檢測脆弱性的漏洞(Nmap的腳本)

3. 掃描方式

  1. -sS Tcp SYN Scan 不需要三次握手,速度快

優點:半開放掃描,Nmap發送SYN包到遠程主機,但是它不會產生任何會話,目標主機幾乎不會把連接記入系統日誌。(防止對方判斷爲掃描攻擊),掃描速度快,效率高,在工作中使用頻率最高

缺點:它需要root/administrator權限執行

  1. -sT Tcp connect() scan ,默認掃描模式,三次握手,需要調用系統的connect().
    優點:你勿需root權限。普通用戶也可以使用。
    缺點:這種掃描很容易被檢測到,在目標主機的日誌中會記錄大批的連接請求以及錯誤信息,由於它要完成3次握手,效率低,速度慢,建議使用-sS

  2. -sU

Udp scan(sU) 顧名思義,這種掃描技術用來尋找目標主機打開的UDP端口.它不需要發送任何的SYN包,因爲這種技術是針對UDP端口的。UDP掃描發送UDP數據包到目標主機,並等待響應,

如果返回ICMP不可達的錯誤消息,說明端口是關閉的,如果得到正確的適當的迴應,說明端口是開放的.udp端口掃描速度比較慢

  1. -sF:也是tcp的掃描一種,發送一個FIN標誌的數據包

FIN scan(sF)

有時候TcpSYN掃描不是最佳的掃描模式,因爲有防火牆的存在.目標主機有時候可能有IDS和IPS系統的存在,防火牆會阻止掉SYN數據包。發送一個設置了FIN標誌的數據包並不需要完成TCP的握手.

和sS掃描效果差不多,比sT速度快

4. 選項

1、Nmap進行完整全面的掃描
nmap –T4 –A –v

-A   進攻性(Aggressive)方式掃描

-T4  指定掃描過程使用的時序(Timing),總有6個級別(0-5),級別越高,掃描速度越快,但也容易被防火牆或IDS檢測並屏蔽掉,在網絡通訊狀況良好的情況推薦使用T4;
-v   表示顯示冗餘(verbosity)信息,在掃描過程中顯示掃描的細節,從而讓用戶瞭解當前的掃描狀態。

5.常見端口

21 ftp 文件傳輸協議(FTP)端口;有時被文件服務協議(FSP)使用
22 ssh 安全 Shell(SSH)服務
23 telnet Telnet 服務
25 smtp 簡單郵件傳輸協議(SMTP)
42 nameserver 互聯網名稱服務
53 domain 域名服務(如 BIND)
80 http 用於萬維網(WWW)服務的超文本傳輸協議(HTTP)
110 pop3 郵局協議版本3
123 ntp 網絡時間協議(NTP)
143 imap 互聯網消息存取協議(IMAP)
161 snmp 簡單網絡管理協議(SNMP)
389 ldap 輕型目錄存取協議(LDAP)

443 https 安全超文本傳輸協議(HTTP)
873 rsync rsync 文件傳輸服務

3306 mysql MySQL 數據庫服務

5044 logstash

5601 kibana

9200 elasticsearch

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