スポンサーサイト
上記の広告は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
# 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
とすると、
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
なのでユーザを作る↓
(config)# username hoge_user password hoge_pass privilege 15
ASAでコネクションテーブルとNATテーブル確認
ASAのメモ。
コネクションテーブルを見る。
# show conn
NATテーブルを見る。
# show xlate
コネクションテーブルを見る。
# 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
が必要ということ。
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
が必要ということ。