Linux安全加固

Linux安全加固

作者:MappleZF
版本:1.0.0
简介:当时因运维工作所需,基于CentOS 7 进行部分内容的整理。

文章目录

一、账户和口令管理

1.1 口令锁定策略
1.1.1 设置system-auth
[root@kvm-100:/etc/pam.d]# vim system-auth#%PAM-1.0下面的一行追加内容:
auth        required      pam_tally2.so onerr=fail  deny=3  unlock_time=180 even_deny_root root_unlock_time=180
account     required      pam_tally2.so

在这里插入图片描述

PS即:三次登陆(如sudo)等操作,密码错误,即锁定账户,解锁时间是180秒。(root用户也一样)
1.1.2 设置password-auth
[root@kvm-100:/etc/pam.d]# vim password-auth#%PAM-1.0下面的一行追加内容:
auth        required      pam_tally2.so onerr=fail  deny=3  unlock_time=180 even_deny_root root_unlock_time=180
account     required      pam_tally2.so
补充解析:
查询语句
pam_tally2 -u <username>
解锁用户语句
pam_tally2 -u <username> -r --reset
[root@kvm-100:/etc/pam.d]# pam_tally2 -u root
Login           Failures Latest failure     From
root                3    12/14/20 15:23:36  192.168.7.156
[root@kvm-100:/etc/pam.d]# pam_tally2 -u root -r --reset
Login           Failures Latest failure     From
root                0    

1.2 口令生成期
1.2.1 设置login.defs
[root@kvm-100:/etc]# vim /etc/login.defs
修改 约在25-28行之间
PASS_MAX_DAYS   90
PASS_MIN_DAYS   10
PASS_MIN_LEN    12
PASS_WARN_AGE   7

PS即:新建用户的密码最长使用天数不大于90;新建用户的密码最短使用天数为10;新建用户的密码到期提前提醒天数为7;新建用户的密码最小长度12
1.3 口令复杂度
1.3.1 设置system-auth

设定新密码的复杂度

[root@kvm-100:/etc/pam.d]# vim system-auth
修改
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

在这里插入图片描述

参数含义:
difok        定义新密码中必须要有几个字符和旧密码不同
minlen       定义新密码的最小长度
ucredit      定义新密码中可以包含的大写字母的最大数目(-1代表最少1个)
lcredit      定义新密码中可以包含的小写字母的最大数目(-1代表最少1个)
dcredit      定义新密码中可以包含的数字的最大数目 (-1代表最少1个)
ocredit		 定义新密码中可以包含的特殊字符的最大数目 (-1代表最少1个)
1.3.2 设置password-auth

设定新密码的复杂度

[root@kvm-100:/etc/pam.d]# vim password-auth
修改
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
1.4 删除无关账户
1.4.1 检测/etc/shadow文件
查看/etc/shadow文件,确认以下用户(lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody)的密码列字段是否以*或者!!开头:

egrep "^lp:|^sync:|^halt:|^news:|^uucp:|^operator:|^games:|^gopher:|^smmsp:|^nfsnobody:|^nobody:" /etc/shadow|awk -F: '($2!~/^*/) && ($2!~/^!!/) {print $1":"}'

[root@kvm-100:/root]# egrep "^lp:|^sync:|^halt:|^news:|^uucp:|^operator:|^games:|^gopher:|^smmsp:|^nfsnobody:|^nobody:" /etc/shadow|awk -F: '($2!~/^*/) && ($2!~/^!!/) {print $1":"}'
[root@kvm-100:/root]# 

1.4.2 检测/etc/passwd文件
查看/etc/passwd文件确认以下用户(lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody)的shell域字段值是否为/bin/false

egrep "^lp:|^sync:|^halt:|^news:|^uucp:|^operator:|^games:|^gopher:|^smmsp:|^nfsnobody:|^nobody:" /etc/passwd|awk -F: '($7!~/bin\/false/) {print $1":"$7}'
[root@kvm-100:/root]# egrep "^lp:|^sync:|^halt:|^news:|^uucp:|^operator:|^games:|^gopher:|^smmsp:|^nfsnobody:|^nobody:" /etc/passwd|awk -F: '($7!~/bin\/false/) {print $1":"$7}'
lp:/sbin/nologin
sync:/bin/sync
halt:/sbin/halt
operator:/sbin/nologin
games:/sbin/nologin
nobody:/sbin/nologin
nfsnobody:/sbin/nologin
1.4.3 判定依据
判定依据
    1、lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody用户不存在或/etc/shadow文件中对应密码字段以*或者!!开头
    2、lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody用户不存在或者/etc/passwd文件中对应shell域为/bin/false
    以上二者均满足则合规,否则不合规。
1.4.4 删除或修改无关用户shell域
加固参考方案:
参考配置操作
1、如果以下用户(lp|sync|halt|news|uucp|operator|games|gopher|smmsp|nfsnobody|nobody)没有被删除或锁定,可以使用如下命令对其进行操作:
    (1)、删除用户:
        #userdel username
    (2)、锁定用户:
        #passwd -l username        #锁定用户,只有具备超级用户权限的使用者方可使用。
        #passwd –d username      #解锁用户,解锁后原有密码失效,登录设置新密码才能登录。
        #passwd -u username       #解锁用户后,原密码仍然有效。
    (3)、修改用户shell域为/bin/false
        #usermod -s /bin/false username        #命令来更改相应用户的shell为/bin/false,其中[name]为要修改的具体用户名。
[root@kvm-100:/root]# usermod -s /bin/false lp && usermod -s /bin/false sync 
[root@kvm-100:/root]# usermod -s /bin/false halt && usermod -s /bin/false operator
[root@kvm-100:/root]# usermod -s /bin/false games && usermod -s /bin/false nobody
[root@kvm-100:/root]# usermod -s /bin/false nfsnobody

[root@kvm-100:/root]#  egrep "^lp:|^sync:|^halt:|^news:|^uucp:|^operator:|^games:|^gopher:|^smmsp:|^nfsnobody:|^nobody:" /etc/passwd|awk -F: '($7!~/bin\/false/) {print $1":"$7}'
[root@kvm-100:/root]# 
1.5 设置账户组
1.5.1 检测login.defs
查看系统中是否存在用户id>=GID_MIN且<=GID_MAX的用户:
grep -v ^# /etc/login.defs |grep "^GID_MIN"|awk '($1="GID_MIN") {print $2}'
grep -v ^# /etc/login.defs |grep "^GID_MAX"|awk '($1="GID_MAX") {print $2}'
UP_GIDMIN=`(grep -v ^# /etc/login.defs |grep "^GID_MIN"|awk '($1="GID_MIN") {print $2}')`
UP_GIDMAX=`(grep -v ^# /etc/login.defs |grep "^GID_MAX"|awk '($1="GID_MAX") {print $2}')`

egrep -v "oracle|sybase|postgres" /etc/passwd|a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值