logo

Як перевірити відкриті порти в Linux

Коротко ми опишемо порти в комп’ютерній мережі, а далі поговоримо про те, як ми можемо перерахувати кожен відкритий порт у Linux.

Порт можна визначити як логічну сутність у термінах комп’ютерної мережі та програмного забезпечення.

Він діє як кінцева точка зв’язку для ідентифікації даного процесу або програми на Операційна система Linux . Порт - це a 16-біт (від 65535) число, яке відрізняє одну програму від інших на різних кінцевих системах.

Два найвідоміших транспортних протоколу Інтернету, Протокол дейтаграм користувача (UDP) і Протокол керування передачею (TCP) та інші протоколи застосовують номери портів для багатьох сеансів зв’язку (номер порту призначення та вихідного порту в поєднанні з IP-адресами призначення та джерела).

Комбінація протоколу, порту та IP-адреси, наприклад TCP/UDP називається a гніздо. Необхідно, щоб усі служби мали певний сокет.

sqrt java математика

Категорії порту

Ці порти поділяються на три категорії для зручності використання, оскільки різноманітність портів велика. Усі категорії позначені як діапазон значень порту:

0-1023: Ці порти є добре відомий і подзвонив 'Система' порти. Вони зарезервовані для процесів системи, які надають величезний спектр мережевих послуг. Процес повинен мати привілеї суперкористувача для зв’язування з будь-яким «Відомий» порт.

1024-49151: Ці порти є 'Зареєстровано' і назвав 'Користувач' порти. Вони позначаються через IANA за унікальні послуги. Процес може автентифікувати їх за запитом. Для використання цих портів у більшості систем не потрібні жодні привілеї суперкористувача.

49152-65535: Ці порти є 'Динамічний' і назвав 'Приватний' порти. Їх не можна зареєструвати IANA. Ці типи портів відкриті для використання для індивідуальних і приватних служб, а також можуть бути виділені як тимчасові порти (відомі як короткочасний порти, застосовані IP) автоматично.

Існує багато способів перевірки відкритих портів у Linux. За замовчуванням порт закривається, якщо жодна програма не застосовує його. Процесу або службі слід призначити порт, якщо він відкритий.

Відкрийте список портів

Легше дізнатися, який порт використовується замість того, який порт відкритий. Отже, у розділі нижче надано методи переліку кожного порту, який зараз використовується.

Для цього завдання в Linux є кілька інструментів. Більшість з них доступні вбудований у дистрибутиві Linux.

Дізнатися, який порт зараз відкрито, може бути корисно в багатьох сценаріях. Можна визначити виділений порт для гарантованої програми. Відкритий порт може свідчити про вторгнення в мережу.

Методи використовуються на Ubuntu 20.04 LTS які згадані нижче.

Список відкритих портів і протоколів за допомогою файлу /etc/services

Файл, тобто /etc/services містить детальну інформацію про запущені служби (на даний момент). Це великий файл.

 $cat /etc/services | less 

Як перевірити відкриті порти в Linux

Список відкритих портів за допомогою netstat

The netstat можна описати як утиліту для відображення мережевих з’єднань для таблиць маршрутизації, TCP і кількох мережевих інтерфейсів. Крім того, це полегшує статистику мережевого протоколу. Ми могли б перерахувати кожен відкритий порт системи за допомогою інструменту netstat.

Ми можемо виконати наведену нижче команду:

 $ netstat -atu 

Як перевірити відкриті порти в Linux

Давайте швидко пояснимо розбивку кожного прапора, який ми використовували у наведеній вище команді:

1. а: Цей прапорець повідомляє netstat для відображення кожного сокета.

2. т: Цей прапор інформує netstat про перелік портів TCP.

3. в: Цей прапорець інформує netstat про перелік портів UDP.

The netstat Команда має інший варіант, який згадується нижче:

 $ netstat -lntu 

Як перевірити відкриті порти в Linux

У наведеній вище команді є два прапорці, які пояснюються наступним чином:

1. л: Цей прапор повідомляє netstat про друк лише прослуховуваних сокетів.

2. п: Цей прапорець повідомляє netstat для показу номера порту.

Ми можемо використовувати прапор, тобто '-p' щоб показати PID процесу, який використовує будь-який порт.

 $ netstat -lntup 

Як перевірити відкриті порти в Linux

Перевірте відкриті порти локально

Команда netstat доступна в кожній операційній системі комп’ютера для моніторингу мережевих з’єднань. Команда нижче застосовує netstat для відображення кожного порту прослуховування з протоколом TCP:

 netstat -lt 

Як перевірити відкриті порти в Linux

Давайте коротко визначимо позначки, які присутні у наведеній вище команді:

1. -l: У ньому перераховані порти прослуховування.

... на java

2. -t: Він визначає протокол TCP.

Результат добре впорядкований у стовпцях, які відображають протокол, зручність для людини, надіслані та отримані пакети, стан порту, віддалені та локальні IP-адреси.

