Установка и настройка Shorewall - брандмауэра для тех кто не осилил iptables

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

Что такое Shorewall?

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

Двухинтерфейсная конфигурация состоит из машины с двумя портами ethernet, один из которых входит, а другой выходит в локальную сеть.

Установка брандмауэра Shorewall в Linux

Shorewall можно установить с помощью инструментов apt и yum package manager.

sudo apt install shorewall    [On Debian-based Sysems]
sudo yum install shorewall    [On RHEL-based Sysems]

После установки нам нужно его настроить. Для этого необходимо скопировать пример конфигурации из каталога /usr/share/doc/shorewall в каталог Shorewall по умолчанию /etc/shorewall.

sudo cp /usr/share/doc/shorewall/example/two-interfaces/* /etc/shorewall
cd /etc/shorewall

Если мы заглянем в этот каталог, то увидим кучу файлов настройки и конфигурационый файл shorewall.conf файл.

Shorewall рассматривает сеть как группу различных зон, поэтому первый файл, на который мы хотим взглянуть, это файл «/etc/shorewall/zones».

sudo nano /etc/shorewall/zones

Здесь мы видим, что по умолчанию настроены три зоны: fw, net и loc . Важно отметить, что Shorewall рассматривает саму машину с брандмауэром как свою собственную зону и хранит ее в переменной $fw .

Файл «/etc/shorewall/zones» необходим для настройки и не должен требовать пояснений. У вас есть net zone (интерфейс, обращенный к Интернету), loc zone (интерфейс, обращенный к локальной сети) и fw (сам брандмауэр) и все.

Эта настройка дает следующее:

  • Она разрешает все запросы на соединение из loc zone (LAN) в net zone (Internet).
  • Отклоняет все запросы на подключение (игнорирует) из зоны net к firewall и LAN.
  • Отклоняет и регистрирует все остальные запросы.

Бит LOG LEVEL должен быть знаком всем, кто занимался администрированием Apache, MySQL или любых других программ. В данном случае мы указываем Shorewall использовать инфо-уровень протоколирования.

Теперь, когда наши зоны и политика установлены, нам нужно заняться настройкой наших интерфейсов. Для этого нужно отредактировать файл «/etc/shorewall/interfaces».

sudo nano /etc/shorewall/interfaces

Здесь мы установили наш интерфейс, обращенный к Интернету, как eth0 в зону net . На стороне локальной сети мы установили другой интерфейс, eth1, в зону loc . Пожалуйста, настройте этот файл так, чтобы он соответствовал вашей конфигурации.

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

man shorewall-interfaces

Кратко о некоторых из них можно сказать следующее:

  • nosmurfs – фильтрация пакетов с широковещательным адресом в качестве источника.
  • logmartians – регистрация пакетов с невозможным адресом источника.
  • routefilter – фильтрация маршрутов ядра для защиты от спуфинга.

Конечно, теперь, когда наша система заблокирована, нам нужно разрешить определенные соединения, чтобы сделать то, что нам нужно. Вы определяете их в файле правил по адресу «/etc/shorewall/rules».

sudo nano /etc/shorewall/rules

Сначала этот файл выглядит запутанным, в основном потому, что столбцы перекрывают друг друга, но заголовки довольно понятны. Во-первых, у вас есть столбец ACTION, который описывает, что вы хотите выполнить.

Далее у вас есть заголовок SOURCE, где вы определяете зону, из которой исходит пакет. Затем указывается DEST, или назначение, которое представляет собой зону или IP-адрес назначения. Давайте рассмотрим пример.

Предположим, вы хотите запустить SSH-сервер за вашим брандмауэром Shorewall на машине с IP-адресом 192.168.1.25. Вам не только придется открыть порт в файрволе, но и сообщить ему, что любой трафик, поступающий на порт 22, должен направляться на машину по адресу 192.168.1.25.

Это известно как переадресация портов. Это общая функция большинства маршрутизаторов. В «/etc/shorewall/rules» вы можете добавить такую строку:

SSH(DNAT)	net		loc:192.168.1.25

Выше мы определили, что все SSH-пакеты, идущие из сетевой зоны на файровл, должны быть маршрутизированы (DNAT) на порт 22 на машине с адресом 192.168.1.25.

Это называется трансляция сетевых адресов или NAT. «D» просто говорит Shorewall, что это NAT для адреса назначения. Чтобы это работало, у вас должна быть включена поддержка NAT в ядре и добавлены настройки выше.

Зарубин Иван Эксперт по Linux и Windows

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

Вдохновлен www.tecmint.com

Похожие статьи

Комментарии (0)