Gazmarket59.ru

Газ Маркет 59
7 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Iptables просмотр счетчика правил

Данная утилита – это надежный межсетевой экран, минимизирующий риск вирусных и хакерских атак. Процесс настройки файрвола происходит через командную строку при помощи установленных команд, которые позволяют юзеру самостоятельно контролировать поступление и отправление трафика. При попытке установки соединений с ПК, утилита обращается к своим правилам и проверяет, пропустить или ограничить соединение. В случае, когда никакого конкретного правила не выставлено, действия проходят по умолчанию.

Файрвол предусмотрен стандартно во всех операционных системах Линукс. Для установки, если его внезапно не оказалось в сборке, или обновления следует применить такую команду:

sudo apt-get install iptables

Альтернативой данной утилите может послужить Firestarter – он имеет графический интерфейс и разработан специально для пользователей, которые испытывают трудности с работой через командную строку.

В случае настроек Iptables по удаленному SSH-соединению, пользователю следует проявлять аккуратность: одно ошибочное правило способно прервать подключение и запретить юзеру доступ к удаленной машине.

Linux: фильтрация, connection trackering и packet flow, statistics: iptables, ipset, ipfw, nftables, bpfilter, firewalld, conntrack, BPF, packetfilter, netstat, iptraf

Фильтрация на базе DPDK
packet flow (pipeline)

Тут только packet flow, подробнее в отдельном разделе.

еще одна вариация

  • Обработка пакета IPTABLES

Самый быстрый фильтр, быстрее может быть потенциально только на базе самой NIC и DPDK. XDP используют cloudflare для защиты от DoS/DDoS и это о многом говорит.

XDP причем более гибкий в сравнении с iptables – там ты можешь написать свою app.

firewalld (firewall-cmd)

Является надстройкой над Iptables. Примеры применения firewall-cmd описаны в статьях по деплою ftp/tftp на базе CentOS7.

nftables

Разработчики Netfilter официально объявили инструментарий iptables устаревшим.

nftables является проектом по замене фреймворков iptables, ip6tables, arptables[en], ebtables в межсетевом экране Netfilter.

И nftables и bpfilter умеют транслировать команды (часть nftables и как понимаю все bpfiler) традиционного синтаксиса iptables в “свои”.

Как я понял nftables в сравнении с iptables:
1) + быстрее за счет уменьшения строк кода + сам код меньше памяти занимает. Это достигается за счет использования ассоциированных масивов (хешей/картежей) в nftables можно создавать правила (например SNAT, DNAT с разных IP на разные IP), аналогичные Iptables, только имеющие значительно меньше строк.

2) + может обновляться без пересборки ядра

Читайте так же:
Плагин для установки счетчика liveinternet

3) + использование netlink вместо системных вызовов (огромный ряд плюсов напр. netlink позволяет поддерживать синхронность, ядро может отдавать данные в приложение без опроса)

EBTABLES

В них можно использовать bridge правила – broute/brouting. Схемы выше.

BPF filters are widely used by the Linux kernel, TCP dump and others. Basically any tcpdump filtering tutorial can be used to define a filter for TRex.

Hardware BPF

BPF в целом очень перспективное направление – оно позволяет сделать фильтрацию по байт коду еще до Kernel без всяких kernel bypass (как в случае DPDK) еще на уровне NIC. Но пока не полноценное – сложные фильтры пока не реализуемы, для загрузки BPF кода на NIC нужна поддержка NIC такого действия.

bpfilter

Является проектом, который должен заменить всех тех же что и nftables, только и сам nftables))))))))

И nftables и bpfilter умеют транслировать команды (часть nftables и как понимаю все bpfiler) традиционного синтаксиса iptables в “свои”.

eBPF (Extended Berkeley Packet Filter)

Сессии

Сессии на порту

iptraf

Утилита старая (судя по about разработка закончиалсь в далеком 2004), но рабочая. Установка ее простейшая.

Утилита собирает сетевую статистику с интерфейсов. Неплохо кастомизируется и легко управляется (pseudo-gui): можно выбрать интерфейс, тип статистики.

