系统安全加固(五) 使用knockd隐藏端口


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

安装knockd Server

  1. 尝试使用yum或apt安装knockd-server服务(yum install knock-server),如果不行,使用以下步骤继续

  2. 下载knockd-server的rpm源
    https://pkgs.org/download/knock-server
    进入下载页面后需要先根据图案完成手工验证后才可以看到下载链接,下载对应版本的rpm文件
    在这里插入图片描述
    最终获取到的下载地址为:

    https://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/k/knock-server-0.7.8-10.20151227git258a27e.el7.x86_64.rpm

    在Linux中执行命令:wget 下载该rpm文件:
    安装knockd-server

    rpm -ivh knock-server-0.7.8-10.20151227git258a27e.el7.x86_64.rpm
    yum install knock-server
    systemctl status knockd 如果服务已经存在,则说明安装成功

配置knockd-server

  1. 编辑配置文件/etc/knockd.conf

    [options]
    #UseSyslog
    logfile = /root/knockd.log
    Interface = ens33
    [opencloseSSH]
    sequence = 2222:udp,3333:tcp,4444:udp
    seq_timeout = 15
    tcpflags = syn
    start_command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport ssh -j ACCEPT
    cmd_timeout = 10
    stop_command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport ssh -j ACCEPT
    以上是默认配置,也可以将opencloseSSH分开进行设置

  2. 配置修改完成后,请重启knockd服务

    systemctl restart knockd

  3. 使用iptables添加以下防火墙规则

    iptables -A INPUT -s 192.168.17.125 -j ACCEPT    #允许宿主机连接,方便实验的时候可以用SSH进行连接
    iptables -A INPUT -s 127.0.0.0/8 -j ACCEPT     #允许本机的连接
    iptables -A INPUT -j DROP      #拒绝其他所有IP的连接
    或:iptables -A INPUT -p tcp --dport 22 -j REJECT      #只阻止22号端口

隐藏和打开端口实验

  1. 使用nmap对端口进行扫描
    以下扫描请不要在宿主机上进行,因为宿主机是可以正常访问22号端口的,可以使用一台Kali主机

    nmap -sC -Pn -sV -p 22 -A 192.168.112.215
    Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-29 11:42 CST
    Nmap scan report for 192.168.112.215
    Host is up.
    PORT STATE SERVICE VERSION
    22/tcp filtered ssh
    Too many fingerprints match this host to give specific OS details

    从上述结果可以看出,22号端口被iptables的最后一条规则给过滤了

  2. 在其他主机上安装knock客户端工具,可以使用一台Kali主机

    yum install knock
    apt install knockd

  3. 使用以下命令敲门

    knock -v 192.168.112.215 2222:udp 3333:tcp 4444:udp

    此时,在knockd-server的日志大致会显示以下内容:
    [2023-03-29 12:46] 192.168.112.216: opencloseSSH: Stage 1
    [2023-03-29 12:46] 192.168.112.216: opencloseSSH: Stage 2
    [2023-03-29 12:46] 192.168.112.216: opencloseSSH: Stage 3
    [2023-03-29 12:46] 192.168.112.216: opencloseSSH: OPEN SESAME
    [2023-03-29 12:46] opencloseSSH: running command: /sbin/iptables -I INPUT -s 192.168.112.216 -p tcp --dport ssh -j ACCEPT
    敲门成功后iptables会将22号端口开放出来

  4. 使用以下命令关门

    knock -v 192.168.112.215 4444:udp 3333:tcp 2222:udp

    此时,在knockd-server的日志大致会显示以下内容:
    [2023-03-29 12:47] 192.168.112.216: opencloseSSH: Stage 1
    [2023-03-29 12:47] 192.168.112.216: opencloseSSH: command timeout
    [2023-03-29 12:47] opencloseSSH: running command: /sbin/iptables -D INPUT -s 192.168.112.216 -p tcp --dport ssh -j ACCEPT
    此时,防火墙将删除允许22号端口通过的命令,关闭22号端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值