スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ASAでパケットキャプチャ

例えば、送信元IPアドレスが192.168.1.1のパケットをLOCという名前のインターフェース(nameif LOC)でキャプチャする場合、

# conf t
(config)# access-list mylist extended permit ip host 192.168.1.1 any
(config)# exit
# capture mycap access-list mylist interface LOC

キャプチャをやめる場合、

# no capture mycap
# conf t
(config)# no access-list mylist extended permit ip host 192.168.1.1 any
スポンサーサイト

外部のホストからコマンドの結果を取得する

例えば外部のホストからshow connの結果を取得したいとき。

Cisco機器の
・IPアドレス:192.168.1.1
・ログインユーザ:hoge_user
・パスワード:hoge_password
とすると、
#!/usr/bin/ruby

require 'pty'
require 'expect'

module Expect
  def spawn(cmd)
    $expect_verbose = true

    PTY.spawn(cmd) do |r, w, pid|
      @input_stream = r
      @output_stream = w
      @child_pid = pid
      yield
    end
  end

  def expect(pattern, timeout = 10)
    ret = @input_stream.expect(pattern, timeout) do |match|
      raise "expect %s timeout " % (pattern.kind_of?(Regexp)? pattern.source : pattern) unless match
      put_cmd(yield(match))
    end
  end

  private
  def put_cmd(cmd)
    @output_stream.puts(cmd)
  end
end

class SshSession
  include Expect
  def getConnTbl
    spawn("ssh -l hoge_user 192.168.1.1") do
      begin
        expect(/hoge_user@192.168.1.1's password:/){|match| "hoge_password"}
        expect(/prompt>/){|match| "show conn"}
        expect(/prompt>/){|match| "exit"}
      rescue
        puts "ERROR"
      end
    end
  end
end

ss = SshSession.new
ss.getConnTbl

ASDMで設定するためのユーザを作る

privilege 15のユーザでログインしないとASDMから設定ができない。

なのでユーザを作る↓

(config)# username hoge_user password hoge_pass privilege 15

ASAでコネクションテーブルとNATテーブル確認

ASAのメモ。

コネクションテーブルを見る。
# show conn

NATテーブルを見る。
# show xlate

拡張MIBを使う

Ciscoの拡張MIBを使う。

net-snmpは/usr/local/netsnmpにインストールしてある。

/usr/local/netsnmp/share/snmp/mibs

CISCO-FIREWALL-MIB.my
CISCO-MEMORY-POOL-MIB.my
CISCO-PROCESS-MIB.my
CISCO-QOS-PIB-MIB.my
CISCO-SMI.my
CISCO-TC.my
をコピー。

MIBS環境変数をセットする。
Cシェル系
% setenv MIBS ALL
Bシェル系
# MIBS=ALL; export MIBS

% cd /usr/local/netsnmp/bin
% ./snmpwalk -c community -v 2c HOST CpmCPUTotalEntry
みたいな感じ。

MIBファイルは依存関係があって、例えばCISCO-PROCESS-MIB.myの先頭は

IMPORTS
 MODULE-IDENTITY,
 OBJECT-TYPE,
 Counter32,
 Gauge32,
 NOTIFICATION-TYPE,
 Unsigned32
  FROM SNMPv2-SMI
 TimeStamp,
 DisplayString,
 RowStatus
  FROM SNMPv2-TC
 MODULE-COMPLIANCE,
 OBJECT-GROUP,
 NOTIFICATION-GROUP
  FROM SNMPv2-CONF
 ciscoMgmt
  FROM CISCO-SMI
 EntPhysicalIndexOrZero
  FROM CISCO-TC;

みたいになってる。このIMPORTSセクションのFROMにあるMIBファイルが必要になる。この場合は
・SNMPv2-SMI
・SNMPv2-TC
・SNMPv2-CONF
・CISCO-SMI
・CISCO-TC
が必要ということ。

Template Designed by DW99

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。