rinetd
そのように接続を再ルーティングし、クライアントとサーバーのメッセージを保存したいと思います。
そのようなツールがありますか?私はDebianを使用しています。
答え1
rinetd 背景
rinetd.conf
この記事を見つけて、タイトルの簡単なサンプルファイルを確認してください。Rinetd – あるIPアドレスとポートから別のIPアドレスとポートへのTCP接続のリダイレクト:
# bindadress bindport connectaddress connectport
192.168.2.1 80 192.168.2.3 80
192.168.2.1 443 192.168.2.3 443
iptables リダイレクトの使用
このようなルールを使用すると、同様の結果が得られますiptables
。
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 \
-j DNAT --to-destination 192.168.2.3:80
$ sudo iptables -t nat -A POSTROUTING -p tcp --dport 25 -j MASQUERADE
上記のコードは、ローカルホスト(192.168.2.1)のポート80をリモートホスト(192.168.2.3)にリダイレクトします。このルールは、次のタイトルの記事で見つけたものに基づいています。iptablesのヒントとコツ - ポートリダイレクト。
ulogdを使用したパケットの記録
netfilterのユーザースペースロギングデーモンを使用すると、追加のulogd
ルール/スイッチを追加して、次の記事に従ってパケットロギングを取得できます。カーネルからパケットを取り出す。ディストリビューションのパッケージ管理を使用してインストールしてulogd
起動したとします。
$ sudo service ulogd start
記事の例では、ping
パケットをアドレス 99.99.99.99 に記録します。
$ ping -c 5 99.99.99.99
$ sudo iptables -I OUTPUT -d 99.99.99.99 -j ULOG --ulog-nlgroup 1 \
--ulog-cprange 100
その後、ログファイルを使用して保存されたファイルを表示できますtcpdump
。ulogd
/var/log/ulogd.pcap
$ sudo tcpdump -r /var/log/ulogd.pcap -qtnp
172.27.1.66 > 99.99.99.99: icmp: echo request (DF)
172.27.1.66 > 99.99.99.99: icmp: echo request (DF)
172.27.1.66 > 99.99.99.99: icmp: echo request (DF)
172.27.1.66 > 99.99.99.99: icmp: echo request (DF)
172.27.1.66 > 99.99.99.99: icmp: echo request (DF)
次のようにリアルタイムストリームを視聴できます。
$ tail -f /var/log/ulogd.pcap | tcpdump -r - -qtnp
パケットを表示するには、iptables
必要に応じて上記の規則を変更する必要があります。