Назад | Перейти на главную страницу

Порт 443 открыт, но IP-таблица это отрицает

Когда я запускаю следующую команду на своем экземпляре Ubuntu:

$ nmap host

Я вижу, что порт 443 открыт:

Starting Nmap 5.21 ( http://nmap.org ) at 2013-03-19 05:36 PDT
Nmap scan report for [host redacted] (ip address redacted)
Host is up (0.000034s latency).
rDNS record for [ip address redacted]: [host redacted]
Not shown: 995 closed ports
PORT      STATE SERVICE
21/tcp    open  ftp
25/tcp    open  smtp
80/tcp    open  http
443/tcp   open  https
30000/tcp open  unknown

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds

Однако я не могу подключиться по telnet к порту 443. Когда я это делаю, я вижу следующую запись в моем системном журнале

Mar 19 05:39:30 localhost kernel: iptables denied: IN=eth0 OUT= MAC=f2:3c:91:ae:c6:7a:c8:4c:75:f5:d6:3f:08:00 SRC=(ip address redacted) DST=(ip address redacted) LEN=64 TOS=0x00 PREC=0x00 TTL=52 ID=23782 DF PROTO=TCP SPT=53375 DPT=443 WINDOW=65535 RES=0x00 SYN URGP=0

И выход iptables -L --line-numbers ПРИНЯТЬ цепочку:

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  anywhere             anywhere            
2    REJECT     all  --  anywhere             127.0.0.0/8         reject-with icmp-port-unreachable 
3    ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
4    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:www 
5    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:30000 
6    LOG        all  --  anywhere             anywhere            limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: ' 
7    REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 
8    ufw-before-logging-input  all  --  anywhere             anywhere            
9    ufw-before-input  all  --  anywhere             anywhere            
10   ufw-after-input  all  --  anywhere             anywhere            
11   ufw-after-logging-input  all  --  anywhere             anywhere            
12   ufw-reject-input  all  --  anywhere             anywhere            
13   ufw-track-input  all  --  anywhere             anywhere            
14   ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https     

Однажды я пытался использовать UFW, но теперь он отключен, и я просто использую iptables. Я вижу, что в строке 14 я принимаю пакеты на порт 443, но в строке 7 я отклоняю пакеты. Проблема с размещением правила? Если да, как я могу переместить его дальше по цепочке? Или проблема в самом правиле?

Когда я просматриваю историю bash, я считаю, что использовалось следующее правило:

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

ОБНОВИТЬ:

Я просто решил это, переместив правило дальше по цепочке и удалив добавленное правило:

$ iptables -I INPUT 6 -p tcp --dport 443 -j ACCEPT # add the rule to the 6th position
$ iptables -L
$ iptables -D INPUT 15 # delete line 15

Ваши правила должны быть перед строкой отклонения и строкой журнала.

6    LOG        all  --  anywhere             anywhere            limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: ' 
7    REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Должно быть последним. Это связано с тем, что правила обрабатываются по порядку, и как только он получает соответствие, он больше не смотрит на правила.