從 Juniper Netscreen 輕鬆獲取會話列表
我有一個 Juniper Netscreen SSG-5,它偶爾會獲得很高的會話數。我有 4096 個許可會話,有時我看到一個小型辦公室(十幾個人)有 3000 多個。這比我想要的要高,這讓我對開放的會議有點好奇。
理想情況下,我會將“get session”命令的輸出放入文本文件中,但這不是 ScreenOS 支持的東西。至少,據我所知。如果是這種情況,請告訴我。
除非能夠將輸出保存到文件中,否則如果我可以通過 SNMP 以某種方式獲取會話列表,我會滿足於以這種方式進行 wr/m-angle 它,但我設法找到的只是活動的數量會話(企業.3224.16.3.2.0)。
我可以使用’nc’編寫一個腳本來連接到網屏並反复按輸入鍵來翻閱幾千行,但這似乎不如以“正確的方式”來做,如果存在這種方式的話。
我得到了它!
我不知道的是,ScreenOS 能夠將任何命令的輸出通過管道傳輸到 tftp 伺服器!
用法是:
<command> > tftp <tftp ip address> <filename>
現在它是一個文本文件,我可以用 grep、sed 和 awk 我那狡猾的小膽子了。
這最好作為對您答案的評論,但將其發佈為新答案,以便我可以為您格式化我的程式碼 - 您可以使用 SSH 為自己編寫腳本(或任何其他命令,我使用它每 5 分鐘刷新一次 DNS 記憶體對於 DynDNS 使用者)。
- 創建一個 DSA 類型的無密碼 ssh 密鑰文件對
- 創建一個具有適當訪問級別來執行您的命令的 Netscreen 使用者,並將公鑰部分放入他們的帳戶
- 在您本地的 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 腳本)。