Conntrack

Conntrack netfilter — модуль для отслеживания/управления соединениями. Используется при NAT и “улучшенной” пакетной фильтрации.

Conntrackd — демон инструментов netfilter, отслеживающий user-space соединения. Может быть использован в паре с keepalived для создания отказоусточивого кластера шлюзов. Является инструментом из пакета cronntrack-tools.

Пример настроек conntrack для высокопроизводительных серверов с NAT и для минимизации влияния DOS в статье DOS.

IPSET

Используется для блокировки спама/DoS/DDoS в связке с iptables. Еще примеры. Пример блокировки пула (китайские IP).

IPtables

Разработчики Netfilter официально объявили инструментарий iptables устаревшим. См. Nftables/bpfilter. Схемы обработки выше.

IPtables часто работает в связке с fail2ban. Fail2ban автоматически добавляет правила в iptables: после нескольких некорректных авторизаций (bruteforce), после обнаруженной атаки по порогу (syn flood) или других атак (можно самому паттерны создавать). Причем при массовой атаке в iptables может оказаться до нескольких тысяч-десятков тысяч адресов одновременно. На событие добавления блокировки может служить триггером – отправить email/sms/etc.

Команды

iptables –list или –L – смотрим правила iptables. Для просмотра нужны права админа.

Читайте так же:
Лайвинтернет счетчик что показывает

iptables -nvL – смотрим правила по категориям, используя -nat так же смотрим правила prerouting/postrouting.

iptables … –line-numbers – нумеруем правила

iptables … -tee – c помощью IPTABLES можно зеркалировать трафик который идет к хосту, перенаправляя копию пакета к другому хосту используя опцию tee.

nat в IPTABLES

PORT FORWARDING (проброс портов)

Доступ к IP 172.20.1.51 по SSH через подключение к 172.20.1.50:10051: Пробрасываем трафик пришедший на 10051 порт IP 172.20.1.50 на IP 172.20.1.51:22 (SSH default). Для обратного трафика от 172.20.1.51:22 подменяем IP на 172.20.1.50.

Доступ к IP 172.20.1.51 по WEB через подключение к 172.20.1.50:18051: Пробрасываем трафик пришедший на 18051 порт IP 172.20.1.50 на IP 172.20.1.518080 (WEB). Для обратного трафика от 172.20.1.51:8080 подменяем IP на 172.20.1.50.

MASQUERADE

Настройка NAT в iptables простейшая – нужно указать вместо enp0s17 название вашего интерфейса через который выходите в интернет.
Работает и для router on a stick в топологии, когда на NAT роутере всего один интерфейс (и внешний и внутренний).

Смотрим настройки NAT.

Чистим настройки NAT.

Удаляем правило №3 nat postrouting/prerouting.

Смотрим сессии NAT.

MISC USAGE

Удалить все правила.

Разрешить весь входящий трафик

Разрешить весь исходящий трафик

Добавляем входящие правило N 93 c разрешением для определенного TCP порта, определенного хоста.

Запретить трафик еще на уровне prerouting (смотри выше в схемах).

Запретить трафик на порт 80.

Запретить трафик на порт 80 с reject и tcp reset или icmp host uncreachable.

Удаляем входящие правило N 93

Смотрим трафик (gentoo)

Сохранение в постоянные настройки правил iptables.

IPTABLES + SSHD

На примере CentOS 7 ограничиваем доступ к SSH серверу. Не забываем на всякий случай сделать аналогичные настройки в самом демоне ssh – реализуем концепцию defense in depth (даже если по какой-то причине “рухнет” iptables, будет продолжать работать защита на базе application).

Прописываем конкретный хост для доступа по SSH порту

Удаляем стандартный доступ со всех хостов

pfctl

pfctl используется для управления BSD (FreeBSD, OpenBSD) packet filter.

IPFW

