Установка APF (Advanced Policy Firewall) в Unix/Linux

Это руководство «Установка APF (Advanced Policy Firewall) в Unix/Linux» покажет как можно установить и настроить APF — интерфейс для IPTables(Netfilter) который позволяет легко настроить полнофункциональный межсетевой экран (firewall) для обеспечения серверов подключенных к сети. Я приведу пример установки на сервере с Cpanel, но можно устанавливать и на любой другой сервер.

Техническая сторона APF использует новейшие стабильные особенности из проекта Iptables (Netfilter), чтобы обеспечить очень надежный и мощный брандмауэр. Фильтрация пакетов в APF осуществляется:

  1. Статическая политика на основе правил (не путать с «static firewall»);
  2. Соединение основанные на состоянии политике (policies);
  3. Sanity основанная на состоянии политике (policies).

Статические политика на основе правил, является наиболее традиционным методом межсетевого экрана (фаервола). Это когда брандмауэр имеет неизменный набор инструкций (правил) о том, как трафик должен быть обработан в определенных условиях. Примером статической основе правил политики — когда вы разрешаете (allow)/блокируете (deny) IP адреса к серверу с целевой системой или открываете новый порт в конфигурационном файле conf.apf.

Соединение основанные на состоянии политике, является средством для распознавания «законных» пакетов для различных типов соединений. Только установленные пакеты с соответствием известного подключения будут разрешены в брандмауэре; другие будут отклонены.

Политика на «санитарной основе» (Sanity), является способностью брандмауэра, соответствовать различным схемам движения с известными способами атаки или тщательно отбора трафик, чтобы соответствовать стандартам Интернета. Примером этого может быть случай когда имеются попытки нападения, то APF может просто отбросить данный трафик.

Особенности APF.

  • Детальный и хорошо прокомментированый конфигурационный файл;
  • Гранулированная входящая и исходящая сетевая фильтрация;
  • Идентификатор пользователя (user id) основан на входящей фильтрации сети;
  • Приложение на основе фильтрации сети (network filtering);
  • Имеется доверенные (trust) файлы с правилами с дополнительным расширенным синтаксисом;
  • Глобальная trust система, где правила могут быть загружены с центрального сервера управления;
  • Reactive address blocking (RAB), онлайн-система следующего поколения для предотвращения вторжений;
  • Имеется режим отладки для тестирования новых возможностей и настроек конфигурации;
  • Функция быстрой загрузки, что позволяет загрузить 1000+ правил менее 1 секунды;
  • Входящие и исходящие сетевые интерфейсы могут быть настроены независимо друг от друга;
  • Глобальный tcp/udp порт & icmp фильтрация с несколькими фильтрами (drop, reject, prohibit);
  • Настраиваемые политики для каждого IP в системе с вспомогательными переменными в настройках импорта;
  • Настройка ограничения на пакет, которое предотвращает злоупотребление на наиболее широко злоупотребляемый протокола, такой как ICMP;
  • Настройка PREROUTING и POSTROUTING правил для оптимальной производительности сети;
  • Поддержка dshield.org списка для блокировки сети, проявляющие подозрительной деятельности;
  • Настройка любого количества дополнительных интерфейсов как доверенные или ненадежные;
  • Имеются умные проверки маршрута, чтобы предотвратить ошибки конфигурации;
  • Имеются расширенный пакет проверки целостности, чтобы убедиться что трафик приходит и уходит отвечая самым строгим стандартам;
  • Имеется фильт от атак, таких как фрагментированные UDP, port zero floods (нулевого наводнения), stuffed routing, arp poisoning и многое другое;
  • Предусмотрен настраиваемые опции чтобы задать приоритет для различных типов сетевого трафика;
  • Имеется динамическая конфигурация ваших локальных DNS revolver-ов в брандмауэре;
  • Предусмотрен дополнительный фильтр распространенных p2p приложений;
  • Предусмотрен дополнительный фильтр для private и reserved адресного пространства;
  • Имеется дополнительные неявные блоки для обслуживания ident сервисов;
  • Настраиваемые параметры отслеживания соединения для масштабирования брандмауэра к размеру вашей сети;
  • Настраиваемые  kernel hooks чтобы укрепить систему от syn-flood атак & routing abuses (нарушения маршрутизации);
  • Расширенный контроль сети ( уведомления о перегрузке и контроль переполнения);
  • Имеются вспомогательные цепи для FTP данных и SSH соединений для предотвращения проблем на стороне клиента;
  • Предусмотрен дополнительный фактор, который ограничивает скорость логгирование событий;
  • Логирование подсистем что позволяет логирование информации
  • Имеется комплексное протоколирование (логирование) каждого добавленного правила;
  • Подробный запуск проверки ошибок;
  • Если вы знакомы с Netfilter вы можете создать свои собственные правила в любом из файлов политики;

