Centos系统安全配置
禁用root以外的超级用户
1. 检测方法:
cat /etc/passwd 查看口令文件,文件格式如下
login_name:password:user_ID:group_ID:comment:home_dir:command
若user_ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0
2. 检测命令:
cat /etc/passwd | awk -F ':' '{print$1,$3}' | grep ' 0$'
3. 备份方法:
cp -p /etc/passwd /etc/passwd_bak
4. 加固方法:
使用命令passwd -l <用户名>锁定不必要的超级账户
使用命令passwd -u <用户名>解锁需要恢复的超级账户
或把用户shell改为/sbin/nologin
删除不必要的账号
1. 应该删除所有默认的被操作系统本身启动的并且不必要的账号,Linux提供了很多默认账号,而账号越多,系统就越容易受到攻击。
2. 可删除的用户,如
adm,lp,sync,shutdown,halt,mail,operator,games,ftp等
3. 可删除的组,如
adm,lp,games,mail等
4. 删除命令
userdel username
groupdel groupname
用户口令设置
修改改密码长度/etc/login.defs
PASS_MIN_LEN 10
检查空口令账号
口令文件加锁
chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。
#chattr +i/etc/passwd
#chattr +i/etc/shadow
#chattr +i/etc/group
#chattr +i/etc/gshadow
lsattr 只是显示文件的属性
设置root 账户自动注销时限
限制su命令
#usermod –G 10 admin
限制普通用户无法执行关机、重启、配置网络等敏感操作
禁用Ctry+Alt+Delete组合键重新启动机器命令
修改/etc/inittab文件,将"ca::ctrlaltdel:/sbin/shutdown-t3-rnow"一行注释掉。
设置开机启动服务文件夹权限
避免login时显示系统和版本信息
删除信息文件:
NFS访问
/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仅可在tty1终端登录。
一、 防止IP欺骗
编辑host.conf文件并增加如下几行来防止IP欺骗攻击。
二、 防止DoS攻击
对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:
然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。
sessionrequired/lib/security/pam_limits.so
上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5MB。
三、阻止ping, 抵御SYN:
如果没人能ping通系统,安全性自然增加了,为此,我们可以在/etc/rc.d/rc.local文件中增加如下一行
Linux内核提供了若干SYN相关的配置,用命令:
看到:
调整上述设置的方法是:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048 #增加SYN队列长度到2048 sysctl -w net.ipv4.tcp_syncookies=1 #打开SYN COOKIE功能 sysctl -w net.ipv4.tcp_synack_retries=3 #降低重试次数 sysctl -w net.ipv4.tcp_syn_retries=3