Centos7.5生产服务器系统安全配置
因为服务器要对外开放访问 故需针对服务器进行安全加固
一、禁用root以外的超级用户
检测
cat /etc/passwd 查看口令文件,文件格式如下
login_name:password:user_ID:group_ID:comment:home_dir:command
若user_ID=0,则该用户拥有超级用户的权限。查看此处是否有多个ID=0
输入命令
cat /etc/passwd | awk -F ':' '{print$1,$3}' | grep ' 0$'
如果还出现其他用户的话则需将该用户锁定
先备份
cp -p /etc/passwd /etc/passwd_bak
锁定
使用命令passwd -l <用户名>锁定不必要的超级账户
使用命令passwd -u <用户名>解锁需要恢复的超级账户
或把用户shell改为/sbin/nologin
二、删除不必要的账号
应该删除所有默认的被操作系统本身启动的并且不必要的账号 Linux提供了很多默认账号
而账号越多 系统就越容易受到攻击
可删除的用户
例如:
adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher
可删除的组
例如:
adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等
删除命令
userdel username
例如 删除adm用户
userdel adm
groupdel groupname
例如 删除adm组
groupdel adm
用户及组说明
以下是对每个用户和组的影响的简要描述:
-
adm: 这个用户和组通常用于系统日志相关的任务。删除它可能会影响系统日志的管理和查看。
-
lp: 这个用户和组通常用于打印任务。删除它可能会影响打印服务的正常工作。
-
sync: 这个用户和组通常用于同步缓冲区,确保数据被正确地写入磁盘。删除它可能会影响数据的完整性。
-
shutdown, halt: 这些用户用于关机和停止系统。删除它们可能会影响系统的关机和重启功能。
-
news: 这个用户和组通常用于新闻服务器,可能不常用。删除它可能会影响新闻服务器的功能。
-
uucp: 这个用户和组通常用于串行通信和文件传输。删除它可能会影响某些通信和传输任务。
-
operator: 这个用户和组通常用于系统管理员和操作员的特权操作。删除它可能会影响一些需要管理员权限的操作。
-
games: 这个用户和组通常用于游戏相关的任务,可能不常用。删除它可能不会对系统产生太大影响。
-
gopher: 这个用户和组通常用于 Gopher 协议,可能不常用。删除它可能不会对系统产生太大影响。
三、检查空口令账号
输入命令:
awk -F: '($2 == "") { print $1}' /etc/shadow
发现没有账号口令为空
四、口令文件加锁
chattr命令给下面的文件加上不可更改属性 从而防止非授权用户获得权限
加锁命令
sudo chattr +i /etc/passwd
sudo chattr +i /etc/shadow
sudo chattr +i /etc/group
sudo chattr +i /etc/gshadow
加锁后 无法添加用户
解锁命令
sudo chattr -i /etc/passwd
sudo chattr -i /etc/shadow
sudo chattr -i /etc/group
sudo chattr -i /etc/gshadow
五、防止IP欺骗
编辑host.conf文件并增加如下几行来防止IP欺骗攻击
vim /etc/host.conf
order bind,hosts
multi off
nospoof on
六、防止DoS攻击
对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:
*hardcore0
*hardrss5000
*hardnproc20
然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。
sessionrequired/lib/security/pam_limits.so
上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5MB。
待更新。。。