Перевірка відкритих та прослуховуваних портів у Linux за допомогою netstat та ss
Моніторинг відкритих і прослуховуваних портів у системі Linux є важливим для безпеки, усунення несправностей мережі та системного адміністрування. Знання того, які порти використовуються і якими службами, може допомогти виявити потенційні вразливості або несанкціонований доступ. Двома поширеними інструментами, які використовуються для цієї мети, є netstat і ss.
У цій статті ми розглянемо, як використовувати команди netstat і ss для перевірки відкритих і прослуховуючих портів в системі Linux.
1. Розуміння портів та їх типів
Перш ніж ми зануримося в інструменти, важливо зрозуміти основні типи портів, з якими ви можете зіткнутися:
- Відкриті порти: Це порти, на яких програми активно прослуховують з’єднання.
- Слухаючі порти: Це порти, до яких служба або програма підключилася і активно очікує вхідний мережевий трафік.
- Загальні протоколи:
- TCP: протокол керування передаванням (надійний, заснований на з’єднанні).
- UDP: Протокол користувацьких дейтаграм (без з’єднання, менш надійний, але швидший).
2. Перевірка портів за допомогою netstat
Що таке netstat?
netstat – це класичний інструмент командного рядка, який надає мережеву статистику та інформацію про мережеві з’єднання, включаючи відкриті та прослуховувані порти. Хоча його застаріли на користь новіших інструментів, таких як ss, він все ще широко використовується.
Встановлення netstat
netstat є частиною пакета net-tools. У сучасних дистрибутивах Linux вам може знадобитися встановити його вручну:
- Debian/Ubuntu:
- CentOS/RHEL:
Використання netstat для перевірки відкритих і прослуховуваних портів
Щоб перевірити всі порти прослуховування у вашій системі, зокрема TCP і UDP, скористайтеся наступною командою:
- –t: Показати TCP-порти.
- –u: Показати UDP-порти.
- –l: Показувати лише порти для прослуховування.
- –n: Показувати числові адреси замість перетворення імен хостів і служб.
Приклад виведення:
- Локальна адреса: IP-адреса та порт, на якому служба слухає.
- Іноземна адреса: IP і порт віддаленого клієнта (для активних з’єднань).
- Стан: Стан з’єднання (наприклад, ПРОСЛУХОВУВАТИ для відкритих портів).
Фільтрування певних портів або служб за допомогою netstat
Ви можете відфільтрувати результати, щоб зосередитися на певних портах або сервісах. Наприклад, для перевірки портів, пов’язаних з HTTP (порт 80):
Це покаже всі служби, які слухають порт 80.
3. Перевірка портів за допомогою ss
Що таке ss?
ss – це сучасна утиліта, яка замінила netstat у багатьох дистрибутивах Linux. Вона швидша і ефективніша за netstat, особливо коли має справу з великою кількістю з’єднань. ss може показувати відкриті порти, інформацію про мережеві сокети тощо.
Використання ss для перевірки відкритих і прослуховування портів
Синтаксис ss дуже схожий на синтаксис netstat. Щоб перевірити всі прослуховувані TCP і UDP порти, скористайтеся:
- –t: Показати TCP-сокети.
- –u: Показати UDP-сокети.
- –l: Показувати лише сокети для прослуховування.
- –n: Показувати числові адреси (не перетворювати імена хостів).
Приклад виведення:
Цей вивід показує всі порти прослуховування та їхні стани (подібно до netstat).
Розширене використання ss
ss надає більш розширені можливості для фільтрації та відображення з’єднань на основі різних критеріїв.
Показувати лише прослуховування TCP-портів:
Показати лише прослуховування UDP-портів:
Показати порти прослуховування за ідентифікатором процесу (PID):
Щоб побачити, який процес пов’язано з портом прослуховування, скористайтеся цим пунктом:
Параметр p показує процес, який використовує порт, що корисно для усунення несправностей.
4. Порівняння netstat і ss
І netstat, і ss служать для схожих цілей, але є відмінності, на які варто звернути увагу:
- Швидкість та ефективність: ss працює швидше за netstat і споживає менше ресурсів. Вона може ефективніше обробляти велику кількість з’єднань.
- Доступність: ss включено за замовчуванням до більшості сучасних дистрибутивів Linux, в той час як netstat вимагає встановлення пакунка net-tools на деяких системах.
- Формат вихідних даних: Обидві програми надають детальну інформацію про порти і з’єднання, але ss має більше можливостей для фільтрування і відображення певної інформації.
Коли слід використовувати netstat:
- Під час роботи на старих системах Linux.
- Якщо ви знайомі з синтаксисом netstat і не хочете змінювати його.
Коли слід використовувати ss:
- Коли вам потрібна краща продуктивність, особливо в системах з великою кількістю з’єднань.
- Для більш просунутої фільтрації та аналізу мережі.
5. Інші інструменти для перевірки відкритих портів
Окрім netstat та ss, існують інші інструменти для перевірки відкритих та прослуховуваних портів у Linux:
lsof показує список відкритих файлів, які можуть включати мережеві сокети. Ви можете використовувати його для перевірки того, який процес прослуховує певний порт
Це покаже процеси, які використовують порт 80.
nmap – інструмент для сканування мережі, за допомогою якого можна перевірити наявність відкритих портів у системі.
Ця команда сканує TCP-порти на хості localhost.
Висновок
Моніторинг відкритих і прослуховуваних портів є важливим завданням для системних адміністраторів, і такі інструменти, як netstat і ss, полегшують його виконання. Хоча netstat все ще використовується на старих системах, ss став кращим інструментом завдяки своїй швидкості та ефективності. Незалежно від того, чи ви вирішуєте проблеми з мережею, чи захищаєте свій сервер Linux, ці інструменти допоможуть вам відстежувати активні служби та забезпечити належне керування портами.
Використовуйте netstat, якщо ви краще знайомі з ним, або переключіться на ss для швидшого та ефективнішого моніторингу відкритих і прослуховуваних портів вашої системи.
Дайте мені знати, якщо вам потрібні додаткові роз’яснення або допомога!