参考:linux中安全加固几条建议 - PHP面试网
背景
本文以CentOS7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。
1) 设置复杂密码
服务器设置大写、小写、特殊字符、数字组成的12-16位的复杂密码 ,也可使用密码生成器自动生成复杂密码,这里给您一个链接参考:生成随机密码 - 密码生成器
echo "root:wgr1TDs2Mnx0XuAv" | chpasswd
2) 设置密码策略
修改文件/etc/login.defs
PASS_MAX_DAYS 90 密码最长有效期 PASS_MIN_DAYS 10 密码修改之间最小的天数 PASS_MIN_LEN 8 密码长度 PASS_WARN_AGE 7 口令失效前多少天开始通知用户修改密码
3) 对密码强度进行设置
编辑文件/etc/pam.d/password-auth
password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
-
difok= 定义新密码中必须要有几个字符和旧密码不同
-
minlen=新密码的最小长度
-
ucredit= 新密码中可以包含的大写字母的最大数目。-1 至少一个
-
lcredit=新密码中可以包含的小写字母的最大数
-
dcredit=定新密码中可以包含的数字的最大数目
注:这个密码强度的设定只对"普通用户"有限制作用,root用户无论修改自己的密码还是修改普通用户的时候,不符合强度设置依然可以设置成功
4) 对用户的登录次数进行限制
编辑文件 /etc/pam.d/sshd
auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300
多次输入密码失败后提示信息如下
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
查看被锁定的用户
[root@dev pam.d]# cd /etc/pam.d/ [root@dev pam.d]# pam_tally2 Login Failures Latest failure From root 6 10/22/21 10:52:06 123.207.190.86
将被锁定的用户解锁
[root@dev pam.d]# pam_tally2 --reset -u root Login Failures Latest failure From root 6 10/22/21 10:52:06 123.207.190.86 [root@dev pam.d]# pam_tally2 [root@dev pam.d]#
5. 进制root用户远程登录
禁止ROOT用户远程登录 。打开 /etc/ssh/sshd_config
#PermitRootLogin no
注:生效要重启sshd进程。
6. 更改ssh端口
vim /etc/ssh/sshd_config ,更改Port或追加Port
注:生效要重启sshd进程。
7) 安全组关闭没必要的端口
腾讯云平台有安全组功能,里面您只需要放行业务协议和端口,不建议放行所有协议所有端口
参考文档: https://cloud.tencent.com/document/product/215/20398
8)设置账户保存历史命令条数,超时时间
打开 /etc/profile ,修改如下
HISTSIZE=1000 TMOUT=600
五分钟未动,服务器超时自动断开与客户端的链接。
9)定期查看查看系统日志
/var/log/messages
/var/log/secure
重要服务器可以将日志定向传输到指定服务器进行分析。
10) 定期备份数据
目录要有规划,并且有周期性的打包备份数据到指定的服务器。
应用程序 /data/app/
程序日志 /data/logs/
重要数据 /data/www/