zoukankan      html  css  js  c++  java
  • centos7 系统安全加固方案

    一.密码长度与有效期

    默认配置:

    [root@i-1y3we23j ~]# cat /etc/login.defs |grep PASS_ |grep -v '#'
    PASS_MAX_DAYS    99999
    PASS_MIN_DAYS    0
    PASS_MIN_LEN    5
    PASS_WARN_AGE    7

    加固方案:

    
    

    1.备份配置文件:

    # cp -a /etc/login.defs /etc/login.defs.default

    2.编辑配置文件并将相关参数改成如下

    # vi /etc/login.defs
    PASS_MAX_DAYS 90
    PASS_MIN_DAYS 6
    PASS_MIN_LEN 8
    PASS_WARN_AGE 30

    备注:

    /etc/login.defs文件的pass_min_len 参数并不具备强制性,测试仍然可以设置7位密码。最终需要cracklib来实现。

    参数说明:

    PASS_MAX_DAYS 密码有效期

    PASS_MIN_DAYS 修改密码的最短期限

    PASS_MIN_LEN 密码最短长度

    PASS_WARN_AGE 密码过期提醒

    二.密码复杂度

    默认配置:

    [root@i-1y3we23j ~]# cat /etc/pam.d/system-auth | grep  "pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type="
    password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=

    加固方案:

    1.备份配置文件:
    # cp -a /etc/pam.d/system-auth /etc/pam.d/system-auth.default
    2.编辑配置文件
    # vi /etc/pam.d/system-auth
    将password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
     注释并在其下面新增1行 password requisite pam_cracklib.so try_first_pass minlen=8 difok=5 dcredit=-1 lcredit=-1 ocredit=-1 retry=1 type= 
    3.保存配置文件

    备注:

    try_first_pass而当pam_unix验证模块与password验证类型一起使用时,该选项主要用来防止用户新设定的密码与以前的旧密码相同。

    minlen=8:最小长度8位

    difok=5:新、旧密码最少5个字符不同

    dcredit=-1:最少1个数字

    lcredit=-1:最少1个小写字符,(ucredit=-1:最少1个大写字符)

    ocredit=-1:最少1个特殊字符

    retry=1:1次错误后返回错误信息

    type=xxx:此选项用来修改缺省的密码提示文本

    三.新口令不能与4个最近使用的相同

    默认配置:

    [root@i-1y3we23j ~]# cat /etc/pam.d/system-auth |grep use_authtok
    password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

    加固方案:

    1.备份配置文件
    2.编辑配置文件:
    # vi /etc/pam.d/system-auth
    在password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok 所在行的后面添加
    remember=5
    3.保存配置文件

    备注:

    记住5个历史密码

    四.设置会话超时(5分钟)

    默认配置:

    加固方案:

    1.备份配置文件:
    # cp -a /etc/profile /etc/profile.default
    2.编辑配置文件:
    vi /etc/profile
    在文件的末尾添加参数 
    export TMOUT=300
    3.保存配置文件

    备注:

    5分钟无操作中断登录会话

    五.设置history命令时间戳

    默认配置:

     无

    加固方案:

    1.备份配置文件:
    略
    2.编辑配置文件:
    vi /etc/profile
    在文件的末尾添加参数
    export HISTTIMEFORMAT="%F %T `whoami` "
    3.保存配置文件

     六.设置登陆失败锁定(终端登录)

    默认配置:

    加固方案:

    1.备份配置文件
    2.编辑配置文件:
    # vi /etc/pam.d/system-auth
    在# User changes will be destroyed the next time authconfig is run.行的下面,添加
    auth       required     pam_tally2.so deny=5 unlock_time=1800 even_deny_root root_unlock_time=1800
    3.保存配置文件

    备注:

    通过终端登录,5次登录失败后锁定账号30分钟,锁定期间此账号无法再次登录。

    七.禁止root通过ssh远程登录

    默认配置:

    # cat /etc/ssh/sshd_config |grep PermitRootLogin
    #PermitRootLogin yes

    加固方案:

    1.备份配置文件
    # cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.default
    2.编辑配置文件
    vi /etc/ssh/sshd_config
    将配置参数#PermitRootLogin yes改成PermitRootLogin no
    3.保存配置文件
    4.重启ssh服务
    # /etc/init.d/sshd restart

    八.SSH 配置参数增强

    1.备份配置文件
    2.编辑配置文件
    #vi /etc/ssh/sshd_config
    
    (1)禁止空密码登录
    将#PermitEmptyPasswords no参数的注释符号去掉,改成
    PermitEmptyPasswords no
    
    (2)关闭ssh的tcp转发
    将#AllowTcpForwarding yes参数改成
    AllowTcpForwarding no
    
    (3)关闭S/KEY(质疑-应答)认证方式
    将#ChallengeResponseAuthentication yes参数,改成
    ChallengeResponseAuthentication no
    
    
    (4)关闭基于GSSAPI 的用户认证
    将GSSAPIAuthentication yes参数,改成
    GSSAPIAuthentication no
    
    3.保存配置文件
    4.重启ssh服务

    九.设置SSH登录警告语

    默认配置:

    加固方案:

    1.备份配置文件
    # 略
    2.编辑配置文件
    #vi /etc/ssh/sshd_config
    找到#Banner none参数,在其下一行,增加
    Banner /etc/ssh/alert
    3.保存配置文件
    4新增告警信息文件.
     #vi /etc/ssh/alert
    文件内容,设置成
    *******************************************************
    这里的内容自己定义,可以提示一下登录的用户引起运维人员重视
    Warning!!!Any Access Without Permission Is Forbidden!!!
    *******************************************************
    5.保存后重启ssh服

    十.设置umask值

    默认配置:

    # umask
    0022

     加固方案:

    1.备份配置文件
    # cp -a /etc/bashrc /etc/bashrc.default
    2.编辑配置文件
    # vi /etc/bashrc
    在文件末尾增加参数
    umask 027
    3.保存配置文件
    4. 备份配置文件
    # cp -a /etc/profile /etc/pr ofile.default
    5.编辑配置文件
    # vi /etc/profile
    在文件末尾增加参数
    umask 027
    6.保存配置文件

    备注:

    umask值设置成0027,用于拿掉新增目录与文件的非所有者和所有者所属组的访问权限

    默认:

    新增目录权限755,即rxwr-xr-x

    新增文件权限644,即

    rw-r--r—

    加固后:

    新增目录权限750,即rxwr-x---

    新增文件权限640,即

    rw-r-----

     十一.禁止Control-Alt-Delete 键盘重启系统命令

    默认配置:

    ls  /usr/lib/systemd/system/ctrl-alt-del.target

      加固方案:

    1.备份配置文件
    cp -a  /usr/lib/systemd/system/ctrl-alt-del.target         /usr/lib/systemd/system/ctrl-alt-del.target.default
    2.移除该原源文件
    rm -rf  /usr/lib/systemd/system/ctrl-alt-del.target

    十二. 隐藏系统版本信息

    默认配置:

    加固方案:

    执行以下命令:
    #mv /etc/issue /etc/issue.bak
    #mv /etc/issue.net /etc/issue.net.bak

    备注:登录界面显示系统版本信息

    十三.设置grup密码

    默认配置:无

    加固方案:

    1.备份配置文件
    cp -a /etc/grub.d/00_header /etc/grub.d/00_header.default
    2.使用grub2-mkpasswd-pbkdf2 加密密码(密码自己定义,但是一定得保存好否则最后连自己都登录不进去)
    [root@localhost ~]# grub2-mkpasswd-pbkdf2           
    Enter password: 
    Reenter password: 
    PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54A
    
    3.添加以下配置到该文件的最后面(特别需要注意  用户名root和密文之间是空格分隔,而不是换行)
    cat <<EOF
    set superusers='root'
    password_pbkdf2 root grub.pbkdf2.sha512.10000.B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54A
    E0F
    4.执行命令grub2-mkconfig  -o  /boot/grub2/grub.cfg
      重新编译生成grub.cfg文件

    十四.最大文件打开数(文件句柄数)

    默认配置:

    [root@i-1y3we23j ~]# ulimit -n
    1024

    加固方案:

    1.备份配置文件
    cp -a /etc/security/limits.conf  /etc/security/limits.conf.default
    2.添加以下两行配置到该文件最后
    * soft nofile 65535
    * hard nofile 65535

    备注:修改所有用户的最大文件打开数为65535

    十五.用户最大进程数

    默认配置:

    [root@i-1y3we23j ~]# cat /etc/security/limits.d/20-nproc.conf 
    # Default limit for number of user's processes to prevent
    # accidental fork bombs.
    # See rhbz #432903 for reasoning.
    
    *          soft    nproc     4096
    root       soft    nproc     unlimited

    加固方案:

    1.备份配置文件
    cp -a  /etc/security/limits.d/20-nproc.conf /etc/security/limits.d/20-nproc.conf.default
    2.修改配置文件vim /etc/security/limits.d/20-nproc.conf
    
     *          soft     nproc     65535
     *          hard    nproc     65535

    备注:修改所有用户的最大进程数为65535

    十六.系统参数调优

    默认配置:

    加固方案:

    1.备份配置文件
    cp -a /etc/sysctl.conf /etc/sysctl.conf.default
    2.添加以下调优参数到该文件中
    net.ipv4.ip_forward = 1
    net.ipv4.conf.default.rp_filter = 1
    net.ipv4.conf.default.accept_source_route = 0
    kernel.sysrq = 0
    kernel.core_uses_pid = 1
    kernel.msgmnb = 65536
    kernel.msgmax = 65536
    kernel.shmmax = 68719476736
    kernel.shmall = 4294967296
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.route.gc_timeout = 20
    net.ipv4.tcp_retries2 = 5
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_wmem = 8192 131072 16777216
    net.ipv4.tcp_rmem = 32768 131072 16777216
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.core.somaxconn = 262144
    net.core.netdev_max_backlog = 262144
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.route.gc_timeout = 20
    net.ipv4.ip_local_port_range = 10024  65535
    net.ipv4.tcp_retries2 = 5
    net.ipv4.tcp_syn_retries = 2
    net.ipv4.tcp_synack_retries = 2
    net.ipv4.tcp_timestamps = 0
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_keepalive_time = 1800
    net.ipv4.tcp_keepalive_probes = 3
    net.ipv4.tcp_keepalive_intvl = 30
    net.ipv4.tcp_max_orphans = 3276800
    net.ipv4.tcp_wmem = 8192 131072 16777216
    net.ipv4.tcp_rmem = 32768 131072 16777216
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    
    fs.file-max = 65535
    kernel.pid_max = 65536
    net.ipv4.tcp_wmem = 4096 87380 8388608
    net.core.wmem_max = 8388608
    net.core.netdev_max_backlog = 5000
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_max_syn_backlog = 10240
    
    net.core.netdev_max_backlog = 262144
    net.core.somaxconn = 262144
    net.ipv4.tcp_max_orphans = 3276800
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_timestamps = 0
    net.ipv4.tcp_syn_retries = 1
    net.ipv4.tcp_synack_retries = 1
    
    
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_fin_timeout = 30
    
    net.ipv4.tcp_keepalive_time = 120
    net.ipv4.ip_local_port_range = 10000 65000
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_max_tw_buckets = 36000
  • 相关阅读:
    2020.4.26 resources
    Visual Studio M_PI定义
    12.3 ROS Costmap2D代价地图源码解读_1
    Delphi GDI对象之剪切区域
    用GDI+DrawImage画上去的图片会变大
    简单的GDI+双缓冲的分析与实现
    双缓冲绘图
    C++中的成员对象
    鼠标在某个控件上按下,然后离开后弹起,如何捕获这个鼠标弹起事件
    CStatic的透明背景方法
  • 原文地址:https://www.cnblogs.com/heaven-xi/p/9984561.html
Copyright © 2011-2022 走看看