Linux Admin — Мониторинг трафика в CentOS

July 26, 2014 by Sharad Chhetri 6 Comments

Параметры CentOS

После недавнего объявления CentOS 8 о переходе с CentOS 8 на CentOS Stream этот широко используемый дистрибутив Linux переводится в промежуточную версию RHEL для разработки. По сути, CentOS 8 становитсяранним выпускаемым дистрибутивом для RHEL. Поскольку CentOS переходит от последующего дистрибутива к стабильной версии RedHat, чтобы быть, по сути, предварительной версией RHEL, многие пользователи ищут альтернативы для замены своих текущих операционных систем на долгосрочную стабильную платформу, помимо RHEL и IBM, владеющие RedHat.

Установите и используйте nload

С нашими репозиториями EPEL, установленными и настроенными в CentOS, мы теперь сможем установить и использовать nload . Эта утилита предназначена для составления графика пропускной способности каждого интерфейса в режиме реального времени.

Как и большинство других базовых установок, nload устанавливается через менеджер пакетов YUM.

[root@CentOS rdc]# yum -y install nload Resolving Dependencies --> Running transaction check ---> Package _64 0: will be installed --> Finished Dependency Resolution Dependencies Resolved =============================================================================== =============================================================================== Package Arch Version Repository Size =============================================================================== =============================================================================== Installing: nload x86_64 epel 70 k Transaction Summary =============================================================================== =============================================================================== Install 1 Package Total download size: 70 k Installed size: 176 k Downloading packages: --{ condensed output }--

Теперь у нас установлен nload , и использовать его довольно просто.

[root@CentOS rdc]# nload enp0s5

nload будет контролировать указанный интерфейс. В этом случае enp0s5 интерфейс Ethernet в режиме реального времени от терминала для загрузки сетевого трафика и использования полной полосы пропускания.

Как видно, nload будет отображать как входящие, так и исходящие данные из указанного интерфейса, наряду с предоставлением физического представления потока данных с помощью хеш-меток «#».

Изображенный скриншот представляет собой простую веб-страницу, загружаемую некоторым фоновым трафиком демона.

Общие параметры командной строки для nload —

команда действие
-a Временной период
-t Интервал обновления времени в миллисекундах, по умолчанию 500
-u Устанавливает отображение измерения трафика h
-U Устанавливает единицы измерения общего входящего / исходящего трафика те же параметры, что и -u

Стандартный синтаксис для nload —

nload [options] <interface>

Если интерфейс не указан, nload автоматически захватит первый интерфейс Ethernet. Давайте попробуем измерить общий объем данных в мегабайтах и ​​текущие скорости передачи данных в мегабитах.

[root@CentOS rdc]# nload -U M -u m

Данные, поступающие в / из текущего интерфейса, измеряются в мегабитах в секунду, и каждая строка «Ttl», представляющая общее количество данных, вводимых / выводимых, отображается в мегабайтах.

nload полезен для администратора, чтобы увидеть, сколько данных прошло через интерфейс и сколько данных в настоящее время поступает / выходит из указанного интерфейса.

Чтобы увидеть другие интерфейсы без закрытия nload, просто используйте клавиши со стрелками влево / вправо. Это будет циклически перебирать все доступные интерфейсы в системе.

Можно контролировать несколько интерфейсов одновременно с помощью ключа -m —

[root@CentOS rdc]# nload -u K -U M -m lo -m enp0s5

Установить шлюз по-умолчанию в CentOS 7

Если по каким-то причинам при настройке сетевых параметров у вас не установился шлюз по-умолчанию, то сделать это можно вручную. Для начала проверим, какой шлюз по-умолчанию установлен в системе в данный момент:

# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 0.0.0.0 UG 0 0 0 eth0 10.8.0.0 10.8.0.2 UG 0 0 0 tun0 10.8.0.2 0.0.0.0 UH 0 0 0 tun0 0.0.0.0 U 0 0 0 eth0 10.8.0.2 UG 0 0 0 tun0

Строка с Destination 0.0.0.0 определяет адрес шлюза. Если у вас ее нет, либо в поле Gateway установлен неверный шлюз, то можно это изменить. Устанавливаем шлюз по-умолчанию:

route add default gw Manager в CentOS 7

В CentOS по-умолчанию имеется служба, которая управляет всеми сетевыми подключениями — NetworkManager. Она постоянно контролирует сетевые настройки и с помощью демона по управлению конфигурациями вносит соответствующие изменения в активные сетевые устройства. Она поддерживает стандартные файлы конфигураций ifcfg.

Сохранение введенных правил при перезагрузке

Все введенные в консоли правила — после перезагрузки ОС будут сброшены в первоначальное состояние (читай — удалены). Для того чтобы сохранить все введенные команды iptables, существует несколько путей. Например, один из них — задать все правила брандмауэра в файле инициализации  Но у данного способа есть существенный недостаток: весь промежуток времени с запуска сетевой подсистемы, до запуска последней службы и далее скрипта из SystemV операционная система будет не защищена. Представьте ситуацию, например, если какая-нибудь служба (например NFS) стартует последней и при ее запуске произойдет какой-либо сбой и до запуска скрипта Соответственно, так и не запуститься, а наша система превращается в одну большую дыру.

