无论是配置任何服务器,我们都必须把不用的服务关闭、把系统权限设置到最小话,这样才能保证服务器最大的安全。下面是CentOS服务器安全设置,供大家参考。
一、注释掉系统不需要的用户和用户组
注意:不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。
1 编辑用户,修改之前先备份
cp /etc/passwd /etc/passwdbak
vi /etc/passwd
在前面加上#注释掉此行
#adm:x:3:4:adm:/var/adm:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#sync:x:5:0:sync:/sbin:/bin/sync
#shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
#halt:x:7:0:halt:/sbin:/sbin/halt
#uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
#operator:x:11:0:operator:/root:/sbin/nologin
#games:x:12:100:games:/usr/games:/sbin/nologin
#gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
#ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin #注释掉ftp匿名账号
2 编辑用户组,修改之前先备份
cp /etc/group /etc/groupbak
vi /etc/group
在前面加上#注释掉此行
#adm:x:4:root,adm,daemon
#lp:x:7:daemon,lp
#uucp:x:14:uucp
#games:x:20:
#dip:x:40:
二、关闭系统不需要的服务
适实际情况选择。
停用自动挂载档桉系统与週边装置
systemctl stop autofs.service
systemctl disable autofs.service
如果要恢复某一个服务,可以执行下面操作
systemctl start autofs.service
systemctl enable autofs.service
三、禁止非root用户权限
禁止非root用户执行/etc/rc.d/init.d/下的系统命令
chmod -R 700 /etc/rc.d/init.d/*
恢复默认设置
chmod -R 777 /etc/rc.d/init.d/*
四、配置文件锁定
给下面的文件加上不可更改属性,从而防止非授权用户获得权限
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
# 给系统服务端口列表文件加锁,防止未经许可的删除或添加服务
chattr +i /etc/services
显示文件的属性
lsattr /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/services
注意:执行以上权限修改之后,就无法添加删除用户了。
如果再要添加删除用户,需要先取消上面的设置,等用户添加删除完成之后,再执行上面的操作
取消权限锁定设置
chattr -i /etc/passwd
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/gshadow
#取消系统服务端口列表文件加锁
chattr -i /etc/services
现在可以进行添加删除用户了,操作完之后再锁定目录文件。
五、限制不同文件的权限
chattr +a .bash_history #避免删除.bash_history或者重定向到/dev/null
chattr +i .bash_history
chmod 700 /usr/bin #恢复 chmod 555 /usr/bin
chmod 700 /bin/ping #恢复 chmod 755 /bin/ping
chmod 700 /usr/bin/vim #恢复 chmod 755 /usr/bin/vim
chmod 700 /bin/netstat #恢复 chmod 755 /bin/netstat
chmod 700 /usr/bin/tail #恢复 chmod 755 /usr/bin/tail
chmod 700 /usr/bin/less #恢复 chmod 755 /usr/bin/less
chmod 700 /usr/bin/head #恢复 chmod 755 /usr/bin/head
chmod 700 /bin/cat #恢复 chmod 755 /bin/cat
chmod 700 /bin/uname #恢复 chmod 755 /bin/uname
chmod 500 /bin/ps #恢复 chmod 755 /bin/ps
六、系统更新不升级内核
使用yum update更新系统时不升级内核,只更新软件包
由于系统与硬件的兼容性问题,有可能升级内核后导致服务器不能正常启动,这是非常可怕的,没有特别的需要,建议不要随意升级内核。
1 先备份文件
cp /etc/yum.conf /etc/yum.confbak
2、修改yum的配置文件
vi /etc/yum.conf
在[main]的最后添加 exclude=kernel*
说明:如果不修改文件,也可直接在yum的命令后面加上如下的参数:
yum --exclude=kernel* update
补充两个常用的命令
# 查看系统版本
cat /etc/issue
# 查看内核版本
uname -a
七、修改history命令记录
cp /etc/profile /etc/profilebak
vi /etc/profile
找到 HISTSIZE=1000 改为 HISTSIZE=50,即将历史命令仅记录最近的50条,减少历史操作的泄露。
八、修改SSH端口
vi /etc/ssh/SSHd_config
找到其中的#Port 22(第13行),去掉#,将22修改成指定的端口,建议配置为2000以后的端口,使用如下命令,重启SSH服务,注:以后用新端口登陆。重启前先开放新端口的防火墙,以免被阻止在墙外。
# 开放新端口
firewall-cmd --zone=public --add-port=2000/tcp --permanent
firewall-cmd --reload
# 重启SSHD服务
service SSHd restart