Iptables

正確打開 443 埠到網際網路

  • March 5, 2016

我需要在我的伺服器上向 Internet 開放埠 443。

當我通過內部檢查時netstat -tulpn | grep "nginx",我看到 nginx 確實在那個埠上監聽。nmap -p443 mysite.com但是,從外部機器嘗試告訴我埠 443 已過濾。同樣,做telnet <IP Address> 443超時。我如何確保這個埠是開放的?

僅供參考,/etc/iptables/rules.v4我有以下內容:

*filter
# Allow all outgoing, but drop incoming and forwarding packets by default
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

# Custom per-protocol chains
:UDP - [0:0]
:TCP - [0:0]
:ICMP - [0:0]

# Acceptable UDP traffic

# Acceptable TCP traffic
-A TCP -p tcp --dport 22 -j ACCEPT
-A TCP -p tcp --dport 80 -j ACCEPT
-A TCP -p tcp --dport 443 -j ACCEPT

# Acceptable ICMP traffic

# Boilerplate acceptance policy
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i lo -j ACCEPT

# Drop invalid packets
-A INPUT -m conntrack --ctstate INVALID -j DROP

# Pass traffic to protocol-specific chains
## Only allow new connections (established and related should already be handled)
## For TCP, additionally only allow new SYN packets since that is the only valid
## method for establishing a new TCP connection
-A INPUT -p udp -m conntrack --ctstate NEW -j UDP
-A INPUT -p tcp --syn -m conntrack --ctstate NEW -j TCP
-A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP

# Reject anything that's fallen through to this point
## Try to be protocol-specific w/ rejection message
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A INPUT -j REJECT --reject-with icmp-proto-unreachable

# Commit the changes
COMMIT

*raw
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT

*security
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

*mangle
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT

我究竟做錯了什麼?

請注意,我的設置是 Web 應用程序 (Django) 和數據庫 (postgresql) 駐留在兩個獨立的虛擬機中。我的網路伺服器已經配置了 HTTPS。

如果那是您載入的防火牆並且您通過 IPv4 連接,那麼您和您的伺服器之間還有另一個防火牆正在執行過濾。

預設情況下,埠 443 在所有 Web 伺服器的配置文件中列出 LISTEN,並使用 SSL 綁定到站點。

您只需要綁定埠或在防火牆中打開埠。

使用 Telnet 檢查埠是否打開。

root@ping# 遠端登錄 IP 地址 443

檢查埠是否打開,但您仍然沒有連接,然後檢查您的 IP 地址和域與埠 443 的綁定是否在 /etc/httpd/conf/httpd.conf 和 Windows 的 IIS 中正確列出。

如果沒有,則使用 iptables 允許此埠

iptables -I INPUT -p tcp –dport 443 -j 接受(對於 linux)

在控制面板中創建自定義防火牆規則並允許所有傳入連接使用埠 443(對於 Windows)。

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