• CentOS7安全配置


    一、修改了ssh默认登录的22端口

    1、修改sshd_config配置文件:

    vi /etc/ssh/sshd_config
    
    • 1

    找到【Port 22】 ,删除注释符号【#】,将22改为要设置的目的端口,如9999,然后保存文件并退出。

    2、防火墙开放当前设置的端口

    firewall-cmd --zone=public --add-port=9999/tcp --permanent
    
    • 1

    重启防火墙:

    firewall-cmd --reload
    
    • 1

    3、开放ssh使用的端口

    查看开放ssh使用的端口:

    yum  install policycoreutils-python
    
    • 1
    semanage port -l | grep ssh
    
    • 1

    开放当前设置的ssh端口:

    semanage port -a -t ssh_port_t -p tcp 9999
    
    • 1

    重启ssh:

    systemctl restart sshd
    
    • 1

    二、禁止关闭防火墙,开放端口需手动添加防火墙规则;

    查看已开放端口:firewall-cmd --list-ports
    开放端口:firewall-cmd --add-port=8080/tcp --permanent
    移除端口:firewall-cmd --remove-port=8080/tcp --permanent
    重新加载防火墙规则:firewall-cmd --reload
    
    • 1
    • 2
    • 3
    • 4

    三、已设置白名单和黑名单规则;

    1、设置白名单

    vi /etc/hosts.allow
    
    • 1

    添加:

    sshd:192.168.1.185:allow     #允许192.168.1.185访问
    sshd:192.168.1.*:allow      #允许192.168.1该IP段访问
    
    • 1
    • 2

    2、设置黑名单

    vi /etc/hosts.deny
    
    • 1

    添加:

    sshd:ALL          #限制除/etc/hosts.allow外的其他一切IP访问本服务器
    
    • 1

    四、已设置IP锁定的脚本,超过10次失败登录会封掉IP,添加到黑名单。

    1、编辑脚本

    vim /usr/local/bin/secure_ssh.sh
    
    • 1
    #! /bin/bash
    cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /usr/local/bin/black.txt
    for i in `cat  /usr/local/bin/black.txt`
    do
      IP=`echo $i |awk -F= '{print $1}'`
      NUM=`echo $i|awk -F= '{print $2}'`
       if [ $NUM -gt 10 ];then
          grep $IP /etc/hosts.deny > /dev/null
        if [ $? -gt 0 ];then
          echo "sshd:$IP:deny" >> /etc/hosts.deny
        fi
      fi
    done
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    2、创建记录登录失败次数的文件

    touch /usr/local/bin/black.txt
    
    • 1

    3、添加定时 10分钟执行一次

    crontab -e
    添加以下命令:
    */10 * * * * root  sh /usr/local/bin/secure_ssh.sh
    
    • 1
    • 2
    • 3
  • 相关阅读:
    CMake 在工程管理中的使用 Window/MacOS
    Spring源码:Bean生命周期(三)
    call函数和apply函数的区别
    EF Core 如何应对高并发
    后端——egg.js是什么、egg.js安装、约定规则、路由Router、控制器Controller、跨域
    Jetpack Compose(2) —— 入门实践
    因子模型套利定价理论APT的应用
    力扣-169. 多数元素(C语言+分治递归)
    解决:div获取不到键盘事件
    第六十四章 CSP的常见问题 - 发送给浏览器的HTTP头信息是什么
  • 原文地址:https://blog.csdn.net/weixin_44455388/article/details/132965933