Что такое iptables linux

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Погружение в Iptables – теория и настройка

Большой и наглядный материал

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Netfilter является основой для построения Firewall’а в дистрибутивах Linux, но для того, чтобы он заработал в полную силу его нужно настроить. Как раз с помощью iptables мы можем взаимодействовать с хуками Netfilter и создавать правила фильтрации, маршрутизации, изменения и транслирования пакетов. Иногда про Netfilter забывают и называют эту связку просто iptables.

Введение

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Почему же iptables всем так понравился, что его стали включать во все сборки Linux? Всё дело в том, что iptables действительно очень прост в настройке. С помощью него можно решить следующие задачи:

Прежде чем переходить к практике, давайте обратимся к теории и поймём саму логику iptables.

Логика и основные понятия iptables

Правила

Как и все файрволлы, iptables оперирует некими правилами (rules), на основании которых решается судьба пакета, который поступил на интерфейс сетевого устройства (роутера).

Ну допустим у нас есть сетевое устройство с адресом 192.168.1.1, на котором мы настроили iptables таким образом, чтобы запрещать любые ssh (порт 22) соединения на данный адрес. Если есть пакет, который идёт, например, с адреса 192.168.1.15 на адрес 192.168.1.1 и порт 22, то iptables скажет: “Э, нет, брат, тебе сюда нельзя” и выбросит пакет.

Или вообще ничего не скажет и выбросит, но об этом чуть позже 🙂

Каждое правило в iptables состоит из критерия, действия и счётчика

Цепочки

Набор правил формируется в цепочки (chains)

Существуют базовые и пользовательские цепочки.

Существует 5 базовых цепочек и различаются они в зависимости от того, какое назначение имеет пакет. Имена базовых цепочек записываются в верхнем регистре.

В базовых цепочках обязательно устанавливается политика по умолчанию, как правило – принимать (ACCEPT) или сбрасывать (DROP) пакеты. Действует она только в цепочках INPUT, FORWARD и OUTPUT

Таблица

Существует 5 таблиц:

Теперь мы можем представить себе логику iptables в виде следующей схемы:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Действия

Итак, наиболее используемые действия:

Помимо этих четырех, есть ещё масса других действий, которые называются расширенными (extension modules):

Есть действия, которые доступны только в определенной цепочке и таблицах, например, только в табоице nat и цепочках OUTPUT и PREROUTING доступно действие DNAT, которое используется в NAT’ировании и меняет Destination IP пакета. В той же таблице, только в цепочке POSTRUNNING доступно действие SNAT, меняющее Source IP пакета.

Отдельно остановимся на действии MASQUERADE, которое делает то же самое что SNAT, только применяется на выходном интерфейсе, когда IP адрес может меняться, например, когда назначается по DHCP.

Пишем правила

Отлично, теперь давайте приближаться к практике. Как Вы уже поняли, мы будем писать правила, поэтому нам нужно понять, как они строятся.

Итак, допустим у нас есть хост с адресом 192.168.2.17, на 80 (http) порту которого, работает вэб-сервер Apache. Мы заходим на адрес http://192.168.2.17 с хоста с адресом 192.168.2.2 и всё отлично работает:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

А теперь открываем командную строку под root на хосте 192.168.2.17 и пишем:

Попробуем открыть открыть http://192.168.2.17 ещё раз:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Упс, не работает. Давайте теперь разбираться, что мы наделали?

Всё очень просто – данной командой мы:

Таким образом, мы заблокировали все пакеты с адреса 192.168.2.2 на локальный порт 80 и тем самым закрыли доступ к нашему серверу Apache для данного хоста.

Чтобы открыть доступ опять просто поменяем ключ -A в правиле на -D, тем самым мы удалим данное правило из iptables.

Синтаксис iptables

Друзья, на самом деле в iptables очень богатый синтаксис правил. Полный список ключей и параметров вы можете найти в официальном гайде на iptables.org. Мы же приведём самые “ходовые” опции, которыми вы, вероятно, будете пользоваться. Чтобы вы не запутались, мы приводим их в табличках ниже.

Для удобства, в iptables реализовано очень много сокращений для разных ключей. Например, мы писали ключ -A вместо полного —append, -p вместо полного —proto и -s вместо полного —source, дальше мы покажем, что ещё можно сократить и где применить.

Начнём с команд для редактирования правил и цепочек – добавления, удаления, замены и так далее:

Продолжим синтаксисом настройки правил – на каком сетевом интерфейсе следить за пакетами, какой протокол проверять, адрес источника, назначения и так далее.

Теперь рассмотрим опции для действий, которые должны сработать по совпадению критериев:

короткосинтаксис опцииприменение
-j—jump

