安全
賬號安全
1將使用者設定為無法登入
利用chsh -s 將使用者的shell更改為/sbin/nologin
[root@localhost ~]# useradd aa
[root@localhost ~]# tail -1 /etc/passwd
aa:x:1002:1002::/home/aa:/bin/bash
[root@localhost ~]# chsh -s /sbin/nologin aa
Changing shell for aa.
Shell changed.
[root@localhost ~]# tail -1 /etc/passwd
aa:x:1002:1002::/home/aa:/sbin/nologin
2鎖定使用者
使用命令passwd -l 使用者名稱 來鎖定使用者密碼
[root@localhost ~]# passwd -l asdjkl
鎖定使用者 asdjkl 的密碼 。
passwd: 操作成功
[root@localhost ~]# passwd -u asdjkl
解鎖使用者 asdjkl 的密碼。
passwd: 操作成功
3刪除賬戶
定期刪除不用的賬戶以防其他人透過不用的賬戶登入伺服器修改資料
4鎖定配置檔案
配置檔案內有系統的基本配置,若其他人透過開啟配置檔案。修改配置檔案來更改系統 ,從而使伺服器系統檔案破壞。
密碼安全控制
透過定期修改密碼來保護伺服器安全
passwd #來更改登入使用者密碼
[root@localhost ~]# tail -5 /etc/shadow
#修改密碼有效期限,促使使用者定期 修改密碼
對於新建使用者
可以修改 /etc/login.defs 檔案裡的內容來設定密碼規則從而 促使使用者修改密碼
tail -5 /etc/shadow 修改密碼有效期限
chage [選項] 使用者名稱
-m:密碼可更改的最小天數。為零時代表任何時候都可以更改密碼。
-M:密碼保持有效的最大天數。
-E:帳號到期的日期。過了這天,此帳號將不可用。
-i:停滯時期。如果一個密碼已過期這些天,那麼此帳號將不可用。
-l:例出當前的設定。由非特權使用者來確定他們的密碼或帳號何時過期。
[root@localhost ~]# chage -M 30 aa
[root@localhost ~]# cat /etc/shadow|tail -1
aa:!!:19831:0:30:7:::
[root@localhost ~]# chage -d 0 aa
切換使用者
su命令即 switch user,命令可以切換使用者身份,並且以指定使用者的身份執行命令
[root@localhost ~]# su asdjkl
[asdjkl@localhost root]$ su root
密碼:
[root@localhost ~]#
PAM相關檔案
PAM(可插拔認證模組)將系統提供的服務 和該服務的認證方式分開,使得系統管理員可以靈活地根據需要給不同的服務配置不同的認證方式而無需更改服務程式,同時也便於向系統中新增新的認證手段。
1.作用
提供不同 的外掛來提供
2.認證原理
認證順序Service(服務)-----PAM(配置檔案)------pam_*.so
3.認證的構成
檢視su的PAM配置 檔案
[root@localhost ~]# cat /etc/pam.d/su
#%PAM-1.0
auth sufficient pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required pam_wheel.so use_uid
auth substack system-auth
auth include postlogin
account sufficient pam_succeed_if.so uid = 0 use_uid quiet
account include system-auth
password include system-auth
session include system-auth
session include postlogin
session optional pam_xauth.so
4.認證的型別
(1)認證管理
對使用者的密碼進行管理和認證
(2)賬戶管理
檢查賬戶是否被允許登入系統,賬戶是否過期,賬戶的 登入時間限制
(3)密碼管理
修改使用者的密碼
(4)會話管理
提供對會話的管理和記帳
5.控制型別
required:無論驗證失敗或成功仍然繼續,但錯誤輸出結果不變
requisite:驗證失敗則立即結束整個驗證過程
sufficient:驗證成功 則立即返回,不再繼續,否則忽略結果並繼續
optional:不用於驗證,只是顯示資訊
sudo
透過sudo命令授權使用者使用某些命令
sudo 的配置檔案所存放的位置預設是在/etc/sudoers,屬性必須為0440,除了超級管理員以外的都不可以更改
[root@localhost ~]# vim /etc/sudoers
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
##
## This file must be edited with the 'visudo' command.
-------------------------------------------------------------------------------------
aa@localhost root]$ vim /etc/sudoers
~
~
~
~
~
~
"/etc/sudoers" [許可權不足]
透過vim /etc/sudoers或visudo進入配置檔案中
[root@localhost ~]# visudo
.....
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL #在這行下新增sudo 的命令
lisi ALL= /usr/bin/mount /dev/sr0 /mnt/
使用者名稱 登入主機 (代表使用者) 執行的命令
新增成功後示列:
[root@localhost ~]# su lisi
[lisi@localhost root]$ mount /dev/sr0 /mnt/
mount: 只有 root 能執行該操作
[lisi@localhost root]$ sudo mount /dev/sr0 /mnt/
我們信任您已經從系統管理員那裡瞭解了日常注意事項。
總結起來無外乎這三點:
#1) 尊重別人的隱私。
#2) 輸入前要先考慮(後果和風險)。
#3) 權力越大,責任越大。
[sudo] lisi 的密碼:
mount: /dev/sr0 防寫,將以只讀方式掛載
mount: /dev/sr0 已經掛載或 /mnt 忙
/dev/sr0 已經掛載到 /run/media/root/CentOS 7 x86_64 上
/dev/sr0 已經掛載到 /mnt 上
子目錄
在/etc/sudoers.d/下建立子目錄
grub 加密
Linux中在進入系統時可以透過e鍵進入grub介面
在grub介面可以強制更改系統指令,有危害系統安全的情況,所以透過對grub加密進行安全防護
定義每個選單項的所有指令碼都存放在/etc/grub.d目錄中
檔案 | 描述 |
---|---|
00_header | 設定grub預設引數 |
10_linux | 系統中存在多個linux版本 |
20_ppc_terminfo | 設定tty控制檯 |
30_os_prober | 設定其他分割槽中的系統(硬碟中有多個作業系統時設定) |
40_custom和41_custom | 使用者自定義的配置 |
暴力破解密碼
[root@localhost ~]# cd data
[root@localhost data]# rz -E #將檔案下載下來
rz waiting to receive.
[root@localhost data]# ls
john-1.8.0.tar.gz
[root@localhost data]# tar xf john-1.8.0.tar.gz
#解壓工具包
[root@localhost data]# ls
john-1.8.0 john-1.8.0.tar.gz
[root@localhost data]# cd john-1.8.0/
[root@localhost john-1.8.0]# yum install -y gcc gcc-c++ make
#安裝軟體編譯工具
[root@localhost john-1.8.0]# ls
doc README run src
[root@localhost john-1.8.0]# cd src
#切換到src子目錄
[root@localmake clean linux-x86-64
#進行編譯安裝
[root@localcp /etc/shadow /opt/shadow.txt
#準備待破解的密碼檔案
[root@localhost ~]# cd /root/data/john-1.8.0/run
#切換到data/john-1.8.0/run下
[root@localhost run]# ./john /opt/shadow.txt
#執行暴力破解,需要等待時間,密碼越簡單速度越快
Loaded 3 password hashes with 3 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
123 (lisi)
123 (asdjkl)
123 (root)
3g 0:00:00:23 100% 2/3 0.1279g/s 378.4p/s 386.6c/s 386.6C/s 123456..pepper
Use the "--show" option to display all of the cracked passwords reliably
Session completed