Nmap занимает несколько минут, чтобы сканировать localhost

2206
jeremysprofile

Я пытаюсь запустить, nmapчтобы увидеть, какие порты у моего компьютера открыты, в рамках следования этому руководству по настройке докера . я использую

sudo nmap -sU -sS -T4 --defeat-rst-ratelimit -p 1-65535 localhost 

Это займет вечность. Я опустил его до 500 портов, и это занимает около 45 секунд . В руководстве я вижу, что сканирование всех 65000 портов должно занять всего ~ 3 секунды. Я понятия не имею, что происходит.

Система представляет собой свежий Centos 7.4.1708 (установлен прошлой ночью). Во всяком случае, это не большой ноутбук (около 2010 года), но не имеет смысла, что он будет на много порядков медленнее. Я за потребительским маршрутизатором, но я не думаю, что это должно иметь значение, так как я делаю сканирование локального хоста.

Любая помощь / совет с благодарностью. Я пробовал команды, предложенные в этом вопросе

nmap -d -n -Pn -p 4730 localhost  nmap -d -n -sn localhost  nmap -d -sL localhost 

и получили очень быстрые ответы: первый - 0.07 с, остальные - 0.01 с. Сканирование одного порта довольно быстрое, но оно очень медленное для большого количества портов. Также сняв --defeat-rst-ratelimitи -T4не изменив скорость заметно.

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

1

1 ответ на вопрос

6
bonsaiviking

Nmap не лучший инструмент для этого. Я люблю Nmap, и моя постоянная работа заключается в том, чтобы работать над этим и продвигать его, но это один из случаев, когда это не лучший инструмент для работы. Ядро Linux хранит исчерпывающие записи о том, какие порты открыты и какие процессы имеют их открытыми, и обычные инструменты командной строки могут запросить это. Команда, которая будет наиболее полезной для вас, - netstat -tulnpэто список всех номеров портов Listen ( -l) TCP ( -t) и UDP ( -u) ( -n) и связанных с ними идентификаторов процессов ( -p). В некоторых системах команда netstat устарела, поэтому вы можете использовать ssвместо нее:ss -tunpo state listening

Что касается того, почему Nmap занимает так много времени, наиболее вероятной причиной является сканирование UDP ( -sU). Nmap хочет определить, какие порты открыты, а какие закрыты, но UDP не требует ответного пакета от открытых портов. Вместо этого он отправляет сообщение ICMP Port Unreachable в ответ на зонды на закрытые порты. Linux ограничивает скорость этих сообщений ICMP, поэтому Nmap должен замедлить процесс, чтобы отличить тишину «открытый порт, нет ответа» от «закрытого порта, но пока не время отправлять сообщение ICMP».

Я подумал, что nmap послужит скорее подтверждением - не только у вас не запущены процессы, но и да, ваши порты определенно закрыты, вы правильно сделали iptables, хорошая работа. Что касается низкого уровня сканирования UDP, этот ответ имеет смысл, но тогда я не понимаю, как [это руководство на стр. 6] (http://devops.com/wp-content/uploads/2017/05/How-To- Guide-1.pdf) получил такой быстрый ответ. jeremysprofile 7 лет назад 0
Правила iptables не будут проверяться, если вы работаете с localhost, поскольку пакеты не являются входящими. Вы можете удалить ограничение скорости самостоятельно, если хотите. [Страница man icmp] (https://linux.die.net/man/7/icmp) показывает, что вы можете установить для `icmp_ratelimit` значение` 0`, чтобы отключить его: `echo 0 | sudo tee / proc / sys / net / ipv4 / icmp_ratelimit` bonsaiviking 7 лет назад 1
Ой. Это хорошие вещи, чтобы знать. Спасибо за вашу помощь! jeremysprofile 7 лет назад 0

Похожие вопросы