web-dev-qa-db-ja.com

CentOS 6.5でポート80を開く

私の仮想マシンのCentOS 6.5でポート80を開こうとしています。デスクトップのブラウザからApacheにアクセスできます。

enter image description here

上のスクリーンショットを見てみると... http://www.cyberciti.biz/faq/linux-iptables-firewall-に書かれているように、青い矢印の前に行を追加しました。 open-port-80 / ブラウザにIPアドレスを入力すると、Apacheテストページが表示されますが、iptablesを再起動すると、CentOSが新しいルールを適用しようとすると「失敗」します。

誰かがこれの解決策を知っていますか?または、失敗を無視する必要がありますか?

14
Erik van de Ven

ルールを手動でキー入力する代わりに、iptablesを使用してルールを適切なチェーンに追加し、保存することができます。これにより、ルールをライブでデバッグして、ルールが正しいことを確認できます。実際のようにファイルに追加する必要はありません。

ポート80を開くには、次のようにします。

$ Sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ Sudo /etc/init.d/iptables save

最後のコマンドは、追加されたルールを保存します。これは、Webトラフィック用のポートを開くために使用するルールです。

ルールが問題を引き起こしている理由

使用しようとしているルールに気づいた場合:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

「RH-Firewall-1-INPUT」というチェーンがあります。このチェーンがない場合、またはINPUTチェーンからこのチェーンへのリンクがない場合、このルールには到達できません。このルールは次のようになる可能性があります。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

または、INPUTチェーンはこのチェーンにリンクする必要がありますRH-Firewall-1-INPUT次のようなルールを使用します。

$ Sudo iptables --list
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0
....

注:このコマンドを使用すると、どのチェーンがあるかを確認できます。

$ Sudo iptables -L| grep Chain
Chain INPUT (policy ACCEPT)
Chain FORWARD (policy ACCEPT)
Chain OUTPUT (policy ACCEPT)
...

また、既存の接続が許可されるように、状態を変更する必要がある場合もあります。

-A INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

また、-Aチェーンにルールを追加するスイッチINPUT。その前に他のルールがあり、このルールの到達を妨害または妨害している場合、そのルールは実行されません。したがって、次のように、追加するのではなく挿入することによって、それを一番上に移動したい場合があります。

-I INPUT -m state --state NEW,ESTABLISHED -m tcp -p tcp --dport 80 -j ACCEPT

GUIの使用

ファイアウォールは複雑な獣になることがあります。そのため、代わりにTUIを試すことをお勧めします(TUIは端末のGUIです)。

$ Sudo system-config-firewall-tui

次に、iptablesルールを設定するさまざまな画面を確認できます。

ss #1

ss #2

参考文献

28
slm

ファイアウォール設定を編集したいがiptablesに慣れていない場合、Xサーバーがない場合はsystem-config-firewall-tuiツールを使用するか、system-config-firewallを使用することをお勧めします。これはGUIツールです。

0
ludiegu

私は最近、同じ理由で仮想Webサーバーとして使用するために、仮想マシンとしてCentOS 6.5をインストールしました。とにかく、私は CentOS wikiからのこの非常に詳細なハウツー に従いました。次に、@ slmの回答に従って、ポート80を追加し、Sudo /etc/init.d/iptables saveを使用して保存しました。

iptables -L -vには次の出力があります。

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
  214 17168 ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
    1    44 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:ssh 
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere            tcp dpt:http 

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 169 packets, 15164 bytes)
 pkts bytes target     prot opt in     out     source               destination
0
baktin