轻松从 Juniper Netscreen 获取会话列表

轻松从 Juniper Netscreen 获取会话列表

我有一台 Juniper Netscreen SSG-5,偶尔会获得较高的会话数。我有 4096 个授权会话,有时我看到一个小办公室(大约十几个人)的会话数超过 3000 个。这比我想要的要高,这让我对开放的会话有点好奇。

理想情况下,我会将“get session”命令的输出放入文本文件中,但这不是 ScreenOS 所支持的。至少据我所知是这样。如果是这种情况,请告诉我。

除非能够将输出保存到文件,否则如果我能够以某种方式通过 SNMP 获取会话列表,我会满足于通过这种方式进行写入/管理,但我所能找到的只是活动会话的数量(enterprises.3224.16.3.2.0)。

我可以编写一个脚本,使用“nc”连接到 netscreen,然后反复按回车键翻阅几千行内容,但这似乎不如以“正确的方式”执行操作有趣,如果存在这样的方式的话。

答案1

我得到了它!

我不知道,ScreenOS 有能力将任何命令的输出通过管道传输到 tftp 服务器!

用法是:

 <command> > tftp <tftp ip address> <filename>

现在它是一个文本文件,我可以用 grep、sed 和 awk 来执行我的小胆量。

答案2

最好将其作为您答案的评论,但将其作为新答案发布,以便我可以为您格式化我的代码——您可以使用 SSH 为自己编写脚本(或任何其他命令,我使用它每 5 分钟为 DynDNS 用户刷新一次 DNS 缓存)。

  1. 创建 DSA 类型的无密码 ssh 密钥文件对
  2. 创建一个具有适当访问级别的 Netscreen 用户来运行你的命令,并将公钥部分放入他们的帐户中
  3. 在本地 Linux 机器上设置以下内容

    #!/bin/sh
    DATFILE=/opt/etc/fwcommands.dat
    KEYFILE=/root/.ssh/id_dsa_fw
    /usr/bin/ssh -T -i ${KEYFILE} USER@FIREWALL < ${DATFILE}

...然后在您的 fwcommands.dat 文件中是您想要运行的内容;因此类似于:

exec get sessions > tftp ip file
exit

然后,您可以按 cron 的方式让它每小时或其他时间运行一次,并将其设置为通过电子邮件向您发送输出,无论您个人需要什么。(格式有点混乱,serverfault 讨厌内联 bash 脚本)。

答案3

如果您想对会话输出进行一些统计,可以使用一个名为“防火墙会话分析器”的小工具来执行此操作。如果您有 Juniper 帐户,您可以通过 www.juniper.net/fsa 访问。如果没有,您可以使用 Tim Eberhard 开发的一款好工具,您可以在以下位置下载:http://performanceclassifieds.net/NSSA.zip

希望可以帮到你!

相关内容