Tag Archive for 'ipfw'

FreeBSD: Что такое ipfw и зачем его применять?

Что такое ipfw?

ipfw - это фильтр пакетов IP, который используется в FreeBSD. В данный момент ipfw уже вырос из просто фильтра пакетов и превратился в мощный сетевой инструмент для обеспечения безопасности.

Что он умеет делать?

  1. Как уже понятно из названия - фильтровать пакеты - часть пакетов пропускать, часть просто выкидывать.
  2. Фильтровать пакеты на разных уровнях - на канальном и на сетевом.
  3. Перенаправлять пакеты на другие хосты или в процессы, выполняющиеся на хосте (в частности, для NAT, для прозрачного кэширования или для тонкой настройки маршрутизации)
  4. Уничтожать пакеты и генерировать соответстувющий код ответа.
  5. Управлять полосой пропускания и распределением канала между разными запросами.
  6. Вводить ограничения по скорости для отдельных IP/протоколов/сетей.

Логически ipfw состоит из двух больших частей - фильтрация траффика (собственно ipfw) и управление скоростью/приоритетами (dummynet).

Зачем применяется ipfw?

  • Ограждать внутренюю сеть от внешних атак
  • Ограждать сервер от атак снаружи и изнутри
  • Четко контролировать доступ к сетевым ресурсам. Разрешать только санкционированый доступ и запрещать несакнционированый.
  • Предотвращать часть атак класса ‘отказ обслуживания’ (DoS).
  • Служит одним из слоев защиты сервера (защита на сетевом уровне).
  • Логгинг траффика - разрешенных и запрещенных пакетов.
  • Поддерживает трансляцию и преобразование запросов (при помощи посторонних программ)
  • Проверка целостности(состояния) запросов - вам не должны приходить ответы на запросы, которых вы не посылали.

Зачем применяется dummynet?

  • Ограничение скорости по отдельному сервису (скажем, для веб сервера).
  • Ограничение скорости по отдельному IP (не больше 64кбит для одного IP).
  • Ограничение скорость по сети (данному клиенту - не более такой-то полосы пропускания).
  • Эмуляция медленных каналов связи.
  • Эмуляция каналов связи с задержками.
  • Эмуляция каналов связи с потерями пакетов.

Наиболее распространеная ошибка при использовании ipfw!

Та-дамм. Естественно, удаленное администрирование ipfw. Если вы не предусмотрели механизмов автоматического отключения ipfw и загрузили неправильную конфигурацию - все, пишите письма. Только доступ к консоли вас спасет.

Поэтому после одного-двух раз наученые опытом администраторы уже заранее готовятся к сценарию, что они неправильно создали конфигурацию. Даже маленькая опечатка в одну букву может лишить вас … доступа.

Поэтому нужно заранее предусмотреть, чтоб по прошествии какого-то времени восстановились предыдущие правила конфигурации или вообще отключился бы ipfw.

Конечно, можно еще неправильно его сконфигурировать, но это уже совершенно другая история.

Тренинг по ipfw

Все в деталях о ipfw - в тренинге по ipfw/pf/NAT.
Записывайтесь сейчас, 28 апреля цена подымется до 4000 рублей!

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

FreeBSD: Как настроить NAT маршрутизатор?

Запуск NAT во время загрузки

Просто добавьте в /etc/rc.conf следующие строчки:


firewall_enable="YES"
firewall_type="open"
gateway_enable="YES"
natd_enable="YES"
natd_interface="rl0

Вместо rl0 подставьте название интерфейса FreeBSD компьютера, который смотрит в интернет (а не в вашу локальную сеть!).

После этого просто перезагрузите компьютер (можно запустить все сервисы руками, но новичкам легче перезагрузить:). Обязательно имейте доступ к консоли, если у вас что-то вдруг не сработает.

Настройка других компьютеров в сети

На всех оставшихся компьютерах в сети нужно поставить в качестве Default Gateway IP адрес того интерфейса сервера, который смотрит в локальную сеть. В качестве DNS сервера ставьте DNS сервера провайдера.

Проверка работы firewall

ipfw show - найдите строчку приблизительно такого вида

divert natd ip4 from any to any via rl0

И запустите ipfw show пару раз, счетчики количества байт и пакетов в начале строки должны увеличиваться.

Проверка работы natd

Убедитесь, что natd благополучно запустился:

ps -ax | grep natd

должен вам вывести что-то типа

1321  ??  Is     0:10.60 /sbin/natd -n rl0

Это покажет, что процесс natd запустился и выполняется.

Как отлаживать NAT и ipfw - это отдельная история, об этом будет в Курсе по ipfw/pf/NAT через пару дней.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).