CentOS 6.5でポート80を開きます


14

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

ここに画像の説明を入力してください

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

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

回答:


28

ルールを手動でキー入力する代わり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スイッチを使用すると、chainにルールを追加します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

参照資料


最後のルールは、iptablesファイル内の以前のルールをすべて削除し、上記のルールのみを追加しました(sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT)。これで、ブラウザからApacheページにアクセスできなくなりました。
エリック

1
@ErikVandeVen-すみません、私はそれを明確にしませんでした。持っていた他のルールは、この同じ方法で追加して保存する必要があります(サム時に)か、ファイルに移動して/etc/sysconfig/iptables追加することができます。元のエントリはこのファイルにあるはずです/etc/sysconfig/iptables.save
slm

おかげで、iptables.saveをコピーしてiptablesを復元できました。しかし、失敗することなく、同時にブラウザー内でapacheテストページを開くことができずに、ルールを追加することはできませんでした。riclagsが最初に投稿したチュートリアルを見てみましょう:)
エリック

1
男、私はこの答えがまだ一つのようなものを受け取った理由を全く知りませんでした。優れた詳細な返信。私に感謝します。
サミロン14年

1
そのファイアウォールGUIは神からの送信であり、これまで見たことがない!
マットフレッチャー14

0

最近、同じ理由でCentOS 6.5を仮想マシンとしてインストールし、仮想Webサーバーとして使用しました。とにかく、私は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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.