[Linux] - 利用ping给端口加密,限制访问

Posted hd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Linux] - 利用ping给端口加密,限制访问相关的知识,希望对你有一定的参考价值。

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 [email protected]_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 掉

 

以上是关于[Linux] - 利用ping给端口加密,限制访问的主要内容,如果未能解决你的问题,请参考以下文章

ping端口号是多少

nodejs 怎样直接用ip访问 不加端口

Linux服务器,外网没法访问,PING不通。但是内网却可以。

ubuntu禁止ping操作(禁用ICMP协议访问)

怎么开启端口,ping本机端口的命令。

linux 禁ping