提问人:Simon 提问时间:10/18/2023 最后编辑:Jason AllerSimon 更新时间:10/19/2023 访问量:78
在检查点防火墙上使用 ssh-key 实时捕获 Wireshark
Live Wireshark Capture with ssh-key on Checkpoint Firewalls
问:
我正在尝试在 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 -")...
但这是行不通的
答:
如果我理解正确,目标是在远程端调用 tcpdump,使用本地提供的上述命令的参数?
这可以使用变量 来实现。SSH_ORIGINAL_COMMAND
假设您在远端有一个脚本作为 in,如下所示:/usr/local/sbin/dumper
command
authorized_keys
#!/bin/bash
if [[ -n $SSH_ORIGINAL_COMMAND ]]
then
timeout 300 tcpdump -s0 -ni "$SSH_ORIGINAL_COMMAND" -w -
else
echo "No params specified!"
fi
您显然需要对所述变量的内容进行消毒/安全检查,这是一种最低限度的可行方法。
评论
#
./myScript extra user args
extra user args
$@