Поэтому самой лучшей идеей будет инициализировать правила netfilter/iptables при загрузке сетевой подсистемы. Для этого в Debian есть отличный инструмент — каталог /etc/network/if-up.d/, в  который можно поместить скрипты, которые будут запускаться при старте сети. А так же есть команды iptables-save и iptables-restore, которые сохраняют создают дамп правил netfilter из ядра на стандартный вывод и восстанавливают в ядро правила со стандартного ввода соответственно.

Итак, алгоритм сохранения iptables примерно следующий:

  • Настраиваем сетевой экран под свои нужны с помощью команды iptables
  • создаем дамп созданный правил с помощью команды iptables-save > /etc/
  • создаем скрипт импорта созданного дампа при старте сети (в каталоге /etc/network/if-up.d/) и не забываем его сделать исполняемым:

# cat /etc/network/if-up.d/firewall #!/bin/bash /sbin/iptables-restore < /etc/ exit 0 # chmod +x /etc/network/if-up.d/firewall

Дамп правил, полученный командой iptables-save имеет текстовый формат, соответственно пригоден для редактирования. Синтаксис вывода команды iptables-save следующий:

# Generated by iptables-save v1.4.5 on Sat Dec 24 22:35:13 2011 *filter :INPUT ACCEPT [0:0]  :FORWARD ACCEPT [0:0] ....... # комментарий -A INPUT -i lo -j ACCEPT -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT ........... -A FORWARD -j REJECT COMMIT # Completed on Sat Dec 24 22:35:13 2011 # Generated by iptables-save v1.4.5 on Sat Dec 24 22:35:13 2011 *raw ...... COMMIT

Строки, начинающиеся на # — комментарии, строки на * — это название таблиц, между названием таблицы и словом COMMIT содержатся параметры, передаваемые команде iptables. Параметр COMMIT — указывает на завершение параметров для вышеназванной таблицы. Строки, начинающиеся на двоеточие задают цепочки, в которых содержится данная таблица в формате:

:цепочка политика [пакеты:байты]

где цепочка - имя цепочки, политика - политика цепочки по-умолчанию для данной таблицы, а далее счетчики пакетов и байтов на момент выполнения команды.

В RedHat функции хранения команд iptables выполняемых при старте и останове сети выполняет файл /etc/sysconfig/iptables. А управление данным файлом лежит на демоне iptables.

Как еще один вариант сохранения правил, можно рассмотреть использование параметра up в файле /etc/network/interfaces с аргументом в виде файла, хранящего команды iptables, задающие необходимые правила.

Итог

На сегодня будет достаточно. Более сложные реализации межсетевого экрана я обязательно будут публиковаться в следующих статьях.

С Уважением, !

Другие материалы в категории netfilter/iptables

  • iptables в простейших примерах
  • Основные понятия iptables в Linux
Теги: ip, Linux, netfilter, network, UNIX

Как предотвращать DDoS атаки с помощью iptables

Я уверен, что вы все знаете что такое DDoS. Чтобы не допустить этого, воспользуйтесь следующей командой:

iptables -A INPUT -p tcp --dport 80 -m limit --limit 20/minute --limit-burst 100 -j ACCEPT 

, где

  • --limit 20/minute — максимальная средняя частота положительных результатов. После числа можно указывать единицы: `/second’, `/minute’, `/hour’, `/day’; значение по умолчанию — 3/hour. Лимит настраивайте в зависимости от своих требований.
  • --limit-burst number — ограничивает исходное число пропускаемых пакетов: это число увеличивается на единицу каждый раз когда ограничение на частоту положительных результатов не достигается. Это происходит столько раз, сколько указано в данном параметре. Значение по умолчанию — 5.

Синтаксис и правила iptables в CentOS/Red Hat

Iptables – это утилита, с помощью которой настраиваются правила для файрвола в Linux.

Iptables группирует правила файрвола в таблицах, основные это:

  • Таблица filter – используется для фильтрации трафика, то есть разрешения и запрещения соединений
  • Таблица nat – используется для преобразования адресов (NAT)
  • Таблица mangle – прочие модификации заголовков ip пакетов.

Для начала проверим, что iptables установлен в системе(должен быть умолчанию):

Синтаксис и правила iptables в CentOS/Red Hat

Вывод команды показывает, что текущая установленная версия iptables –

Работа с iptables в командной строке требует root привилегий, поэтому далее будем работать под пользователем root.

Чтобы вывести текущие правила, выполним команду:

iptables [-t таблица] -L [цепочка] [параметры]

Например, результат команды iptables -L, когда в таблицах еще не создано правил:

Рассмотрим вывод команды подробнее.

Таблица filter содержит три типа правил, так называемые chain (цепочки):

Синтаксис и правила iptables в CentOS/Red Hat
  • INPUT – в этой цепочке обрабатываются входящие ip пакеты, предназначенные для самого хоста;
  • OUTPUT – в этой цепочке обрабатываются исходящие ip пакеты от самого хоста;
  • FORWARD – эта цепочка нужна для перенаправления ip пакетов. Используется, если вы хотите использовать сервер, как маршрутизатор.

Напротив каждой цепочки указана политика по умолчанию (policy), которая определяет, что нужно делать, в случае, если соединение не попало ни в одно из правил. Политика по умолчанию может принимать два значения и определяет сам подход к организации файрвола:

  • ACCEPT – по умолчанию все соединения разрешены, правилами блокируются нежелательные соединения;
  • DROP – по умолчанию все соединения запрещены, правилами разрешаются нужные соединения.
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Понравилась статья? Поделиться с друзьями:
Adblock
detector