применяет одно из действий accept, drop, reject и другие
-g—goto

переходит к другой цепочке правил

Теперь рассмотрим какую информацию мы можем вытянуть с помощью iptables и какие опции для этого нужно использовать:

короткосинтаксис командыприменение
-l—list <цепочка>

показывает правила в цепочке или всех цепочках. по умолчанию покажет таблицу filter
-s—list-rules <цепочка>

показывает текст правила в цепочке или всех цепочках
-n—numericпокажет параметры правила в числовом виде. например не порт будет не http, а 80
-v—verboseвыводит более подробную информацию
-v—versionпокажет версию iptables
-x—exactпокажет точные значения числовых параметров
—line-numbersпокажет номера правил

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Пример посложнее

Давайте рассмотрим ещё один пример. Допустим у нас во локальной сети есть хост 192.168.2.19 с сервером Apache. Мы хотим сделать его доступным из Интернета. Для этого нам нужно воспользоваться возможностями таблицы nat и написать правило, которое будет перенаправлять входящий http трафик на внешний интерфейс (пусть будет enp0s3 с адресом 101.12.13.14) и порт 80 на адрес нашего сервера внутри сети и 80 порт – 192.168.2.19:80. По сути – нужно сделать проброс портов.

Напишем такое правило:

Теперь если мы перейдём по адресу http://101.12.13.14, то должны попасть на наш Apache.

Возможности iptables настолько обширны, что мы могли бы начать писать новую Базу знаний по нему. В статье мы показали лишь базовые варианты применения. Это действительно великий инструмент и освоить его не так уж сложно. Надеюсь, данная статья Вам в этом поможет. Спасибо за внимание!

Источник

Настройка iptables для чайников

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

Если для домашних компьютеров это не очень актуально, так как они подключены к сети через роутеры и NAT, которые скрывают их от внешней сети, то для серверов это актуально как никогда. В операционной системе Linux в ядро встроен очень гибкий и надежный фаервол iptables.

Именно с помощью этой программы выполняется защита системы от внешних вторжений, перенаправление портов, а также еще очень много действий с трафиком. Но ее минус в том, что она немного сложна в настройке. В этой статье будет рассмотрена настройка iptables для чайников. Я надеюсь, что после нее вы сможете уверенно пользоваться базовыми возможностями iptables.

Что такое Iptables?

Подсистема iptables и Netfilter уже достаточно давно встроена в ядро Linux. Все сетевые пакеты, которые проходят через компьютер, отправляются компьютером или предназначены компьютеру, ядро направляет через фильтр iptables. Там эти пакеты поддаются проверкам и затем для каждой проверки, если она пройдена выполняется указанное в ней действие. Например, пакет передается дальше ядру для отправки целевой программе, или отбрасывается.

Виды пакетов

Соответственно в фильтре iptables все пакеты делятся на три аналогичные цепочки:

Но если вы думаете что можно просто полностью закрыть цепочку Input для увеличения безопасности, то вы очень сильно ошибаетесь. При работе сети используются обе цепочки input и output. Например, вы пытаетесь выполнить ping, данные отправляются через output, но ответ приходит через input. То же самое происходит при просмотре сайтов и других действиях. А вот цепочка forward может вообще не использоваться если ваш компьютер не является маршрутизатором. Так что настройка iptables должна выполняться очень аккуратно.

Правила и действия

Перед тем как перейти к созданию списка правил iptables нужно рассмотреть как они работают и какие бывают. Для каждого типа пакетов можно установить набор правил, которые по очереди будут проверяться на соответствие с пакетом и если пакет соответствует, то применять к нему указанное в правиле действие. Правила образуют цепочку, поэтому input, output и forward называют цепочками, цепочками правил. Действий может быть несколько:

Правила могут проверять любые соответствия, например, по ip, по порту получателя или отправителя, заголовкам пакета и многому другому. Если пакет не подходит ни одному из правил, то к нему применяется действие по умолчанию, обычно ACCEPT.

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

Но это еще не все. У нас еще есть таблицы iptables, с которыми тоже желательно разобраться.

Таблицы ipatables

Над цепочками правил в iptables есть еще один уровень абстракции, и это таблицы. В системе есть несколько таблиц, и все они имеют стандартный набор цепочек input, forward и output. Таблицы предназначены для выполнения разных действий над пакетами, например для модификации или фильтрации. Сейчас это для вас не так важно и будет достаточно знать что фильтрация пакетов iptables осуществляется в таблице filter. Но мы рассмотрим их все:

С теорией почти все, теперь давайте рассмотрим утилиту командной строки iptables, с помощью которой и выполняется управление системой iptables.

Утилита Iptables

