リモートロケーションからポート80にアクセスできませんが、ローカルで動作しますか?


14

私はApacheを使った設定にLinuxサーバーを持っています。ただし、リモートコンピューターを使用してアクセスすることはできません。

私は普通にサーバーにsshできます。

私のIPテーブル:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

netstat -ant

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 SERVERIP: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:25                0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:45117               0.0.0.0:*                   LISTEN
tcp        0    196 SERVERIP:22                 MyIP:3149                   ESTABLISHED
tcp        0      0 :::111                      :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 :::47193                    :::*                        LISTEN

とを使用するCurl SERVERIP:80curl localhost:80、どちらもapacheからデフォルトページを返します。

何が問題なのでしょうか?

回答:


26

現在iptablesによってブロックされているため、ポート80でサーバーへのアクセスを有効にする必要があります。

sudo /sbin/iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT

これにより、開始時にiptables構成にルールが挿入されます。これを実行し、動作することをテストしたら、構成を保存して、次回のサービス開始時に使用されるようにする必要があります。

sudo /sbin/service iptables save

これにより、現在の構成がに書き込まれ/etc/sysconfig/iptablesます。

CentOS 7を使用している場合、FirewallDが正しい方法です。

firewall-cmd --zone = public --add-port = 80 / tcp

ブラウザで動作することを確認してから、次の操作を行います。

firewall-cmd --zone = public --add-port = 80 / tcp --permanent

firewall-cmd --reload

変更を永続的にするには


1

iptablesルールは、ポート22での着信接続のみを許可します。ポート80も開きます。


...そしてcmdはiptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
onik

...これは正しいですが、動作しません。これは、以前に受け入れられなかったすべての着信接続を拒否するルールの後ろにこのルールを追加するためです。
パウェウブロダッキ

それは本当です、私は規則ファイルに正しい位置に追加するのに慣れているだけです、言及するのを忘れました。iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited、そして、その後、拒否-すべてcatchruleをして、前の追加iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
onik

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