- ベストアンサー
iptablesとsquid
local networkには、サーバーAとサーバーBがあります。 サーバーBではsquidが動いています(ポート:3128) IPは外部へ公開していません。 外部からのプロキシへの通信はサーバーAに届きます。 届いた外部の通信をiptablesでローカルネットワークでサーバーBへ転送したいと考えています。 これは可能でしょうか。 方法をご教授いただければ助かります。 なお、iptablesではなく、他の方法でもOKです。 宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- superside0
- ベストアンサー率64% (463/719)
回答No.5
- superside0
- ベストアンサー率64% (463/719)
回答No.4
- superside0
- ベストアンサー率64% (463/719)
回答No.2
- superside0
- ベストアンサー率64% (463/719)
回答No.1
補足
ありがとうございます。 試してみましたが、うまくいけていないです。 sysctl -w net.ipv4.ip_forward=1 sysctl net.ipv4.ip_forward # net.ipv4.ip_forward = 1 (1)初期状態: iptables -L =============================== Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp -- anywhere anywhere ACCEPT udp -- anywhere anywhere ACCEPT icmp -- anywhere anywhere ACCEPT all -- anywhere anywhere Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination =============================== iptables -t nat -L =============================== Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination =============================== (2)設定 iptables -t nat -A PREROUTING -d Aの外部IP -p tcp --dport 20002 -j DNAT --to-destination Bの内部IP:BのSquidのport iptables -t nat -A PREROUTING -d Aの内部IP -p tcp --dport 20002 -j DNAT --to-destination Bの内部IP:BのSquidのport iptables -t nat -A PREROUTING -d Aの外部IP -p udp --dport 20002 -j DNAT --to-destination Bの内部IP:BのSquidのport iptables -t nat -A PREROUTING -d Aの内部IP -p udp --dport 20002 -j DNAT --to-destination Bの内部IP:BのSquidのport ※外部IPと内部IPのどちらがいいかわからないので、とりあえず全部設定しました。udpも。 (3)結果 iptables -t nat -L =============================== Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- anywhere xxxxxxxxxxxxxxxxx tcp dpt:commtact-http to:Bの内部IP:BのSquidのport DNAT tcp -- anywhere xxxxxxxxxxxxxxxxx tcp dpt:commtact-http to:Bの内部IP:BのSquidのport DNAT udp -- anywhere xxxxxxxxxxxxxxxxx udp dpt:commtact-http to:Bの内部IP:BのSquidのport DNAT udp -- anywhere xxxxxxxxxxxxxxxxx udp dpt:commtact-http to:Bの内部IP:BのSquidのport Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination =============================== (4)試し 別のサーバーで~/.wgetrcにproxyを設定して、wgetで試したら、レスポンスが戻ってこないです。 サーバーAでservice iptables restartでリセットして、 再度wgetで試したら、すぐに「failed: Connection refused.」が戻ってきました。 つまり、サーバーAのiptablesの設定は有効になっていますが、まだなんらかの設定が足りていないようです。 宜しくお願い致します。