Подсистема iptables и netfilter встроены в ядро, но вот набор утилит для управления всем этим не всегда поставляется вместе с системой. Для установки утилиты в Ubuntu наберите:

sudo apt install iptables

А в дистрибутивах, основанных на Fedora, установка iptables выполняется немного по-другому:

sudo yum install iptables

Когда установка iptables будет завершена, можно переходить к настройке, но давайте сначала рассмотрим синтаксис утилиты. Обычно команда имеет такой общий вид:

Осталось рассмотреть основные действия, которые позволяет выполнить iptables:

Дополнительные опции для правил:

Теперь вы можем перейти рассмотрению примеров того как выполняется настройка iptables.

Примеры настройки Iptables

Мы рассмотрим несколько основных примеров, чтобы вы смогли закрепить все прочитанное выше.

Список правил

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

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

Очистка правил

Вы не можете просто так отключить iptables остановив сервис обновления правил iptables через systemd или даже удалив набор утилит для настройки. Подсистема работает на уровне ядра и не зависит от того, что там у вас установлено. Поэтому если сделаете что-то не так, то нужно будет очистить правила. Для этого выполните:

Или только для определенной цепочки:

Правила по умолчанию

В этом примере мы разрешаем цепочки INPUT и OUTPUT, но запрещаем FORWARD.

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Блокировка пакетов

Для блокировки пакетов мы можем использовать действие DROP, фильтровать пакеты, которые нужно заблокировать мы можем по множеству критериев, например, протоколу, ip адресу, маске сети, порту и многому другому.

Вот так будет выглядеть команда, которая позволяет добавить правило iptables для блокировки всех входящих пакетов от 10.10.10.10:

А теперь исходящие пакеты на этот же адрес:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Блокировка диапазона ip выполняется подобным образом. Для этого нужно использовать маску сети 10.10.10.0/24. Это будут все адреса начиная от 10.10.10.0 до 10.10.10.255:

Или расширенный вариант маски:

Также вы можете заблокировать все входящие соединения ssh:

Как видите, добавить правило iptables очень просто.

Удаление правил

Удаление правил iptables выполняется точно так же, как и создание новых, только вместо опции A нужно использовать опцию D. Сначала смотрим список правил:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Например, вот так можно удалить правило iptables, которое было создано вторым:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Сохранить правила Iptables

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

А в Red Hat или CentOS:

sudo /sbin/service iptables save

Выводы

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

На завершение видео о том, как увеличить безопасность вашего сервера:

Источник

Руководство по Iptables: как это работает (понятное объяснение с примерами)

На следующей диаграмме приведены таблицы с соответствующими цепочками, поддерживаемыми в iptables :

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Порядок прохождения цепочки пакетов в сетевом стеке ядра следующий:

Затем установите пакет iptables-services (в CentOS):

(В Ubuntu вы должны установить iptables с помощью sudo apt-get install iptables ).

Настройка iptables

В системе с конфигурацией брандмауэра по умолчанию вывод будет следующим:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Мы можем быть более конкретными, например, перечислив все правила INPUT для таблицы nat с помощью следующей команды:

Если только -t ( —table не указан) параметр опции Iptables принимает фильтр таблицу по умолчанию.

Когда вы разрабатываете правила брандмауэра с чистого листа, обычно рекомендуются следующие шаги:

Предыдущие команды не выводят никаких результатов, если нет ошибки или вы не вызываете команду iptables с параметром -v ( —verbose ); Например:

Результат выглядит следующим образом:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Далее мы настроим политику брандмауэра по умолчанию.

По умолчанию iptables позволяет всем пакетам проходить через сетевую цепочку (брандмауэр). Конфигурация безопасного брандмауэра должна использовать DROP в качестве цели по умолчанию для соответствующих цепочек:

Параметр опции -P ( —policy ) устанавливает политику для конкретной цепочки (такой как INPUT ) для данной цели (например, DROP ). Цель DROP заставляет систему корректно игнорировать все пакеты.

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

Далее мы настроим правила брандмауэра.

Давайте создадим несколько примеров правил брандмауэра, таких как прием соединений SSH, DNS и HTTPS.

Следующие команды разрешают доступ по SSH из локальной сети ( 192.168.0.0/24 ):

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

Точно так же следующие команды включают HTTPS-трафик:

Чтобы включить DNS-трафик, нам нужно использовать следующие команды:

Результат выглядит следующим образом:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Мы также можем выгрузить текущую конфигурацию в файл (например, iptables.config ) для дальнейшего использования с помощью следующей команды:

Источник

