Alt linux межсетевой экран

Содержание
  1. iptables
  2. Конфигурирование файрвола при помощи iptables [ править ]
  3. К вопросу об использовании rc.firewall vs «как обычно» [ править ]
  4. Firewall
  5. Firewall [ править ]
  6. Роутер [ править ]
  7. Как настроить Firewall Iptables для ОС Линукс
  8. Что представляет собой Iptables
  9. Какие бывают правила
  10. Как определиться с назначением файрвола
  11. Что делать с соединением
  12. Разрешение и блокировка указанных соединений Iptables
  13. Что делать с соединениями от одного айпи
  14. Подключения к определенному порту
  15. О состояниях соединения
  16. Как сохранить изменения в конфигурации файрвола
  17. Дополнительно
  18. Etcnet Firewall
  19. Содержание
  20. Настройка сетевого экрана в /etc/net [ править ]
  21. Системные таблицы и допустимые системные цепочки [ править ]
  22. Используемые файлы и каталоги [ править ]
  23. Алгоритм работы сетевого экрана [ править ]
  24. Примечания [ править ]
  25. Примеры [ править ]
  26. Утилиты [ править ]
  27. Примеры команд [ править ]
  28. Прочее [ править ]

iptables

Конфигурирование файрвола при помощи iptables [ править ]

К вопросу об использовании rc.firewall vs «как обычно» [ править ]

Конечно нужен. Без него в правилах без поллитра уже через неделю не разберешься. А насчет rc.firewall — надо просто создать такой файл и он при загрузке будет подхватываться.

Бишь создать чем угодно устраивающую конфигурацию в рантайме (то есть когда iptables в ядре настроены любой последовательностью вызовов /sbin/iptables, которая привела к удовлетворительному результату) и записать командой iptables-save. Она попадёт в первый из вышеупомянутых файлов и будет использоваться сервисом iptables при загрузке.

[про rc.firewall] опять же куча всяких древних (и даже не очень, но слаквареобразных) мануалов рекомендует туда пихать развесистые скрипты, в которых единственное осмысленное — это параметризация. Бывают менее тривиальные конфигурации, правда, отнюдь не всегда они нужны.

я пришел к такой схеме:

  • пишем скрипт (очистить_все; установить_нужное).
  • запускаем.
  • если понравилось — service iptables save.
  • скрипт остается лежать в /sbin. процедуру повторить.

смысла в этом целых три:

  • редактируя файрвол, проще работать с макросами : $lan_iface, $lan_ip, $outerface и т. д. если админов более одного и/или сложные правила, то опять же легче разбираться в скрипте с комментариями, чем в голых цепочках.
  • если вдруг что-то начудил до невозможности входа по ssh, можно пнуть ящик, после ребута будет рабочая конфигурация. иначе пришлось бы подключать монитор с клавой.

— Nick S. Grechukh

Кстати, в etcnet начиная с 0.7.9 содержится некоторая поддержка конфигурирования iptables в стиле SysV, поинтерфейсно/таблично.

Источник

Firewall

Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.
Эта статья протухла.
Её нужно существенно доработать или удалить

Firewall [ править ]

Роутер [ править ]

При настройке роутера в режиме моста (когда он будет принимать пакеты, предназначенные другому узлу), нужно включить proxy_arp:

(для всех необходимых интерфейсов)

Это необходимо, если маршрут для сети не задан явно, ведь по IP-адресу MAC-адреса хостов из другого сегмента сети определить невозможно. При включении proxy_arp роутер будет транслировать протокол ARP, отвечая на все запросы ARP who-has на интерфейсе eth1 для хостов в подключенной за ним к eth0 сети и будет форвардить трафик для них, то есть для узла это будет выглядеть как будто в непосредственно подключенному к нему сегменте находятся хосты из обеих сетей (сегментов), поэтому явное прописывание маршрута не потребуется.

Источник

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

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

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

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

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

sudo apt-get install iptables

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

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

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

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

1.Input.

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

2.Forward.

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

Читайте также:  Как удалить оперативную систему windows

3.Output.

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

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

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

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

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

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

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

iptables —policy INPUT ACCEPT iptables —policy OUTPUT ACCEPT iptables —policy FORWARD ACCEPT

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

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

