CentOS 7 服务器安全配置(等保2.0)

服务器安全标准文档html

  1. 禁止root用户直接登陆
    #修改ssh配置文件,开启 RermitRootLogin, 并改成 no;
    vim /etc/ssh/sshd_config
    #LoginGraceTime 2m
    PermitRootLogin no
    #StrictModes yes
    #MaxAuthTries 6
    #MaxSessions 10
    #重启 sshd 服务
    /etc/init.d/sshd restart
  2. 设置用户无操做超时自动退出
    #针对指定用户设置, 首先进入用户的家目录, 修改 .bash_profile 文件, 300秒;
    cd /home/tian
    ls -a
    .  ..  .bash_history  .bash_logout  .bash_profile  .bashrc
    vim .bash_profile
    export TMOUT=300
    #修改 /etc/profile 文件, 全局全部用户生效;
    vim /etc/profile
    ... ...
    export TMOUT=300
    source /etc/profile                #声明生效, 或者退出终端从新登陆生效;
  3. 修改系统的ssh登陆端口
    vim /etc/ssh/sshd_config        # 修改ssh配置文件
    #Port 22                 # 默认为22端口,可去掉注释直接修改,也能够以下行;
    Port 52353               # 修改成想要设置的端口号
    # 端口的取值范围是 0--65535; 1024如下是系统使用的端口, 咱们可以使用的端口是1024--65535;
    # 没有关闭防火墙的状况下,修改端口后,必定要修改防火墙规则;不然重启了sshd服务后,远程链接不上;
    # 添加防火墙规则,进入服务器,端口52353;
    firewall-cmd --zone=public --add-port=52353/tcp --permanent
    # 保存添加的防火墙规则;
    firewall-cmd --reload
    # 重启sshd服务,修改ssh登陆端口生效;
    systemctl restart firewalld
  4. 设置密码复杂度
    # 密码必须符合复杂度的要求: 字母, 数字, 特殊符号组成, 且长度大于8位
    vim /etc/pam.d/system-auth
    # password    requisite   pam_cracklib.so try_first_pass retry=3 type=
    password    requisite     pam_cracklib.so retry=3 difok=3 minlen=8 lcredit=-1 dcredit=-1 ocredit=-1
    # 参数
    * try_first_pass: 代表该模块首先应当使用前一个模块从用户那里获得的密码,若是该密码不经过,再提示用户输入新的密码;
    * 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: 定义用户密码中必须包含多少个特殊字符(除数字,字母以外);
  5. 设置密码有效期
    chage -M 天数 用户名            # 方法一
    passwd -x 天数 用户名            # 方法二
    # 操做
    grep tian /etc/shadow
    tian:!!:17976:0:99999:7:::
    chage -M 60 tian
    grep tian /etc/shadow
    tian:!!:17976:0:60:7:::
  6. 密码按期修改
    # 查看用户的按期修改的信息
    chage -l tian
    Last password change                    : Mar 21, 2019
    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
    # 配置用户密码按期修改
    vim /etc/login.defs
    ......
    MAIL_DIR /var/spool/mail # 当你在建立用户的同时,再/var/spool/mail目录下建立mail文件;
    ......
    PASS_MAX_DAYS   90       # 用户密码不过时最多的天数;
    PASS_MIN_DAYS   0        # 密码修改之间的最小天数;
    PASS_MIN_LEN    8        # 密码最小长度;
    PASS_WARN_AGE   7        # 密码过时提早的警告天数;
    ......
    UID_MIN                   500   # 此处两行设置建立用户的最小uid和最大uid范围;
    UID_MAX                 60000
    ......
    GID_MIN                   500   # 此处两行是设置GID;
    GID_MAX                 60000
    ......
    CREATE_HOME     yes     # 建立用户的时候是否建立家目录;
    UMASK       077         # 家目录的权限初始值;
    ......
    USERGROUPS_ENAB yes     # 当一个组只有一个用户存在的时候,删除用户的同时删除组;
    ENCRYPT_METHOD SHA512   # 指定password的机密方法;
    # 要求用户下次登陆时修改密码
    chage -d 0 用户名
  7. 重设密码5次不能重复
    # remember=5 表示 5 次
    vim /etc/pam.d/system-auth
    password    sufficient    pam_unix.so sha512 shadow nullok     try_first_pass use_authtok remember=5
  8. 限定登陆错误次数,超时锁定时长
    # 查看系统中是否含有pam_tally2.so模块
    find / -type f -name "pam_tally2.so"
    ......
    # 修改配置文件, 设置密码错误 5 次, 锁定 20 分钟; 第二行添加如下内容;
    vim /etc/pam.d/sshd
    auth   required     pam_tally2.so deny=5 unlock_time=12000
  9. 禁止外网开放ssh映射端口shell

    #服务器但凡开放到ssh端口至公网,都会有风险。因此咱们建议不用ssh直连的方式,能够经过专门的跳板机进行跳转登陆
    10.采用jumpserver跳板机机制,进行登陆服务器操做vim

    新搭建的jumpserver堡垒机能够很好的解决关于登陆服务器操做的问题,服务器无需对公网开放ssh端口,只须要对jumpserver所在服务器开放内网访问便可,更安全,并且咱们能够经过对不一样用户设定不通的组别,好比,开发,运维,分别使用不通的组,有着不一样的权限管理,对应着不一样的系统管理用户,好比开发是没有sudo权限,可是运维须要管理服务器,则会须要有sudo权限。
    11.开启firewalld防火墙,对非必须对外端口进行严格管控安全

    systemctl start firewalld #开启防火墙
    firewall-cmd --zone=public --add-port=80/tcp --permanent #开通80端口,其余端口同样。
    firewall-cmd --add-service=http --permanent #开通http访问
    firewall-cmd --reload  #重载设置

    12.配置history时间戳,服务器信息加固bash

1.备份配置文件:
略
2.编辑配置文件:
vi /etc/profile
在文件的末尾添加参数
export HISTTIMEFORMAT="%F %T `whoami` "
3.保存配置文件
4.服务器日志信息加固(宿主机手动执行,不能用脚本)
export HISTTIMEFORMAT="%F %T `whoami`"
export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; }); logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg";}'

13.设置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文件

14.最大文件打开数(文件句柄数)cookie

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

15.用户最大进程数运维

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

16.系统参数调优ssh

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

引用:
https://www.cnblogs.com/haorong/p/10569688.html
https://www.cnblogs.com/heaven-xi/p/9984561.htmltcp

相关文章
相关标签/搜索