一、系統安全
1.使用者管理
(1)删除長時間不使用的使用者
userdel [-r] 使用者名
選項
-r:删除指定使用者家目錄
(2)設定程式使用者Shell為不允許登陸系統
usermod -s /sbin/nologin 使用者
(3)臨時使用使用者(設定使用者的最長使用期限)
chage -E "時間" 使用者 //設定賬号失效時間
chage -l 使用者 //檢視賬号的密碼控制資訊(如最短、最長密碼使用時間等)
(4)鎖定檔案,該檔案不能被删除(粘滞位)
①針對檔案的粘滞位,root使用者也受到限制
chattr +i /etc/passwd && chattr +i /etc/shadow //指定檔案将不能删除
chattr -i /etc/passwd && chattr -i /etc/shadow //移除指定檔案的粘滞位
lsattr <檔案> //檢視指定使用者是否設定粘滞位
②檔案或目錄的粘滞位,所有者和root使用者不受限制
chmod o+t <目錄/檔案> //給指定目錄/檔案設定粘滞位
chmod o-t <目錄/檔案> //給指定目錄/檔案取消粘滞位
ls -ld <目錄> //檢視目錄的粘滞位設定情況(t權限位)
(5)設定密碼有效期
已存在使用者
passwd -S 使用者 //檢視使用者密碼狀态
passwd -x 天數 使用者 //設定密碼的有效期
建立的使用者
vim /etc/login.defs //更改預設建立使用者參數的檔案
PASS_MAX_DAYS 天數
2.Linux特權權限
作用
SUID:對二進制檔案生效,使普通使用者以所有者的權限執行檔案
SGID:對目錄生效,保持原目錄的所有組
Stickybit:防止使用者删除檔案/目錄,針對其他使用者設定,root使用者無效
格式
SUID:[chmod u+s | u-s] 檔案
SGID:[chmod g+s | g-s] 目錄
Stickybit(粘滞位):chmod [o+t | o-t] 檔案/目錄
八進制:SUID=4、SGID=2、Stickybit=1
例:
chmod u+s /tmp/2333.txt
//設定檔案擁有SUID(使用者在執行檔案時有所有者的權限)
chmod g+s /tmp/2333.txt
//設定檔案擁有SGID(使用者在執行檔案時有所有組的權限)
chmod 4755 檔案/目錄
//設定檔案或目錄擁有SUID及所有者擁有完全權限,所有組擁有讀取、執行權限,其它使用者擁有讀取、執行權限
二、su、sudo
1.su:切換指定使用者
文法
su [-] 使用者
vim /etc/pam.d/su //修改pam配置檔案
auth required pam_wheel.so use_uid //PAM子產品認證,隻有屬于wheel組使用者可切換到root
檢視安全認證日志檔案
tail -f /var/log/secure
注:需配合遠端控制,設定root使用者禁止遠端登陸
2.sudo:臨時提權,普通使用者臨時以root身份執行指令
vim /etc/sudoers或visudo //編輯sudo配置檔案,預設不能直接使用
[使用者名] [主機] [指令]
注:指令可取反,如!/bin/(表示除/bin/目錄外)
u01 ALL=(ALL) ALL //允許u01使用者使用sudo以root身份執行所有指令
u01 ALL=(ALL) ALL,!/sbin/reboot //允許u01使用者使用sudo以root身份執行所有指令,除了/sbin/reboot
(1)檔案中設定别名
Cmnd_Alias 别名(大寫)=指令 //定義指令别名
User_Alias 别名(大寫)=使用者名 //定義使用者别名
Host_Alias 别名(大寫)=網段,IP位址 //定義主機名稱
Cmnd_Alias CMD=ALL,!/sbin/reboot //定義指令别名,CMD=ALl,!/sbin/reboot
User_Alias USER=u01,u02 //定義使用者别名,USER=u01,u02
Host_Alias HOST=192.168.10.44 //定義主機名稱,HOST=192.168.10.44
USER HOST=CMD //允許USER别名(u01、u02使用者)在HOST别名(192.168.10.44)執行CMD别名(ALL,!/sbin/reboot)
(2)日志記錄
vim /etc/sudoers //修改sudo配置檔案
Defaults logfile=/var/log/sudo //定義日志記錄并指定存儲位置
tail -f /var/log/sudo //動态檢視sudo日志檔案
sudo -l //檢視目前使用者所有sudo能執行的指令
注:預設使用者使用sudo後,保留5分鐘時間,5分鐘内使用者不需再次輸入目前使用者密碼
三、系統管理
1.自動清空曆史指令
vim ~/.bashrc //使用者登陸時自動清空曆史指令
echo "" >~/.bash_history
history -c //清楚目前使用者登陸終端曆史指令(再次登陸依然存在)
vim /etc/profile
HISTSIZE=0 //更改曆史指令記錄數量
2.終端超過閑置時間後自動登出
vim /etc/profile //全局變量定義檔案(所有使用者生效)
TMOUT=秒數 //指定終端逾時時間
vim ~/.bash_profile //隻對目前使用者生效
TMOUT=秒數 //指定終端逾時時間
四、開關機安全控制
1.禁用Ctrl-Alt-Delete熱鍵
vim /etc/init/control-alt-delete.conf
注釋掉最後一行(加#)
2.GRUB菜單限制
明文密碼
vim /boot/grub/grub.conf
password 密碼 //title之前
密文密碼
grub-md5-crypt //将輸入的字元串使用md5方式轉換
vim /boot/grub/grub.conf
password --md5 加密字元串 //title之前
3.減少tty終端數量
vim /etc/sysconfig/init
ACTION_CONSOLES=/dev/tty[1-6] //改動tty[1-6]數值可實作控制
4.禁止普通使用者登入
touch /etc/nologin //建立檔案nologin,所有使用者無法登陸(除root)
rm -rf /etc/nologin //解鎖,普通可登入
5.掃描
nmap -A -O -PO -vv 網段/IP/域名 //掃描指定主機的OS、端口、MAC等資訊
-PO:主機禁止ping時,可強制掃描
-sU:掃描UDP
-sT:掃描TCP
-p:掃描指定端口