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
Как предотвращать 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 –
Работа с iptables в командной строке требует root привилегий, поэтому далее будем работать под пользователем root.
Чтобы вывести текущие правила, выполним команду:
iptables [-t таблица] -L [цепочка] [параметры]
Например, результат команды iptables -L, когда в таблицах еще не создано правил:
Рассмотрим вывод команды подробнее.
Таблица filter содержит три типа правил, так называемые chain (цепочки):
- INPUT – в этой цепочке обрабатываются входящие ip пакеты, предназначенные для самого хоста;
- OUTPUT – в этой цепочке обрабатываются исходящие ip пакеты от самого хоста;
- FORWARD – эта цепочка нужна для перенаправления ip пакетов. Используется, если вы хотите использовать сервер, как маршрутизатор.
Напротив каждой цепочки указана политика по умолчанию (policy), которая определяет, что нужно делать, в случае, если соединение не попало ни в одно из правил. Политика по умолчанию может принимать два значения и определяет сам подход к организации файрвола:
- ACCEPT – по умолчанию все соединения разрешены, правилами блокируются нежелательные соединения;
- DROP – по умолчанию все соединения запрещены, правилами разрешаются нужные соединения.