Правильно открыв порт 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
Что я делаю неправильно?
Обратите внимание, что у меня есть установка, в которой веб-приложение (Django) и база данных (postgresql) находятся на двух отдельных виртуальных машинах. Мой веб-сервер уже настроен для HTTPS.
2 ответа
Если это ваш загруженный брандмауэр, и вы подключаетесь через IPv4, то между вами и вашим сервером, который выполняет фильтрацию, есть еще один брандмауэр.
По умолчанию порт 443 указан LISTEN в файле конфигурации всех веб-серверов и привязан к сайтам с использованием SSL.
Все, что вам нужно, это привязать порт или открыть порт в брандмауэре.
Используйте Telnet, чтобы проверить, открыт ли порт.
root @ ping # telnet IP адрес 443
Проверьте, открыт ли порт, и все же вы не подключаетесь, затем проверьте, что ваши привязки IP-адреса и домена с портом 443 правильно указаны в /etc/httpd/conf/httpd.conf и IIS для Windows.
Если нет, то разрешите этот порт, используя iptables
iptables -I INPUT -p tcp --dport 443 -j Принять (для linux)
Создайте пользовательское правило брандмауэра на панели управления и разрешите порт 443 для всех входящих подключений (для Windows).