導航:首頁 > 凈水問答 > bpf過濾器關鍵字

bpf過濾器關鍵字

發布時間:2021-03-22 14:23:58

1. Wincap設置過濾器,該如何解決

我按照Wincap官方的例子,設置我的抓包程序的過濾器。 BOOL CapturePacket::SetFilter(char * packet_filter)//設置過濾器{if (pcap_compile(adhandle, &fcode, packet_filter, 1, netmask) <0 )//設置過濾器{AfxMessageBox(Unable to compil e the packet filter. Check the syntax.); TRACE(Error reading the packets: %s\n, pcap_geterr(adhandle));//語法錯誤,&fcode為0 /* 釋放設備列表 */ pcap_freealldevs(alldevs);//return -1;}if (pcap_setfilter(adhandle, &fcode)<0)//設置過濾器{AfxMessageBox(Error setting the filter.); /* 釋放設備列表 */ pcap_freealldevs(alldevs);return -1;}// pcap_loop(adhandle, 0, packet_handler, NULL);return 0;}pcap_compile函數執行返回小於0的數,就是沒設置成功。於是我調試發現是&fcode為0。 就是開始定義struct bpf_program fcode; 然後pcap_compile,pcap_setfilter的參數調用啊!沒其他地方調用,我問別人說,這個值要有值才行。 在pcap_compile(adhandle, &fcode, packet_filter, 1, netmask)中,fcode的使用方式 基本上就是 :struct bpf_program fcode;然後傳給這個介面就好了,這個參數的值是由pcap_compile來寫的 我覺得之所以返回值小於0,你可能需要檢查: (1)adhandle,這個是一個網卡; (2)packet_filter是不是符合winpcap的語法規則 (3)netmask是否正確,拿不準的話可以用0xffffff 希望對你有用 ------解決方案-------------------------------------------------------- int pcap_setfilter ( pcap_t * p, struct bpf_program * fp)Associate a filter to a capture. pcap_setfilter() is used to specify a filter program. fp is a pointer to a bpf_program struct, usually the result of a call to pcap_compile(). -1 is returned on failure, in which case pcap_geterr() may be used to display the error text; 0 is returned on success. ------解決方案-------------------------------------------------------- 應該肯定不是fcode的問題你看看是不是掩碼沒有設置正確

2. linux bpf 當前是否有其他過濾器

我按照Wincap官方的例子,設置我的抓包程序的過濾器。BOOL CapturePacket::SetFilter(char * packet_filter)//設置過濾器{if (pcap_compile(adhandle, &fcode, packet_filter, 1, netmask)

3. 使用WinPcap BPF規則過濾某一范圍的IP地址,該怎麼寫

#-expressiongoogle一下應該有你要的。

4. bpf和比特幣的區別 bPf是比特幣嗎

BPF在通信中(band-pass filter),即帶通濾波器。是一個允許特定頻段的波通過同時屏蔽其他頻段的設備。比如RLC振盪迴路就是一個模擬帶通濾波器。BPF(Berkeley Packet Filter)伯克利數據包過濾器。是一個工作在操作系統內核的數據包捕獲機制,他先將鏈路層的數據包捕獲再過濾,最後提供給應用層特定的過濾後的數據包。

比特幣是一個共識網路,促成了一個全新的支付系統和一種完全數字化的貨幣。它是第一個去中心化的對等支付網路,由其用戶自己掌控而無須中央管理機構或中間人。從用戶的角度來看,比特幣很像互聯網的現金。比特幣也可以看作是目前最傑出的三式簿記系統。

5. 高頻中BPF與LPF是什麼器件的中文縮寫

BPF是柏克萊封包過濾器的縮寫,全稱是Berkeley Packet Filter。是類Unix系統上數據鏈路層的一種原始介面,提供原始鏈路層封包的收發,除此之外,如果網卡驅動支持洪泛模式,那麼它可以讓網卡處於此種模式,這樣可以收到網路上的所有包,不管他們的目的地是不是所在主機。

LPF,是「Low Pass Filter」的縮寫,意為「低通濾波器」。就是讓低頻信號通過,阻止高頻信號通過。低通濾波器一般用於去掉輸入信號中不必要的高頻成分,去除高頻干擾。另外,在選頻網路中也有應用。

(5)bpf過濾器關鍵字擴展閱讀:

一、數據鏈路層

