К сожалению, в последнее время мне попадалось очень мало хороших и главное доступных статей о ipfw nat который появился, если. Итак, первое, что требуется выполнить при настройке ipfw это команду sudo kenv. Добавляем в конфиг ядра опции для поддержки ipfw и ipfw nat. Подробное руководство по ipfw nat, сложные случаи конфигурации. На поведение механизма nat влияет настройка параметра one. Введение. Будем использовать следующую версию системы для решения нашей задачи по настройке шлюза uname v. Free. BSD 1. 0. 2 RELEASE p. M Sat Dec 2. 6 2. MSK 2. 01. 5 rootfreebsd usrobjusrsrcsysGENERICЕсли вы еще не установили систему, то рекомендую мою статью с подробным описанием установки Freebsd 1. Если вдруг будете устанавливать в качестве виртуальной машины на Hyper V, то у меня есть отдельная заметка на эту тему с описанием поддержки ядром freebsd гипервизора Hyper V. На сервере установлены 2 сетевые карты hn. В нашу задачу по настройке программного freebsd роутера будет входить настройка маршрутизации на сервере, установка и настройка ipfw, включение nat, настройка локального dhcp и dns сервера. Если у вас недостаточно опыта и вы не чувствуете в себе сил разобраться с настройкой шлюза самому с помощью консоли сервера попробуйте дистрибутив на основе centos для организации шлюза и прокси сервера в локальной сети clearos. С его помощью можно через браузер настроить весь необходимый функционал. В отдельной статье я подробно рассказал о настройке и установке clearos. Обзор и сравнение способов настройки NAT на FreeBSD. Если использовать функциональность NAT не планируется, то в этом случае. Это удобно на первых этапах настройки IPFW. Подготовка сервера к настройке шлюза. Подробно вопрос настройки сервера Freebsd 1. Рекомендую ознакомиться с материалом. Здесь я не буду останавливаться на нюансах, а просто приведу команды, которые нам необходимы, без комментариев и подробных пояснений. Любую настройку я предпочитаю начинать с обновления системы. Выполним его freebsd update fetch. Настройка Ipfw Nat Freebsd 10' title='Настройка Ipfw Nat Freebsd 10' />Теперь установим mc, я привык работать в нем pkg install mc. Включаем синхронизацию времени. Для этого добавляем в etcrc. Первый сетевой интерфейс я настроил еще во время установки, поэтому доступ в интернет на сервере уже есть. Вот мой конфиг сети hostname. Прежде чем двигаться дальше, я рекомендую проверить все, что было настроено тут, чтобы потом не отвлекаться. Убедитесь, что на самом сервере есть интернет, что он доступен в локальной сети пингует другие машины и они его. После этого двигайтесь дальше. Так сделать проще всего и быстрее, но есть нюанс. Настройка FreeBSD IPFW kernel NAT 4 Сетевых Интерфейса. Как только вы загружаете модуль ipfw, вы теряете доступ к серверу. Если вы работаете не за консолью, а скорее всего это так, тем более если у вас вообще нет доступа к консоли сервера, то делать так не рекомендуется по понятным причинам. Поэтому мы поступим по другому. Добавим необходимые опции в ядро, в том числе и опцию, которая делает по умолчанию фаервол открытым, соберем новое ядро и установим его. Так мы не потеряем удаленный доступ к серверу. Перед сборкой ядра обновим исходники системы. Я предпочитаю это делать через svn. Jack &Amp; The Beanstalk: / Джек И Бобовое Зернышко. Если он у вас не установлен, то установите pkg install subversion. Теперь обновляем исходники svn checkout https svn. Копируем стандартное ядро и добавляем туда новые строки cp usrsrcsysamd. GENERIC usrsrcsysamd. GATEoptions IPFIREWALL включаем ipfw. IPFIREWALL. Думаю, вы без проблем разберетесь в настройках. Настройка Ipfw Nat Freebsd 10' title='Настройка Ipfw Nat Freebsd 10' />Здесь не хочу на этом подробно останавливаться, все же тема настройки ipfw это отдельный разговор, у нас задача настроить роутер. Вот готовый набор правил rc. Не забудьте указать свои интерфейсы и ip адреса. Если ошибетесь, потеряете доступ к серверу. Когда все настроите, отключите логирование. Там по умолчанию стоит запись логов на правила nat и deny all. Насколько бы вы ни были опытными администраторами, шанс ошибиться есть всегда. Хотя у меня многие вещи доведены до автоматизма и я настраиваю по отработанным шаблонам, все равно иногда возникают ситуации, когда я ошибаюсь и теряю доступ к серверу. Так что в любом случае, при конфигурировании фаервола, убедитесь, что сможете подключиться к серверу и исправить ошибку в случае необходимости. Активируем новые правила запуском скрипта usrlocaletcipfw. Там уже будут все правила. Можете еще раз их проверить и если все в порядке, сохраняете файл и выходите из редактора. В консоли вы увидите следующее Проверим примененные правила ipfw show. Если доступ к роутеру не потеряли, значит все в порядке. Можно перезагрузить сервер и все добавленные параметры в rc. Сделайте это и попробуйте на каком нибудь компьютере в сети пропинговать адрес в интернете по ip, к примеру 8. Если пинги пройдут, значит все в порядке. Поле того, как убедитесь, что ipfw настроен корректно, правила применятся и доступ к серверу есть, можете перевести его из открытого режима работы последнее правило автоматически устанавливается allow all from any to any в закрытый. Для этого в файл bootloader. Клиенты смогут выходить в интернет. Но для удобства необходимо на шлюз установить и настроить dhcp и dns сервер, для обслуживания запросов пользователей. Иначе придется вручную забивать сетевые параметры и использовать сторонний dns сервер. Установка и настройка dnsmasq. Для нашего роутера на freebsd подойдет любой dns и dhcp сервер. Можно использовать традиционные named и dhcp server. Но для простоты и удобства, когда не нужен дополнительный функционал, я предпочитаю использовать простой и быстрый в настройке dnsmasq. Устанавливаем dnsmasq на Freebsd шлюз pkg install dnsmasq. Приводим конфиг к следующему виду mcedit usrlocaletcdnsmasq. Добавляем в etcrc. Настраиваем на клиентах получение настроек по dhcp и проверяем работу интернета. Информацию о выданных leases dhcp сервера dnsmasq можно посмотреть в файле vardbdnsmasq. Анализ сетевой активности в freebsd с помощью iftop. Иногда хочется посмотреть, что происходит на роутере и кто использует интернет в данный момент. По умолчанию, в системе нет готового средства для получения этой информации. На помощь нам придет простая программа iftop, которая позволяет в режиме реального времени посмотреть активность на сетевом интерфейсе. Устанавливаем iftop на настроенный Freebsd шлюз pkg install iftop. Запускаем iftop с указанием интерфейса и отображением используемых портов iftop i hn. PВидим любопытную картину кто, куда, по какому порту и с какой скоростью лезет. Я для примера на одном из компьютеров запустил генератор трафика интернета. Он занял почти весь канал и это стало отлично видно на роутере с помощью iftop. Конечно, эта простая утилита не решает всех вопросов по мониторингу сетевой активности, но для представления текущей картины подходит, если вам не нужно что то большее. Заключение. Подведем итог того, что сделали. За короткое время настроили полноценный шлюз по сути программный роутер на базе Freebsd 1. При этом обеспечили автоматическое получение настроек. Даже на скромном виртуальном сервере такой шлюз способен переварить достаточно большой траффик. Вся настройка занимает буквально 1. Основное время уходит на сборку ядра. Чем выше версия Freebsd, тем дольше оно собирается, несмотря на то, что скорости железа существенно возрастают. Пройдемся по пунктам и разберемся с тем, что конкретно мы сделали Подготовили сервер к настройке шлюза. Пересобрали ядро с необходимыми параметрами. Настроили ipfw и nat, включили маршрутизацию. Установили и настроили dnsmasq для раздачи сетевых настроек по dhcp и dns сервера. Установили iftop для простейшего анализа сетевой активности на внешнем интерфейсе. Этого достаточно для полноценной работы шлюза на Freebsd 1. Если есть необходимость подсчета пользовательского траффика или ограничения доступа к определенным ресурсам, можно настроить прокси сервер squid и sams. Помогла статья Есть возможность отблагодарить автора. Дополнительные материалы по Freebsd. Рекомендую полезные материалы по. Freebsd Установка. Настройка. Обновление. Шлюз. Прокси сервер. Веб сервер NGINXВеб сервер Apache. Описание установки Freebsd 1. Представлены некоторые рекомендации по повышению удобства пользования и безопасности. Показано пошагово на конкретном примере обновления. Используется ipfw и ядерный нат, dnsmasq в качестве dhcp и dns сервера.