IPTABLESを使ってLinux上でトラフィック転送

iptablesは、簡単にパケットフィルタリング/転送するためのルールを設定することができます。

そう、それは短く、シンプルに保つために:あなたがしてポート8080でmachine2に(192.168.0.2)へのポート80上であなたのマシン(192.168.0.1)に着​​信するトラフィックを転送するようにしたいと仮定します。

- ポートフォワーディングを有効にします。

エコー1> / proc/sys/net/ipv4/ip_forwardここ

- 今のルールを追加します。

、すべてiptables - t nat - A PREROUTING - pのtcp - D 192.168.0.1 - dportは80 - J 192.168.0.2:8080 DNATへ

、すべてiptables - t nat - A POSTROUTING - D 192.168.0.2 - J MASQUERADE

- pのtcpフラグは、プロトコルはTCP(として例えば、UDP、ICMPではなく)であることを指定します。

- D 192.168.0.1フラグは、パケットがIP 192.168.0.1宛てられたことを指定します

パケットが宛先としてポート80を有していること - dportは80の方法

- jは、NAT(ネットワークアドレス変換)が適用されている規則の対象です。 より高度なルールでは、一つのルールの定義済みのiptablesのチェーンを指定することができます。

- このパケットが転送されるべき場所に指定し、どのポートになります

二番目のルールとして、それは2番目のマシンへの発信パケットをマスカレードする必要があることを述べています。 他の用語では、ポート80上の元のマシンにアクセスしようとしているユーザーは、自分の要求が転送されたという感じを持っていないでしょう。 実際には、要求はmachine2にするために転送され、応答は、同じマシンから戻ってきた間、それは、マスカレードホストから来たかのようにパケットが表示されます。

サイドノートでは、ファイルにこれらのiptablesの規則を追加してくださいそれを実行許可(します。chmod + x /パス/に/ファイル)を与え、そしてそれはすべての上で実行されるように/ etc / rc.localに追加しますシステムのブート。 それ以外の場合、上記のルールは、システムが再起動されるたびにfliushedされます。

コメントを残す

あなたのコメント