zoukankan      html  css  js  c++  java
  • 使用 IPset 进行端口敲门

    端口敲门(Port knocking)技术,即服务通过动态的添加 iptables 规则来隐藏系统开启的服务,使用自定义的一系列序列号来「敲门」,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来「关门」,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。

    关闭SELinux

    查看 SELinux 状态:

    getenforce
    

    临时关闭 SELinux(设为 Permissive 模式):

    setenforce 0
    

    永久关闭 SELinux(重启生效):

    修改 /etc/selinux/config 文件
    将 SELINUX=enforcing 改为 SELINUX=disabled
    

    安装 ipset

    CentOS 7 需要先关闭 Firewall 防火墙:

    systemctl stop firewalld.service
    systemctl disable firewalld.service
    

    创建规则

    创建一个名为 allowlist 的规则并设置有效期为 30 秒

    ipset create allowlist hash:ip timeout 30
    

    设置IP白名单

    # 放行IP规则
    iptables -A INPUT -p tcp -m set --match-set allowlist src -j ACCEPT
    
    # 关闭22端口
    iptables -A INPUT -p tcp --dport 22 -j DROP
    

    iptables 是由上而下的进行规则匹配,放行规则需在禁行规则之前才能生效。

    开放指定IP

    # 将IP加入白名单
    ipset -exist add allowlist 192.168.37.1 timeout 30
    

    其他指令

    # 查看白名单IP列表
    ipset list allowlist
    

    如果手工将其 timeout 值设置为 0 的话,即为存活时间无限久。

    文章来自:chenxuhua.com
  • 相关阅读:
    mysql 的远程链接字符
    SqlSessionFactoryUtil
    mysql 的链接字符
    web 项目运用通用的xml配置
    配置文件转意符使用
    new和newInstance的区别
    子选择器与后代选择器的区别
    Vivado_HLS 学习笔记1-数据类型
    Vivado_HLS 学习笔记3-循环的pipeline与展开
    Vivado_HLS 学习笔记2-接口综合
  • 原文地址:https://www.cnblogs.com/chenxuhua/p/ipset-port-knocking.html
Copyright © 2011-2022 走看看