Установка Shorewall 4.0 на CentOS 5.1
Введение
Этот учебник проведёт вас через процесс установки Shorewall (Shoreline) 4.0 на CentOS 5.1. Инструкции легко адаптировать для других дистрибутивов Linux. Shorewall — это инструмент высокого уровня для настройки Netfilter (iptables). Вы описываете требования к межсетевому экрану в наборах конфигурационных файлов, а Shorewall переводит их в правила Netfilter через iptables.
Определение: Netfilter — подсистема ядра Linux для фильтрации пакетов; iptables — утилита для управления правилами Netfilter.
Важно: перед установкой Shorewall удалите ipchains, если он установлен на машине, иначе могут возникнуть конфликты с iptables.
Сайт проекта: http://www.shorewall.net/
Требования и рекомендации перед началом
- Доступ root или эквивалент (sudo) на сервере с CentOS 5.1.
- Рабочая сеть и знание имён используемых интерфейсов (eth0, eth1 и т. п.).
- Резервная копия текущих конфигураций iptables и /etc/shorewall (если уже есть).
- По возможности повторите установку в тестовой среде, прежде чем применять на продуктиве.
Совет: если вы управляете сервером в компании, согласуйте изменения с сетевой командой и определите окна для тестирования.
Скачивание Shorewall
Скачайте RPM-пакеты (как в оригинальном примере):
wget http://www.invoca.ch/pub/packages/shorewall/4.0/shorewall-4.0.11/shorewall-4.0.11-2.noarch.rpm
wget http://www.invoca.ch/pub/packages/shorewall/4.0/shorewall-4.0.11/shorewall-perl-4.0.11-2.noarch.rpm
wget http://www.invoca.ch/pub/packages/shorewall/4.0/shorewall-4.0.11/shorewall-shell-4.0.11-2.noarch.rpmПроверяйте раздел загрузок на официальном сайте для новых версий: http://www.shorewall.net/download.htm
Установка Shorewall
Установка выполняется командой rpm:
rpm -ivh shorewall-perl-4.0.11-2.noarch.rpm shorewall-shell-4.0.11-2.noarch.rpm shorewall-4.0.11-2.noarch.rpmОставьте терминал открытым — он понадобится для последующих шагов.
Настройка Shorewall
По умолчанию Shorewall не запускается, пока в конфиге /etc/shorewall/shorewall.conf не будет включён запуск.
Откройте файл:
vim /etc/shorewall/shorewall.confИзмените первую строку:
STARTUP_ENABLED=Noна
STARTUP_ENABLED=YesСохраните и выйдите.
Далее нужно скопировать пример(ы) конфигурации из каталога Samples. В пакете 4.0.11 есть образцы для разных сценариев (one-interfaces, two-interfaces, three-interfaces). Выберите тот, который соответствует вашей сети, и выполните соответствующую команду, например:
cp /usr/share/doc/shorewall-4.0.11/Samples/one-interfaces/{interfaces,policy,masq,routestopped,rules,zones} /etc/shorewall/Или для двух/трёх интерфейсов:
cp /usr/share/doc/shorewall-4.0.11/Samples/two-interfaces/{interfaces,policy,masq,routestopped,rules,zones} /etc/shorewall/cp /usr/share/doc/shorewall-4.0.11/Samples/three-interfaces/{interfaces,policy,masq,routestopped,rules,zones} /etc/shorewall/Теперь в /etc/shorewall/ будут находиться конфигурационные файлы, которые нужно отредактировать под вашу сеть.
Конфигурация zones
Файл /etc/shorewall/zones содержит список зон (ярлыков) для других конфигов.
vim /etc/shorewall/zonesПример (интернет — net, локальная сеть — loc, DMZ — dmz, fw — сам хост):
#ZONE TYPE OPTIONS IN OPTIONS OUT OPTIONS
#
fw firewall
net ipv4
loc ipv4
dmz ipv4
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVEПодписи зон используются в файлах interfaces, policy и rules.
Конфигурация interfaces
Файл /etc/shorewall/interfaces связывает зоны с физическими или виртуальными интерфейсами.
vim /etc/shorewall/interfacesПример:
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect tcpflags,dhcp,routefilter,nosmurfs,logmartians
loc eth1 detect tcpflags,nosmurfs
dmz eth2 detect
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVEПодсказка: используйте “detect” для автоматического определения широковещательного адреса. Проверьте имена интерфейсов командой ifconfig -a или ip addr.
Конфигурация policy
Файл /etc/shorewall/policy задаёт политику по умолчанию, которая применяется, если ни одно правило в rules не подошло.
vim /etc/shorewall/policyПример конфигурации с базовыми политиками (см. ниже в исходном материале). Обычно по умолчанию ставят REJECT или DROP, а потом явно разрешают необходимые сервисы через rules.
Конфигурация rules
Файл /etc/shorewall/rules — наиболее важный: здесь перечислены разрешённые и запрещённые подключения. Новые соединения проходят через набор правил; если ни одно правило не сработало, применяется политика по умолчанию.
vim /etc/shorewall/rulesПример правил (включает DNS, SSH, ping и т. п.). Внимательно читайте комментарии в примерах — они объясняют синтаксис.
Запуск и тестирование
Запустите Shorewall:
service shorewall startПроверьте логи для обнаружения ошибок (в CentOS 5.1 лог обычно в /var/log/messages):
tail -f /var/log/messagesПолезные проверки:
- shorewall check — проверяет конфигурацию перед запуском (если доступна в версии пакета).
- Убедитесь, что iptables не содержит конфликтующих правил:
iptables -L -n -v. - Тестируйте доступность сервисов с контролируемых клиентских машин.
Веб-интерфейс Shorewall
Для графической настройки можно использовать модуль Webmin для Shorewall. Скачайте модуль по ссылке (как в оригинале): http://www.webmin.com/download/modules/shorewall.wbm.gz
Когда настройка может не сработать — частые причины и проверки
- Неправильные имена интерфейсов (eth0 vs. eth1): проверьте
ifconfig -a. - Остаточные правила iptables от другой конфигурации: очистите и проверьте
iptables -F(только после резервной копии и в тестовой среде). - SELinux или другие политики безопасности могут мешать скриптам или логированию — проверьте /var/log/audit/audit.log.
- Неправильные синтаксические записи в файлах shorewall (проверьте shorewall check и логи).
Откат и резервное копирование
Перед изменениями делайте резервную копию текущей конфигурации:
cp -a /etc/shorewall /etc/shorewall.backup-$(date +%F)Чтобы откатиться, восстановите каталог и перезапустите сервис:
rm -rf /etc/shorewall
cp -a /etc/shorewall.backup-YYYY-MM-DD /etc/shorewall
service shorewall restartЗамените YYYY-MM-DD на фактическую дату резервной копии.
Методология внедрения (мини-процесс)
- Подготовка: снимите резервные копии, соберите список портов и сервисов.
- Лабораторное тестирование: настройте Shorewall на тестовом хосте, отработайте правила.
- Проверка: выполните shorewall check и тесты сетевого доступа.
- Развертывание: применяйте изменения в рабочей среде в окне обслуживания.
- Мониторинг: следите за логами и метриками доступности после применения.
Контроль и уровни зрелости конфигурации
- Уровень 1 (Начальный): базовая политика DROP/REJECT, несколько открытых сервисов.
- Уровень 2 (Средний): логирование атак, ограничение SSH по IP, NAT/маскарадинг.
- Уровень 3 (Продвинутый): централизованное управление, автоматическое тестирование правил, IDS/IPS интеграция.
Рекомендации по безопасности
- Делайте принцип минимальных привилегий: откройте только необходимые порты.
- Включайте логирование подозрительных соединений и анализируйте логи.
- Ограничьте доступ по SSH по IP-адресам или используйте ключи и нестандартный порт.
- Применяйте rate limiting для публичных сервисов (в правилах Shorewall есть возможности для ограничения).
Роль‑ориентированные контрольные списки
Системный администратор:
- Сделать резервную копию /etc/shorewall и iptables.
- Убедиться в совпадении имён интерфейсов.
- Прогнать shorewall check и перезапустить сервис.
Сетевой инженер:
- Проверить схемы маршрутизации и NAT.
- Подготовить список публичных/внутренних сервисов.
Инженер по безопасности:
- Определить политику доступа (REJECT/DROP по умолчанию).
- Настроить логирование и оповещения о подозрительной активности.
Краткое руководство по устранению неполадок
- Shorewall не запускается: проверьте /etc/shorewall/shorewall.conf и STARTUP_ENABLED.
- Нет доступа к сервисам: проверьте правила в /etc/shorewall/rules и default policy.
- Не появляются изменения: убедитесь, что вы сохранили файлы и выполнили service shorewall restart.
- Подозрительные логи: выполните детальную проверку с помощью
tail -n 200 /var/log/messagesи фильтров.
Сравнение с альтернативами
- Shorewall дает декларативную модель через файлы конфигурации (удобно для управления), тогда как ручная работа с iptables требует явного перечисления цепочек и правил.
- Для современных систем можно рассмотреть nftables или централизованные решения (Ansible + iptables/nftables) — особенно на новых дистрибутивах.
Совместимость и миграция
CentOS 5.1 и Shorewall 4.0 — устаревшая связка. При планировании долгосрочной эксплуатации рассмотрите обновление ОС до поддерживаемой версии и переход на современные инструменты фильтрации пакетов. При миграции тестируйте правила в тестовой среде и документируйте изменения.
Глоссарий в одну строку
- Netfilter: подсистема ядра для фильтрации пакетов; iptables — утилита для управления Netfilter; DMZ — демилитаризованная зона; FW — сам сервер-файрвол.
Итог
Shorewall упрощает управление сложными наборами правил Netfilter за счёт декларативных конфигурационных файлов. Для безопасного развёртывания:
- Делайте резервные копии и тестируйте вне продакшена.
- Начинайте с жёсткой политики и по мере необходимости открывайте сервисы.
- Логируйте и следите за поведением после внесения изменений.
Важно: учитывайте, что CentOS 5.1 и Shorewall 4.0 — старые версии; по возможности планируйте обновление платформы.
Примечание: модуль Webmin для графической настройки доступен по ссылке http://www.webmin.com/download/modules/shorewall.wbm.gz. Удачи в настройке!
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента