前语
随着云核算厂商的兴起,云资源如ECS不再只有企业或者公司才会运用,普通人也可以自己买一台ECS来建立自己的应用或者网站。虽然云核算厂商帮咱们做了许多安全相关的作业,但并不代表咱们的机器资源就肯定是安全的。
要知道有许多事情是云核算厂商不能为咱们做的,就比方账号暗码的安全战略配置,而账号暗码的安全又是Linux安全中的第一道安全锁,咱们有必要重视起来。
比方一个具有公网IP的服务器,咱们可以运用Linux衔接东西或者ssh在本地进行衔接,假如暗码太简略而且没有错误次数限制,咱们完全可以暴力破解出来,这归于【高危】漏洞。
账号暗码战略
查看当时用户的账号暗码战略
-- 输入指令
chage -l root
-- 回来成果
Last password change : Jun 14, 2022
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
-- 翻译过来:
最近一次暗码修正时刻 : 6月 14, 2022
暗码过期时刻 :从不过期
暗码失效时刻 :从不
帐户过期时刻 :从不
两次改动暗码之间相距的最小天数 :任何时候都可以改
两次改动暗码之间相距的最大天数 :永远不需求改
在暗码过期之前警告的天数 :7
这种账号肯定是有危险的,尤其还是root账户,一旦被破解,那这台Linux服务器基本上凉凉。
1. 设置暗码失效时刻【一定要设置】
设置暗码失效时刻,强制定时修正暗码,减少暗码被走漏和猜想危险,运用非暗码登陆方法(如密钥对)请疏忽此项。
在 /etc/login.defs
中将 PASS_MAX_DAYS 参数设置为 60-180之间,如:
--两次改动暗码之间相距的最大天数,暗码有用最大天数
PASS_MAX_DAYS 90
留意:以上只对之后新增的用户有用,假如要修正已存在的用户暗码规矩,需求运用chage指令
2. 设置暗码修正最小间隔时刻【一定要设置】
设置暗码修正最小间隔时刻,限制暗码更改过于频频
在 /etc/login.defs
中将 PASS_MIN_DAYS 参数设置为7-14之间,建议为7:
--两次改动暗码之间相距的最小天数,为零时代表任何时候都可以更改暗码
PASS_MIN_DAYS 7
留意:以上只对之后新增的用户有用,假如要修正已存在的用户暗码规矩,需求运用chage指令
3. 在到期前设置警告的天数【建议设置】
设备警告的天数,可以让咱们备份旧暗码、准备新暗码
在 /etc/login.defs
中将 PASS_WARN_AGE 参数设置为7天
PASS_WARN_AGE 7
留意:以上只对之后新增的用户有用,假如要修正已存在的用户暗码规矩,需求运用chage指令
4. 设置暗码复杂度【一定要设置】
简略的暗码安全性很差,一般建议暗码长度大于8,包含大小写字母、数字、特别字符等
在 /etc/pam.d/common-password
增加如下内容(假如没有该文件自己创建一个):
# /etc/pam.d/common-password - password-related modules common to all services
password requisite pam_cracklib.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
password [success=1 default=ignore] pam_unix.so sha512
password requisite pam_deny.so
password required pam_permit.so
- “minlen=8”表明暗码长度至少为8个字符。
- “ucredit=-1”表明暗码中至少包含一个大写字母。
- “lcredit=-1”表明暗码中至少包含一个小写字母。
- “dcredit=-1”表明暗码中至少包含一个数字。
- “ocredit=-1”表明暗码中至少包含一个特别字符。
留意:以上只对之后新增的用户有用,假如要修正已存在的用户暗码规矩,需求运用chage指令
5. 检查暗码重用是否受限制【一定要设置】
强制用户不重用最近运用的暗码,下降暗码猜想攻击危险
在/etc/pam.d/password-auth
和/etc/pam.d/system-auth
中password sufficient pam_unix.so 这行的结尾配置remember参数为5-24之间,本来的内容不用更改,只在结尾加了remember=5。
6. 设置SSH闲暇超时退出时刻【建议设置】
设置SSH闲暇超时退出时刻,可下降未授权用户访问其他用户ssh会话的危险
修改/etc/ssh/sshd_config
,将ClientAliveInterval 设置为300到900,即5-15分钟,将ClientAliveCountMax设置为0-3之间。
ClientAliveInterval 600
ClientAliveCountMax 2
7. 账户确定战略【一定要设置】
战略要求:
- 设定确定的阈值为5次
- 确定时刻为5分钟即300秒
- 有必要一切用户都受限,包含root
修正配置文件/etc/pam.d/system-auth-ac
和/etc/pam.d/password-auth-ac
- /etc/pam.d/system-auth-ac文件替换如下:
auth required pam_env.so
auth required pam_tally2.so even_deny_root deny=5 unlock_time=60
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
account required pam_unix.so
account required pam_tally2.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account required pam_permit.so
- /etc/pam.d/password-auth-ac文件替换如下:
auth required pam_env.so
auth required pam_tally2.so deny=5 unlock_time=60
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 1000 quiet_success
auth required pam_deny.so
account required pam_unix.so
account required pam_tally2.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 1000 quiet
account required pam_permit.so
- 查看用户确定状况
-- 输入指令
pam_tally2 -u root
-- 输出成果
Login Failures Latest failure From
root 0
- 解锁状况
-- 输入指令
pam_tally2 -r -u root
-- 输出成果
Login Failures Latest failure From
root 0
温馨提示:login.defs文件和/etc/pam.d/system-auth文件的规矩设置对非root用户起作用,在root用户下则不会收效!假如设置root用户暗码过期时刻等,需求用chage指令进行设置。
chage指令运用示例:
基本格式:chage [选项] 账户名
-- 查看体系账户的当时设置
chage -l username
-- 设置用户设置暗码失效时刻
chage --maxdays 90 username
-- 设置用户暗码修正最小间隔时刻
chage --mindays 7 username