Настройка Iptables для чайников

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Подключение к сети само по себе несет в себе «угрозу», ведь за счет «видимости» хакеры получают возможность просканировать удаленный компьютер на предмет открытых портов, доступных для подключения извне. И наиболее подвержены сетевым опасностям серверы, которые специально и «открывают» для внешних пользователей.

Что такое Iptables?

Операционные системы Linux, на которых чаще всего и функционируют серверы (виртуальные машины), имеют встроенный инструмент защиты – программный фильтр Iptables. Все сетевые пакеты идут через ядро приложения и проходят проверку на безопасность для компьютера. Сценария всего два – или данные передаются дальше на обработку, или полностью блокируются.

Виды пакетов

Информационные пакеты фильтруются исходя из назначения. Под контроль попадают все данные, входящие на сервер, исходящие из него или проходящие через него как маршрутизатор (например, если компьютер используется в качестве прокси). Такой подход создает сплошной защитный экран (файрвол), через который практически нереально проникнуть с вредоносными целями.

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

В реальной работе сервера постоянно формируется минимум два вида пакетов – Input и Output. Ведь на каждый запрос пользователя положено дать ответ: сначала о поступлении данных на сервер, а затем и о результате обработки. Если «принято решение» отказать в доступе, об этом также сообщается на удаленное рабочее место. Иначе запрос зависнет, и пользователь будет видеть пустой экран.

Правила и действия Iptables

На каждый тип пакетов распространяется определенный набор правил, и их следует учитывать при настройке программы Iptables. Большая часть запросов проходит в виде последовательных цепочек в различных комбинациях. Если ошибиться на этом этапе, приложение будет функционировать со сбоями и блокировать «полезные» запросы.

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Правила проверки устанавливаются в зависимости от характера соединения. Возможен мониторинг IP-адреса, порта подключения, отправителя, заголовка. Если пакет не проходит хотя бы по одному критерию, осуществляется действие ACCEPT (сквозное пропускание пакета, который не требуется блокировать файрволом). Фильтрация возможна на двух этапах:

Таблицы Iptables

Существует еще один «уровень» обработки – это таблицы, содержащие правила обработки тех или иных действий над пакетами. Например, фильтрация данных в Iptables осуществляется в таблице filter. К ней придется обращаться чаще всего.

Об основах работы с утилитой Iptables я рассказал, теперь можно приступать к тестовому запуску.

Запуск утилиты Iptables

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

В дистрибутиве, базируемом на ядре Fedora, она выглядит несколько иначе:

Общий синтаксис запуска программы выглядит следующим образом:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linux

Перечень основных действий, для выполнения которых используется Iptables:

В качестве дополнительных параметров используются опции:

Примеры настройки Iptables

Чтобы закрепить навыки настройки Iptables, рекомендуется протестировать утилиту в разных режимах. Например, отобразить список правил, очистить его, установить параметры по умолчанию или удалить их.

Список правил

Просмотр правил Iptables осуществляется командой:

Также есть возможность указать нужную цепочку, например:

Очистка правил

При любых ошибках в работе Iptables, чтобы исключить нарушение функционирования ядра перед другими действиями, требуется очистить правила, «обнулить» вводные данные. Выполняется эта процедура командой:

Если речь идет об определенной цепочке, то она будет выглядеть иначе:

Перечисленные действия выполняются для таблицы filter, которая подключена изначально.

Правила «по умолчанию»

Задаются правила «по умолчанию» вручную. Пример команд:

Здесь мы разрешаем все цепочки INPUT и OUTPUT, запрещаем FORWARD.

Блокировка пакетов

Заблокировать пакеты можно действием DROP. Оно позволяет включать фильтрацию по разным признакам вроде IP-адреса, маске сети, порту и пр.

Блокируются входящие пакеты на IP 20.20.20.20.

Теперь мы заблокировали пакеты, исходящие на IP 20.20.20.20.

Есть возможность указать маску сети, например, 20.20.20.0/255. Тогда правила будут применяться ко всем IP, входящим в указанный диапазон. Если же требуется заблокировать подключение строго по определенному протоколу, вводится команда:

Она блокирует все входящие соединения по SSH.

Удаление правил

При удалении правил в Iptables вводится команда с опцией -D. Но перед этим может понадобиться просмотреть перечень правил:

Что такое iptables linux. Смотреть фото Что такое iptables linux. Смотреть картинку Что такое iptables linux. Картинка про Что такое iptables linux. Фото Что такое iptables linuxПример удаления правила:

Если требуется полное удаление правил, применяется команда:

Сохранение правила Iptables

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

Для операционных систем на ядре Red Hat и CentOS она выглядит иначе:

Ничего сложного в настройке и управлении Iptables нет. Основные функции понятны даже новичкам, поэтому утилита и остается стандартом де-факто для всех систем на базе Linux.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *