web-dev-qa-db-ja.com

コンソールからCentOS 6.3のポート80でHTTPアクセスを有効にする

Centos 6.3ボックスをParallelsで実行する

外部からアクセスできるようにポート80を開こうとしています

これからguiソリューションを試してみました post と動作しますが、スクリプトから実行する必要があります。

これを試みました:

Sudo /sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
Sudo /sbin/iptables-save
Sudo /sbin/service iptables restart

これは、機能しないことを除いて、GUIツールとまったく同じiptablesエントリを作成します。

$ telnet xx.xxx.xx.xx 80
Trying xx.xxx.xx.xx...
telnet: connect to address xx.xxx.xx.xx: Connection refused
telnet: Unable to connect to remote Host

更新:

$ netstat -ntlp
(No info could be read for "-p": geteuid()=500 but you should be root.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State              PID/Program name   
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:6379              0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:37439               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 :::111                      :::*                        LISTEN      -                   
tcp        0      0 :::22                       :::*                        LISTEN      -                   
tcp        0      0 ::1:631                     :::*                        LISTEN      -                   
tcp        0      0 :::60472                    :::*                        LISTEN      -   

$ Sudo cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Wed Dec 12 18:04:25 2012
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5:640]
-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 INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
-A FORWARD -j REJECT --reject-with icmp-Host-prohibited 
COMMIT
# Completed on Wed Dec 12 18:04:25 2012
3
Hugo

あなたのルールはINPUT iptablesリストの最後にあると思います。これを試して iptables -I INPUT 5 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPTを実行してからservice iptables save。コマンドのAは、現在のINPUTリストにルールを追加します。これは、明示的なREJECTを持つ可能性のあるルールの後です。コマンドのIは、ルールを行位置(この場合は5行目)に配置します。これは、デフォルトの拒否ルールの前にする必要があります。 IPTABLESのルールはトップダウンで機能し、ルールが一致する場合、ファイアウォールはそのルールを接続に適用します。私はこれを使う- iptables-rules-examples -本当に役に立った

5
Oli

コマンドservice iptables restart現在のiptablesルールを保存しないでください。

実行service iptables save再起動する前に。

2
pbacterio

ルールマッチングは上から下へと進みます。したがって、iptablesは最初に一致したときにアクションを実行します。あなたが持っている:

-A INPUT -j REJECT --reject-with icmp-Host-prohibited 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

1番目のルールには条件がないため、2番目のルールに到達する可能性のあるパケットはありません。

1
dr-evil