數據鏈路層(Data Link Layer)是OSI參考模型第二層,位於物理層與網路層之間。在廣播式多路訪問鏈路中(區域網),由於可能存在介質爭用,它還可以細分成介質訪問控制(MAC)子層和邏輯鏈路控制(LLC)子層,介質訪問控制(MAC)子層專職處理介質訪問的爭用與沖突問題。

二、有源低通濾波器

濾波器是一種能使有用頻率信號通過而同時抑制無用頻率信號的電子裝置,常用於信號處理、數據傳輸和干擾抑制等方面,有源低通濾波電路由集成運放和無源元件電阻和電容構成。

它的功能是允許從零到某個截止頻率的信號無衰減地通過,而對其他頻率的信號有抑製作用。有源低通濾波電路可以用來濾除高頻干擾信號 。

6. winpcap抓包時,網路上只有幾個包時被緩沖住了,不能立即捕獲。怎麼解決呀!!!

Winpcap是針對Win32平台上的抓包和網路分析的一個架構。它包括一個核心態的包過濾器,一個底層的動態鏈接庫(packet.dll)和一個高層的不依賴於系統的庫(wpcap.dll)。
抓包是NPF最重要的操作。在抓包的時候,驅動使用一個網路介面監視著數據包,並將這些數據包完整無缺地投遞給用戶級應用程序。

抓包過程依賴於兩個主要組件:

一個數據包過濾器,它決定著是否接收進來的數據包並把數據包拷貝給監聽程序。數據包過濾器是一個有布爾輸出的函數。如果函數值是true,抓包驅動拷貝數據包給應用程序;如果是false,數據包將被丟棄。NPF數據包過濾器更復雜一些,因為它不僅決定數據包是否應該被保存,而且還得決定要保存的位元組數。被NPF驅動採用的過濾系統來源於BSD Packet Filter(BPF),一個虛擬處理器可以執行偽匯編書寫的用戶級過濾程序。應用程序採用用戶定義的過濾器並使用wpcap.dll將它們編譯進BPF程序。然後,應用程序使用BIOCSETF IOCTL寫入核心態的過濾器。這樣,對於每一個到來的數據包該程序都將被執行,而滿足條件的數據包將被接收。與傳統解決方案不同,NPF不解釋(interpret)過濾器,而是執行(execute)它。由於性能的原因,在使用過濾器前,NPF提供一個JIT編譯器將它轉化成本地的80x86函數。當一個數據包被捕獲,NPF調用這個本地函數而不是調用過濾器解釋器,這使得處理過程相當快。
一個循環緩沖區,用來保存數據包並且避免丟失。一個保存在緩沖區中的數據包有一個頭,它包含了一些主要的信息,例如時間戳和數據包的大小,但它不是協議頭。此外,以隊列插入的方式來保存數據包可以提高數據的存儲效率。可以以組的方式將數據包從NPF緩沖區拷貝到應用程序。這樣就提高了性能,因為它降低了讀的次數。如果一個數據包到來的時候緩沖區已經滿了,那麼該數據包將被丟棄,因此就發生了丟包。

7. 簡述基於winpcap體系結構的捕獲網路數據包的過程

Winpcap是針對Win32平台上的抓包和網路分析的一個架構。它包括一個核心態的包過濾器,一個底層的動態鏈接庫(packet.dll)和一個高層的不依賴於系統的庫(wpcap.dll)。
抓包是NPF最重要的操作。在抓包的時候,驅動使用一個網路介面監視著數據包,並將這些數據包完整無缺地投遞給用戶級應用程序。
抓包過程依賴於兩個主要組件:
一個數據包過濾器,它決定著是否接收進來的數據包並把數據包拷貝給監聽程序。數據包過濾器是一個有布爾輸出的函數。如果函數值是true,抓包驅動拷貝數據包給應用程序;如果是false,數據包將被丟棄。NPF數據包過濾器更復雜一些,因為它不僅決定數據包是否應該被保存,而且還得決定要保存的位元組數。被NPF驅動採用的過濾系統來源於BSD Packet Filter(BPF),一個虛擬處理器可以執行偽匯編書寫的用戶級過濾程序。應用程序採用用戶定義的過濾器並使用wpcap.dll將它們編譯進BPF程序。然後,應用程序使用BIOCSETF IOCTL寫入核心態的過濾器。這樣,對於每一個到來的數據包該程序都將被執行,而滿足條件的數據包將被接收。與傳統解決方案不同,NPF不解釋(interpret)過濾器,而是執行(execute)它。由於性能的原因,在使用過濾器前,NPF提供一個JIT編譯器將它轉化成本地的80x86函數。當一個數據包被捕獲,NPF調用這個本地函數而不是調用過濾器解釋器,這使得處理過程相當快。
一個循環緩沖區,用來保存數據包並且避免丟失。一個保存在緩沖區中的數據包有一個頭,它包含了一些主要的信息,例如時間戳和數據包的大小,但它不是協議頭。此外,以隊列插入的方式來保存數據包可以提高數據的存儲效率。可以以組的方式將數據包從NPF緩沖區拷貝到應用程序。這樣就提高了性能,因為它降低了讀的次數。如果一個數據包到來的時候緩沖區已經滿了,那麼該數據包將被丟棄,因此就發生了丟包。

