zoukankan      html  css  js  c++  java
  • 等保 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 查看当前登录用户名

    奶奶问孙子:4+1等于几 孙子说:等于6-1。 奶奶说:你明明知道答案,为什么不说? 孙子说:年轻人不讲5的……..
  • 相关阅读:
    使用Microsoft.DirectX和Microsoft.DirectX.Sound进行录音时遇到的异常
    一个奇怪的TextChanged事件
    正则表达式
    lambda详解
    AOP统一处理请求
    SpringBoot表单参数验证
    208道Java常见面试题
    Java100道基础面试题
    Java多线程面试题
    Java编码规范
  • 原文地址:https://www.cnblogs.com/jasy/p/12359721.html
Copyright © 2011-2022 走看看