我正在使用libpcap庫。我使用pcap.h製作了一個數據包嗅探器C程序。現在我想阻止通過eth0
設備在我的計算機上的端口23上發送數據包。我嘗試了pcap_filter函數,但它對阻塞沒有用處。 請向我解釋如何使用c程序對此功能進行編碼。如何在我的計算機上阻止端口23上的數據包?
0
A
回答
3
Libpcap僅用於數據包捕獲,即使數據包可用於其他程序。它不執行任何網絡設置,例如阻塞,打開端口。在這個意義上,pcap是一個純粹被動的監控工具。
我不確定你想要做什麼。據我看到它,有兩種可能性:
你真的想阻止數據包,讓你的電腦將不以任何方式處理它們。你應該使用防火牆來阻止這個端口。任何體面的防火牆應該能夠做到這一點相當容易。但是你應該知道,這也意味着沒有人能夠進入你的系統。所以如果你在遠程系統上這樣做,你已經有效地鎖定了你自己。
您仍然希望其他程序(sshd)在端口23上偵聽,但所有這些流量都會讓您在應用程序中感到煩惱。 Libpcap有一個過濾功能,這是相當強大的。使用此功能,您可以將小腳本傳遞給libpcap,並讓它只報告合適的數據包。在pcap文檔中查找過濾以獲取更多信息。然而,這將不會「阻止交通」,只是停止pcap捕捉它。
2
實際上使用pcap你無法構建防火牆。這是因爲你的嗅探器(使用pcap構建)中看到的數據包只是網絡堆棧消耗的數據包的副本(有或沒有嗅探器)。換句話說:在pcap中使用過濾器會導致你看不到原始數據包的拷貝(就我所知,pcap編譯過濾器並將它們添加到內核中,以便在內核級拷貝不會被完成);無論如何,原始數據包無論如何都會進入網絡堆棧。
您的問題最有可能的解決方案可以通過netfilter完成。您可以在NF_IP_PRE_ROUTING鉤子中註冊,並決定放棄或允許給定的流量。
相關問題
- 1. 計算機如何知道數據包的端口?
- 2. 如何打開我的端口/什麼阻止我的端口?
- 3. 阻止Juniper上的特定端口
- 4. 如何枚舉計算機上的可用COM端口?
- 5. 計算機上同一端口上的Udp套接字通信
- 6. 如何阻止端口8080
- 7. 如何阻止迴環連接到Windows上的某個端口?
- 8. 如何阻止wamp服務器上的端口?
- 9. 簡單防火牆(UFW) - 如何阻止本地主機上的單個端口
- 10. 如何在java中的端口53上反映UDP數據包?
- 11. 如何在客戶的計算機上使用MySQL數據庫?
- 12. 如何在Android模擬器上綁定到計算機的IP端口?
- 13. 如何在客戶端的計算機上部署項目?
- 14. 在客戶端計算機上部署數據庫
- 15. 計算特定網絡接口上的傳入數據包
- 16. 如何監聽任何端口上的廣播數據包?
- 17. 如何阻止一個窗口端口
- 18. 在具有不同UDP端口的聯網計算機上發送/接收數據包
- 19. 將計算機設置爲忽略Chromebook上的RST數據包
- 20. 在同一端口上阻塞相同大小的數據包太多
- 21. 如何在聯網的計算機上安裝軟件包
- 22. 發送方計算機如何知道接收方計算機上自定義進程的端口號?
- 23. 阻止所有流量,但在虛擬機的特定端口上
- 24. MVC3生成包含端口號的URL,如何阻止它
- 25. IPTables阻止所有數據包端口2001
- 26. ToolTwist端口被外部機器阻止
- 27. 如何監聽端口上的傳入數據包?
- 28. Telnet - 連接到主機丟失 - 在本地計算機上的端口1099
- 29. WordPress上的TinyMCE在客戶端計算機上行爲異常
- 30. 流星:如何在Mongo數據上執行客戶端計算
防火牆有什麼問題? – Mikaveli 2011-06-16 08:25:13
我在問libpcap庫是否有阻塞包的功能? – mitesh 2011-06-16 08:32:44
有多個端口23.您需要具體說明傳輸協議。 – 2016-09-19 23:53:13