Настройка брандмауэра в Linux может быть очень сложной для новичка или для любого пользователя, кто не очень знаком с iptables. К счастью, существует очень простое в использовании решение — Shorewall.
В этой статье, состоящей из нескольких частей, я познакомлю вас с Shorewall и расскажу о некоторых более сложных темах с этой удивительной системой брандмауэра.
Что такое Shorewall?
Shorewall по сути является интерфейсом для iptables, но это интерфейс командной строки, который использует несколько текстовых файлов для своей конфигурации. Хотя это надежная система брандмауэра, которую можно масштабировать в очень больших сетях, обслуживающих многочисленные машины, мы начнем с базовой конфигурации с двумя интерфейсами и лишь потом углубимся в основы.
Конфигурация с двумя интерфейсами состоит из машины с двумя портами Ethernet, один входящий, а другой выходящий — в локальную сеть.
Установка Shorewall в Linux
Shorewall можно установить с помощью инструментов менеджера пакетов apt-get и yum.
В Debian / Ubuntu / Linux Mint
В RHEL / CentOS / Fedora
После установки нам нужно скопировать пример конфигурации из каталога /usr/share/doc/shorewall в каталог по умолчанию Shorewall в /etc/shorewall:
А затем перейдите в /etc/shorewall:
Если мы посмотрим в этот каталог, то увидим кучу файлов и файл shorewall.conf. Shorewall рассматривает сеть как группу различных зон, поэтому первый файл, который мы хотим посмотрим, это файл /etc/shorewall/zone:
Здесь мы видим, что по умолчанию определены три зоны: net, loc и all. Важно отметить, что Shorewall рассматривает сам компьютер брандмауэра как свою собственную зону и сохраняет его в переменной с именем $FW. Вы увидите эту переменную во всех остальных файлах конфигурации.
Файл /etc/shorewall/zone довольно понятен. У вас есть сетевая зона «net» (интерфейс с выходом в Интернет), локальная зона «loc» (интерфейс с выходом в сеть) и all — всё остальное:
Эта настройка влияет на следующее:
- Разрешает все запросы на подключение из локальной зоны (LAN) в сетевую зону (Интернет).
- Отбрасывает все запросы на подключение (игнорирует) из сетевой зоны к брандмауэру и локальной сети.
- Отклоняет и регистрирует все остальные запросы.
Бит LOG LEVEL должен быть знаком любому, кто занимался администрированием с Apache, MySQL или любой другой программой FOSS. В этом случае мы указываем Shorewall использовать информационный уровень ведения журнала.
Если вы хотите, чтобы ваш брандмауэр был доступен для администрирования из вашей локальной сети, вы можете добавить следующие строки в файл «/etc/shorewall/policy»:
Теперь, когда наши зоны и политика установлены, мы должны настроить наши интерфейсы. Сделаем это, редактируя файл /etc/shorewall/interfaces:
Здесь мы установили наш интернет-интерфейс как eth0 для сетевой зоны. На стороне локальной сети мы установили другой интерфейс, eth1. Пожалуйста, настройте этот файл для корректной работы вашей конфигурации.
Различные варианты, которые вы можете разместить для любого из этих интерфейсов, обширны и подробно объяснены на странице руководства:
Ниже приведены некоторые из них:
- nosmurfs — фильтровать пакеты с широковещательным адресом в качестве источника.
- logmartians — регистрировать пакеты с невозможным адресом источника.
- routefilter — фильтрация маршрутов ядра для защиты от спуфинга.
Конечно, теперь, когда наша система защищена брандмауэром, нам понадобятся разрешить некоторые соединения, чтобы можно было выполнить доступ к устройству. Вы определяете их в файле правил в /etc/shorewall/rules:
Этот файл на первый взгляд выглядит запутанным, главным образом потому, что столбцы перекрываются, но заголовки довольно понятны. Во-первых, у вас есть столбец ACTION, который описывает, что вы хотите выполнить.
Затем у вас есть заголовок SOURCE, в котором вы определяете зону, из которой отправляется пакет. Затем у вас есть DEST или пункт назначения, который является зоной или IP-адресом пункта назначения. Давайте используем предоставленный пример.
Предположим, вы хотите запустить SSH-сервер за брандмауэром на компьютере с IP-адресом 192.168.1.25. Вам нужно будет не только открыть порт в брандмауэре, но и указать брандмауэру, что любой трафик, поступающий через порт 22, должен направляться на компьютер по адресу 192.168.1.25.
Это известно как переадресация портов. Это общая функция на большинстве межсетевых экранов/маршрутизаторов. В /etc/shorewall/rules это можно сделать, добавив следующую строку:
Выше мы определили, что любые предназначенные для SSH пакеты, поступающие из сетевой зоны на межсетевой экран, должны маршрутизироваться (DNAT) на порт 22 на компьютере с адресом 192.168.1.25.
Это называется преобразованием сетевых адресов или NAT. Буква «D» просто указывает Shorewall, что это NAT для адреса назначения (destenation). Чтобы это работало, в вашем ядре должна быть включена поддержка NAT.
Полезные ссылки
В следующей статье мы пройдемся по некоторым более сложным темам, основой для них станут знания полученные вами из этой статьи. Как всегда, пожалуйста, взгляните на справочные страницы для более глубокого понимания.
Читайте также: Изучение конфигурации брандмауэра Shorewall и параметров командной строки
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.