iptables —policy INPUT DROP iptables —policy OUTPUT DROP iptables —policy FORWARD DROP

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

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

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

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

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

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

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

Скриншот №2. Ping для разрешенного соединения

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

Скриншот №3. Ping для проигнорированного трафика

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

Скриншот №4. Ping для отклоненного подключения

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

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

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

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

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

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

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

iptables -A INPUT -s 120.120.120.120 -j DROP

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

iptables -A INPUT -s 120.120.120.0/24 -j DROP

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

iptables -A INPUT -s 120.120.120.0/255.255.255.0 -j DROP

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

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

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

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

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

iptables -A INPUT -p tcp —dport ssh -j DROP

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

Существует множество протоколов, которым требуется двусторонняя коммуникация. К примеру, пользователю понадобилось поработать с 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

Читайте также:  Как исправить ошибки windows виста

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

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

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

Для Red Hat и CentOS:

=/sbin/service iptables save

Дополнительно

Чтобы вывести сконфигурированное ранее правило:

Чтобы просмотреть данные о входящих/исходящих пакетах и трафике, достаточно добавить ключ –v.

Данные об имени хоста, протоколах, сетях появятся в цифровом виде, если дописать в команду –n.

Разом удалить все имеющиеся установленные правила возможно командой:

Источник

Etcnet Firewall

Содержание

Настройка сетевого экрана в /etc/net [ править ]

Начиная с версии 0.7.9 etcnet содержит поддержку управления сетевым экраном ( firewall ). В данный момент поддерживается iptables , ip6tables , ipset и ebtables . Реализация основана на группировке таблиц и цепочек в таблицах. Таблицы могут быть только системные, цепочки же, кроме системных, могут быть заданы пользователем.

Системные таблицы и допустимые системные цепочки [ править ]

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

Таблица Цепочки
filter INPUT FORWARD OUTPUT
nat PREROUTING OUTPUT POSTROUTING
mangle PREROUTING INPUT FORWARD OUTPUT POSTROUTING
raw PREROUTING OUTPUT

Схема прохождения пакетов

Используемые файлы и каталоги [ править ]

/etc/net/ifaces/default/fw/options — файл с настройками сетевого экрана по умолчанию:

  • FW_TYPE — тип сетевого экрана. Здесь можно указать только iptables , другие типы пока не поддерживаются. Обратите внимание на этот параметр, т.к. по умолчанию он не указан в файле настроек.
  • IPTABLES_HUMAN_SYNTAX — включает или отключает использование поддержки «читабельного» синтаксиса правил для iptables (см. ниже). Значение: yes или no
  • IPTABLES_SYSTEM_CHAINS — список системных цепочек в таблицах. Все цепочки, не указанные здесь, будут автоматически создаваться и удаляться. Значение: названия цепочек (все названия чувствительны к регистру!), разделенные пробелом.
  • IPTABLES_INPUT_POLICY — действие по-умолчанию для пакетов, попадающих в системную цепочку INPUT таблицы filter. Значение: одно из ACCEPT , DROP , QUEUE или RETURN
  • IPTABLES_FORWARD_POLICY — действие по-умолчанию для пакетов, попадающих в системную цепочку FORWARD таблицы filter. Значение: одно из ACCEPT , DROP , QUEUE или RETURN
  • IPTABLES_OUTPUT_POLICY — действие по-умолчанию для пакетов, попадающих в системную цепочку OUTPUT таблицы filter. Значение: одно из ACCEPT , DROP , QUEUE или RETURN
  • IPTABLES_RULE_EMBEDDING — способ добавления нового правила в цепочку. Значение: APPEND или INSERT , что означает добавление в конец списка правил или, соответственно, в начало.

/etc/net/ifaces/default/fw/iptables/filter , /etc/net/ifaces/default/fw/iptables/nat , /etc/net/ifaces/default/fw/iptables/mangle — каталоги, соответствующие таблицам iptables. В каталогах создаются файлы, соответствующие необходимым системным или пользовательским цепочкам, в которых уже и прописываются сами правила iptables.

