web-dev-qa-db-ja.com

IPV6を使用してポート80を許可するルール

私のサーバー:64ビットUbuntu 12.04.4LTS。プロバイダー:Linode.com。他のファイアウォールは存在しません。

私はこれらのルールを持っています:

*filter

# Allow localhost traffic. This rule is for all protocols.
-A INPUT -s ::1 -d ::1 -j ACCEPT

-A INPUT -p icmpv6 -j ACCEPT
-A OUTPUT -p icmpv6 -j ACCEPT

#Allow image server
-A INPUT -m tcp  -p tcp  --dport 31333  -j ACCEPT

-A INPUT -m tcp  -p tcp --dport 80 -j ACCEPT
-A INPUT -m tcp  -p tcp --dport 443 -j ACCEPT

COMMIT

Pingは外部からでも機能しています。しかし、telnetはローカルホストから機能していません。

%  telnet -6 2600:3c00:0:0:f03c:91ff:fe73:2b08 80 
Trying 2600:3c00:0:0:f03c:91ff:fe73:2b08...

何が問題なのですか?

最終的に、私のサーバーはポート31333でChromeブラウザーWebSocketインターフェイスからの要求をリッスンします。ポート80のtelnetが最初に機能することを確認してから、ポート31333で機能します。

Apacheは64ビットアドレスにバインドする必要があるようです。しかし、ftpが機能しているかどうかを確認するためにこの行を追加しましたが、それでもtelnetは接続できません。

-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

新しいトライアル Michael Hamptonの提案に従って、ルールをクリアするためにip6tables -Fを実行し、ip6tables -Lを実行すると次のように表示されます。

Chain INPUT (policy DROP)
target     prot opt source              destination

Chain FORWARD (policy DROP)
target     prot opt source            destination

Chain OUTPUT (policy DROP)
target     prot opt source           destination

ただし、ポート80への接続は機能しません(IPv4では機能します)。

# telnet -6 2600:3c00::f03c:91ff:fe73:2b08 80
Trying 2600:3c00::f03c:91ff:fe73:2b08... ^C
# telnet -6 2600:3c00:0:0:f03c:91ff:fe73:2b08 80
Trying 2600:3c00::f03c:91ff:fe73:2b08...

# telnet 23.239.30.81  80 
Trying 23.239.30.81... Connected to 23.239.30.81. Escape character is '^]'.
1
user5858

ファイアウォールは、ルールがなくてもすべてのトラフィックをドロップするように構成されています。これが問題の原因になります。

Chain INPUT (policy DROP)
Chain OUTPUT (policy DROP)

これらのテーブルのポリシーをACCEPTにリセットして、接続を復元します。

ip6tables -P INPUT ACCEPT
ip6tables -P OUTPUT ACCEPT

次に、 適切なファイアウォールを構築する に進むことができます。

1
Michael Hampton