IPFW – считается очень хорошим файрволом на FreeBSD – быстрым, удобным, с большим количеством функционала. У мелких провайдеров зачастую используются FreeBSD тачки с BRAS-функционалом (политика разрешения + шейпер) на базе IPFW – например, по IP пользователя узнаем его тариф из базы, на его основе назначаем bandwidth в ACL для трафика с этого IP.

Читайте так же:
Комплект для перекачки топлива со счетчиком

Для установки лучше пересобирать ядро, а не загружать как-то модулем или еще как (через порты). Пример настройки тут.

Один пример (разрешаем конкретные типы ICMP):

Еще пример с bash-логикой (режем bandiwdth по ночам чтобы не качали непонятно кто, непонятно что):

Делаем это с помощью команды:

Правило -s 0/0 разрешает любой IP-адрес источника.

Если вы хотите разрешить определенный IP-адрес, используйте эту команду:

В примере выше, вы разрешаете только IP-адресу 10.10.10.10 подключаться к порту SSH. Остальные IP-адреса не смогут этого сделать.

Если вы хотите заблокировать IP-адрес, измените ACCEPT на DROP таким образом:

Эта команда не разрешит подключаться к порту 22 всем устройствам в сети 10.10.10.0.

Общее представление об iptables. Добавление, удаление, цепочки.

Что это?

iptables — утилита командной строки, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) netfilter для ядер Linux версий 2.4, 2.6, 3.x, 4.x. Для использования утилиты iptables требуются привилегии суперпользователя (root).

Цепочки, схема

Input — обрабатывает входящие пакеты и подключения. Например, если какой-либо внешний пользователь пытается подключиться к вашему компьютеру по ssh или любой веб-сайт отправит вам свой контент по запросу браузера. Все эти пакеты попадут в эту цепочку;
forward — эта цепочка применяется для проходящих соединений. Сюда попадают пакеты, которые отправлены на ваш компьютер, но не предназначены ему, они просто пересылаются по сети к своей цели.
output — эта цепочка используется для исходящих пакетов и соединений. Сюда, например, попадают пакеты, когда вы запускаете браузер и пытаетесь открыть любой сайт.
prerouting — в эту цепочку пакет попадает перед обработкой iptables, система еще не знает куда он будет отправлен, в input, output или forward;
postrouting — сюда попадают все проходящие пакеты, которые уже прошли цепочку forward

Добавление/удаление правил

Действия над пакетами:
ACCEPT — разрешить прохождение пакета дальше по цепочке правил;
DROP — удалить пакет;
REJECT — отклонить пакет, отправителю будет отправлено сообщение, что пакет был отклонен;
LOG — сделать запись о пакете в лог файл;
QUEUE — отправить пакет пользовательскому приложению.

# iptables -t таблица действие цепочка дополнительные_параметры

Опции:
-A — добавить правило в цепочку;
-С — проверить все правила;
-D — удалить правило;
-I — вставить правило с нужным номером;
-L — вывести все правила в текущей цепочке;
-S — вывести все правила;
-F — очистить все правила;
-N — создать цепочку;
-X — удалить цепочку;
-P — установить действие по умолчанию

Читайте так же:
Мтс ноль без границ счетчик минут

Дополнительные опции:
-p — указать протокол, один из tcp, udp, icmp и др.;
-s — указать ip адрес устройства-отправителя пакета;
-d — указать ip адрес получателя;
-i — входной сетевой интерфейс;
-o — исходящий сетевой интерфейс;
-j — выбрать действие, если правило подошло.

Примеры:
Вывод всех правил на экран:

Вывод всех правил на экран c нумерацией строк:

Вывод правил для цепочки INPUT

Блокировка всех входящих пакетов от 10.0.0.1:

Блокировка всех исходящих пакетов от 10.0.0.1:

Блокировка всех входящих соединений от 10.0.0.1 по ssh:

# iptables -A INPUT -p tcp —dport ssh -s 10.0.0.1 -j DROP

Очистить все правила

Очистить все правила в цепочке INPUT:

Удаления правила для всех входящих пакетов от 10.0.0.1:

Добавить правило на 3 место в цепочке INPUT (остальные сдвинутся ниже):

