Настройка брандмауэра в 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 в ядре и добавлены настройки выше.
Комментарии (0)