Centos系统安全配置
禁用root以外的超级用户
1检测方法
cat /etc/passwd 查看口令文件,文件格式如下
login_name:password:user_ID:group_ID:comment:home_dir:command
若user_ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0
2、检测命令
[root@master ~]# cat /etc/passwd | awk -F ':' '{print$1,$3}' | grep ' 0$' root 0
3、备份方法
[root@master ~]# cp -p /etc/passwd /etc/passwd_bak
4、加固方法
使用命令passwd -l <用户名>锁定不必要的超级账户
使用命令passwd -u <用户名>解锁需要恢复的超级账户
或把用户shell改为/sbin/nologin
删除不必要的账号
1、可删除的用户
adm,lp,sync,shutdown,halt,mail,operator,games,ftp等
2、可删除的组
adm,lp,games,mail等
3、删除命令
userdel username
groupdel groupname
用户口令设置
用户口令是Linux/Unix安全的一个基本起点,很多人使用的用户口令过于简单,这等于给侵入者敞开了大门,虽然从理论上说,只要有足够的时间和资源可以利用,就没有不能破解的用户口令,但选取得当的
口令是难于破解的。较好的用户口令是那些只有他自己容易记得并理解的一串字符,最好不要把密码记录出
来,如果有需要的话,也要保管好记录密码的文件,或者将这个文件加密。
生产环境口令要求:包含大写字母、小写字母、数字和特殊字符四种中的三种,并且口令整体长度大于
10位,每台服务器的口令不相同。
修改改密码长度/etc/login.defs
PASS_MIN_LEN 10
检查空口令账号
如果发现有账号口令为空,需要强制加入符合规格的口令
检查方法:
[root@master ~]# awk -F ":" '($2 == ""){print $1}' /etc/shadow
口令文件加锁
chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。
[root@master ~]# chattr +i /etc/passwd
[root@master ~]# chattr +i /etc/shadow
[root@master ~]# chattr +i /etc/group
[root@master ~]# chattr +i /etc/gshadow
[root@master ~]# lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow ----i----------- /etc/passwd ----i----------- /etc/shadow ----i----------- /etc/group ----i----------- /etc/gshadow
设置root 账户自动注销时限
修改环境引导文件/etc/profile中的TMOUT参数,TMOUT参数按秒计算 vi /etc/profile 在"HISTFILESIZE="后面加入下面这行 TMOUT=300 改变这项设置后,必须先注销用户,再用该用户登陆才能激活这个功能 如果想修改某个用户的自动注销时限,可以在用户目录下的".bashrc"文件中添加该值,以便系统对该 用户实行特殊的自动注销时间
限制su命令
禁止任何人能够su切换为root,编辑/etc/pam.d/su文件,增加如下行:
1 . auth sufficient/lib/security/pam_rootok.sodebug
2 . auth required/lib/security/pam_wheel.sogroup=isd
这时,仅wheel组的用户可以su作为root。此后,如果希望用户admin能够su作为root,可以运行如下
命令:
#usermod –G 10 admin
限制普通用户无法执行关机、重启、配置网络等敏感操作
删除/etc/security/console.apps下的halt、reboot、poweroff、shutdown等程序的访问控制文
件,以禁止普通用户执行该命令 也可以整体删除/etc/security/console.apps下的所有配置文件
rm –rf /etc/security/console.apps/*
设置开机启动服务文件夹权限
设置/etc/rc.d/init.d/目录下所有文件的许可权限,此目录下文件 为开机启动项,运行如下命令:
这样便仅有root可以读、写或执行上述所有脚本文件。
避免login时显示系统和版本信息
删除信息文件:
限制网络访问
使用NFS网络文件系统服务,应该确保/etc/exports具有最严格的访问权限设置,也就是意味着不要使
用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。
/dir/to/exporthost1.mydomain.com(ro,root_squash)
/dir/to/exporthost2.mydomain.com(ro,root_squash)
/dir/to/export是您想输出的目录,host.mydomain.com是登录这个目录的机器名,ro意味着mount成只读
系统,root_squash禁止root写入该目录。为了使改动生效,运行如下命令。
#/usr/sbin/exportfs-a
登录终端设置
/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字 列表,可以编辑/etc/securetty且注释掉如下的行。
[root@master security]# cat /etc/securetty 注释掉tty2至tty7 console vc/1 vc/2 vc/3 vc/4 vc/5 vc/6 vc/7 vc/8 vc/9 vc/10 vc/11 tty1 tty2 tty3 tty4 tty5 tty6 tty7 tty8 tty9 tty10 tty11 ttyS0 ttysclp0 sclp_line0 3270/tty1 hvc0 hvc1 hvc2 hvc3 hvc4 hvc5 hvc6 hvc7 hvsi0 hvsi1 hvsi2 xvc0
这时,root仅可在tty1终端登录。
防止攻击
一、防止IP欺骗
编辑host.conf文件并增加如下几行来防止IP欺骗攻击。
1.o rd e r h o s t s ,b i n d #名称解释顺序
2.m u l t i o n #允许主机拥有多个IP地址
3.n o s p o o f o n #禁止IP地址欺骗。
防止DOS攻击。
对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以
在/etc/security/limits.conf中添加如下几行:
然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。
sessionrequired/lib/security/pam_limits.so
上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5MB。
阻止PING,抵御SYN
如 果 没 人 能 p ing 通 系 统 , 安 全 性 自 然 增 加 了 , 为 此 , 我 们 可 以 在 / e t c / r c . d / r c . lo c a l文 件 中 增
加 如 下 一 行
s y s c tl -w ne t. ip v 4 .t c p _ma x _ s yn_b a c k lo g = 2 0 4 8 # 增 加 S Y N 队 列 长 度 到 2 0 4 8
s y s c tl -w ne t. ip v 4 .t c p _ s ync o o k i e s = 1 # 打 开 S Y N C O O K I E功 能
s y s c tl -w ne t. ip v 4 .t c p _ s yna c k _ r e tr i e s = 3 # 降 低 重 试 次 数
s y s c tl -w ne t. ip v 4 .t c p _ s yn_ r e tr i e s = 3
设置系统密码策略
执行命令查看密码策略设置
加固方法: