web-dev-qa-db-ja.com

iptablesのコンテキストでのMASQUERADEとは何ですか?

iptablesに何度もターゲットが表示されますマスカレード。それは何ですか?私は多くのものを検索し、見つけました。しかし、マスカレードがわかりやすい方法で説明してくれる人が必要ですか?

例( this answer から取得):

Sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
36

元のトラフィックを中断することなくトラフィックをルーティングできるようにするiptables実装に依存するアルゴリズムです。

仮想WiFiアダプターを作成し、Wi-Fiを共有する場合は、マスカレードアルゴリズムを使用します。

私はあなたの無線LANを介してイーサネット接続を共有することについて話していません、私はそれを仮想アダプタにマスカレードすることによってあなたの無線LANを介して無線LAN接続を共有することについて話します。これにより、Wi-Fi接続をwifi経由で共有できます。

これを読んで、MASQUERADEまで下にスクロールします。 http://billauer.co.il/ipmasq-html.html

詳細については、こちらをお読みください: http://oreilly.com/openbook/linag2/book/ch11.html

「Connectify for linux」に関するこれらの質問はすべて、MASQUERADEアルゴを実装することで解決できます。

直接的な例については、このページをご覧ください: http://pritambaral.com/2012/05/connectify-for-linux-wireless-hotspot/

最後のリンクを読んでいません!!!!しかし、以下は正確な抜粋/例です。

Sudo sysctl -w net.ipv4.ip_forward=1
Sudo iptables -A FORWARD -i wlan0 -j ACCEPT
Sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

私は、検索エンジンがアルゴリズムを悪意のあるタイプのハックにする方法を本当に嫌います。それを使用するのは、インターネットをAndroid電話と共有するだけです。

最終編集:このリンクは最高です http://gsp.com/cgi-bin/man.cgi?section=3&topic= libalias

30
Banned_User

MASQUERADEは、ルールの作成時にinetインターフェイスの外部IPが不明な場合(サーバーが外部IPを動的に取得する場合)、SNATターゲット(ソースNAT)の代わりに使用できるiptablesターゲットです。

33

IPマスカレードは、ネットワークアドレス変換(NAT)およびネットワーク接続の共有としても知られています。これは基本的に、パブリックインターネット全体のIPアドレスを持たないコンピューターが、インターネット上の他のコンピューターとインターネットの間にある別のコンピューターの助けを借りて通信できるようにする方法です。

ご存知のように、IPアドレスはインターネット上でマシンを識別するために使用されます。 IPアドレスを持つパケットが与えられると、インターネットを構成するすべてのルーターは、そのパケットを送信先に到達させるためにどこに送信するかを知っています。現在、ローカルエリアネットワークやインターネットに直接接続されていない他のネットワーク内で私的使用のために予約されているIPアドレスの範囲もいくつかあります。これらのプライベートアドレスは、パブリックインターネットで使用されないことが保証されています。

これは、プライベートネットワークに接続されているマシンがインターネットに直接接続できないため、プライベートIPアドレスを使用しているマシンで問題を引き起こします。パブリックインターネットでの使用が許可されているIPアドレスがありません。 IPマスカレードは、プライベートIPアドレスを持つマシンがインターネットと通信できるようにすることでこの問題を解決すると同時に、マシンのパケットを変更して元のプライベートIPアドレスの代わりに有効なパブリックIPアドレスを使用します。インターネットから返されるパケットは、プライベートIPマシンに到達する前に元のIPアドレスを使用するように変更されます。

これはインターネットネットワークに限定されないことを意味します。マスカレード/ NATを使用して、1つのネットワークから別のネットワークにトラフィックをルーティングできます。たとえば、10.0.0.0/24および192.168.0.0/24

IptablesマスカレードルールはSNATルールに置き換えることができます

iptables -t nat -A POSTROUTING -o eth2 -s 10.0.0.0/24  -j MASQUERADE

=

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth2 -j SNAT --to-source 192.168.1.2
# supposing eth2 assigned ip is 192.168.1.2

マスカレードとsnatの両方が必要 ip_forwardは、エコー"1" > /proc/sys/net/ipv4/ip_forwardを使用してカーネルレベルで有効にするか、設定ファイルnano /etc/sysctl.confを編集して永続的に有効にします。

IP Forwardは、マシンをルーターのように動作させ、ターゲットネットワーク(local/net/other/etc)またはルートテーブルに従って、すべてのアクティブなインターフェイスからのパケットを論理的にリダイレクト/転送します。 ip_forwardを有効にすると、重要なセキュリティリスクが生じる可能性があることに注意してください。ip_forwardを回避できない場合は、追加のiptables/routeルールによって監視/保護する必要があります。

6
intika