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

LInux - 一文了解 ssh端口敲门knock

文章目录

  • 基本概念
  • 工作原理
  • 实操
  • 注意事项

在这里插入图片描述

基本概念

SSH端口敲门技术是一种网络安全措施,用于防止未经授权的访问。通过端口敲门,可以动态地在防火墙上打开指定端口(如SSH端口),仅允许符合特定敲门序列的用户访问。此技术通常用于隐藏重要服务(例如SSH),以防止暴力破解或其他未经授权的攻击。


工作原理

端口敲门的工作原理基于以下步骤:

  1. 闭合端口:默认情况下,所有重要端口(如22端口)在防火墙上都是关闭的。
  2. 发送敲门序列:用户在尝试连接之前,首先需要向一组预定义的端口发送一系列TCP/UDP包。这些端口可能是随机选择的,例如1234、5678和9101。
  3. 验证序列:防火墙监视传入流量,检测这些特定的端口敲门序列。
  4. 打开端口:如果敲门序列正确,防火墙会暂时打开SSH端口,让用户能够连接到服务器。
  5. 超时或关闭端口:一段时间后,如果没有进一步的连接,端口会自动关闭。

实操

以Linux系统为例,可以使用knockd工具来实现端口敲门。下面是一个基本的配置步骤:

  1. 安装knockd:
    sudo apt-get install knockd
    

  1. 配置knockd:
    编辑/etc/knockd.conf,添加以下内容:
    [options]logfile = /var/log/knockd.log[openSSH]sequence = 7000,8000,9000seq_timeout = 5command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPTtcpflags = syn[closeSSH]sequence = 9000,8000,7000seq_timeout = 5command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPTtcpflags = syn
    

  1. 启动knockd:
    sudo systemctl start knockd
    

在此配置中,当用户按顺序敲击7000、8000、9000端口时,防火墙会打开22端口(SSH端口);反向敲击(9000、8000、7000)则会关闭该端口。


  1. 测试:
    在这里插入图片描述

注意事项

  • 安全性:虽然端口敲门提高了安全性,但仍然需要结合其他安全措施,如强密码和双因素认证。
  • 日志管理:由于敲门序列是通过日志监控实现的,确保日志的安全性和完整性也是必要的。

在这里插入图片描述

http://www.lryc.cn/news/421767.html

相关文章:

  • Java面试篇(线程池相关专题)
  • git推送错误-->远程分支比本地的分支更新,无法直接推送
  • 【三维重建】SpotlessSplats:去除瞬态干扰物的三维高斯喷溅(3DGS)
  • 28. 找出字符串中第一个匹配项的下标【 力扣(LeetCode) 】
  • 邀请函 I 松下信息和望繁信科技邀您参加「数智时代下大数据应用的“道”与“术”」闭门会议
  • Node.js中的fs.watchFile与fs.unwatchFile:文件监控与取消监控
  • Hadoop大集群配置文档-粗略版-3万字长文 (包括hive,zookeeper,hbase,flume等中间件和mysql等)
  • 原生html+js播放flv直播视频流【vue等皆可用】
  • 初学java第一天:写一下熟悉的猜数字小游戏
  • 【C++】如何判断类型
  • 让一切发生皆有利于我,在人生的长河中,我们常常面临诸多的不确定性和变化
  • 腾讯云AI代码助手:智能AI代码助手 ,新一代的高效代码开发辅助工具
  • C#:索引器 集合初始化器 事件访问器 枚举器 迭代器
  • css伪类选择器、盒子模型等
  • opencv-python图像增强三:图像清晰度增强
  • 第130天:内网安全-横向移动PTH哈希PTT 票据PTK密匙Kerberos密码喷射
  • SB3045LFCT-ASEMI无人机专用SB3045LFCT
  • RPA财务机器人是什么,RPA的具体应用场景有哪些?| 实在RPA研究
  • 滑动窗口 | Java | (hot100) 力扣 3
  • 【产品经理】竞品分析怎么理解?拆解一下
  • 合规性导航:处理爬虫数据用于机器学习的最佳实践
  • spring中使用到的设计模式有哪些
  • splitcontainer控件设置固定大小
  • 最近在写的支付模块
  • 解决域名加别名后再代理或者映射到fastadmin项目
  • Armv9.5架构新增的关键扩展--精简版
  • STM32 GPIO 模块
  • 网络剪枝——network-slimming 项目复现
  • Spring 懒加载的实际应用
  • PyQT 串口改动每次点开时更新串口信息