ゲストOSのCentOS5.2にApacheのインストールが終わり、いざホストOSからゲストOSのApacheのページへアクセスしようとしたのですが応答がありませんでした。
原因はiptables(Firewall)で外部からのWebへのアクセスが許可されていないことでした。
目次
環境
仮想環境 VMware1.0.8
ホストOS WindowsVista
ゲストOS CentOS5.2
前提条件
- ホストOSからゲストOSへのPINGは通じている
- Apacheがインストールされている
確認方法(バージョンを調べるコマンドで確認)
$ /usr/sbin/httpd -v
Server version: Apache/2.2.3
Server built: Jan 15 2008 20:33:30
- Apache(httpd)が起動している
確認方法
$ ps ax | grep httpd
このようにでていればOK
3109 ? Ss 0:00 /usr/sbin/httpd
3111 ? S 0:00 /usr/sbin/httpd
対応方法
Web(80番ポート)を空けてあげましょう。
/etc/sysconfig/iptablesファイルに下記を追記します
$ sudo vi /etc/sysconfig/iptables
-A INPUT -p tcp --dport 80 -j ACCEPT
再起動します
$sudo /etc/init.d/iptables restart
これで無事、ホストOSからゲストOSのApacheへアクセスできました。
iptablesを確認する方法
iptableコマンドに「–list」オプションを付けて実行します
$
/sbin
/iptables
--list
Chain INPUT
(policy ACCEPT
)
target prot opt source destination
RH
-Firewall
-1-INPUT all
-- anywhere anywhere
Chain FORWARD
(policy ACCEPT
)
target prot opt source destination
RH
-Firewall
-1-INPUT all
-- anywhere anywhere
Chain OUTPUT
(policy ACCEPT
)
target prot opt source destination
Chain RH
-Firewall
-1-INPUT
(2 references
)
target prot opt source destination
ACCEPT all
-- anywhere anywhere
ACCEPT icmp
-- anywhere anywhere icmp any
ACCEPT esp
-- anywhere anywhere
ACCEPT ah
-- anywhere anywhere
ACCEPT udp
-- anywhere 224
.0
.0
.251 udp dpt
:mdns
ACCEPT udp
-- anywhere anywhere udp dpt
:ipp
ACCEPT tcp
-- anywhere anywhere tcp dpt
:ipp
# ↓この一行が適用されました
ACCEPT tcp
-- anywhere anywhere tcp dpt
:http
ACCEPT all
-- anywhere anywhere state RELATED
,ESTABLISHED
ACCEPT tcp
-- anywhere anywhere state
NEW tcp dpt
:ssh
REJECT all
-- anywhere anywhere reject
-with icmp
-host
-prohibi
$ sudo less /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
$ sudo less /etc/sysconfig/iptables [/var/www]5:48:51
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 80 -j ACCEPT # ここが追加した行。
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
参考サイト
Apache, CentOS, Linux カテゴリーの関連投稿