天天看點

Linux系統安全

一、系統安全

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:掃描指定端口           

繼續閱讀