centosをインストールし、httpdをyumしてきました。
外部に向けて公開使用と思ったのですがうまくつながらない。
ポートが開いていない様だ。
何故。。。
色々調べた結果
iptablesが原因なのではないかという予想を立てる。
iptablesを止める
/etc/init.d/iptables stop
するとポートが通る
…うん。完全にそれだね。
/etc/init.d/iptables start
で再び起動し、
vim /etc/sysconfig/iptables
開くと
だいたいこんな感じ
↓はネットから持ってきたやつ
*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
# SSH
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEP
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
これにhttpのポートをあけてやる
ついでだからFTPも?
#■↓ HTTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
#■↓ FTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
一応これで良いらしい!
--dport 80 って書いてあるし!
保存して
【restart】
そしてポート確認君で80番ポートを・・・
開かないって言うね。
その後色々試した。
本当に色々試した。
が、分からず。
iptable壊れてるのかなー、再インストールかなーとか思ってたのですが
ずーーーーっとネットで調べて、遊んで調べて、の結果
1つの記事にたどり着きました。
http://g-taki.com/wordpress/web/5883.html
まるっとコピペ
[root@centos ~]# iptables -L –line-number
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED
2 ACCEPT icmp — anywhere anywhere
3 ACCEPT all — anywhere anywhere
4 ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh
5 REJECT all — anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all — anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain INPUTがフィルターの流れ。
4行目でsshが許可されているが、次の5行目で残りがrejectされるようになっている。
つまりこの間に、httpやhttpsといった外部からつなげたいポートを許可する設定を書くって訳だ。
4行目でsshが許可されているが、次の5行目で残りがrejectされるようになっている。
ん?
4行目でsshが許可されているが、次の5行目で残りがrejectされるようになっている。
んん?
reject?
ふむふむ
で、rejectってなに?
http://chidipy.jpn.com/server/iptables/iptables.htm
iptables -A FIREWALL1 -j REJECT --reject-with icmp-host-prohibited ← 先に許可したポート以外全て不許可にする
んーなるほどね。
で、うちのiptablesは?
*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 hogehoge -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
# SSH
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEP
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
えーと、【先に】許可したポート以外すべて不許可にするだから。
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
後に書かれてるものは不許可?
…てことはさ
*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 hogehoge -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 2222 -j ACCEP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
#↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
#↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
こうすれば通るんじゃない?
保存してrestart
確認君で80を確認…通った!!
通った通った!
ポートが通った!
駄スレも立った!
\|/
⊂⌒⊃ ― ● ―
⊂⊃ /|\
⊂⊃ ⊂⊃
/~\へ/~\へヘ/~\
ハ`ハハハハ`ハハ`ハハハハハ`ハハハハ
" """" """ """" """"
∥=∥=∥=∥=∥=∥=∥
" "∧_∧" """ """" "
" (´∀`) "e@@e"""
"⊂ ⊃" (・∀・)_ノ
○( ノ""とと__つ
"" )_)) "" " "" ""ミ
"" "" ∧∧" """ __
" "" (∀・;) "" | ∥
""" ⊂⊂⌒ヽ"" |_∥
"" プル )) )○∠_/)
"" (( (_(_ノ ))プル◎
||" ""||" ""||" ""||
||二二||二二||二二||
iptables恐るべし
今回参考にしたサイト
http://tech.hitsug.net/?CentOS/iptables
http://g-taki.com/wordpress/web/5883.html
http://chidipy.jpn.com/server/iptables/iptables.htm
http://krakenbeal.blogspot.jp/2012/03/centos62iptables.html