|
|
51CTO旗下网站
|
|
移动端

如何使用knockd让黑客看不见你的服务器?

如果你有一台公众可访问的服务器,黑客可以轻松扫描其IP地址,查找服务器上的开放端口(尤其是用于SSH的端口22)。将服务器隐藏起来、不让黑客看见的一种方法是使用knockd。

作者:布加迪编译来源:51CTO.com|2018-07-06 09:00

【51CTO.com快译】如果你有一台公众可访问的服务器,黑客可以轻松扫描其IP地址,查找服务器上的开放端口(尤其是用于SSH的端口22)。将服务器隐藏起来、不让黑客看见的一种方法是使用knockd。knockd是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中。

我们在本文中将介绍如何使用knockd来隐藏在Linux服务器上运行的服务。

1.在Linux服务器上安装knockd

knockd在大多数发行版的代码仓库中都有。在基于Debian/Ubuntu/Ubuntu的服务器上,可以使用apt-get命令来安装knockd。

  1. sudo apt-get install knockd 

如果是Fedora、CentOS或REHL用户,可以使用yum命令:

  1. yum install knockd 

2. 安装和配置Iptables

如果你的服务器上还没有安装Iptables,请立即安装。

  1. sudo apt-get install iptables iptables-persistent 

程序包iptables-persistent接手自动加载已保存的iptables的任务。

接下来,你需要通过iptables允许已建立的连接以及当前会话。使用下列命令来完成这项任务:

  1. iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT 

接下来,需要阻止通向端口22 SSH的所有入站连接。

  1. iptables  -A  INPUT  -p  tcp  --dport  22  -j  REJECT 

不妨通过下列命令来保存防火墙规则:

  1. netfilter-persistent save 
  2. netfilter-persistent reload 

可以通过由你的计算机连接到服务器,进一步检查是否确实阻止了端口22。

  1. ssh my-server-ip 

3. 配置knockd

现在是时候配置knockd默认设置了。它位于“/etc/knockd.conf”。为此,请使用下列命令,切换到knockd配置文件:

  1. cd /etc 
  2. sudo leafpad knockd.conf 

为了便于说明,我使用leafpad编辑器。在你的服务器上,你可以使用nano或Vi。

屏幕截图显示了knockd配置文件。

  • Options:你可以在此字段中找到knockd的配置选项。正如你在上面屏幕截图中所看到,它使用syslog进行日志记录。
  • OpenSSH:该字段包括序列、序列超时、命令和tcp标志。
  • Sequence:它显示可由客户软件用作启动操作的模式的端口序列。
  • Sequence timeout:它显示分配给客户端以完成所需的端口试探序列的总时间。
  • command:这是一旦客户软件的试探序列与序列字段中的模式,执行的命令。
  • TCP_FLAGS:这是必须针对客户软件发出的试探设置的标志。如果标志不正确,但试探模式正确,不会触发动作。

4. 启用并启动knockd服务

使用下列程序启用“/etc/default/knock”中的knockd服务。

将值从0改为1,如屏幕截图所示:

  1. START_KNOCKD = 1 

之后,保存并关闭文件“/etc/default/knockd”。

接下来,可以使用下列命令之一来启动knockd服务:

  1. sudo service knockd start 

或者:

  1. sudo systemctl start knockd 

5. 是时候试探测试你的Linux服务器了

现在是时候测试你的Linux SSH服务器了。要想在指定的IP地址处打开端口22,请在计算机上使用下列命令。(你还需要在计算机上安装knockd)

  1. knock -v my-server-ip  7000 8000 9000 

需要将“my-server-ip”换成服务器的IP地址。

现在可以使用下列命令连接到端口22 SSH:

  1. ssh my-server-ip 

完成你通过端口22想要完成的任何操作后,可以使用下列命令关闭该端口:

  1. knock -v my-server-ip 9000 8000 7000 

结束语

使用knockd,你尽可放心:你的SSH服务器是安全的,并且远离使用复杂扫描工具的攻击者。此外,你还完全掌控自己的SSH服务器。

原文标题:How to Make Your Server Invisible with Knockd,作者:Michael Aboagye

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

  1. 太刺激!服务器被黑遭攻击,凌晨一点紧急逆袭! - 网络·安全技术周刊第339期
  2. 微步在线推出TDP-S服务器版产品,威胁检测怎样做到场景化?
  3. 无服务器体系架构:应用安全范式转换
  4. 一次真实的Linux服务器挖矿程序排查案例,顺道干掉一个DDoS后门
  5. AcFun遭遇黑客攻击,近千万条用户数据泄露
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

视频课程+更多

Web安全入门视频课程

Web安全入门视频课程

讲师:曲广平112976人学习过

Python信息安全编程入门视频课程

Python信息安全编程入门视频课程

讲师:曲广平23326人学习过

深信服上网行为管理精讲视频课程

深信服上网行为管理精讲视频课程

讲师:易普42674人学习过

读 书 +更多

JSP应用开发详解(第二版)

本书结合JSP和Servlet的最新规范,从基本的语法和规范入手,以经验为后盾,以实用为目标,以实例为导向,以实践为指导,深入浅出地讲解了JS...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