8. bpf 是什麼

BPF在通信中(band-pass filter),即帶通濾波器。

是一個允許特定頻段的波通過同時屏蔽其他頻段的設備。比如RLC振盪迴路就是一個模擬帶通濾波器。


BPF(Berkeley Packet Filter)伯克利數據包過濾器。

是一個工作在操作系統內核的數據包捕獲機制,他先將鏈路層的數據包捕獲再過濾,最後提供給應用層特定的過濾後的數據包。

9. bpf過濾條件的命令長度有限制嗎

凡是家用空調,內機都有空氣過濾網,沒有空氣過濾器,醫用的專用空調才有。這個型號沒有。

10. snort 的具體使用

Snort不是很難使用,但是也存在著很多的命令行選項需要掌握,並且它們中許多很多時候並不能一起使用。這個文件的目的就是使新人能夠更簡單的使用snort。

在我們進行下一步之前,有一些關於snort的基本概念需要了解。snort能夠配置成三種模式運行:嗅探器(sniffer),包記錄器(packet logger)和網路入侵檢測系統(NIDS)。嗅探模式(sniffer mode)簡單的讀取網路中的數據包,並以連續的數據流顯示在控制台上。包記錄模式(packet logger mode)把捕獲的數據包記錄在磁碟上。網路入侵檢測模式(NIDS mode)是最復雜的、有機的配置,在這個模式下,snort分析網路中的數據,並通過使用用戶自定義的規則集進行模式匹配,並根據匹配的結果執行多種操作。

2.0 嗅探模式(sniffer mode)

首先,讓我們從基礎開始。如果你只是想要在屏幕上列印出TCP/IP的包頭信息(嗅探模式),使用下面的命令:
./snort –v
使用這個命令運行snort,將只顯示IP和TCP/UDP/ICMP頭信息,而不顯示任何其它信息。如果你想要查看傳輸的有效負載信息,可以使用如下命令:
./snort –vd
這條命令在列印協議頭信息的同時也列印相應的包數據。如果你想要一個更詳細的現實,可以使用下面的命令來列印出數據鏈路層頭信息:
./snort –vde

(註:這些選項參數能夠分開或者拆散成任和結合的方式。比如上一個命令也可以寫做這種方式:
./snort -d -v –e
來達到同樣的效果)

3.0 包記錄模式(PACKET LOGGER MODE)

好的,上面的命令運行的都相當的好。但是如果你想要記錄包到磁碟上,你需要指定一個記錄目錄,然後snort將自動的進入包記錄模式:
./snort -dev -l ./log
當然,這里假設你在當前目錄下有一個叫做「log」的目錄。如果沒有這個目錄,snort將退出並返回錯誤信息。當snort以這種模式運行,它收集所有捕獲的數據包,並根據數據包中一個主機的IP地址放入對應的目錄中。

如果你只是簡單的指定「-l」選項,你可能會發現snort有時使用遠程計算機的地址作為存放數據包的目錄,有時使用本地主機的地址。為了比較本地的網路,你需要告訴snort本地網路的信息:
./snort -dev -l ./log -h 192.168.1.0/24
這條指令讓snort能夠記錄數據鏈路信息和TCP/IP頭和應用數據到目錄./log,並且記錄和192.168.1.0段C類網路相關的包信息。所有進來的包將記錄到記錄文件夾中對應的子文件夾中,子文件夾以遠程主機(非192.168.1主機)的地址命名。注意,如果兩個主機都是在本地網路內,然後他們將根據兩個中高的埠號來記錄,在埠號相等的情況下,將使用源地址來記錄。

