路漫漫其修远兮,吾将上下而求索

导航

等保 Linux主机策略查看

cat /etc/redhat-release

chage -l webapp

cat /etc/passwd

ll /etc/passwd
ll /etc/shadow
ll /etc/profile

cat /etc/security/limits.conf

ps aux |grep syslog
ps aux |grep audit

service --status-all |grep mysqld

############################################################

Linux的敏感标记采用SELINUX

#############################################################
查看系统密码修改记录:
一:查看shadow第三字段
[root@localhost etc]# date -u -d "1970-01-01 UTC $((17856*86400)) second"
Wed Nov 21 00:00:00 UTC 2018
17856是/etc/shadow中第三字段的数字

二:查看日志文件:
[root@localhost pam.d]# cat /var/log/secure |grep 'password changed'
Nov 21 13:41:28 localhost passwd: pam_unix(passwd:chauthtok): password changed for d
Nov 21 23:39:56 localhost passwd: pam_unix(passwd:chauthtok): password changed for d

三:chage -l d
[root@localhost pam.d]# chage -l d
Last password change : Nov 21, 2018
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

##############################SSH登录限制配置##################################

SSH登录限制指定ip:
vi /etc/hosts.allow
sshd:192.168.0.100:allow //允许IP 192.168.0.100 登录
sshd:192.168.0.:allow //允许IP 192.168.0. ?网段登录
sshd:all:deny //禁止其他的所有IP登录

限制指定用户:
vi /etc/ssh/sshd_config 末尾添加下面一行
AllowUsers root@192.168.198.1 表示只允许root用户从192.168.198.1 Ip登录

还可以使用PAM模块:
仅仅允许kevin用户可以通过ssh远程登录。做法如下:
在/etc/pam.d/sshd文件中添加一条(务必添加到文件的第一行!):
auth required pam_listfile.so item=user sense=allow file=/etc/sshdusers onerr=succeed
接着echo "kevin" >/etc/sshdusers //文件/etc/sshdusers是在上面添加到/etc/pam.d/sshd中定义的

#################################主机安全-资源控制-C#################################
******c) 应限制单个用户对系统资源的最大或最小使用限度

ulimit -a 用来显示当前的各种用户进程限制
有个open files (-n) 1024 表示最大打开文件数
硬限制是实际的限制,而软限制,是warnning限制,只会做出warning;其实ulimit命令本身就有分软硬设置,加-H就是硬,加-S就是软
默认显示的是软限制,如果运行ulimit命令修改的时候没有加上的话,就是两个参数一起改变。
ulimit -n 查询当前终端的文件句柄数(查看Linux系统里打开文件描述符的最大值,缺省1024)
ulimit -Hn Hard

Linux 系统的最大进程数和最大文件打开数限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
说明:* 代表针对所有用户
noproc 代表最大进程数
nofile 代表最大文件打开数
soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错


##################################查看所有用户创建的进程数###############################
查看所有用户创建的进程数
[root@localhost security]# ps h -Led -o user | sort | uniq -c | sort -n
1 dbus
2 postfix
6 polkitd
101 root

#####################################用户密码的强健性配置################################

用户密码的强健性进行检测:
pam_cracklib.so模块
pam_cracklib.so是一个常用并且非常重要的PAM模块。该模块主要的作用是对用户密码的强健性进行检测。即检查和限制用户自定义密码的长度、复杂度和历史等。如不满足上述强度的密码将拒绝用户使用。pam_cracklib.so比较重要和难于理解的是它的一些参数和计数方法,其常用参数包括:
=============================================
debug: 将调试信息写入日志;
type=xxx: 当添加/修改密码时,系统给出的缺省提示符是"New UNIX password:"以及"Retype UNIX password:",而使用该参数可以自定义输入密码的提示符,比如指定type=your own word;
retry=N: 定义登录/修改密码失败时,可以重试的次数;
Difok=N: 定义新密码中必须至少有几个字符要与旧密码不同。但是如果新密码中有1/2以上的字符与旧密码不同时,该新密码将被接受;
minlen=N: 定义用户密码的最小长度;
dcredit=N:定义用户密码中必须至少包含多少个数字;
ucredit=N:定义用户密码中必须至少包含多少个大写字母;
lcredit=N:定义用户密码中必须至少包含多少个小些字母;
ocredit=N:定义用户密码中必须至少包含多少个特殊字符(除数字、字母之外);

特别要注意:
当N>0时,N代表新密码中最多可以有N个指定的字符!!
当N<0时,N代表新密码中最少可以有N个指定的字符!!

同时建议重启系统使之生效!
===============================================
/etc/pam.d/login文件里包含了/etc/pam.d/system-auth文件的配置
/etc/pam.d/system-auth
【pam_cracklib.so的参数按如下方式指定:
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12 dcredit=2 ucredit=0 lcredit=0 ocredit=0

强迫用户设置的密码不能与过去3次内的密码重复
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=3
特别注意:/etc/pam.d/system-auth下的配置针对的是普通用户,在root用户下是无效的

