[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 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 掉
分类:
[Linux]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2014-03-26 设置Tomcat根目录
2005-03-26 [ASP.net]TreeView(1)(一次性递归所有节点)