栏目头部广告

Linux账户风险和安全策略

1、 身份鉴别-特权用户排查

[root@ansible ~]# awk -F: '($3 == 0){print $1}' /etc/passwd  #不能包含root以外的UID为0的用户

Linux账户风险和安全策略(图1)

【注】一般服务器被黑,黑客都会在服务器上创建一个高权限的账号,用于保证自己在服务器上的主导权。

2、身份鉴别-账号密码生命周期

对于采用静态口令认证的服务器,账户密码生命周期应小于90,且拒绝弱口令以及空口令。

使用more/etc/login.defs检查相关参数,建议以下设置:PASS_MAX_DAYS 90 #新建用户的密码最长使用天数

[root@ansible ~]# vim /etc/login.defs 
# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used.
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.
#
PASS_MAX_DAYS   90
PASS_MIN_DAYS   0    # 新建用户的密码最短使用天数
PASS_WARN_AGE   7    # 新建用户的密码到期提前提醒天数

3、身份鉴别-密码强度

对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。

[root@ansible ~]# vim /etc/pam.d/system-auth
password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
#密码8位以上,含有至少1个大写字母、1个小写字母、1个数字 
password    requisite     pam_cracklib.so retry=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

password    requisite     pam_cracklib.so difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1

difok     新密码与旧密码不同的个数
minlen  至少8位
ucredit  包含一位大写字母
lcredit   包含一位小写字母
dcredit  包含一位数字

4、身份鉴别-用户锁定

对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过10次,锁定该用户使用的帐号。设置连续输错10次密码,帐号锁定5分钟,使用命令

[root@ansible ~]# vim /etc/pam.d/system-auth
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        required      pam_deny.so

auth        required      pam_tally.so onerr=fail deny=10 unlock_time=300

注:解锁用户faillog -u <用户名> -r

5、访问控制-umask安全配置

检查umask的值是否是027:vim /etc/login.defs

[root@ansible ~]# vim /etc/login.defs
# The permission mask is initialized to this value. If not specified, 
# the permission mask will be initialized to 022.
UMASK           077

[root@ansible ~]# umask 
0022

umask的作用默认情况下的umask值是022(用umask命令查看)。

此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的文件夹的默认权限是755(7-0,7-2,7-2)

ž   022表示默认创建新文件夹权限为755也就是rxwr-xr-x(所有者全部权限,属组读写,其它人读写)

ž   027表示默认创建新文件夹权限为750也就是rxwr-x---(所有者全部权限,属组读写,其它人无)

6、访问控制-重要目录权限

执行以下命令检查目录和文件的权限设置情况:

ls -l /etc/
ls -l /etc/rc.d/init.d/
ls -l /tmp 
ls -l /etc/inetd.conf 
ls -l /etc/passwd
ls -l /etc/shadow
ls -l /etc/group 
ls -l /etc/security
ls -l /etc/services 
ls -l /etc/rc*.d

 #对于重要目录,建议执行如下类似操作:

chmod -R 750 /etc/rc.d/init.d/*

【注】这样只有root可以读、写和执行这个目录下的脚本。

7.   访问控制-查看未授权的SGID/SUID

(1)SUID/SGID的程序在运行时,将有效用户ID改变为该程序的所有者(组)ID。因而可能存在一定的安全隐患,经常性的对比SUID/SGID文件列表,以便能够及时发现可疑的后门程序。

(2)找出系统中所有含S“位的程序,把不必要的"S“位去掉或者把根本不用的直接删除,这样可以防止用户滥用及提升权限的可能性,其命令如下:

ž  查找SUID可执行程序

[root@ansible ~]# find / -type f -perm -4000 -ls

ž  查找SGID程序

[root@ansible ~]# find / -type f -perm -2000 -ls

ž  查找SUID/SGID/或者两个都有

[root@ansible ~]# find / -type f -perm -6000 -ls

8、安全审计-syslog登录事件记录

必须要记录所有的登录事件,执行vim /etc/rsyslog.conf,查看是否有以下配置

[root@ansible ~]# vim /etc/rsyslog.conf
kern.warning;*.err;authpriv.none\t@loghost
*.info;mail.none;authpriv.none;cron.none\t@loghost
*.emerg\t@loghost
local7.*\t@loghost

解读:

第一行:内核所有日志

第二行:记录所有日志info级别,及大于info级别记录到message里面,但是邮件、验证信息和cron任务相关的信息除外。

第三行:所有大于或等于emerg级别信息以word方式发送给每个登录系统的人。

第四行:启动相关信息。

【注】既可以记录到本地文件中,也可以通过网络发送或接收其他服务器syslog日志,可以对多台设备syslog进行统一存储。

9、安全审计-设置history时间戳

在问题定位时,我们有时需要查看history命令记录,看是否有删除/移动文件、修改配置等误操作为history命令添上时间记录,可便于分析、定位问题。修改方法如下:

[root@ansible ~]# vim /etc/profile
export HISTTIMEFORMAT="%F%T 'whoami'"
source/etc/profile

Linux账户风险和安全策略(图2)

10.   资源控制-登录超时

使用命令“vim /etc/profile”修改配置文件,添加"TMOUT="行开头的注释,建议设置为“TMOUT=180",即超时时间为3分钟。

[root@ansible ~]# vim /etc/profile
TMOUT=180

11、资源控制-限制登录

(1)禁止ROOT用户远程登陆

[root@ansible ~]# cat /etc/ssh/sshd_config

确保PERMITROOTLOGIN为NO

(2)限定信任主机

# CAT /ETC/HOSTS.EQUIV
# CAT /$HOME/.RHOSTS

查看上述两个文件中的主机,删除其中不必要的主机,防止存在多余的信任主机或直接关闭所有R系列远程服务

ž    RLOGIN

ž    RSH

ž    REXEC

(3)禁用TELNET,使用SSH进行管理

[root@ansible ~]# service sshd start  # 开启SSH服务

(4)限制能够登录本机的IP地址

[root@ansible ~]# vim /etc/ssh/sshd_config
ALLOWUSERS MARGIN@10.1.1.3

【注】允许用户MARGIN通过地址10.1.1.3来登录本机

ALLOWUSERS *@10.1.*.*

【注】仅允许10.1.0.0/16网段所有用户通过SSH访问。

12、修改SSH端口

(1)编辑/etc/ssh/sshd_config

(2)修改banner信息

修改sshd_config

ž /etc/ssh/sshd_config

ž 如存在,则将banner字段设置为NONE

查看修改motd

        ž /etc/motd

        ž 查看该文件内容,更新成自己想要添加的内容

13.   入侵防范-使用防火墙

(1)Linux下的防火墙框架iptables
(2)包过滤
(3)NAT
(4)数据包处理

作者:UStarGao
链接:https://www.starcto.com/application_of_operational/94.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`