Чому деякі порти, про які повідомляє nmap, фільтруються, а не інші?


38

Я сканую сервер, який повинен мати досить простий брандмауер, використовуючи iptables : за замовчуванням все DROPped крім RELATEDі ESTABLISHEDпакети. Єдиний тип NEWдозволених пакетів - це пакети TCP на портах 22 та 80, і це все (на цьому сервері немає HTTPS).

Результат nmap на перших портах 2048 дає 22 та 80 настільки ж відкритими, як я і очікую. Однак кілька портів видаються "відфільтрованими".

Моє запитання: чому порти 21, 25 і 1863 року виглядають як "відфільтровані", а 2043 інші порти не відображаються як відфільтровані?

Я очікував побачити лише 22 та 80 як "відкриті".

Якщо нормально бачити 21,25 та 1863 р. Як «відфільтровані», то чому ж і всі інші порти не виглядають як «відфільтровані»?

Ось вихід nmap :

# nmap -PN 94.xx.yy.zz -p1-2048

Starting Nmap 6.00 ( http://nmap.org ) at 2014-06-12 ...
Nmap scan report for ksXXXXXX.kimsufi.com (94.xx.yy.zz)
Host is up (0.0023s latency).
Not shown: 2043 closed ports
PORT     STATE    SERVICE
21/tcp   filtered ftp
22/tcp   open     ssh
25/tcp   filtered smtp
80/tcp   open     http
1863/tcp filtered msnp

Я дійсно не розумію, чому у мене 2043 закритих портів:

Not shown: 2043 closed ports

а не 2046 закритих портів.

Ось lsof, запущений на сервері:

# lsof -i -n
COMMAND   PID USER   FD   TYPE   DEVICE SIZE NODE NAME
named    3789 bind   20u  IPv4     7802       TCP 127.0.0.1:domain (LISTEN)
named    3789 bind   21u  IPv4     7803       TCP 127.0.0.1:953 (LISTEN)
named    3789 bind  512u  IPv4     7801       UDP 127.0.0.1:domain 
sshd     3804 root    3u  IPv4     7830       TCP *:ssh (LISTEN)
sshd     5408 root    3r  IPv4 96926113       TCP 94.xx.yy.zz:ssh->aa.bb.cc.dd:37516 (ESTABLISHED)
sshd     5411    b    3u  IPv4 96926113       TCP 94.xx.yy.zz:ssh->aa.bb.cc.dd:37516 (ESTABLISHED)
java    16589    t   42u  IPv4 88842753       TCP *:http-alt (LISTEN)
java    16589    t   50u  IPv4 88842759       TCP *:8009 (LISTEN)
java    16589    t   51u  IPv4 88842762       TCP 127.0.0.1:8005 (LISTEN)

(зауважте, що Java / Tomcat прослуховує порт 8009, але цей порт закритий брандмауером)


Чи отримуєте ті самі результати, коли скануєте інші хости?
Крік

@ Creek: ах, тільки що спробував на slashdot.org і відкрив 80 і 443, але також відфільтровано 25 / smtp . Але тоді ти дав мені ідею спробувати передати той самий сервер не з моєї домашньої машини, а з іншого сервера, яким я володію: я не отримую 3 відфільтровані порти, але тоді я отримую 53 / домен / закрито , 443 / https / закрито та 953 / rndc / закрито . (обидва мої виділені сервери розміщені в OVH / Франція).
Седрік Мартін

1
Якщо ви дійсно хочете побачити, що nmapробить, вам слід сканувати за допомогою кореневих приватних даних, використовуючи SYN scan ( -sS) та --packet-trace. Також візьміть кілька хвилин і прочитайте сторінку чоловіка, ви здивуєтеся, які дорогоцінні камені там
Creek

Я також тимчасово відкрию ці порти і побачу, чи пакети потрапляють до них.
Марк Херд

Відповіді:


25

Заява "Фільтрований порт" від nmap відрізняється залежно від способу сканування.

Стандартне сканування (TCP Scan, якщо непривілейований користувач, або Half-Open scan -sS, якщо суперпользователь), покладається на протокол TCP. (з назвою тристоронній рукостискання)

  • Клієнт (ви) видає SYN, якщо сервер відповідає SYN / ACK: це означає, що порт відкритий !

  • Ви видаєте SYN, якщо сервер відповідає RST: це означає, що порт близький !

  • Ви видаєте SYN, якщо сервер не відповідає або відповідає з помилкою ICMP: це означає, що порт фільтрується . Ймовірно, IDS / державний брандмауер блокує ваш запит)

