Linux 系统安全常规优化
一:账号安全。
1:基本的安全措施:
1)删除系统中不使用的用户和组。或是锁定用户(锁定用户:xiang)
[root@localhost ~]# passwd -l xiang
或[root@localhost ~]# usermod -L xiang
2) 确认程序或服务用户的shell不可用
[root@localhost ~]# cat /etc/passwd #查看
[root@localhost ~]# usermod -s /sbin/nologin ftp #把ftp用户的登录shell 改成 /sbin/nologin
3)限制用户密码的有效期
[root@localhost ~]# vi /etc/login.defs
PASS_MAX_DAYS 30 #改成30天,这个对所有的用户有效
或 [root@localhost ~]# chage -M 30 xiang #改成30天,这个对单个用户有效
[root@localhost ~]# chage -d 0 xiang # xiang用户下次登录要改密码
4)限制用户的密码的最小长度
[root@localhost ~]# vi /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12
5) 限制记录命令的条数
[root@localhost ~]# vi /etc/profile
HISTSIZE=100
6) 设置闲置超时自动注销终端
[root@localhost ~]# vi /etc/profile
export TMOUT=600
2:一搬别用ROOT用户登录,用su 来切换
[xiang@localhost ~]# su - liming #新打开一个shell 切换到用户liming
[xiang@localhost ~]# su #切换到用户root 在当前的SHell
[xiang@localhost ~]# su - #新打开一个shell 切换到用户root
[xiang@localhost ~]#
3:使用sudo 提升执行权限
1)编辑/etc/sudoers 要用到 visudo 命令到编辑
[root@localhost ~]# visudo
xiang localhost=/sbin/ifconfig
允许用户xiang在本地使用/sbin/ifcofnig
2) 授权wheel 组 不要验证密码可执行所用的命令
[root@localhost ~]# visudo
%wheel ALL=(ALL) NOPASSWORD: ALL
二:文件和文件系统的安全优化
1:文件系统层次安全优化
1) 通过挂载选项禁止执行set位程序,二进制程序
[root@localhost ~]# vi /etc/fstab
/dev/sdc1 /var ext3 default,noexec 1 2
#noexec 禁止执行二进制程序
#nosuid,nosgid 禁止执行set位程序
2)锁定不希望更改的系统文件
[root@localhost ~]# chattr +i /etc/passwd
[root@localhost ~]# chattr -i /etc/passwd
[root@localhost ~]# lsattr /etc/passwd #查看文件夹i节点信息
2:应用程序和服务
1) 关闭不需要的系统服务
2) 禁止普通用户执行/etc/init.d/目录中的脚本
[root@localhost ~]# chmod -R 700 /etc/init.d/
3) 禁止普通用户执行控制台程序
控制台程序一搬在:/etc/sucurity/console.apps/ 下面
如:setup serviceconf halt reboot poweroff 等等
[root@localhost ~]# cd /etc/sucurity/console.apps/
[root@localhost console.apps]# tar zcvf /etc/conhel.pw.tar.bz2 poweroff halt reboot --remove
4) 去掉程序文件中的SET-UID 或set-gid 附回权限
[root@localhost ~]# find / -type f --perm +6000 --exec ls lh {} \;
[root@localhost ~]# chmod a-s /tmp/hack.vim #去掉SET-UID 或set-gid 附回权限
其实可以写一个脚本,去自动查找,去判断 新增的suid/sgid属性的文件 (有时间我写个)
三:系统引导和登录安全优化
1:开关机安全控制
1) 调整BIOS 的引导设置
把第一启动设备 设为当前的硬盘,其它的都设为disabled ,设置BIOS密码和用户密码
2) 防止用户通过Ctrl+alt+del 热键重启系统
[root@localhost ~]# vi /etc/inittab
#ca::Ctrl+alt+del: /sbin/shutdown -t3 -r now
2: GRUB引导菜单加密
1)明码加密,这里就不说了,不安全
2)MD5加密
[root@localhost ~]#
[root@localhost ~]# grub-md5-crypt
Password:
Retype password:
$1$VEXJv0$FLQzfiobX5r0qrWg76UI81
#得到加密的密码:$1$VEXJv0$FLQzfiobX5r0qrWg76UI81
[root@localhost ~]# vi /boot/grub/grub.conf
password --md5 $1$GThDv0$49Fw/QsGcfhH7WPBfzDBn1
title CentOS (2.6.18-238.el5)
password --md5 $1$GThDv0$49Fw/QsGcfhH7WPBfzDBn1
root (hd0,0)
kernel /vmlinuz-2.6.18-238.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
initrd /initrd-2.6.18-238.el5.img
3:终端及登录控制
1)即时禁止普通用户登录,在/etc/ 下新建文件 nologin
[root@localhost ~]# touch /etc/nologin
#删除它或重启后正常
2)控制服务器开放的TTY终端
[root@localhost ~]# 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
3)控制ROOt用户登录的终端
[root@localhost ~]# vi /etc/securetty #掉不登录的终端
console
vc/1
#vc/2
tty1
#tty2
#tty3
4)更改系统登录提示,隐藏内核版本信息
[root@localhost ~]# vi /etc/issue #去掉 加一些自定义的
#CentOS release 5.6 (Final)
#Kernel \r on an \m
welcome to server 1.0
5)使用pam_access认证控制用户登录地点
[root@localhost ~]# vi /etc/pam.d/login #加上一行
account required pam_access.so