はじめに
ゲスト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
広告
参考サイト
連載記事 「習うより慣れろ! iptablesテンプレート集」(@IT)
以上