专栏首页WalkingCloud腾讯云主机上部署端口敲门Knock服务

腾讯云主机上部署端口敲门Knock服务

端口敲门简单介绍

knock: A port-knocking implementation

端口敲门(knock):个人觉得叫芝麻开门更形象,指的是自己的客户端设备向服务器IP发送一系列实现预定好的暗号,而服务器上需要安装相对应接收暗号的服务knockd,服务器在接收到正确的暗号后,会临时性的为敲门者(客户端)开一段时间的门并随后关上,敲门者(客户端)要在这段时间内登录成功并且保持连接,如果断了连接就要重新敲门。

客户端相当于访客,服务端knockd相当于门童,暗号对上后门童临时开门给访客放行,待访客进入后又关上门

这种方法可以作为一种安全隐藏手段

  • 项目官网地址
http://www.zeroflux.org/projects/knock
  • GitHub地址
https://github.com/jvinet/knock

(图片可放大查看)

具体原理可以参考 《鳥哥的 Linux 私房菜》中的链接

http://linux.vbird.org/linux_security/knockd.php

下面介绍在腾讯云主机上部署端口敲门Knock服务

1、服务端安装knock-server

CentOS7操作系统的腾讯云轻量服务器一台用于本文的演示

(图片可放大查看)

配置EPEL源,可以在EPEL源中查找到knock

yum search knock

yum安装

yum  -y install knock-server

(图片可放大查看)

man knockd

查看配置样例说明及语法手册

(图片可放大查看)

2、配置sshd监听端口

为了演示方便,我这里设置SSHD服务监听端口5522

vi /etc/ssh/sshd_config
新增如下两行
ListenAddress 0.0.0.0:22
#新增SSHD服务监听端口5522
ListenAddress 0.0.0.0:5522

(图片可放大查看)

(图片可放大查看)

3、修改/etc/knockd.conf配置文件

vi /etc/knockd.conf
[options]
        #UseSyslog
        Interface = eth0
        LogFile = /var/log/knockd.log

[opencloseSSH]
        sequence      = 1122:tcp,2233:tcp,3344:tcp
        seq_timeout   = 20
        tcpflags      = syn
        start_command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 5522 -j ACCEPT
        cmd_timeout   = 60
        stop_command  = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 5522 -j ACCEPT

(图片可放大查看)

其中sequence = 1122:tcp,2233:tcp,3344:tcp可以理解为暗号序列

[options]中Interface 指定相应的网卡名,如果不配置Interface则默认为eth0

4、启动knockd服务并设置成开机自启动

systemctl enable knockd.service 
systemctl restart knockd.service

(图片可放大查看)

查看knockd.log服务日志 tail -f /var/log/knockd.log

5、云主机安全组规则配置

我这里是腾讯云轻量服务器,操作系统为CentOS7

(图片可放大查看)

(图片可放大查看)

(图片可放大查看)

6、客户端配置及knock功能测试

比如CentOS7主机,测试主机IP 192.168.31.52

  • 1)、配置epel源后yum install方式安装knock

(图片可放大查看)

  • 2)、先敲门
knock -v HOST_IP 1122:tcp 2233:tcp 3344:tcp

这时可以在腾讯云主机上tail -f /var/log/knockd.log

(图片可放大查看)

可以看到Stage1->Stage2->Stage3阶段完成后,执行iptables命令,插入一条允许客户端IP访问5522端口的防火墙规则

iptables -nvL | grep 5522 可以知道规则生效

(图片可放大查看)

  • 3)、然后再客户端SSH登录

(图片可放大查看)

  • 4)、1分钟后自动删除防火墙规则 knockd服务在1分钟后会自动执行iptables命令,删除客户端IP访问5522端口的防火墙规则

(图片可放大查看)

可以在/var/log/knockd.log中看到,所以客户端在敲门成功后,需要在这一分钟内登录成功 SSH登录成功后连接不断开就行,如果断了连接就要重新敲门knock

(图片可放大查看)

当然1分钟(60S)你觉得太短,你可以在配置文件中调整cmd_timeout

7、/etc/knockd.conf配置文件改用firewalld

CentOS7默认使用的firewalld防火墙服务,其实这时可以用rich-rule来做 修改成如下配置文件

vi /etc/knockd.conf
 [options]
        #UseSyslog
        Interface = eth0
        LogFile = /var/log/knockd.log

[opencloseSSH]
        sequence      = 1122:tcp,2233:tcp,3344:tcp
        seq_timeout   = 20
        tcpflags      = syn
        start_command = /usr/bin/firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="%IP%" port port="5522" protocol="tcp" accept';/usr/bin/firewall-cmd --reload
        cmd_timeout   = 60
        stop_command  = /usr/bin/firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="%IP%" port port="5522" protocol="tcp" accept';/usr/bin/firewall-cmd --reload

(图片可放大查看)

同样1分钟后自动删除防火墙规则

(图片可放大查看)

8、Tips

1)、客户端可以使用&&命令

knock -v HOST_IP:tcp 2233:tcp 3344:tcp && ssh [-p sshd_port] root@HOST_IP 

2)、Windows版本的knock客户端程序

knock也提供了Windows版本的knock客户端程序

(图片可放大查看)

本文分享自微信公众号 - WalkingCloud(WalkingCloud2018),作者:yuanfan2012

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

关注作者,阅读全部精彩内容

我来说两句

