正确开放 443 端口至互联网

正确开放 443 端口至互联网

我需要在我的服务器上向互联网开放端口 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) 驻留在两个单独的虚拟机中。我的 Web 服务器已配置为 HTTPS。

答案1

如果这是您加载的防火墙,并且您通过 IPv4 连接,那么您和您的服务器之间还有另一个防火墙正在进行过滤。

答案2

默认情况下,端口 443 在所有 Web 服务器的配置文件中被列为 LISTEN,并使用 SSL 绑定到站点。

您所需要的只是绑定端口或在防火墙中打开端口。

使用Telnet检查端口是否开放。

root@ping# telnet IP 地址 443

检查端口是否打开,如果仍然无法连接,然后检查 /etc/httpd/conf/httpd.conf 和 Windows 的 IIS 中是否正确列出了 IP 地址和域与端口 443 的绑定。

如果没有,则使用 iptables 允许此端口

iptables -I INPUT -p tcp --dport 443 -j Accept(适用于 Linux)

在控制面板中创建自定义防火墙规则并允许所有传入连接端口 443(适用于 Windows)。

相关内容