Щоб зрозуміти, який реальний стан порту, ви можете:

  • скористайтеся опцією -sV або -A (виявлення версії, це допоможе вам визначити, який статус цього порту.
  • використовуйте --tcp-прапорці SYN, FIN, щоб спробувати обійти fw.
  • використовувати інші типи сканування ( http://nmap.org/book/man-port-scanning-techniques.html )

Прекрасна книга « Nmap Network Discovery », написана її творцем Федором, це дуже добре пояснює. Цитую

відфільтровано: Nmap не може визначити, чи відкритий порт, оскільки фільтрація пакетів не дозволяє зондам дістатися до порту. Фільтрування може здійснюватися із спеціалізованого пристрою брандмауера, правил маршрутизатора чи програмного забезпечення брандмауера на основі хоста. Ці порти відлякують зловмисників, оскільки вони надають так мало інформації. Іноді вони відповідають на повідомлення про помилки ICMP, такі як код 3 типу 3 (недоступне місце призначення: спілкування адміністративно заборонено), але фільтри, які просто скидають зонди, не реагуючи, набагато частіше. Це змушує Nmap повторити спробу кілька разів лише у випадку, якщо зонд був упущений через перевантаженість мережі, а не фільтрацію. Така фільтрація сповільнює сканування різко.

відкритий | фільтрується: Nmap розміщує порти в такому стані, коли він не в змозі визначити, відкритий чи відфільтрований порт. Це відбувається для типів сканування, в яких відкриті порти не дають відповіді. Відсутність відповіді також може означати, що пакетний фільтр скинув зонд або будь-яку відповідь, яку він викликав. Тож Nmap точно не знає, чи відкритий порт чи фільтрується. Протокол UDP, протокол IP, FIN, NULL та Xmas сканує класифікацію портів таким чином.

закритий | фільтрується: цей стан використовується, коли Nmap не в змозі визначити, закритий чи фільтрується порт. Він використовується лише для сканування в режимі очікування IP ID, обговореного в розділі 5.10, "Сканування в режимі очікування TCP (-sl)


Тож як я нефільтрую порт 22? Припустимо, я використовую Google Domains ...
IgorGanapolsky

"Unfilter"? Добре, що ви не перехоплюєте трафік до 22 на брандмауері, тому він не буде відфільтрований ... Потім ви отримаєте "відкрити" або "закрити" як відповідь на зонд nmap
Флоріан Бідабе

Що ви скануєте?
Флоріан Бідабе

Я використовую цю команду: sudo nmap -oG - -T4 -A -p22 -v pi.eazyigz.com | grep ssh
IgorGanapolsky

1
"-T4" є непотрібним, вже вказано в "-A" ... щодо зонда, sudo nmap означає, що використовується сканування Syn (-sS). "-A" - це скорочена версія "-T4" + "- sV" + "- O". Якщо виявлення служби (-sV) не вдається пробувати SSH-сервер, то, ймовірно, порт закритий (без ssh прослуховування), інакше ОБОВ'ЯЗКОВО має бути щось між вашим клієнтом і сервером, що інтернетував зонд і скидає пакети (брандмауер хоста, IDS, або неправильно налаштовані мережеві прилади)
Флоріан Бідабе

10

Чому порти 21, 25 і 1863 року виглядають як "відфільтровані", а інші 2043 порти не відображаються як відфільтровані?

Тому що у вашому інтернет-провайдері, маршрутизаторі, у вашому адміністраторі мережі що-небудь між ними або ви фільтруєте їх. Ці порти мають досить погану історію, 1863 - це порт, який використовується протоколом обміну миттєвими повідомленнями Microsoft (він же MSN та друзі), який, на мою думку, ви можете (а може і не) встановили певне правило. Здається, що SMTP є винуватцем вашого провайдера, і FTP мене повністю розчулив, оскільки я не маю уявлення, що з ними може статися.


1
дякую за пояснення! Таким чином , «фільтруються» в основному означає , що є еквівалент IPtables «з REJECT де (ISP, маршрутизатор і т.д.)? А провайдер / роутер або що-небудь ВІДМОВЛЮЄТЬСЯ замість того, щоб знизити його, оскільки він чистіший? Щодо порту 25: він фільтрується для мене, скажімо, для slashdot.org (коли я надсилаю його з домашнього з'єднання, але не тоді, коли я передаю його з мого виділеного сервера).
Седрік Мартін

6
@CedricMartin, ви отримали це точно назад. "Фільтрований" означає, що пакет відкидається (жодної відповіді немає), тоді як "закритий" означає, що пакет відхилений (відповідь ICMP "порт недоступний" надсилається).
Марк

@Mark: тоді, якщо я отримав це назад, моє початкове запитання стоїть: на моєму сервері за допомогою iptables я скидаю все, крім портів 22 та 80. Як тільки 3 порти видаються "відфільтрованими" !?
Седрік Мартін

@CedricMartin відредагуйте своє запитання та додайте свої правила iptables.
Брайам

1

За замовчуванням Nmap сканує лише найпоширеніші 1000 портів для кожного протоколу (tcp, udp). Якщо ваш порт знаходиться поза цим, він не сканує його, а значить, не повідомляє про нього. Однак ви можете вказати порти, які потрібно сканувати за допомогою параметра -p.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.