【限制kevin用户最多同时登陆4个?(同时可以限制root用户)
这需要pam_limits.so模块。由于/etc/pam.d/system-auth中,默认就会通过pam_limits.so 限制用户最多使用多少系统资源.
[root@centos6-test06 ~]# cat /etc/pam.d/system-auth|grep limits.so
session required pam_limits.so

因此只需要在/etc/security/limits.conf 中加入以下内容:
[root@centos6-test06 ~]# vim /etc/security/limits.conf
......
kevin hard maxlogins 4

【某用户连续登陆失败2次就锁定该账号,禁止登陆
pam_tally2.so的PAM模块,来限定用户的登录失败次数,如果次数达到设置的阈值,则锁定用户
[root@centos6-test06 ~]# vi /etc/pam.d/login //在#%PAM-1.0下面添加一行,否则还是可以
#%PAM-1.0
auth required pam_tally2.so onerr=fail deny=2 unlock_time=300 even_deny_root root_unlock_time=10
如果不支持pam_tally2,可以使用pam_tally模块
上面的配置只是限制了用户从tty终端登录,而没有限制远程ssh登录,如果想限制远程登录,需要在/etc/pam.d/sshd文件里配置

vim /etc/pam.d/sshd
even_deny_root 也限制root用户;
deny 设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户
unlock_time 设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time 设定root用户锁定后,多少时间后解锁,单位是秒;
####################################查看用户登录失败次数###############################

查看用户登录失败次数
[root@localhost pam.d]# pam_tally2 --user root
Login Failures Latest failure From
root 0
解锁指定用户
pam_tally2 -r -u root

##############################shadow和passwd组成########################################

/etc/shadow字段组成
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:

第二列:
①.该列留空,即”::”,表示该用户没有密码。
②.该列为”!”,即”:!:”,表示该用户被锁,被锁将无法登陆,但是可能其他的登录方式是不受限制的,如ssh公钥认证的方式,su的方式。
③.该列为”“,即”::”,也表示该用户被锁,和”!”效果是一样的。
④.该列以”!”或”!!”开头,则也表示该用户被锁。
⑤.该列为”!!”,即”:!!:”,表示该用户从来没设置过密码。
⑥.如果格式为”$id$salt$hashed”,则表示该用户密码正常。其中$id$的id表示密码的加密算法,$1$表示使用MD5算法,$2a$表示使用Blowfish算法,”$2y$”是另一算法长度的Blowfish,”$5$”表示SHA-256算法,而”$6$”表示SHA-512算法,
目前基本上都使用sha-512算法的,但无论是md5还是sha-256都仍然支持。$salt$是加密时使用的salt,hashed才是真正的密码部分。

如果为空,则对应用户没有口令,登录时不需要口令;
星号代表帐号被锁定;
双叹号表示这个密码已经过期了;
$6$开头的,表明是用SHA-512加密;
$1$表明是用MD5加密;
$2$ 是用Blowfish加密;
$5$ 是用 SHA-256加密;

/etc/passwd字段组成
注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

用户标识号:1-99由系统保留,作为管理账号,普通用户的标识号从100开始。在Linux系统中,这个界限是500。
组标识号:对应着/etc/group文件中的一条记录
####################################文件默认权限:umask################################

文件默认权限:umask 反码计算
[root@localhost pam.d]# umask
0022 第一位0是特殊权限,不用管
700-022=755 这是目录,那文件就是644
临时修改就是再umask 后面加数字
永久修改需要 /etc /profile中末尾加上umask *** 及其他umask值
一般来说,umask命令是在/etc /profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile文件中。

##################################SSH 连接超时####################################

SSH 连接超时
1.修改sshd_config文件
vim /etc/ssh/sshd_config
ClientAliveInterval 0 修改保持连接时间,
ClientAliveCountMax 3 修改保持连接次数。
说明: 保持连接为60(秒),尝试连接数为3(次):表明每隔1分钟触发一次连接,3次连续失败后,自动断开连接。
---------------------
2.设置ssh超时断连
vim /etc/profile

HOSTNAME
HISTIZE
后追加timeout超时时间
TMOUT=300;300表示超过300秒无操作即断开连接。

#######################################################################################

密码强度要求:
/etc/login.defs (对root用户无效)
PASS_MAX_DAYS99999注:用户的密码不过期最多的天数;
PASS_MIN_DAYS0注:密码修改之间最小的天数;
PASS_MIN_LEN5注:密码最小长度;
PASS_WARN_AGE7注:

######################################################################################

检查除了root以外是否还有其它账号的UID为0:
awk -F: '($3==0){print $1}' /etc/passwd


===========================================
查看ssl版本,是否有漏洞
openssl version -a

=============================================
groups 查看当前登录用户的组内成员
groups gliethttp 查看gliethttp用户所在的组,以及组内成员
whoami 查看当前登录用户名

posted on 2020-08-11 01:09  爱在西元间  阅读(1091)  评论(0编辑  收藏  举报