/etc/net/ifaces/default/fw/iptables/loadorder , /etc/net/ifaces/default/fw/tablename/loadorder — если такой файл существует и не пуст, то обработка таблиц и/или цепочек в таблице происходит в том порядке, который указан в файле (по одному значению на строку). Все таблицы и цепочки, которые не указаны, обрабатываться не будут. /etc/net/ifaces/default/fw/iptables/modules — список модулей ядра, которые необходимо загрузить перед запуском сетевого экрана. При остановке эти модули выгружаются. /etc/net/ifaces/default/fw/iptables/syntax — описание замен при использовании «читабельного» синтаксиса правил iptables

Алгоритм работы сетевого экрана [ править ]

  1. При запуске службы network , виртуальный интерфейс default :
    1. Если опция CONFIG_FW (в файле /etc/net/ifaces/default/options ) не установлена в yes , то ничего не делает и происходит выход из процедуры запуска сетевого экрана, иначе переходим к следующему пункту.
    2. Считывается файл настроек /etc/net/ifaces/default/fw/iptables/options .
    3. До настройки любого интерфейса и обработки значений sysctl устанавливаются действия по умолчанию ( policy ) для системных цепочек таблицы filter .
    4. Считывается файл со списком модулей ядра /etc/net/ifaces/default/fw/iptables/modules , и все указанные в нем модули (по одному на строку) загружаются. При отсутствии файла никакие модули не загружаются.
    5. Создаются все пользовательские цепочки во всех таблицах (пользовательскими считаются все цепочки, не указанные в переменной IPTABLES_SYSTEM_CHAINS ).
    6. Считывается файл /etc/net/ifaces/default/fw/iptables/loadorder , и в указанном в нем порядке происходит обработка таблиц iptables . При отсутствии файла обработка происходит в соответствии с сортировкой названий таблиц по имени.
    7. Считывается файл /etc/net/ifaces/default/fw/iptables/tablename/loadorder в каждой обрабатываемой таблице, и происходит обработка и загрузка правил для каждой цепочки в порядке, указанном в файле. При отсутствии файла обработка опять же происходит в соответствии с сортировкой по имени.
    8. Если опция IPTABLES_HUMAN_SYNTAX установлена в yes , то считывается и обрабатывается файл с «синтаксисом» /etc/net/ifaces/default/fw/iptables/syntax .
    9. Файл с правилами обрабатывает построчно (одно правило на строку); если указана опция IPTABLES_HUMAN_SYNTAX , то правило обрабатывается интерпретатором в соответствии с синтаксисом и превращается в реальные опции для команды iptables , после чего запускается iptables с этими параметрами; иначе правило без обработки передается iptables .
  2. При «поднятии» любого интерфейса, кроме default :
    1. Выполняются все подпункты пункта 1, только все файлы и каталоги ищутся в каталоге текущего интерфейса.
  3. При «опускании» любого интерфейса, кроме default :
    1. Все подпункты пункта 1 выполняются в обратном порядке, все правила удаляются из цепочек в обратном порядке, все модули ядра выгружаются в обратном порядке. Все файлы и каталоги ищутся в каталоге текущего интерфейса.
  4. При остановке службы network виртуальный интерфейс default :
    1. Все подпункты пункта 1 выполняются в обратном порядке, все правила из всех цепочек удаляются командой iptables -F , все модули выгружаются в обратном порядке, все пользовательские цепочки удаляются.
    2. Действия по умолчанию ( policy ) для системных цепочек устанавливается в ACCEPT .
Читайте также:  Устранение ошибок жесткого диска windows 10