如果你在一個高速網路中,又或你想要使用一個更緊湊的格式來記錄數據包為以後的分析所用,你可以考慮使用「二進制模式」來記錄。二進制模式採用「tcpmp 格式」來記錄數據包到指定目錄下的單一二進制文件中。
./snort -l ./log –b
注意這里命令行的改變。我們不再需要指定一個本地網路,因為二進制模式記錄所有的數據到一個單一的文件中,而不再需要定義輸出的目錄結構。另外,你不再需要使用詳細(verbose)模式和指定-d/-e開關參數,因為在二進制模式下所有的包都會被記錄而不是其中的某些部分。進入二進制包記錄模式只需要做兩點,一是在命令行中使用-l開關來指定一個日誌目錄,二是使用-b開關選擇二進制模式代替ASCII文檔模式記錄包數據。

如果數據包以二進制文件的形式記錄,你可以使用任何支持tcpmp二進制格式的嗅探器從文件中讀取數據包信息,比如使用tcpmp或ethereal。snort也可以通過使用-r開關進入回放模式來讀取記錄的數據包信息。snort在任何運行模式下都能夠接受tcpmp格式的文件並進行處理。比如,如果你想要以嗅探器模式來分析處理一個二進制文件並把數據包信息列印在屏幕,你可以使用類似下面的命令:
./snort -dv -r packet.log
你還可以以多種方式操作二進制文件中的數據,比如包記錄模式和入侵檢測模式,你也同樣可以在命令行中使用BPF介面。比如,如果你只是想查看記錄文件中的ICMP數據包信息,可以在命令行中簡單的指定一個BPF過濾器:
./snort -dvr packet.log icmp
更多的BPF使用信息請參閱相應的man信息。

4.0 網路入侵檢測模式(NETWORK INTRUSION DETECTION MODE)

可以使用如下命令來啟用snort的網路入侵檢測模式(這個模式下,你不用記錄所有的數據包):
./snort -dev -l ./log -h 192.168.1.0/24 -c snort.conf
在這里snort.conf是你的規則文件名。這將對每一個數據包使用snort.conf文件中定義的規則集進行檢測,並根據文件中定義的行為進行處理。如果你沒有為程序指定輸出目錄,將使用默認的目錄「/var/log/snort」。

有一點需要注意的是,使用上一命令行形式進入NIDS模式運行速度稍慢,可以去掉「-v」開關來提高效率。往屏幕輸出數據速度很慢,在數據顯示的過程中可能會造成數據包的丟失。

同樣,對於大多數的應用而言,都不比要記錄數據鏈路層包頭信息,因此「-e」開關也是可以去掉的。最後命令如下:
./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf
這個命令能夠配置snort以最基礎的NIDS模式運行。它將以ASCII格式記錄規則指定的包信息到對應的目錄結構中(和包記錄模式中目錄結構一致)。

4.1 NIDS MODE輸出選項

在snort的NIDS模式中有幾種輸出方式可以配置。默認的記錄和報警以ASCII形式記錄,並使用「完全」報警。完全報警方式(full alert mechanism)輸出所有的包頭信息並在其後附上對應的報警信息。當然,在命令行中可以設置多種報警輸出模式和兩種日誌記錄格式。包信息可以以默認的ASCII格式記錄,也可以通過使用命令行開關「-b」來用二進制文件記錄。如果你想要完全禁用包記錄信息,可以使用命令行開關「-N」。

報警模式相對要復雜一些。在命令行中可以設置多種報警模式:full、fast、socket、syslog、console、cmg、和none模式。這六種模式可以使用命令行開關「-A」來設置。詳細如下:

u -A fast 快速報警模式,以一種簡單的格式記錄報警信息(時間、報警信息、源和目的主機的IP和埠)

u -A full 這是默認的報警模式,如果沒有指定報警模式,將自動使用這種報警模式

u -A unsock 發送報警信息到一個其它程序監聽UNIX套介面

u -A none 關閉報警

u -A console 列印快速報警信息到控制台(屏幕)

u -A cmg 觸發「cmg樣式」報警

還可以使用「-s」開關來設置syslog報警。默認的兩種syslog報警級別是LOG_AUTHPRIV和LOG_ALERT。如果你想要配置其它syslog日誌級別的話,可以在規則文件中使用輸出插件來設置(詳細信息參見snort.conf文件)。

下面是幾個輸出配置實例:

1、使用默認格式(ASCII)向syslog發送報警信息:
snort -c snort.conf -l ./log -s -h 192.168.1.0/24

2、使用默認格式和默認目錄(/var/log/snort)來向syslog發送報警信息:
snort -c snort.conf -s -h 192.168.1.0/24

