当前位置: 首页 > news >正文

Linux 的 Port Knocking 端口碰撞(端口敲门)

目录

  • 1. 什么是Port Knocking 端口碰撞(敲门)
  • 2. 如何进行端口碰撞
    • 2.1 knock命令
    • 2.2 nmap命令
    • 2.3 telnet命令
    • 2.4 nc命令


1. 什么是Port Knocking 端口碰撞(敲门)


端口碰撞是一种通过在一组预先指定的关闭端口上产生连接请求,从外部打开防火墙上的端口的方法。一旦收到正确的连接请求序列,防火墙规则就会被动态修改,以允许发送连接请求的主机通过特定端口进行连接。

在Linux中称为 Knockd服务,该服务通过动态的添加iptables规则来隐藏系统开启的端口,使用自定义的一系列序列号来“敲门”,使系统开启需要访问的服务端口,才能对外访问。不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。

端口碰撞的主要目的是防止攻击者通过进行端口扫描来扫描系统中潜在的可利用服务,因为除非攻击者发送正确的碰撞序列,否则受保护的端口将显示为关闭。

例子:

在扫描某台服务器的开放端口时,22端口ssh服务是被过滤的,并且无法进行ssh连接。在这台服务器上设置:同一个用户依次对1024,2024,3024端口进行访问,则开启22端口,并允许外部机器进行访问。



2. 如何进行端口碰撞


2.1 knock命令


安装knockd服务:sudo apt install knockd

启动knockd服务:systemctl start knockd

配置knockd服务:

$ vim /etc/knockd.conf
[options]# UseSyslogLogFile = var/knock/knock.log[openSSH]# 定义敲门暗号顺序sequence    = 1024,2024,3024# 设置超时时间,时间太小可能会出错seq_timeout = 30# 设置敲门成功后所执行的命令# 在ubuntu系统iptables规则默认是禁止所有的规则,如果直接添加规则默认是在drop all规则之后,因此需要先删除drop all的规则再添加所要设置的规则,最后重新添加drop all的规则。# command = /sbin/iptables -D INPUT -p tcp --dport 22 -j DROP && /sbin/iptables -A INPUT -s [允许远程的IP] -p tcp --dport 22 -j ACCEPT && /sbin/iptables -A INPUT -p tcp --dport 22 -j DROPcommand     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPTtcpflags    = syn[closeSSH]sequence    = 3024,2024,1024seq_timeout = 30command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPTtcpflags    = syn[openHTTPS]sequence    = 12345,54321,24680,13579seq_timeout = 5command     = /usr/local/sbin/knock_add -i -c INPUT -p tcp -d 443 -f %IP%tcpflags    = syn

配置文件的一些说明:

  • openssh是开启端口的设置,closessh是关闭端口的设置。
  • sequence 按照顺序依次访问端口,command执行的条件。比如这里是依次访问7000, 8000, 9000端口,默认使用TCP访问。
  • command 当knockd监测到sequence端口访问完成,然后执行此处command,这里为通过iptables开启关闭ssh外部访问。

使用:knock <IP> <PORT1> <PORT2> <PORT3> <PORT4> -v

上面的例子中,开启22端口则执行:knock 192.168.22.14 1024 2024 3024 -v

上面的例子中,关闭22端口则执行:knock 192.168.22.14 3024 2024 1024 -v



2.2 nmap命令


开启端口,使用nmap依次指定端口进行扫描:

nmap 192.168.22.14 -p 1024
nmap 192.168.22.14 -p 2024
nmap 192.168.22.14 -p 3024

关闭端口:

nmap 192.168.22.14 -p 3024
nmap 192.168.22.14 -p 2024
nmap 192.168.22.14 -p 1024


2.3 telnet命令


开启端口,使用telnet依次访问端口:

telnet 192.168.22.14 1024
telnet 192.168.22.14 2024
telnet 192.168.22.14 3024

关闭端口:

telnet 192.168.22.14 3024
telnet 192.168.22.14 2024
telnet 192.168.22.14 1024


2.4 nc命令


开启端口,使用nc依次访问端口:nc -z 192.168.22.14 1024 2024 3024

关闭端口:nc -z 192.168.22.14 3024 2024 1024




相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++从入门到入土(四)--日期类的实现
  • OpenAI 称其在发布检测 ChatGPT 写作的工具时采取“审慎态度”
  • Java编程常见问题解析与代码示例
  • 基于whisper流式语音识别
  • 【Kubernetes】应用的部署(一):金丝雀部署
  • #70结构体案例1(导师,学生,成绩)
  • 交通预测数据文件梳理:METR-LA
  • Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED
  • 卷积神经网络(CNN)简单原理与简单代码实现
  • 人工智能自动驾驶三维车道线检测—PersFormer模型代码详解
  • 【算法模板】图论:Tarjan算法求割边割点
  • datawind可视化查询-计数count(xxx)函数
  • Brave浏览器:开启隐私保护新时代
  • 按照指定格式打印pprint()
  • 自动化测试面试题
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • codis proxy处理流程
  • ES6核心特性
  • Git同步原始仓库到Fork仓库中
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • 大型网站性能监测、分析与优化常见问题QA
  • 理解在java “”i=i++;”所发生的事情
  • 前端自动化解决方案
  • 我感觉这是史上最牛的防sql注入方法类
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 怎么将电脑中的声音录制成WAV格式
  • 阿里云服务器购买完整流程
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​configparser --- 配置文件解析器​
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • (007)XHTML文档之标题——h1~h6
  • (06)Hive——正则表达式
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (十八)三元表达式和列表解析
  • **PHP二维数组遍历时同时赋值
  • .aanva
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .gitattributes 文件
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET HttpWebRequest、WebClient、HttpClient
  • .net 使用ajax控件后如何调用前端脚本
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NetCore部署微服务(二)
  • .NET编程——利用C#调用海康机器人工业相机SDK实现回调取图与软触发取图【含免费源码】
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .net下的富文本编辑器FCKeditor的配置方法
  • .net专家(张羿专栏)