首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确地向internet打开端口443

问正确地向internet打开端口443
EN

Server Fault用户
提问于 2016-03-05 02:13:13
回答 2查看 4.2K关注 0票数 1

我需要在我的服务器上向互联网开放的端口443。

当我通过netstat -tulpn | grep "nginx"在内部检查时,我发现nginx确实是该端口上的LISTENing。然而,从外部机器尝试nmap -p443 mysite.com告诉我端口443是被过滤的。同样,执行telnet <IP Address> 443超时。如何确保这个港口是开放的?

在/etc/iptables/rules.v4中,我有以下内容:

代码语言:javascript
复制
*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)驻留在两个独立的虚拟机中。我的for服务器已经配置为HTTPS。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2016-03-05 08:19:57

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

票数 2
EN

Server Fault用户

发布于 2016-03-05 09:20:42

默认情况下,端口443被列出,侦听所有web服务器的配置文件,并使用SSL绑定到站点。

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

使用Telnet检查端口是否已打开。

root@ping# telnet IP地址443

检查端口是否打开,但仍未连接,然后检查端口443与IP地址和域的绑定是否正确地列在/etc/httpd/conf/httpd.conf和IIS for windows中。

如果不允许使用iptables,则允许使用此端口。

iptables -I输入-p tcp -dport 443 -j Accept (用于linux)

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

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/761729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档