0 条评论
登录 后参与评论

相关文章

  • knockd:CVM云主机的隐形斗篷

    用knockd隐藏服务器的ssh等各种高危端口,让服务器在黑客眼前隐形。

    黄希彤
  • 应用开发中的网络安全

    最近有个朋友让我帮忙看看他系统中的一个问题:他给了我一个用户名密码,让我ssh到他的某台服务器上。那是一台redis server,里面存放数据库查询的缓存和其...

    tyrchen
  • 老式后门之美:五种复古远程控制工具

    目前,高级的rootkit技术可以帮助你在渗透中拿到一个shell后进行持久性控制。此外,还有供应商故意提供了一些植入后门,但那就是截然不同的故事了。尽管各式花...

    FB客服
  • 腾讯主机安全捕获YAPI远程代码执行0day漏洞在野利用,该攻击正扩散,可使用防火墙阻截

    腾讯主机安全(云镜)捕获YAPI远程代码执行0day漏洞在野利用,该攻击正在扩散。受YAPI远程代码执行0day漏洞影响,从7月第1周开始,未部署任何安全防护系...

    腾讯安全
  • 如何在腾讯云主机上快速部署 F-Stack HTTP 服务

    F-Stack是一个全用户态的高性能的网络接入开发包,本文介绍如何在腾讯云主机上使用F-Stack快速部署HTTP服务器。

    F-Stack
  • 从 DAU 5 万到用户数破亿,揭秘腾讯会议增长背后的技术实践

    10.5 个人开发的一款产品 ,在正式上线两个月后,其日活用户就超过 1000 万。不到一年,它的注册用户就突破 1 亿。并且,其国际版在全球超 100 个国家...

    深度学习与Python
  • 通过Knockd隐藏SSH,让黑客看不见你的服务器

    先用Kali探测下Ubuntu的端口情况,可以看到Ubuntu的22端口是正常开放的

    Ms08067安全实验室
  • 一键部署,急速上云,腾讯云星腾数字政务一体机柜正式上架!

    什么是一体机柜?了解一下 腾讯云星腾数字政务一体机柜 获取专属架构师服务支持 请扫描下方二维码 ▽▽▽ ? 腾讯基于数字广东、数智贵州的成功建设经验,在2...

    腾讯云TStack
  • 马晓:Serverless SSR 在人人视频的落地探索

    人人视频之所以考虑 SSR 方案,首先是因为和百度的合作项目。基于对搜索引擎爬虫的友好度考虑,也就是 SEO 优化,页面必须尽量保持是直出,方便蜘蛛爬取;其次,...

    腾讯云serverless团队
  • 怒肝最新保姆级前端学习路线,速成贴心全面!

    是不是有点儿长,感觉要被劝退了?不过不用担心,为了帮助大家更轻松地了解前端知识体系,我对这份路线撒了点 糖 ~

    程序员鱼皮
  • 【玩转腾讯云】征文活动获奖名单公布

    由云+社区联合腾讯云免费体验馆及各产品团队举办【玩转腾讯云】征文活动,吸引入驻作者积极参加,非常感谢各位作者的参与。经过评委老师从产品创新性、实用性、可借鉴性、...

    云加社区
  • 微软曝“永恒之黑”漏洞,或成网络攻击“暗道”

    随着网络技术不断升级,网络安全形势日益严峻。近年来,数据泄漏、网络敲诈等各类网络安全事件频发,给企业及社会发展带来严重影响。

    腾讯安全
  • ​新财报背后:腾讯云的攻势与焦灼

    我们每天都会使用手机QQ、微信发送文件进行办公或社交分享,亦或是进行网络购物、聆听音乐······那么,在我们享受其网络便利的时候,你是否注意到了APP启动界面...

    金融外参
  • 巧捷万端,灵活易用—SD-WAN技术创新与实践

    SD-WAN背景 近几年以云计算、边缘计算为代表的计算技术发展的如火如荼,随着企业上云、产业互联网、SaaS服务的显著趋势,企业传统的广域网架构在敏捷上已经跟...

    鹅厂网事
  • 「峰会回响」1/1000000

    2018年的夏天,除了烟把儿乐队的《纸短情长》火遍大街小巷之外,还有一个变化在悄然发生:腾讯云联合微信上线云开发。

    腾讯云开发TCB
  • drf项目部署到腾讯云

    在购买了腾讯云服务器成功之后,腾讯云的站内信会将系统的登录名:Ubuntu,以及登录初始密码发给你。

    玩蛇的胖纸
  • Serverless 工程化实战:基于 Python + JS 的动态博客开发 | 课程预约

    Tencent Serverless 目前已经支持了不少语言的热门框架,包括 Express、 Koa、Egg 以及 Flask 等等大家熟悉的框架都可以轻松...

    腾讯云serverless团队
  • 游戏出海,如何避开DDoS这座暗礁?

    摘要:在游戏出海的过程中,DDoS攻击是游戏企业不得不面对的一个暗礁,如若应对不当,用户流失和口碑受损不可避免。

    腾讯游戏云
  • 【版本升级】腾讯云防火墙2.3.0版本正式发布!

    大家好,我是腾讯云防火墙的产品经理jojen,过去几个月在实战中我们发现,就业务系统的脆弱性而言,漏洞、弱口令以及影子资产是最大的三个因素。作为安全产品团队,我...

    zoeding

扫码关注云+社区

领取腾讯云代金券