Nmap - чудовий сканер портів, але іноді потрібно щось авторитетніше. Ви можете запитати ядро, які процеси мають, які порти відкриваються, скориставшись netstat
утилітою:
я @ myhost: ~ $ sudo netstat -tlnp
Активні підключення до Інтернету (лише сервери)
Proto Recv-Q Send-Q Локальна адреса Ім'я PID / Програма іноземної адреси
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1004 / dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 380 / сшд
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 822 / скл
tcp6 0 0 ::: 22 ::: * LISTEN 380 / sshd
tcp6 0 0 :: 1: 631 ::: * СПИСОК 822 / чаш
Надані мені варіанти:
-t
Тільки TCP
-l
Лише прослуховування портів
-n
Не шукайте імена служб та хостів, лише показуйте номери
-p
Показати інформацію про процес (вимагає root права)
У цьому випадку ми можемо бачити, що sshd
слухає на будь-якому 0.0.0.0
порту 22 інтерфейсу ( ) і cupsd
слухає на 127.0.0.1
порту 631. Loopback ( ). На виході може відображатися telnetd
локальна адреса 192.168.1.1:23
, тобто він не відповідає на з'єднання на адаптері петлі. (наприклад, ви не можете telnet 127.0.0.1
).
Є й інші інструменти, які показують подібну інформацію (наприклад, lsof
чи /proc
), але найпоширенішим є netstat. Він працює навіть у Windows ( netstat -anb
). BSD netstat дещо інший: для отримання інформації про процес вам доведеться використовувати sockstat (1) .
Коли у вас є ідентифікатор процесу та назва програми, ви можете піти на пошук процесу та вбити його, якщо хочете закрити порт. Для більш тонкого контролю можна використовувати брандмауер (iptables в Linux) для обмеження доступу лише до певних адрес. Можливо, вам буде потрібно відключити запуск служби. Якщо PID є "-" в Linux, це, ймовірно, процес ядра (це, наприклад, NFS), тож удачі дізнатися, що це таке.
Примітка. Я сказав "авторитетно", тому що вас не заважають мережеві умови та брандмауери. Якщо ви довіряєте своєму комп’ютеру, це чудово. Однак, якщо ви підозрюєте, що вас зламали, можливо, ви не зможете довіряти інструментам на своєму комп’ютері. Заміна стандартних утиліт (а іноді навіть системних викликів) на ті, які приховують певні процеси або порти (також rootkits) - це стандартна практика серед зловмисників. Ваша найкраща ставка на даний момент - зробити криміналістичну копію вашого диска та відновити з резервної копії; потім скопіюйте копію, щоб визначити, як вони потрапили, і закрийте її.
localhost
доступ доlo
інтерфейсу (петлі). IP - адреса буде екранним ваш реальний інтерфейс, ймовірно ,eth0
абоwlan0
чи конвертувати.