
icmptunnel
icmptunnel は、IPトラフィックをICMPエコー要求および応答(ping)パケット内にトンネリングするためのツールです。これは、例えばpingが許可されているネットワーク内でピボットする場合など、ファイアウォールを半隠密的にバイパスすることを目的としています。また、企業ネットワークからインターネットへのegressにも役立つ可能性がありますが、ICMPエコートラフィックはネットワーク境界でフィルタリングされることがよくあります。
この手法を実装した既存のツールはいくつかありますが、icmptunnelはより信頼性の高いプロトコルと、ステートフルファイアウォールおよびNATを通過するためのメカニズムを提供します。
このツールは、コンパイルとインストールに標準のMakefileを使用します。
make を使用してicmptunnelをコンパイルします。
まず、クライアントとサーバーの両方でICMPエコー応答を無効にします。これにより、カーネルがpingパケットに自動的に応答しなくなります。
# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
サーバー側では、icmptunnelをサーバーモードで起動し、新しいトンネルインターフェースにIPアドレスを割り当てます。
# ./icmptunnel –s
opened tunnel device: tun0
(ctrl-z)
# bg
# /sbin/ifconfig tun0 10.0.0.1 netmask 255.255.255.0
クライアント側では、icmptunnelをサーバーに向け、IPアドレスを割り当てます。
# ./icmptunnel <server>
opened tunnel device: tun0
connection established.
(ctrl-z)
# bg
# /sbin/ifconfig tun0 10.0.0.2 netmask 255.255.255.0
この時点で、ICMPパケットを介した機能するポイントツーポイントトンネルができているはずです。サーバー側は10.0.0.1、クライアント側は10.0.0.2です。クライアントから、サーバーへのSSH接続を試してください:
# ssh [email protected]
Password:
リモートサーバーを暗号化SOCKSプロキシとして使用するには:
# ssh -D 8080 -N [email protected]
Password:
次に、WebブラウザをローカルのSOCKSサーバーに向けます。
オプションの一覧については、./icmptunnel -h を参照してください。
バグは、Githubプロジェクトページに報告してください: