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されます。
