私のLinuxシステムに疑わしいプログラムがあり、DNSパケットの要求と応答を具体的にフィルタリングしたいと思います。
Wiresharkがあることを知っていますが、コマンドラインを好む。ここでは、主にDNSに関連する発信および着信パケットをフィルタリングできます。
この問題をどのように解決できますか?
ベストアンサー1
tcpdump -i <interface name> -vv port 53
実行中のエントリに応じて、サーバーからすべてのDNSをキャプチャするために試しましたか?
Javaプログラムで使用するインタフェースまたはIPを設定できますか?可能であれば、tcpdumpにフィルタを使用してそのIPのみを制限できます。
インターフェイスに別のIPを追加する必要がある場合は、設定と一致するip add 192.168.55.55/32 dev eth0
ようにIPと開発名を変更してください。
インターフェイスを設定できる場合は、次の方法でプライベートVLANを作成することもできます。
ip link add link eth0 <name of link> type vlan id 10
設定に合わせてIDとインターフェースを変更してください。これにより、プログラムへの外部アクセスが必要な場合は、インターフェイスから現在のセッションを転送できますsysctl net.ipv4.conf.eth0.forwarding
。リンクのIPを/ 32アドレスに設定すると、転送は機能します。
リンクと同様に、Tapデバイスを追加すると、上記ip link add link eth0 <name of tap> type tap
の転送とIPアドレスも適用されます。
独自のIPまたはインターフェイスから取得できる場合は、次の手順を実行します。
独自のインターフェース:tcpdump -i <interface name> -n -p -vv port 53
-nはDNSルックアップを停止し、結果をより速く表示します。 -pはpromiscを停止します(tcpdumpのデフォルトモードでなくても、物理インターフェイスからのすべてのパケットを受信します)。最後に、-vvは詳細情報を表示するため、パケットデータを入力します。
独自のIP:tcpdump -i <interface name> -n -p port 53 host <ip address>
これは、ローカル設定に一致するJavaプログラムとインタフェースのIPです。