Ubuntu

使用 IPV6 允許埠 80 的規則

  • August 13, 2015

我的伺服器:64 位 Ubuntu 12.04.4 LTS。提供者: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 不能從 localhost 工作。

%  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

新審判 根據邁克爾漢普頓的建議,我已經跑去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

然後你就可以著手建構一個合適的防火牆了

引用自:https://serverfault.com/questions/712895