ゲストで yum を使用できません - ホストの iptables のポート 80 転送に問題があると思われますか?

ゲストで yum を使用できません - ホストの iptables のポート 80 転送に問題があると思われますか?

この設定の何が問題なのでしょうか? ホストとゲストは両方とも CentOS 6.5 です

具体的には、ゲスト上で yum を実行できません。

ゲストとの間で問題なくpingを実行できます。mirrorlist.centos.orgへのpingも含みます。

ホストの iptables からポート 80 のルールを削除すると (下記参照)、yum は正常に動作します。ただし、ゲストをパブリックにアクセス可能な Web サーバーとして使用できるようにするには、そのルールを設定する必要があります。

yum update の出力:

Loaded plugins: fastestmirror
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
12: Timeout on http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os: (28, 'connect() timed out!')
Error: Cannot find a valid baseurl for repo: base

ゲストの IP は 192.168.122.47 で、下記で設定した ssh ポート転送は機能しますが、yum は機能しません。

ゲストの iptables が無効になりました。

ホスト iptables:

# Generated by iptables-save v1.4.7 on Sat May 10 15:54:24 2014
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4:560]
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sat May 10 15:54:24 2014
# Generated by iptables-save v1.4.7 on Sat May 10 15:54:24 2014
*mangle
:PREROUTING ACCEPT [4:316]
:INPUT ACCEPT [4:316]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4:560]
:POSTROUTING ACCEPT [4:560]
-A POSTROUTING -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Sat May 10 15:54:24 2014
# Generated by iptables-save v1.4.7 on Sat May 10 15:54:24 2014
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -p tcp -m tcp --dport 792 -j DNAT --to-destination 192.168.122.47:22
-A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.122.47:80
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
COMMIT
# Completed on Sat May 10 15:54:24 2014

答え1

NATを過剰に使用しています。NATを単に使用しているだけでなく、ポート80への接続がバインドされていますが、バインドされたものも同様です。NATルールを変更して、トラフィックが外部から入ってくる必要があることを指定します。例:

-A PREROUTING -p tcp -m tcp -i eth0 --dport 80 -j DNAT --to-destination 192.168.122.47:80

外部 Web サーバーへの正当な送信トラフィックの照合 (および干渉) が停止します。

関連情報