Linux主機安全配置詳解
系統安全分爲:
第一部分:
BIOS密碼,更改合適啓動選項(禁止改bios/禁止更改第一啓動選項,防止惡意的引導)
GRUB密碼
系統密碼(密碼策略)
分區加密
第二部分:
最小權限法(su/sudo)
最小服務法
文件安全(suid/sgid/stick/chattr)
pam模塊的使用
升級系統和軟件
系統安全:
BIOS密碼(bios/cmos)
調整BIOS引導設置
修改啓動順序,正確做法:第一啓選項爲磁盤
設置管理密碼
禁用Ctrl+Alt+Del重啓熱鍵
RHEL5:
# vim /etc/inittab
32 #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# init q--讓更改的配置馬上生效,不需要重啓服務器。
RHEL6:
# vim /etc/init/control-alt-delete.conf --註釋以下兩行
#start on control-alt-delete
#exec /sbin/shutdown -r now "Control-Alt-Delete pressed"
# init q
GRUB密碼
--加密引導菜單的作用:修改啓動參數時需要驗證密碼
--進入所選擇的系統前需要驗證密碼
在grub.conf文件中設置密碼的方式
password 明文密碼串
password --md5 加密密碼串
密碼設置行的位置
全局部分(第一個“title”之前)
系統引導參數部分(每個“title”部分之後)
# grub-md5-crypt
$1$Qq15d$bEjy8VeMCrNcIJCEESqyY/
# vim /boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
password --md5 $1$Qq15d$bEjy8VeMCrNcIJCEESqyY/--修改啓動菜單時需要輸入此密碼
title Red Hat Enterprise Linux Server (2.6.18-8.el5)
password 123456--啓動某個系統時需要輸入的密碼,一般不設置
root (hd0,0)
……
系統策略(密碼策略)
1.檢查系統中有無空密碼賬號:
# awk -F: '($2 == "") {print}' /etc/shadow
# awk -F: '($2 == "") {print}' /etc/passwd
2.檢查系統中有無多餘的管理員賬號:
# awk -F: '($3 == "0") {print}' /etc/passwd
3.設置賬號的屬性:
賬號的過期時間設置:
# usermod -e 2012-10-1 u01--修改一個已經存在的賬號的過期時間
# useradd -e 2012-10-1 02--在新建用戶時指定過期時間
# chage -M 30 -m 7 -W 7 -I 3 userName
# chage -d 0 userName
-M多長時間改一次密碼
-m修改密碼的最小間隔
-W密碼過期警告時間
-I密碼過期延時時間
-d定義最一次修改密碼的時間,-d 0從來都沒改過密碼,所以第一次登錄時需要修改密碼
4.檢查程序用戶的登錄Shell是否異常
# awk -F: '$7!="/sbin/nologin" {print $1,$7}' /etc/passwd
5.減少記錄命令歷史的條數
環境變量 HISTSIZE
# vim /etc/profile
HISTSIZE=50
6.設置在命令行界面中超時自動註銷(shell的超時時間)
環境變量 TMOUT
# vim /etc/profile
TMOUT=300
7、記錄用戶的每個命令操作(錄屏):
# vim /etc/profile
exec /usr/bin/script -t 2>/tmp/$USER-$UID-`date +%Y%m%d%H%M`.date -a -f -q /tmp/$USER-$UID-`date +%Y%m%d%H%M`.log
# last--查看所有用戶在線的情況
# lastlog--查看用戶最後一次登錄的時間
/var/log/wtmp
# lastb--查看用戶登錄失敗記錄
# /var/log/secure--跟驗證相關的日誌信息在記錄在此文件
給一個已經存在的分區加密( i/o-->disk-->partion-->crypt-->logic_partion(ext3))
1.進入單用戶模式
telinit 1
2.Cpoy data and unmount your existing /home:
cp -a /home/* /backup
umount /home
3.如何無法卸載,可以使用強制殺死訪問這個分區程序,然後再次卸載:
fuser -mvk /home
4.確認分區是否還被掛載着:
grep home /proc/mounts
5.給分區設置加密(加密的分區是無法訪問的)
# rpm -q cryptsetup-luks--確認加密工具是否已經安裝
# cryptsetup --verbose --verify-passphrase luksFormat /dev/VG00/LV_home
YES--回答大寫的yes,這一步會把分區原來所有的數據全部清空
6.給加密分區設置映射名稱:
cryptsetup luksOpen /dev/VG00/LV_home home
7.映射設備存放的路徑:/dev/mapper/home
ls -l /dev/mapper | grep home
8.格式化分區
mkfs.ext3 /dev/mapper/home
9.掛載分區
mount /dev/mapper/home /home
10.Make sure the file system is visible:
df -h | grep home
實現加密分區的自動掛載:
# vim /etc/crypttab
xxx/home/mapper/GLSvg-lv_home/root/.password
映射設備原始設備加密密碼
# vim /root/.password--輸入假密碼,不需要寫真密碼,提高安全性
uplooking
# chmod 600 /root/.password
# cryptsetup luksAddKey /dev/mapper/GLSvg-lv_home /root/.password--告知設備密碼驗證文件存儲路徑
Enter any LUKS passphrase:
Verify passphrase:
key slot 0 unlocked.
Command successful.
# vim /etc/fstab
/dev/mapper/xxx /mnt ext3 defaults 1 2
# reboot--檢驗一下是否能夠開機自動掛載