3、使用二進制文件格式、快速報警模式、目錄/var/snort來記錄信息:
snort -c snort.conf -b -A fast -l /var/snort

4.2 性能配置

如果你想要提高snort運行效率(比如保持100Mbps網路環境下快速運行),可以使用「-b」和「-A fast」或者「-s」(syslog)選項。它將以tcpmp格式來記錄包,並產生較少的報警信息。比如:
./snort -b -A fast -c snort-lib
在這個配置下,snort能夠在100Mbps區域網內在80Mbps正常流量下檢測同時進行的多重掃描和工具在這個配置下,記錄將以二進制格式寫入tcpmp格式文件snort.log中。然後可以重新使用「-r」選項和其它常用的選項運行snort,來從數據文件中解析為正常的snort格式的數據信息。比如:
./snort -d -c snort-lib -l ./log -h 192.168.1.0/24 -r snort.log
一旦這條指令執行,所有的數據將以正常的格式記錄在日誌文件夾中。很酷,不是嗎?

4.3 其它信息

有很多人不喜歡snort默認的對包應用規則方式。在snort默認應用方式中,先使用報警(alert)規則,然後使用通過(pass)規則,最後使用記錄(log)規則。這個順序是違反直覺的,但是相對於允許用戶定義了很多報警規則卻因為使用了一條錯誤的通過規則而全部被禁止要簡單有效。對於一些用戶的需要,這里提供了「-o」開關來改變默認的規則應用順序為:先使用pass規則,然後是alert規則,最後是log規則。命令如下:
./snort -d -h 192.168.1.0/24 -l ./log -c snort.conf -o

5.0 雜項信息

如果你想要以守護進程(daemon)模式運行snort,可以和其它選項一起加上「-D」開關設置。請注意,如果你想要向守護進程發送信號SIGHUP來重啟snort的話,你需要在命令行中使用snort二進制文件的完全路徑,比如你可以使用如下命令:
/usr/local/bin/snort -d -h 192.168.1.0/24 -l /var/log/snortlogs -c /usr/local/etc/snort-lib -s –D
由於安全關系,這里不提供對相對路徑的支持。

如果你想要發送包記錄信息到公共郵件列表,需要使用「-O」開關。這個開關將對包中輸出的IP信息進行混淆處理。這使得你能夠很容易的避免郵件列表中的用戶獲知相關的IP信息。你也可以把「-O」開關和「-h」開關聯合使用,這樣將只混淆本地網路中的主機地址。如果你不在意讓人看見攻擊主機的IP地址,這樣設置是很有效的。命令如下:
./snort -d -v -r snort.log -O -h 192.168.1.0/24
這將從記錄文件中讀取數據包信息,並在屏幕上顯示出來,在顯示的過程中僅僅混淆了C類網路192.168.1.0/24中的地址信息。

如果你想要在不停止進程去查看snort包統計信息,可以向snort進程ID發送SIGUSR1信號,然後snort將在屏幕上顯示統計信息,如果snort以守護進程模式運行,統計信息將發送到syslog中。你可以查看到snort檢測的協議信息、報警數目、記錄的包數、接收和丟棄的包數。這使得你能夠很方便的提高snort的性能。

閱讀全文

與bpf過濾器關鍵字相關的資料

熱點內容
凈水機應該怎麼拆 瀏覽:968
簡易凈水器的蓬鬆棉有什麼運用 瀏覽:510
低頻波導除垢技術 瀏覽:409
污水處理水池爬梯 瀏覽:877
沙坪壩污水池淤泥清理 瀏覽:513
污染控制中如何進行廢水排放管理 瀏覽:120
天花空調過濾網 瀏覽:312
psp模擬器如何提升最高畫質 瀏覽:56
大孔樹脂分離設備 瀏覽:149
食品過濾用活性炭 瀏覽:841
污水處理證4級什麼意思 瀏覽:143
ro膜阻垢劑哪家便宜 瀏覽:599
凈化器aia什麼意思 瀏覽:193
大小區有多少污水井蓋 瀏覽:670
棋牌室空氣凈化器燈怎麼換燈管 瀏覽:421
關於污水知多少的資料 瀏覽:485
飲用水和污水有什麼區別 瀏覽:974
無壓桶凈水器水壓小怎麼改造 瀏覽:418
過濾罐更換濾料工程預算 瀏覽:5
污水泵三孔法蘭尺寸 瀏覽:884