Защита сети в linux

Как настроить Firewall Iptables для ОС Линукс

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

Что представляет собой Iptables

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

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

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

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

Какие бывают правила

Для легкой работы с файрволом разработана тройка основных правил (команд):

Правило применяется, когда необходимо контролировать входящий трафик. Например, когда юзер подключается к удаленному серверу по протоколу Secure Shell, файрвол начнет сравнивать его айпи с другими айпи из своего списка. В зависимости от результата, то есть от наличия в списке запретов, доступ пользователю будет открыт или закрыт.

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

Правило применяется к исходящим соединениям. Например, юзер хочет проверить пинг к одному из заданных сайтов – утилита вновь сверится со своими правилами из списка и определит, как поступить при пинге веб-сайта: разрешить или запретить.

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

Как определиться с назначением файрвола

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

Читайте также:  Linux просмотр владельца папки

Для начала потребуется понять, какие из настроек межсетевого экрана уже установлены. Для этого применяется команда –L:

Настройки межсетевого экрана

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

Если в процессе эксплуатации Iptables конфигурация была кем-то изменена, значения могут стоять другие. Проверить это можно за пару секунд, достаточно ввести команды:

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

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

Что делать с соединением

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

Accept – разрешение определенного соединения;

Drop – игнорирование запросов (межсетевой экран продолжает свое функционирование, будто никакого запроса не происходило, а запрашивающие ресурсы не узнают об игнорировании);

Reject – блокировка входящего трафика и отправка ответных сообщений с обозначением ошибки (в таком случае запрашивающие ресурсы будут уведомлены о блокировке их трафика).

Пример того, как будет выглядеть ping для

Разрешенного соединения (Accept):

Ping для разрешенного соединения

Проигнорированного трафика (Drop):

Ping для проигнорированного трафика

Отклоненного подключения (Reject):

Ping для отклоненного подключения

Разрешение и блокировка указанных соединений Iptables

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

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

В случае, когда необходимо разместить правила в определенное место (перед каким-то определенным), следует воспользоваться командой:

iptables -I [цепочка] [номер позиции по списку для нового правила]

Что делать с соединениями от одного айпи

Для блокировки трафика, поступающего из одного и того же источника (например, айпи 120.120.120.120) подойдет команда:

Для блокировки трафика, поступающего с нескольких айпишников в определенном диапазоне, следует воспользоваться стандартной записью масок посредством слэша:

Либо записью необходимого диапазона:

Подключения к определенному порту

Следующая команда сделает блокировку соединений типа Secure Shell с хостом 120.120.120.120:

На месте Secure Shell допустимо применение любого протокола. После команды –р указывается тип подключений, в данном случае – TCP. В случае, когда используется другой тип, следует указывать его.

Любому айпишнику будет запрещено подключаться к машине по Secure Shell соединению, если выполнить:

Читайте также:  How remove linux mint

О состояниях соединения

Существует множество протоколов, которым требуется двусторонняя коммуникация. К примеру, пользователю понадобилось поработать с SSH-соединением, ему придется внести правило сразу и в Output, и в Input.

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

Разрешим соединение типа SSH, приходящее через хост 120.120.120.120. Система будет отправлять данные по этому протоколу только, если сессия установлена.

iptables -A INPUT -p tcp —dport ssh -s 120.120.120.120 -m state —state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp —sport 22 -d 120.120.120.120 -m state —state ESTABLISHED -j ACCEPT

Как сохранить изменения в конфигурации файрвола

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

Для Убунту команда выглядит так:

Источник

Защита сетей в Linux

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

Unix-подобные операционные системы с момента их появления были направлены не на домашнее использование на рабочих станциях, как системы Windows, а на решение задач, связанных с сетями, серверами и безопасностью.

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

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

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

Предположим, что внутренняя сеть является обычной корпоративной сетью, то есть имеется почтовый сервер (а значит, и соответствующий трафик должен проходить минимум по двум портам – SMTP и POP3), http, https, ftp, dns. Следует заметить, что многие протоколы работают по зарезервированным портам. Подробный список портов и протоколов можно посмотреть здесь: http://en.wikipedia.org/wiki/List_of_T CP_and_UDP_port_numbers.

Читайте также:  Arch linux android emulator

Принцип работы межсетевого экрана

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

Логирование данных в журнале межсетевого экрана необходимо для определения атак, поиска проблем в правилах, а также для определения необычной активности в вашей сети. Чтобы активировать записи в log-файлы, вам необходимо включить соответствующие правила в конфигурацию вашего межсетевого экрана. Более того, эти правила должны быть заданы ранее всех применяемых завершающих правил (это правила с целью, которая определяет дальнейшую судьбу пакета, такие как ACCEPT, DROP или REJECT).

На примере iptables выделяются три вида таблиц:

  • Mangle – обычно эта цепочка используется для внесения изменений в заголовок пакета, например для изменения битов TOS и пр.;
  • Nat – эта цепочка используется для трансляции сетевых адресов (Destination Network Address Translation). Source Network Address Translation выполняется позднее, в другой цепочке. Любого рода фильтрация в этой цепочке может производиться только в исключительных случаях;
  • Filter – здесь производится фильтрация трафика. Помните, что все входящие пакеты, адресованные вам, проходят через эту цепочку независимо от того, с какого интерфейса они поступили.

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

  • INPUT – для входящих пакетов;
  • FORWARD – для проходящих пакетов через данную машину к другой;
  • OUTPUT – для исходящих пакетов.

Пакет, проходящий через эти цепочки, может быть пропущен (ACCEPT) или отброшен (DROP).

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

Что нам еще может помочь?

Есть большое количество программ, которые помогут вам полностью настроить брандмауэр без необходимости подробного изучения iptables. У тех, кто предпочитает графические оболочки, довольно популярно простое в использовании приложение Firestarter, а также fwbuilder – очень мощный инструмент настройки, который покажется знакомым администраторам, пользовавшимся коммерческими брандмауэрами. Для предпочитающих работу в командной строке и простые текстовые файлы настроек Shorewall – подходящее и мощное решение, которое поможет настроить межсетевой экран любой сложности для любой сети. Если же ваша сеть достаточно простая или у вас вообще нет локальной сети, утилита ipkungfu предоставит вам работающий «из коробки» (без необходимости настройки) брандмауэр, а также даст возможность легко настроить более сложный межсетевой экран с помощью редактирования простых и хорошо документированных файлов настроек. Еще одна интересная программа – fireflier, которая разработана как межсетевой экран для настольного ПК. Она состоит из сервера (fireflier-server) и графического клиента на ваш выбор (GTK или QT). Во время работы она ведет себя похоже на многие интерактивные брандмауэры для Windows.

Опубликовано: Журнал «Information Security/ Информационная безопасность» #6, 2011

Источник

Оцените статью
Adblock
detector