私のサーバー: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 '^]'.
ファイアウォールは、ルールがなくてもすべてのトラフィックをドロップするように構成されています。これが問題の原因になります。
Chain INPUT (policy DROP) Chain OUTPUT (policy DROP)
これらのテーブルのポリシーをACCEPTにリセットして、接続を復元します。
ip6tables -P INPUT ACCEPT
ip6tables -P OUTPUT ACCEPT
次に、 適切なファイアウォールを構築する に進むことができます。