Установка APF (Advanced Policy Firewall) в Unix/Linux

Для начала, скачаем и распакуем скачанный архив с APF:

Чтобы установить, выполните команду:

Настройка APF (Advanced Policy Firewall) в Unix/Linux

Конфигурационный файл APF находится /etc/apf/conf.apf  по этому, откроем его для редактирования:

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

  • DEVEL_MODE=»1″  — Это «Development mode». Данный параметр устанавливает в крон деактивацию всех правил APF  каждые 5 минут. ВНИМАНИЕ! Не забудьте убрать данный параметр в «0» (я вспомню об этом немного позже).
  • IFACE_IN=»eth0″ и IFACE_OUT=»eth0″ — ненадежные интерфейсы, подключенные к сети.
  • IG_TCP_CPORTS=»20,21,22,25,26,37,43,53,80,110,113,143,443,465,873,993,995,2077,2078,2082,2083,2086,2087,2095,2096,3306″ — Открываем указанные TCP порты на входящее соединение.
  • IG_UDP_CPORTS=»53,6277″ — Открываем указанные UDP на входящее соединение.
  • IG_ICMP_TYPES=»3,5,11,30″ — входящие номера портов ICMP. В этой строке удалены опции «0» и «8» что даст возможность закрыть пинг на сервере. Не есть хорошо если вы используете мониторинг или утилиту пинг для проверки доступности сервера.
  • EG_TCP_CPORTS=»21,25,37,53,80,110,113,443,43,873,953,2089,2703″ — Открываем указанные TCP на исходящее соединение. В этот момент, блокируя определенные услуги, такие как SSH, мы получаем возможность остановить хакеров, которые хотят подключиться к серверу.
  • EG_UDP_CPORTS=»20,21,53,873,953,6277″ — Открываем указанные UDP на исходящее соединение
  • TCP_STOP=»DROP» — Определяет реакцию в случае соединений TCP, которые нарушают правила (ничего не изменял, так и было).
  • UDP_STOP=»DROP» — Определяет реакцию в случае UDP соединений, которые нарушают правила (ничего не изменял, так и было).
  • ALL_STOP=»DROP» — Определяет реакцию на любых других соединений (ничего не изменял, так и было).
    Мы можем послать TCP/IP сброс (RESET), drop пакет, не отвечая (DROP), отклонить его (REJECT) или отправить icmp-host-prohibited ответ (PROHIBIT) в случае UDP.
  • BLK_PRVNET=»1″ — Блокирует все частные IPv4 адреса. Если Ваша машина находится за NAT, то установите данный параметр в «0».

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

Тестирование APF (Advanced Policy Firewall) в Unix/Linux

Keeping in mind the DEVEL_MODE option we start APF like that:

Опции для APF.

Чтобы запустить APF:

Чтобы перезапустить APF:

Чтобы остановить ( stop/flush) APF:

Команда, выведет список всех правил в брандмауэре:

Команда, выведет firewall status log:

или:

Чтобы обновить (refresh) и разрешить (resolve) DNS  имена в доверенных (trust) правилах:

Показать все конфигурационные опции:

или:

Удалить host с [glob]*_hosts.rules и сразу же удалить правило из брандмауэра:

Добавить IP-адрес в White-list APF:

или:

IP_of_host — это IP который хотите добавить в разрешенный список.

Добавить IP-адрес в Deny-list APF:

или:

IP_of_host — это IP который хотите добавить в разрешенный список.

Теперь мы можем проверить наш брандмауэр со сканером портов Nmap или любой другой инструмент. Если вы запустите с каки то проблемами, то вы сможете исправить, т.к в крон установщике будет установлено задание сброса всех правил каждые 5 минут.

После всех тестов, вы можем изменить опцию DEVEL_MODE = «1» в файле конфигурации и поменять на «0» и перезагрузить APF.

Вы можете добавить APF в автозапуск ОС.

Например, для CentOS/Fedora/RedHat выглядит так:

PS: Тестировалось на CentOS 6/7 и Debian 8.

На этом, у меня все и тема «Установка APF (Advanced Policy Firewall) в Unix/Linux» завершена.

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий

Вверх
Перейти к верхней панели