Centos7服务器安全改造
1 概述
root用户作为系统的超级管理员,拥有对系统的所有访问权限,在使用root操作的过程中需要引起足够的重视。尤其是目前云服务器风起云涌,各位开发人员的主战场从线下转到了线上,云服务器成了很多人员每天打交道的一个环节,针对每次登陆看到的登陆失败XXXX次,给人的感觉就是今天家里的防盗门被开启过XXXX次,明明是你自己的家,看到这个场景不得不让你想抒发一下情感。本篇针对云服务器安全提升方面的介绍。
2 环境说明
服务器:云服务器
操作系统:Centos7.9.2009(Core)
3 安全改造的项目
禁用账号SSH登陆
端口调整
防火墙调整
密码策略
4 改造步骤
以上步骤之间没有依赖和关联性,可以根据自己喜好对应的调整即可。
4.1 禁用用户SSH登陆
禁用用户远程SSH登陆包括禁用root用户和禁用普通用户直接登陆
4.1.1 禁用root远程ssh直接登陆
修改/etc/ssh/sshd_config文件
#PermitRootLogin yes
修改为
PermitRootLogin no
查看
more /etc/ssh/sshd_config | grep PermitRootLogin
重启ssh服务,重启后查看
systemctl restart sshd.service
4.1.2 禁用普通用户远程ssh直接登陆
打开配置文件/etc/ssh/sshd_config
vim /etc/ssh/sshd_config
在文件末尾加入要禁用的信息
DenyUsers yelflower
保存退出
重启ssh服务
systemctl restart sshd.service
4.2 修改SSH默认端口
ssh默认端口22,默认扫描的重灾区。将默认端口调整为不常用端口。建议10000~65536端口之间的随机端口,跟现有端口不冲突。
1、新增端口
修改
2、防火墙设置
需要将新增调整的端口在防火墙上开启策略
#firewall-cmd --zone=public --add-port=31697/tcp --permanent
#firewall-cmd --reload
3、SELinux中添加修改的SSH端口
安装SELinux管理工具semanage
#yum provides semanage
安装semanage依赖工具包policycoreutils-python
#yum -y install policycoretuils-python
查询ssh服务端口
#semanage port -l | grep ssh
像SELinux中添加ssh端口
#semanage port -a -t ssh_port_t -p tcp 31697
添加完毕查看端口,确认添加成功后,
重启ssh服务
systemctl restart sshd.service
使用31697登陆测试
登陆成功后禁用22端口
4.3 防火墙设置
查看防火墙状态
systemctl status firewalld
启动防火墙
systemctl start firewalld
关闭防火墙
systemctl stop firewalld
重启防火墙
systemctl restart firewalld
查看防火墙端口
firewall-cmd --list-port
新增端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
关闭端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
重新加载配置
firewall-cmd --reload
最小端口法,将不用的端口进行关闭,保留再用的端口,减少安全隐患。
4.4 密码策略
信息系统安全等级保护关于主机的访问控制有一个控制点是这样要求的: 操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换。
密码口令配置文件/etc/login.defs
修改如下
PASS_MAX_DAYS 90
PASS_MIN_DAYS 5
PASS_MIN_LEN 10
PASS_WARN_AGE 7
配置信息查看
通过命令chage -l username来查看账户的配置信息。
这些配置并不对已有账户生效,只对新建账户生效。因此对于已有账户,一定要用chage命令进行逐一修改。
设置密码复杂度
一般要求口令由大小写字母、数字和字符共同组成。唯一的缘由就是这样的口令复杂度高,不容易被暴力破解。在/etc/pam.d/system-auth中添加配置如下:
password required pam_cracklib.so retry=5 difok=3 minlen=10 ucredit=-1 lcredit=-1 dcredit=-1
保存测试验证
新增用户
#useadd yelflower
#passwd yelflower
用户修改密码,必须得遵守设定的密码复杂度的规则。密码过于简单,系统会提示。这个配置要求密码长度10位以上,由至少1位大写、小写字母和数字组成。
登陆失败锁定设置
确认需要达到的效果
位置 | 限制效果 |
---|---|
/etc/pam.d/login | 在本地文本终端登录时限制 |
/etc/pam.d/kde | 在本地图形界面登录时限制 |
/etc/pam.d/sshd | 在ssh登录时限制 |
/etc/pam.d/system-auth | 凡是调用此文件的服务,都限制 |
云服务器使用的是最小系统安装法,在ssh登陆时限制设置
配置命令
auth required pam_tally2.so deny=5 lock_time=5 unlock_time=5
以上仅为本人在Centos7操作系统中的安全防护优化,在linux的安全加固中还有很多措施和方法。