在检查点防火墙上使用 ssh-key 实时捕获 Wireshark

Live Wireshark Capture with ssh-key on Checkpoint Firewalls

提问人:Simon 提问时间:10/18/2023 最后编辑:Jason AllerSimon 更新时间:10/19/2023 访问量:78

问:

我正在尝试在 Checkpoint Firewalls 上运行实时 Wireshark 捕获,该捕获可以通过 cmd 使用 plink 启动.exe并在后台运行。 这一切都应该可以通过检查点脚本进行部署,检查点脚本通过特权模式下的管理控制台运行。 脚本部署很重要,因为我们有大约 100+ 台设备。

我不是很熟悉使用Linux,我敢打赌有很多不同的方法可以解决这个问题。

目标是用户只能通过 ssh 运行 tcpdump 命令,然后通过管道传输到 wireshark。

我在网上找到了这个cmd命令:

plink.exe -batch -l wireshark *IP* "timeout 300 tcpdump -s0 -ni Mgmt -w - " | "C:\Program Files\wireshark\wireshark.exe" -k -i -

我能够为用户完成这项工作,但下一个目标是限制。

我发现您可以使用authorized_keys文件来限制特定命令,但现在我需要以某种方式能够为界面设置一个变量,否则使用此命令将毫无意义。同样重要的是,此命令不要在多个接口上运行或没有超时,因为这可能会产生性能问题。

到目前为止,我有这个:

# Adding User + group
useradd -u *some ID* wireshark 
usermod -g wireshark pcap

# Creating .ssh folder + access file with public key
cd /home/wireshark
mkdir .ssh
cd .ssh
echo command="timeout 300 tcpdump -s0 -ni Mgmt -w -" ssh-rsa *key* /home/wireshark/.ssh/authorized_keys
chmod 600 authorized_keys
chown wireshark:pcap authorized_keys
cd ..
chmod 755 .ssh
chown wireshark:wireshark .ssh
cd /home/
chown wireshark:pcap wireshark 

# Setting permissions for tcpdump via pcap group 
chgrp pcap /usr/sbin/tcpdump
chmod 750 /usr/sbin/tcpdump
setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

该脚本已经过测试,到目前为止,部署一切正常。

我不确定是否有可能以这种方式解决。最好的解决方案是,如果你可以在“超时 300 tcpdump”之后获得任何你想要的参数......这也将允许我们的用户使用 -host 参数。

我尝试过这样的事情

command=("timeout 300 tcpdump -s0 -ni" + $A + "-w -")...

但这是行不通的

Linux Bash SSH 检查点

评论

0赞 shellter 10/18/2023
使用 .若。... 在变量中捕获。您可以在脚本中的任何位置添加它。(您可能还需要嵌入前面的空格)。我不熟悉您的问题空间,因此这可能有帮助,也可能没有帮助。祝你好运。#./myScript extra user argsextra user args$@
0赞 tink 10/20/2023
@simon - 我的回答有帮助吗?

答:

1赞 tink 10/19/2023 #1

如果我理解正确,目标是在远程端调用 tcpdump,使用本地提供的上述命令的参数?

这可以使用变量 来实现。SSH_ORIGINAL_COMMAND

假设您在远端有一个脚本作为 in,如下所示:/usr/local/sbin/dumpercommandauthorized_keys

#!/bin/bash
if [[ -n $SSH_ORIGINAL_COMMAND ]]
then
    timeout 300 tcpdump -s0 -ni "$SSH_ORIGINAL_COMMAND" -w - 
else
    echo "No params specified!"
fi

您显然需要对所述变量的内容进行消毒/安全检查,这是一种最低限度的可行方法。