zoukankan      html  css  js  c++  java
  • [Linux]

    Linux中,想对特定的端口加密访问,可以使用iptables的ping方式。

    作用

    访问被限制的端口,必需先ping发送对应的字节包(字节包大小可自行设置,此为密钥)才能访问成功!

    下边是对SSH的22端口加入ping规则

    其它端口可自行修改设定

    1) iptables-recent 配置
    # 设置 iptables 规则,要先登录服务器就必须先 ping 一个 128 字节的包

    iptables -A INPUT -p icmp --icmp-type 8 -m length --length 128 -m recent --name sshkey --rsource --set -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name sshkey --rcheck --rsource --seconds 15 -j ACCEPT
    iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP

    2) 先发送一个长度为 128 字节的 ICMP 请求包(100 字节加上 IP 头、ICMP 头 28 字节):

    ping -c 1 -s 100 SERVER_IP # Linux
    ping -n 1 -l 100 SERVER_IP # Windows

    3) 然后在 15 秒内可正常登录:

    ssh -p 1234 user@SERVER_IP

    说明

    ## iptables-recent 可以理解为一张记录 IP 地址的列表
    '--set' '--remove' # 添加、删除 IP
    '--rsource' '--rdest' # 记录源地址(默认)、目标地址
    '--rcheck' '--update' # 检查地址是否在列表中
    '--seconds' # 设置时间条件
    '--hitcount' # 设置命中次数
    
    ## rcheck、update 区别
    # rcheck 仅仅检查地址是否在列表中
    # update 和 rcheck 一样,不过会刷新时间戳
    
    ## 放在上面的例子:
    # 1. 记录长度为 128 字节的 ICMP_Request 包的源地址,命名为 sshkey
    # 2. 允许来自 sshkey 列表中的地址在 15 秒内登录 SSH(端口 1234)
    # 3. 而其他不在 sshkey 列表中的地址的 SSH 握手将被 DROP 掉
  • 相关阅读:
    Docker技术入门之---Docker核心概念:镜像、容器、仓库(2)
    Docker技术入门之---Docker安装(1)
    微信小程序自定义组件
    vue项目优化--使用CDN和Gzip
    小程序分包
    VUE--- browserHistory 和 hashHistory。
    vue-生成的css文件中背景url()图片路径问题
    vue异步组件
    Vue双向绑定原理及实现
    web-view小程序转发功能,web-view和小程序之间传参
  • 原文地址:https://www.cnblogs.com/HD/p/10601008.html
Copyright © 2011-2022 走看看