系统安全常规优化
用户账号安全优化
1禁用(锁定)zhangsan用户
用passwd –l
[root@s2 ~]# passwd -l zhangsan
Locking password for user zhangsan.
passwd: Success
或 者 直接修改shadow文件,密码字符串前加!
[root@s2 ~]# vi /etc/shadow
zhangsan:!!:14724:0:99999:7:::
2、将不需要使用终端的用户的登录shell改为/sbin/nologin
[root@s2 ~]# vi /etc/passwd
zhangsan:x:500:500::/home/zhangsan:/sbin/nologin
或者
[root@s2 ~]# usermod -s /sbin/nologin zhangsan
3限制用户的密码有效期
PASS_MAX_DAYS 30 //只对新建立的用户有效
或者
[root@s2 ~]# chage -M 30 zhangsan //只对已存在的用户有效
4、指定用户在下次登录时必须修改密码
[root@s2 ~]# chage -d 0 zhangsan
或者
zhangsan:!!:0:0:30:7::: 第三列改为0
5、限制密码的最小长度
[root@s2 ~]# vi /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3
6、限制记录命令历史的条数
[root@s2 ~]# vi /etc/profile
HISTSIZE=1000
7、设置超时自动注销终端
[root@s2 ~]# vi /etc/profile
TMOUT=600
使用su 切换用户身份
8、如何拒绝使用su – 切换用户
[root@s2 ~]# vi /etc/pam.d/su
auth required pam_wheel.so use_uid
9、允许zhangsan使用su – 切换用户
[root@s2 ~]# gpasswd -a zhangsan wheel
Adding user zhangsan to group wheel
使用sudo提升执行权限
1、授权用户jerry可以以root权限执行ifconfig名
jerry ALL=/sbin/ifconfig 用户主机=命令绝对路径
2、通过别名定义一组命令,并授权tom用户可以使用改组命令
Cmnd_Alias SYSVCTRL=/sbin/service,/bin/kill,/bin/killall
tom ALL=SYSVCTRL
3、授权wheel组的用户不需验证密码即可执行名令
%wheel ALL=(ALL) NOPASSWD: ALL
*代表通配符!表示取反
4、为sudo启用日志功能,将记录写入/var/log/sudo文件中
Defaults logfile = "/var/log/sudo"
local2.debug /var/log/sudo 修改系统日志配置文件
[root@s2 ~]# service syslog restart //重启syslog系统服务
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
5、使用sudo执行命令
tom查看自己被授权使用命令,并使用sudo执行命令
[tom@s2 ~]$ sudo -l
Password:
User tom may run the following commands on this host:
(root) /sbin/service
[tom@s2 ~]$ sudo /sbin/service httpd start
文件和文件系统安全优化
1、锁定不希望改改的系统文件
[root@s2 ~]# chattr +i /etc/services /etc/passwd /boot/grub/grub.conf
2、解除/etc/passwd文件中的+i属性锁定
[root@s2 ~]# chattr -i /etc/passwd
3、关闭不必要的系统服务
[root@s2 ~]# service bluetooth stop
[root@s2 ~]# chkconfig bluetooth off
4、禁止普通用户执行init.d目录中的脚本
[root@s2 ~]# chmod -R o-rwx /etc/init.d/
或者
[root@s2 ~]# chmod 750 /etc/init.d/
5、禁止普通用户执行poweroff、hallt、reboot 控制台程序
[root@s2 console.apps]# tar -jcpvf /etc/conhlp.pw.tar.bz2 poweroff halt reboot --remove
poweroff
halt
reboot
6、查找系统中设置了set-uid或set-gid权限的文件,并结合”-exec”选项显示这些文件的详细权限属性。
[root@s2 console.apps]# find / -type f -perm +600 -exec ls -lh {} \;
7、去除程序文件的suid/sgid为权限
drwsr-sr-t 2 root root 4096 Mar 18 18:20 aa
[root@s2 ~]# chmod a-s aa
系统引导和登录安全优化
1、阻止用户通过Ctrl+Alt+Del
[root@s2 ~]# vi /etc/inittab
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
2、在grup.conf文件中设置明文密码
[root@s2 ~]# vi /boot/grub/grub.conf
default=0
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password 123456
title Red Hat Enterprise Linux Server (2.6.18-8.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-8.el5.img
3、在grup.cof文件中设置md5加密的密码字符串
[root@s2 ~]# grub-md5-crypt
Password:
Retype password:
$1$x.20Z0$hY6SYWzlbDBnir./dS87o0
[root@s2 ~]# vi /boot/grub/grub.conf
default=0
timeout=5
splashp_w_picpath=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password $1$x.20Z0$hY6SYWzlbDBnir./dS87o0
title Red Hat Enterprise Linux Server (2.6.18-8.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-8.el5.img
4、禁用tty4-tty6终端
[root@s2 ~]# vi /etc/inittab
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
5、禁止root用户从tty2-tty3终端
[root@s2 ~]# vi /etc/securetty
#tty2
#tty3
6、将登录提示内容修改为“Welcome to Server”
root@s2 ~]# vi /etc/issue
Welcome to Server
7、禁止除了root以外的用户从tty1终端上登录系统
[root@s2 ~]# vi /etc/pam.d/login
account required pam_access.so //在pam配置文件login中添加认证支持
[root@s2 ~]# vi /etc/security/access.conf
-:ALL EXCEPT root:tty1
8、禁止root用户从192.168.1.0/24网络登录
[root@s2 ~]# vi /etc/pam.d/sshd
account required pam_access.so//添加pam配置文件sshd中添加认证支持
[root@s2 ~]# vi /etc/security/access.conf
- : root : 192.168.1.0/24