Поиск по сайту:

Как изучить конфигурацию брандмауэра Shorewall в Linux


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

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

sudo shorewall check

Shorewall распечатает проверку всех ваших файлов конфигурации и содержащихся в них параметров.

Результат будет выглядеть примерно так.

Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking MAC Filtration -- Phase 1...
Checking /etc/shorewall/rules...
Checking /usr/share/shorewall/action.Invalid for chain %Invalid...
Checking MAC Filtration -- Phase 2...
Applying Policies...
Checking /etc/shorewall/routestopped...
Shorewall configuration verified

Волшебная строка, которую мы ищем, находится внизу: «Конфигурация Shorewall проверена». Если вы получаете какие-либо ошибки, скорее всего, они связаны с отсутствием модулей в конфигурации вашего ядра.

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

Первая и наиболее распространенная ошибка — это ошибка NAT.

Processing /etc/shorewall/shorewall.conf...
Loading Modules...
Checking /etc/shorewall/zones...
Checking /etc/shorewall/interfaces...
Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking /etc/shorewall/masq...
    ERROR: a non-empty masq file requires NAT in your kernel and iptables /etc/shorewall/masq (line 15)

Если вы видите что-то подобное, скорее всего, ваше текущее Ядро не скомпилировано с поддержкой NAT. Это характерно для большинства готовых ядер. Пожалуйста, прочитайте мое руководство «Как скомпилировать ядро Debian», чтобы начать работу.

Другая распространенная ошибка, возникающая при проверке, — это ошибка iptables и регистрации.

shorewall check
Checking...
Processing /etc/shorewall/params...
Processing /etc/shorewall/shorewall.conf
Loading Modules..
   ERROR: Log level INFO requires LOG Target in your kernel and iptables

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

Чтобы установить это, вам необходимо изменить каждый экземпляр «info» на «ULOG» во всех файлах конфигурации в /etc/shorewall. . Следующая команда может сделать это за вас.

cd /etc/shorewall
sudo sed –i ‘s/info/ULOG/g’ *

После этого отредактируйте файл /etc/shorewall/shorewall.conf и установите строку.

LOGFILE=

Туда, где вы хотите хранить журнал. Мой находится в /var/log/shorewall.log.

LOGFILE=/var/log/shorewall.log

Повторное выполнение следующей команды должно подтвердить ваше здоровье.

shorewall check

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

Синтаксис для этого прост.

sudo shorewall save <filename>

Откат осуществляется так же просто:

sudo shorewall restore <filename>

Shorewall также можно запустить и настроить на использование альтернативного каталога конфигурации. Вы можете указать, что это команда запуска, но сначала вам нужно ее проверить.

sudo shorewall check <config-directory>

Если вы просто хотите опробовать конфигурацию и, если она работает, запустить ее, вы можете указать опцию try.

sudo shorewall try <config-directory> [  ]

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

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