netstat – проверка открытых портов в Linux

В данной статье мы рассмотрим основные команды Linux, которые будут полезны начинающим осваивать эту операционную систему.

Команды Linux для навигации в терминале

  1. &&. Строго говоря, это не команда. Если вы хотите выполнить сразу несколько команд, поставьте между ними двойной амперсанд вот так: первая_команда && вторая_команда. Терминал выполнит команды по порядку. Вы можете ввести столько команд, сколько захотите.
  2. alias. Присваивает созданные вами названия длинным командам, которые вы не можете запомнить. Введите alias длинная_команда короткая_команда.
  3. cd. Изменяет текущую терминальную папку. Когда вы запускаете терминал, он использует вашу домашнюю папку. Введите cd адрес_папки, и терминал будет работать с файлами, которые там находятся.
  4. clear. Очищает окно терминала от всех сообщений.
  5. history. Отображает все недавно введённые вами команды. Кроме того, вы можете переключаться между недавними командами с помощью клавиш «Вверх» и «Вниз». Если вы не хотите, чтобы введённая вами команда была записана, поставьте перед ней пробел так: ваша_команда.
  6. man. Отображает руководство по программам и командам Linux. Введите man имя_пакетаили man ваша_команда.
  7. whatis. Отображает краткое описание какой-либо программы. Введите команду и название программы whatis имя_пакета.
Команды Linux для навигации в терминале

Вывод

В данной статье мы ознакомились со следующими командами:

  • head — просмотр первых n строк данных.
  • tail — просмотр последних n строк данных.
  • sort — организуйте данные в порядке.
  • nl — напечатайте номера строк перед данными.
  • wc — распечатать количество строк, слов и символов.
  • cut — разрезать данные на поля и отображать только указанные поля.
  • sed — сделайте поиск и замените данные.
  • uniq — удалить дубликаты строк.
  • tac — распечатайте данные в обратном порядке.

Linux Shell или «Терминал»

Linux Shell — это программа, которая получает команды от пользователя и передает их ОС для обработки и показывает выходные данные. Shell Linux является его основной частью. Большинство дистрибутивов поставляются с графическим интерфейсом пользователя (GUI), но в основном в серверных Linux используется CLI (интерфейс командной строки).

В этом руководстве мы рассмотрим основные команды, которые мы используем в оболочке Linux.

Чтобы открыть терминал, нажмите Ctrl + Alt + T в Ubuntu или нажмите Alt + F2, введите gnome-терминал и нажмите ввод. В Raspberry Pi введите lxterminal.

Создание нового файла

Используя команду cat, строки, полученные из стандартного ввода, могут быть перенаправлены в новый файл используя символ редиректа. Когда вы набрали просто команду cat без каких либо аргументов, она примет содержание стандартного ввода и отобразит его в стандартном выводе.

$ cat Test. Test.

(Для остановки нажмите Ctrl+d)

Вы также можете перенаправить стандартный вывод в новый файл как показано ниже.

$ cat > Text for

Иногда вам может понадобиться добавить контент к файлу, для этого используйте символ редиректа >> как показано ниже.

Читайте также:  Команда cp — копирование файлов в Linux из терминала

$ cat >>

Несколько примеров для определения атаки типа DoS или DDoS

Следующая команда позволит узнать, сколько подключений активно на каждом IP-адресе:

netstat -naltp | grep ESTABLISHED | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort -n | uniq -c

Определяем большое количество запросов с одного IP-адреса:

netstat -na | grep :80 | sort

Определяем точное количество запросов, полученных на одно соединение:

netstat -np | grep SYN_RECV | wc -l

При проведении DoS-атаки число, полученное в результате работы данной команды, должно быть довольно большим. В любом случае оно может зависеть от конкретной системы. То есть на одном сервере оно может быть одним, на другом – иным.

Как с помощью Ncat получить доступ к службам, доступным только в локальной сети

С помощью уже рассмотренной опции —sh-exec можно любую программу, которая не является сетевой, сделать доступной по сети. Правда, из-за особенностей ввода-вывода (буферизация и всё такое) в интерактивном режиме не все программы будут работать хорошо.

Рассмотрим ещё один вариант: изначально сетевая программа настроена на прослушивание только локального адреса (localhost) и подключиться к ней из вне (с удалённого компьютера) невозможно. Самым распространённым таким примером является СУБД MySQL. Эта служба является сетевой и другие программы (например, обработчик PHP скриптов) связывается с ней по сети. Но многие системные администраторы настраивают MySQL так, чтобы с локального компьютера к ней можно было обратиться, а с удалённого — нет. В результате достигается следующее: веб-сайты, в том числе использующие базы данных MySQL, работают нормально, без изменений, поскольку подключение к MySQL выполняется в любом случае локально; но атакующий уже не может подключиться к MySQL (например, для подбора пароля). Правда, при этом и становится недоступной возможность удалённого обслуживания MySQL и легитимным системным администратором или веб-мастером.

Читайте также:  Что лучше, Linux или Windows?

С помощью Ncat можно разрешить эту проблему — вновь на некоторое время сделать MySQL доступной для удалённого подключения. Это достигается умением Ncat перенаправлять трафик.

Начнём с того, что с помощью Whatportis вспомним, какой порт использует MySQL:

Как с помощью Ncat получить доступ к службам, доступным только в локальной сети

Теперь на сервере, где работает доступная только локально служба, запускаем команду вида:

Причём в качестве КОНЕЧНЫЙ_IP может выступать локальный адрес, в данном случае я использую 127.0.0.1. Итак, моя команда, которую я запускаю на сервере:

На своём локальном компьютере я запускаю:

Как видим, всё работает: