web-dev-qa-db-ja.com

iptables:宛先ポート80のパケットをeth0からeth1に転送する方法

複数のマシンからLinuxマシンのeth0にhttpおよびhttpsトラフィックが送られてきましたが、これらのトラフィックをインターネットにアクセスできるeth1に転送したいと考えています。また、80と443からのトラフィックを無料で操作し、eth1からeth0にルーティングして、Webリクエストを作成したマシンに到達するようにします。

次のiptablesコマンドを試しましたが、役に立ちませんでした。

iptables -A FORWARD -p tcp --dport 80 -o eth1 -j ACCEPT
iptables -A FORWARD -p tcp --sport 80 -o eth0 -j ACCEPT

どうすればいいのかわかりません。

=====================

ip addr showの出力

$ /sbin/ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope Host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether <mac_address_of_eth0> brd ff:ff:ff:ff:ff:ff
    inet 10.10.12.131/24 brd 10.10.12.255 scope global eth0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether <mac_address_of_eth1> brd ff:ff:ff:ff:ff:ff
    inet 172.16.1.1/24 brd 172.16.1.255 scope global eth1
2
Srikanth

まず、これは 2つのインターフェース間で転送するiptables と非常によく似た質問です。

そうは言っても、あなたはあなたのホストをゲートウェイにしたいのですが、より具体的には、プロトコルHTTPHTTPS(80/443)だけに限定します。これを達成するには、次のことを行う必要があります。

  1. この2つのインターフェース間でトラフィックを転送できる
  2. 宛先ポート80(HTTP)でパケットを転送する
  3. 宛先ポート443(HTTPS)でパケットを転送する
  4. iptablesnetfilter)はstateless packet filtering system、戻ってくるパケットを受け入れる
  5. ソースNAT(元のIPアドレスを変更)をホストのIPに変更する

Iptablesに翻訳:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80  -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED \
   -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

ネットワーク上の他のホストがホストを使用してインターネットにアクセスしている場合(Linuxボックスがゲートウェイとして動作することを意味します)。

3
Torian

Eth1がパブリックインターネットアドレスを持っていると仮定すると、Linuxボックスをルーターにしたいようですが、おそらくNAT /マスカレード機能を備えています。多くの例の1つについては、 http://www.howtoforge.com/internet-connection-sharing-masquerading-on-linux を参照してください。

あなたが単に与えたIPtablesallowそれらが到着した場合にLinuxボックスを介して転送されるHTTPトラフィックが、クライアントがLinuxボックスを使用していることを確認する必要がありますこれを実現するためのゲートウェイとして。

0