Примечания [ править ]

  • Правила для iptables можно писать с помощью синтаксиса, подобного синтаксису ipfw и других. Сделано это с помощью простой замены слов на опции iptables . Сами замены описаны в файле /etc/net/ifaces/default/fw/iptables/syntax (там также описано некоторое количество вспомогательных слов, так что правила можно писать практически на английском литературном). Синтаксис правила можно совмещать (то есть использовать и заданный в etcnet синтаксис, и реальные опции команды iptables ).
  • Во всех правилах нельзя использовать названия цепочки и/или таблицы. Они будут добавляться автоматически.
  • В правилах можно использовать любые переменные окружения, выполнять любые команды shell (они должны быть указаны в одну строку). Переменная $NAME содержит имя текущего интерфейса. Переменные $IPV4ADDRESS и $IPV6ADDRESS содержат массив IPV4/IPV6 адресов текущего интерфейса (это обычные bash arrays, можно обращаться к ним по индексу: $ или просто $IPV4ADDRESS для первого значения). Для удобства можно использовать файлы options , в которых прописывать какие-либо переменные, к примеру, адреса gateway, ISP, сетей и т. д.
  • Во всех файлах можно использовать комментарии (строка должна начинаться с символа # ).
  • Нет необходимости копировать все файлы настроек в каталог каждого интерфейса. Сначала будут считаны настройки виртуального интерфейса default , а уже потом у текущего интерфейса, соответственно, можно переопределять только требуемые для настройки параметры.
  • Описания всех правил в настройках виртуального интерфейса default достаточно для поднятия простого сетевого экрана. При наличии же большого количества правил и интерфейсов есть смысл разделить логически все правила по каждому интерфейсу (опять же, не будет нагружаться процессор без необходимости, если интерфейс, к которому относится много правил, сейчас не «поднят»).
  • В начале каждого правила можно указать, что с этим правилом делать. Может быть одно из трёх значений:
    • -A — добавление в конец списка правил (при включенном «читабельном» синтаксисе соответствует команде append ).
    • -I [num] — добавление в начало списка правил; если указан необязательный параметр num , то правило будет вставлено в строку правил с таким номером (будьте внимательны, iptables считает несуществующий номер строки ошибкой и не добавляет правило); (при включенном «читабельном» синтаксисе соответствует команде insert [num] ).
    • -D — удаление правила из списка правил (соответственно, при «остановке» интерфейса правило наоборот будет добавлено); (при включенном «читабельном» синтаксисе соответствует команде delete ).
  • Если никакое действие не указано, то правило добавляются в цепочку в соответствии со значением переменной IPTABLES_RULE_EMBEDDING .
  • Если вы изменяете какое-то правило в конфигурационных файлах при уже загруженных правилах iptables , то для того, чтобы в памяти не остались старые правила, необходимо или выгрузить все правила для текущего интерфейса (если вы настраиваете для конкретного интерфейса, а не для default ) перед изменением файлов или после изменения использовать команду efw default restart (она полностью удалит все правила, однако, пользовательские цепочки других интерфейсов не будут затронуты, и далее загрузить заново правила для нужного или всех интерфейсов.

Примеры [ править ]

Пример настройки сетевого экрана в etcnet (файл — содержание):

Утилиты [ править ]

  • В contrib находятся следующие вспомогательные утилиты:
    • Скрипт efw , который предназначен для ручного управления сетевым экраном и «умеет» следующее:

На данный момент он «умеет» частично «угадывать» интерфейс, таблицу и цепочку (если их не передали в командной строке) и все действия, кроме counters . Так же поддерживается маска all для интерфейсов, таблиц и цепочек.

Примеры команд [ править ]

  • Выгрузить (flush) все правила из всех цепочек всех таблиц, удалить цепочки, заданные пользователем, выгрузить все загруженные модули: efw default stop
  • Выгрузить (путем удаления каждого правила в обратном порядке) все правила из цепочки FORWARD таблицы filter для интерфейса eth0 : efw eth0 unload
  • Загрузить все правила для всех цепочек во всех таблицах всех интерфейсов: efw all all all load
  • Обработать правило и добавить его во все цепочки таблицы filter : efw default filter all rule accept all from any
  • Если вы изменяете какое-либо правило в конфигурационных файлах при уже загруженных правилах iptables , то для того, чтобы в памяти не остались старые правила, необходимо:
    • Вариант 1: Выгрузить все правила для текущего интерфейса (если вы настраиваете для конкретного интерфейса, а не default ) перед изменением файлов;
    • Вариант 2: После изменения использовать команду efw default restart (она полностью удалит все правила, однако, пользовательские цепочки других интерфейсов не будут затронуты), и далее загрузить заново правила для требуемого или всех интерфейсов;

Таким образом, наиболее используемой командой при изменении конфигурации сетевого экрана является:

Прочее [ править ]

Конвертор правил, а точнее, дампа iptables-save (альфа версия и требует пакет? ruby ) в соответствующее расположение правил в etcnet

Данное руководство относится к версии etcnet 0.8.5 и выше.

Источник

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