# iptables -I INPUT 3 -p tcp —dport ssh -s 10.0.0.1 -j DROP

Удалить 3 правило в цепочке INPUT:

Сохранение после перезагрузки

и в настройках интефейса прописать

SNAT, DNAT, MASQUERADE

DNAT — от англ. Destination Network Address Translation — Изменение Сетевого Адреса Получателя. DNAT — это изменение адреса назначения в заголовке пакета. Зачастую используется в паре с SNAT. Основное применение — использование единственного реального IP-адреса несколькими компьютерами для выхода в Интернет и предоставления дополнительных сетевых услуг внешним клиентам.
SNAT — от англ. Source Network Address Translation — Изменение Сетевого Адреса Отправителя. SNAT — это изменение исходного адреса в заголовке пакета. Основное применение — использование единственного реального IP-адреса несколькими компьютерами для выхода в Интернет. В натоящее время диапазон реальных IP-адресов, по стандарту IPv4, недостаточно широк, и его не хватает на всех (переход на IPv6 разрешит эту проблему).
Маскировка (MASQUERADE) применяется в тех же целях, что и SNAT, но в отличие от последней, MASQUERADE дает более сильную нагрузку на систему. Происходит это потому, что каждый раз, когда требуется выполнение этого действия — производится запрос IP адреса для указанного в действии сетевого интерфейса, в то время как для SNAT IP адрес указывается непосредственно. Однако, благодаря такому отличию, MASQUERADE может работать в случаях с динамическим IP адресом, т.е. когда вы подключаетесь к Интернет, скажем через PPP, SLIP или DHCP.

Читайте так же:
Mf411dw как сбросить счетчик

Предположим у нас есть сервер с двумя интерфейсами. Один смотрит в Интернет, другой в локальную сеть и не забывает про правила для input и output. Раздадим интернет:
Для начала разрешаем шлюзу передавать транзитный трафик:

Разрешаем проходить трафику из и в локальную сеть,например, 10.1.30.0/24:

# iptables -A FORWARD -s 10.1.30.0/24 -j ACCEPT
# iptables -A FORWARD -d 10.1.30.0/24 -j ACCEPT

Для статического внешнего адреса интерфейса:

# iptables -A POSTROUTING -s 10.0.3.0/24 -o eth1 -j SNAT —to-source внешний_адрес_интерфейса

Для динамического внешнего адреса интерфейса:

# iptables -A POSTROUTING -s 10.0.3.0/24 -o eth1 -j MASQUERADE

DNAT подменяет адрес назначения для входящих пакетов, позволяя «пробрасывать» адреса или отдельные порты внутрь локальной сети. Например:
Для начала разрешаем шлюзу передавать транзитный трафик:

Разрешаем проходить траффику из и в локальную сеть,например, 10.1.30.0/24:

# iptables -A FORWARD -s 10.1.30.0/24 -j ACCEPT
# iptables -A FORWARD -d 10.1.30.0/24 -j ACCEPT

Из внешнего источника по порту 29001 можно получить доступ по ssh к компьютеру во внутренней сети 10.1.30.40:

# iptables -A PREROUTING -s адрес/сеть_внешнего_источника -i eth1 -p tcp -m tcp —dport 29001 -j DNAT —to-destination 10.1.30.40:22

Множественные действия

В iptables у всякого критерия имеет возможность быть лишь только одно воздействие (оно ориентируется опцией -j). Использовать к 1 пакету некоторое количество различных действий возможно лишь только несколькими правилами.
В nftables у одного правила может быть несколько действий. Например, мы можем логировать пакеты из сети 192.0.2.0/24 и сразу блокировать их.

Таблицы netdev

Правила в этих таблицах обозревают полный трафик, когда он заходит из драйвера сетевой карты в сетевой стек ядра,включая кадры ARP. Это разрешает перекрыть пакеты ещё до того, как ядро начнет их обрабатывать. Создатели рекомендуют использовать эти таблицы для правил обороны от DDoS и аналогичного.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector