Опознайте вашата мрежа отвътре, като редовно проверявате за отворени портове с тези Linux команди.

Отворените мрежови портове са най-лесните входни точки към вашата мрежа. Понякога може да има нежелани услуги, работещи на портове, които се виждат външно от интернет. В случай, че тези услуги са уязвими, вашата мрежа ще бъде изложена на постоянна заплаха от атака, тъй като всеки ден целият интернет се сканира масово за уязвими услуги на отворени портове.

Научете как можете да сканирате и преглеждате отворени портове на вашите Linux системи, така че да можете да защитите мрежата си от заплахи.

Какво представляват мрежовите портове?

Мрежовите портове са логически точки за достъп на вашата система, които могат да се използват като канал за хостване на множество услуги. Портът е представен от 16-битово цяло число, така че най-големият номер на порт е 65535.

Можете да мислите за портове като прозорци и врати на къща - основно всички различни входни точки към къща или компютър. Портовете са от три типа: системни портове (1-1023), регистрирани портове (1024-49151) и ефимерни или динамични портове (49152-65535).

instagram viewer

Когато стартирате приложение, което изисква връзка с интернет, то използва динамични портове за предаване и получаване на данни по мрежата. Въпреки това, когато стартирате уеб сървър или SSH сървър, той обикновено се свързва със системните портове или регистрираните портове.

За уеб сървъри, обслужващи HTTP, системният порт по подразбиране е 80, а за SSH е 22. Тези разпоредби, като обхватите на портовете, са разработени от Органа за присвоени номера в Интернет (IANA). Можете да преминете през RFC относно портове за да получите пълен списък на всички портове и техните функции.

Важно е да знаете, най-често уязвимите портове така че да сте сигурни, че са затворени или защитени.

1. Проверете за отворени портове с netstat

netstat е популярна помощна програма, която можете да използвате, за да видите мрежовата статистика на вашата Linux система. Той е част от пакета net-tools.

Пакетът net-tools вече е амортизиран поради липса на подходяща поддръжка от разработчика. Това е и причината, поради която може да срещнете грешка „ifconfig: командата не е намерена“. когато изпълнявате популярната команда ifconfig на Linux.

Така че в съвременните системи може да се наложи първо да инсталирате пакета net-tools и след това ще можете да изпълните командата netstat. Ето как да проверите за отворени портове с netstat:

netstat -tuln

Обяснение на командата:

  • -T показва TCP портове.
  • -u показва UDP портове.
  • показва портове за слушане. Заменете това с а ако искате да видите всички портове, независимо от състоянието им.
  • показва числовата стойност на портовете, вместо да се преобразува в имена на услуги. Например, покажете порт 22 вместо SSH, т.е. услугата, работеща на порта.

2. Проверете за отворени портове с ss

ss е съвременният еквивалент на инструмента netstat. Ще намерите това предварително инсталирано във всички съвременни Linux дистрибуции. Синтаксисът за проверка на отворените портове с ss е идентичен с netstat.

Ето как да проверите за отворени портове с ss:

ss -тулн

Обяснение на командата:

  • -T показва TCP портове.
  • -u показва UDP портове.
  • показва портове за слушане. Заменете това с а ако искате да видите всички портове, независимо от състоянието им.
  • показва числовата стойност на портовете, вместо да се преобразува в имена на услуги. Например, покажете порт 21 вместо FTP, т.е. услугата, работеща на порта.

3. Проверете за отворени портове с Nmap

Nmap е един от най-популярните инструменти за киберсигурност и мрежи. Това е основно име, когато става въпрос за тестове за проникване в мрежовата сигурност. Неговият основен случай на използване е сканиране на портове, така че не само ще получите информация за портовете, отворени във вашата система, но и дали те са уязвими и могат да се използват.

Освен това, ако искате да проверите отворени портове в отдалечена система с настроен IDS/IPS и поставени защитни стени, не се притеснявайте, защото Nmap може също да заобиколи защитни стени и IDS/IPS с правилните превключватели.

Вижте това изчерпателно ръководство за Nmap за начинаещи за да изследвате разнообразните функции на Nmap и как да ги използвате. Въпреки че можете, не се препоръчва да се опитвате да заобиколите защитните стени, тъй като това не е напълно надеждно, така че е най-добре да влезете с SSH в отдалечения сървър и след това да стартирате Nmap на него локално.

Ето командата за проверка за отворени портове с Nmap:

nmap -sTU -sV  -T 5 --min-rate 9000 --min-parallelism 9000 --initial-rtt-timeout 50ms --max-rtt-timeout 3000ms --max-retries 50 -Pn --disable-arp-ping -n -- скрипт vuln, експлоатация, удостоверяване -v -oX 

Обяснение на командата:

  • -sTU задава типа сканиране на TCP Connect и UDP сканиране.
  • -Т 5 настройва шаблона за време на агресивен за светкавично бързо сканиране (не се препоръчва на незащитена система, тъй като може да доведе до DoS атака).
  • -sV включва сканиране на услугата.
  • --мин.ставка 9000 казва на Nmap да изпраща 9000 пакета в секунда.
  • --initial-rtt-timeout 50ms казва на Nmap първоначално да изчака 50 ms за отговор на всеки SYN пакет, който изпраща.
  • --max-rtt-timeout 3000ms казва на Nmap да изчака максимум 3000ms за отговор.
  • --min-паралелизъм 9000 задава минималния брой едновременни изпълнявания на скрипта на 9000.
  • --max-retries 50 казва на Nmap да опита 50 пъти, за да се свърже с порт.
  • -Pn забранява ping сондирането.
  • --disable-arp-ping забранява ARP сондирането.
  • забранява разделителната способност на DNS.
  • --script vuln, exploit, auth изпълнява три скрипта за тестване за различни типове уязвимости в откритите портове.
  • -v връща подробен изход.
  • -oX записва резултатите в XML файл.
  • -6 Незадължителен параметър за сканиране на IPv6 адреси.

4. Проверете за отворени портове с lsof

Командата lsof в Linux се използва за изброяване на отворени файлове. Въпреки това, ако добавите няколко превключвателя към него, ще можете да видите отворените интернет връзки и портове на вашата локална машина. Ето как да проверите за отворени портове с lsof:

lsof -i -n

Обяснение на командата:

  • изброява всички мрежови и интернет файлове.
  • не разрешава имена на хостове.

5. Проверете за отворени портове с netcat

netcat е помощна програма от командния ред, която ви позволява да четете и пишете от и към TCP/UDP връзки. Имайте предвид, че това е само една функция на netcat. Можете да проверите неговата страница с ръководство, като използвате мъж netcat команда, за да проучите всички нейни функции и как да ги използвате.

Ето как можете да използвате netcat за сканиране на отворени портове:

нц -зв  | grep -v "отказано"

Обяснение на командата:

  • -z настройва netcat в режим на скенер.
  • -v връща подробен изход.
  • grep -v "отказано" връща изходни редове без думата "отказано". Това е, за да се предотврати запушването на терминала със съобщения "отказана връзка", когато netcat не получава изход от порт.
  • 2>&1: Това е незадължителен превключвател, който може да се наложи да включите, за да работи grep, когато изпълнявате netcat в подробен режим. netcat връща изход към stderr (обозначен с 2). Така че, за да grep изхода, ще трябва да пренасочите stderr към stdout (обозначен с 1) и след това да го прехвърлите в grep.

Колкото по-дълбоко познавате мрежата си, толкова по-добре можете да я защитите

Да знаете кои портове са отворени и какви услуги се изпълняват във вашата система е чудесна стъпка към защитата й от потенциални външни атаки. Това ви позволява да търсите и изключвате ненужни услуги, да намирате остарели услуги и също открива дали има някакви злонамерени файлове като задни вратички за обвързване или обратна обвивка, работещи на вашия система.

Ако сте сериозни относно мрежовата сигурност, трябва да помислите за инсталиране и настройка на IDS решение, за да наблюдавате цялата дейност във вашата мрежа и да прилагате набори от правила за предотвратяване на нежелани връзки.