Якщо ми змінимо протокол TCP для протоколу UDP, то вихідні дані відображатимуть лише відкриті порти. Результат буде показано без опису стану через суперечність протоколу TCP.

 netstat -lu 

Як перевірити відкриті порти в Linux

Ми можемо ігнорувати опис протоколів і застосувати лише опцію --listen або -l для отримання деталей щодо кожного порту, який вільно прослуховує протокол:

 netstat --listen 

Як перевірити відкриті порти в Linux

Наведений вище параметр покаже деталі для протоколів сокетів Unix, UDP і TCP.

У кожному наведеному вище прикладі показано, як друкувати деталі через порти прослуховування без авторизованих з’єднань. Наведені нижче команди показують, як показати порти прослуховування та авторизовані з’єднання.

 netstat -vatn 

Як перевірити відкриті порти в Linux

Де:

1. -в: Використовується для багатослівності.

2. -а: Він відображає активні підключення.

3. -t: Він відображає підключення tcp.

4. -n: Відображає порти (числове значення).

Припустімо, ми розпізнаємо підозрілий процес у нашій системі та хочемо перевірити пов’язані з ним порти. Ми можемо використати команду lsof, яка використовується для списку відкритих файлів, пов’язаних із процесами.

 lsof -i 4 -a -p 

Де,

1. -я: У ньому перераховані файли, які співпрацюють з Інтернетом 6 доступна опція для IPv6, і 4 опція вказує лише на друк IPv4.

2. -а: Він вказує на результат Ти дала.

3. -p: Він визначає номер PID процесу, який ми хочемо перевірити.

Список відкритих портів за допомогою ss

The сс інструмент можна вказати як утиліту для дослідження сокета. Застосування цього засобу таке ж, як і netstat команда.

Ми можемо запустити наведену нижче команду для списку відкритих портів:

 $ ss -lntu 

Як перевірити відкриті порти в Linux

Наведені вище прапори такі ж, як прапори netstat команда. Функції, які описує інструмент ss, також є такими самими.

1. л: Цей прапор інформує ss про відображення прослуховуваних розеток.

2. п: Цей прапор інформує ss не намагатися завершити імена служб.

3. т: Цей прапорець повідомляє ss для відображення TCP-сокетів.

4. в: Цей прапор повідомляє ss про відображення UDP-сокетів.

Список відкритих портів за допомогою lsof

Команда lsof може бути використана для списку відкритих файлів. Але його також можна використовувати для відображення відкритих портів.

Ми можемо виконати таку команду:

 $ lsof -i 

Як перевірити відкриті порти в Linux

Щоб отримати відкриті порти певного протоколу (UDP, TCP тощо), укажіть його після використання '-i' прапор, ми можемо виконати таку команду:

 $ lsof -i 

Список відкритих портів за допомогою nmap

Команду nmap можна визначити як сильну для сканування портів/безпеки та дослідження мережі. Він також може повідомляти про кожен відкритий порт у системі.

Ми можемо виконати наступну команду для списку відкритих портів TCP.

 $ sudo nmap -sT -p- localhost 

Як перевірити відкриті порти в Linux

Існує два розділи цієї команди, згаданої вище:

1. -sT: Він інформує інструмент nmap для сканування TCP порти.

2. -p-: Він інформує інструмент nmap для сканування кожного 65535 порти. Інструмент nmap сканує 1000 порти лише за замовчуванням, якщо не використовуються.

Якщо нам потрібно вказати список відкритих портів UDP, ми можемо виконати таку команду:

 $ sudo nmap -sU -p- localhost 

Як перевірити відкриті порти в Linux

Ми також можемо виконати наступну команду для отримання портів UDP і TCP:

 $ sudo nmap -n -PN -sT -sU -p- localhost 

Як перевірити відкриті порти в Linux

Список відкритих портів за допомогою netcat

Інструмент netcat можна описати як утиліту командного рядка для читання та запису даних через багато мережевих з’єднань за протоколами UDP і TCP. Крім того, його можна використовувати для переліку відкритих портів. Цей інструмент може виконувати тести на певному порту або на різних портах.

Наведена нижче команда netcat використовується для сканування порту з 1-1000. За замовчуванням він реалізує сканування через протокол TCP:

 $ nc -z -v localhost 1-1000 

Як перевірити відкриті порти в Linux

Крім того, його можна розширити до всього списку певних портів:

 $ nc -z -v localhost 1-65535 

Як перевірити відкриті порти в Linux

Давайте швидко розберемо ці прапори.

1. з: Він інформує команду netcat про сканування лише відкритих портів без передачі даних.

2. в: Він інформує команду netcat для запуску в докладному режимі.

перетворення рядка в java

Ми можемо відфільтрувати результат за допомогою grep для терміну 'успішно' для отримання лише відкритих портів через цей список.

 $ nc -z -v 127.0.0.1 20-80 | grep succeeded 

Як перевірити відкриті порти в Linux

Якщо ми хочемо реалізувати сканування через протокол UDP, Ми можемо включити '-in' прапор.

 $ nc -z -v -u localhost 0-65535 2>&1 | grep succeeded