Linux系統安全基礎應用(一) -- 理論部分

[系統賬號清理]

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

  • 如bin,daemon,adm,lp,mail,nobody,apache,mysql,dbus,ftp,gdm,haldaemon等

鎖定長期不使用的賬號

  • usermod -L abc //鎖定賬號

  • usermod -U abc //解鎖賬號

  • passwd -S //查看賬號狀態

刪除無用的賬號

  • 如new,uucp,games,gopher等

鎖定賬號文件passwd、shadow

  • chattr +i /etc/passwd /etc/shadow //鎖定文件

  • chattr -i /etc/passwd /etc/shadow //解鎖文件

  • lsattr /etc/passwd /etc/shadow //查看鎖定狀態

182106370.png


[密碼安全控制]

設置密碼有效期

[root@steven ~]# vi /etc/login.defs   #適用於新建的用戶
……
PASS_MAX_DAYS    30
[root@steven ~]# chage -M 30 lisi     #使用於已有的lisi用戶


要求用戶下次登錄時修改密碼

[root@steven ~]# chage -d 0 zhangsan  #強制在下次登錄時更改密碼


[命令歷史限制]

減少記錄的命令條數

[root@steven ~]# vi /etc/profile
……
HISTSIZE=200         #適用於新登錄用戶
export HISTSIZE=200  #適用於當前用戶

註銷時自動清空命令歷史

[root@steven ~]# vi ~/.bash_logout
……
history -c
clear


[終端自動註銷]

閒置600秒後自動註銷

[root@steven ~]# vi ~/.bash_profile
……
export TMOUT=600


[su用途及用法]

  • 用途:Substitute User,切換用戶

  • 格式:su - 目標用戶

  • "-"等同於"--login"或"-l",表示切換後進入目標用戶的登錄shell環境

密碼驗證

  • root → 任意用戶, 不驗證密碼

  • 普通用戶 → 其他用戶,驗證目標用戶的密碼

210929563.png

210929237.png


限制使用su命令的用戶

  • 啓用pam_wheel認證模塊

[root@steven ~]# vim /etc/pam.d/su
#%PAM-1.0
auth        required    pam_wheel.so use_uid
  • 將允許使用su命令的用戶加入wheel組

[root@steven ~]# gpasswd -a abc wheel
Adding user abc group wheel


查看su操作記錄

安全日誌文件:/var/log/secure


[sudo用途及用法]

  • 用途:以其他用戶身份(如root)執行授權的命令

  • 用法:sudo 授權命令

密碼驗證

  • 初次執行sudo命令時,驗證當前用戶的密碼

  • 不需驗證目標用戶的密碼


配置sudo授權

  • visudo 或者 vi /etc/sudoers

  • 記錄格式:用戶 主機名列表=命令程序列表

[root@steven ~]# visudo
……
%wheel        ALL=NOPASSWD: ALL
jerry         localhost=/sbin/ifconfig
#支持“*”通配,“!”取反
syriane       localhost=/sbin/*,!/sbin/ifconfig,!/sbin/route
#支持命令別名,類似別名還包括:User_Alias、Host_Alias
Cmnd_Alias    PKGTOOLS=/bin/rpm,/usr/bin/yum
mike          localhost=PKGTOOLS


查看sudo操作記錄

  • 需啓用 Defaults logfile 配置

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

[root@steven ~]# visudo
……
Defaults logfile = "/var/log/sudo"


查詢授權的sudo操作

sudo -l

[abc@steven ~]$ sudo -l
[sudo] password for syrianer:    #初次使用sudo時需驗證當前用戶的密碼
……
User syrianer may run the following commands on this host:
    (root) /sbin/*, (root) !/sbin/ifconfig, (root) !/sbin/route
#默認超時爲5分鐘,在此期間不再重複驗證
[abc@steven ~]$ sudo /sbin/fdisk -l
……
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14       10443    83778975   8e  Linux LVM


[開關機安全控制]

調整BIOS引導設置

  • 將第一引導設備設爲當前系統所在硬盤

  • 禁止從其他設備(光盤、U盤、網絡)引導系統

  • 將安全級別設爲setup,並設置管理員密碼


禁用重啓熱鍵Ctrl+Alt+Del

  • 避免因用戶誤操作導致重啓

[root@steven ~]# vi /etc/inittab
……
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
[root@steven ~]# init q   #重新讀取配置


GRUB菜單限制

  • 未經授權禁止修改啓動參數

  • 未經授權禁止進入指定系統

密碼設置方式(grub.conf)

  • password 明文密碼串

  • password --md5 加密密碼串

密碼記錄的位置

  • 全局部分(第一個“title”之前)

  • 系統引導部分(每個“title”部分之後)


GRUB限制的實現

使用grub-md5-crypt獲得加密字串

[root@steven ~]# grub-md5-crypt
Password:
Retype password:
$1$Kndw50$wRW2w1v/jbZ8n5q2fON4y/


修改grub.conf文件,添加密碼記錄

[root@steven ~]# vi /boot/grub/grub.conf
……
password --md5 $1$Kndw50$wRW2w1v/jbZ8n5q2fON4y/
title Red Hat Enterprise Linux Server (2.6.18-194.el5)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00
    initrd /initrd-2.6.18-194.el5.img


修改系統登錄提示

  • 本機登錄提示:/etc/issue

  • 網絡登錄提示:/etc/issue.net


減少開放終端個數

[root@steven ~]# vi /etc/inittab
……
#禁用三個終端:tty1、tty2、tty3
# Run gettys in standard runlevels
#1:2345:respawn:/sbin/mingetty tty1
#2:2345:respawn:/sbin/mingetty tty2
#3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
[root@steven ~]# init q


限制root只在安全終端登錄

  • 安全終端配置:/etc/securetty

[root@steven ~]# vi /etc/securetty
……
#禁止root用戶從終端tty5、tty6登錄
tty1
tty2
tty3
tty4
#tty5
#tty6


禁止普通用戶登錄

  • 建立/etc/nologin文件

  • 刪除nologin文件或重啓後即恢復正常

[root@steven ~]# touch /etc/nologin  #禁止普通用戶登錄
[root@steven ~]# rm -rf /etc/nologin  #取消上述登錄限制
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章