LINUX.ORG.RU
ФорумAdmin

Что значит open|filtered в выводе nmap

 , , ,


0

1

Подскажите, пожалуйста, что означает вот это:

# nmap -sU -p 631 mydomain
Starting Nmap 7.93 ( https://nmap.org ) at 2024-10-01 20:36 UTC
Nmap scan report for mydomain (mydomain)
Host is up (0.051s latency).

PORT    STATE         SERVICE
631/udp open|filtered ipp

Закрыт или не закрыт порт 631 в iptables?

Закрывал (в связи с уязвимостью) так:

# reject all
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#accept all for 127.0.0.1
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -d 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -d 127.0.0.1 -j ACCEPT

#deny connect to localhost from non localhost addresses
iptables -A INPUT -s 127.0.0.1/255.0.0.0 ! -i lo -j DROP

# Allow already established connections
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#accept all incoming tcp port, exclude 631
iptables -A INPUT -p tcp -m multiport --dports 631 -j DROP
iptables -A INPUT -p tcp -m multiport --sports 631
iptables -A INPUT -p tcp -j ACCEPT

#accept all outgoing tcp port, exclude 631
iptables -A OUTPUT -p tcp -m multiport --dports 631 -j DROP
iptables -A OUTPUT -p tcp -m multiport --sports 631 -j DROP
iptables -A OUTPUT -p tcp -j ACCEPT

#accept all incoming udp port, exclude 631
iptables -A INPUT -p udp -m multiport --dports 631 -j DROP
iptables -A INPUT -p udp -m multiport --sports 631 -j DROP
iptables -A INPUT -p udp -j ACCEPT

#accept all outgoing udp  port, exclude 631
iptables -A OUTPUT -p udp -m multiport --dports 631 -j DROP
iptables -A OUTPUT -p udp -m multiport --sports 631 -j DROP
iptables -A OUTPUT -p udp -j ACCEPT
★★★★★

Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от praseodim

С REJECT твой сервер отправляет ответ-ошибку. С DROP вообще молчит. Если ты через telnet будешь коннектиться на такой порт, то с REJECT у тебя telnet сразу напишет ошибку, с DROP telnet повиснет.

Тут нет правильного или неправильного варианта, оба варианта безопасны. REJECT теоретически чуть хуже, т.к. вынуждает твой сервер тратить ресурсы на такие ответы, но на практике сомневаюсь, что разницу можно замерить.

Если хочешь прям совсем правильно, на мой взгляд можно использовать REJECT с rate limiting и DROP для остальных пакетов. Т.е. в обычной ситуации будет отправляться REJECT, но если таких пакетов явно слишком много, то они будут дропаться.

vbr ★★★★
()
Ответ на: комментарий от praseodim

Drop или reject правильнее?

От ситуации зависит. Твоя проблема в том что ты смысла не понимаешь. Вот смотри, на пальцах: DROP означает что мы тупо удаляем пришедший пакет ничего не отправляя обратно. REJECT означает что мы ОТВЕЧАЕМ отправителю отказом.

Соответственно для того чтобы выбрать DROP или REJECT нужно понимать по какому протоколу с тобой общаются. DROP для «той стороны» выглядит как «чёрная дыра», REJECT выглядит как запертая дверь из за которой посылают нахер.

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)
Ответ на: комментарий от Jameson

Думаю что правльно делать на input и forward drop, открывать только то что нужно и в конце каждой цепочки добавить

-A FRAG_ALL -p tcp -j REJECT --reject-with tcp-reset
-A FRAG_ALL -p udp -j REJECT --reject-with icmp-port-unreachable
-A FRAG_ALL -j REJECT --reject-with icmp-proto-unreachable
-A FRAG_ALL -j DROP

hbars ★★★★★
()
Ответ на: комментарий от Jameson

Там есть ещё одна история. Если между твоим сервером и той стороной есть роутер, например, с DNAT — то роутер, получив SYN, создаёт запись в NAT таблице, и не получив ответа в случае DROP, удаляет запись только после таймаута. В случае REJECT роутер удаляет запись из таблицы сразу, поскольку тоже видит ICMP-уведомление.

Поэтому с политикой DROP можно подвесить роутер.

Aceler ★★★★★
()
Ответ на: комментарий от praseodim

В твоём случае правильнее настроить сраный cups так, чтобы он не слушал сетевой порт, а только unix-сокет. Ну, это если ты удалить его не можешь по какой-то причине.

LamerOk ★★★★★
()

open|filtered с точки зрения nmap означает, что был выслан пакет на порт udp 631, но ответ не получен из за того, что

  1. сервис не смог прочитать корректно пакет и решил ничего не отвечать
  2. пакет дропнулся

при сканирование UDP портов nmap посылает некоторые шаблоны известных сервисов (допустим DNS), но в большинстве случае он посылает пустой пакет, часто сервисы получаю «пустой» или «кривой с их точки зрения по структуре пакет» его откидывают, ничего не посылая обратно.

dark-initr0
()
Ответ на: комментарий от Aceler

Насчет роутера незнаю, но вот оффтопик раньше вешался наглухо, не только сетевая подсистема а именно оффтопик целиком, я проводил эксперимент.

anc ★★★★★
()
Ответ на: комментарий от praseodim

Зачем его админить, если он у тебя на локалхосте?

Алсо, наверняка можно заставить его слушать конкретно 127.0.0.1, тогда правила фаерволла тоже не нужны.

LamerOk ★★★★★
()
Последнее исправление: LamerOk (всего исправлений: 1)