Стандартная установка
Начнем с нуля установку Freebsd 11 на одиночный жесткий диск. Вставляем iso образ в автозагрузку и загружаемся с диска. Нас встречает традиционное окно приветствия с тремя вариантами продолжения:
- Install — начать установку системы.
- Shell — перейти в консоль.
- Live CD — загрузиться в режиме Live CD.
Выбираем установку. На следующем этапе будет предложено выбрать раскладку. Чаще всего достаточно стандартной, так что ничего не меняем, а идем дальше со стандартной раскладкой.
Дальше нужно будет указать имя новой freebsd системы. Назвать можете как угодно, это не принципиально. В случае необходимости, это имя можно будет сменить после установки.
Теперь выбираем компоненты, которые будут установлены. Я обычно ничего не ставлю, кроме lib32. Все, что нужно, можно потом установить последней версии из интернета.
На следующем этапе выбираем разбивку жесткого диска. Можно вручную указать все необходимые разделы, выбрать размер и т.д. Я обычно этого не делаю и все устанавливаю на одном корневом разделе. Давно уже так поступаю на всех системах и не вижу в этом никаких проблем. Наиболее частая рекомендация — вынести в отдельный раздел все логи, чтобы случайно заполнив все свободное место они не повесили сервер. На практике у меня такого ни разу не было, поэтому считаю лишним каждый раз возиться с разделами ради очень условного удобства. Правда есть нюанс — у меня на всех серверах всегда настроен мониторинг свободного места на жестком диске. Так что я успеваю оперативно среагировать на проблемы со свободным местом. Ну и слежу за ротацией логов само собой, не оставляю их расти до больших размеров.
Так что выбираем первый пункт — Auto (UFS). Установку freebsd 11 на zfs мы рассмотрим позже.
Дальше у вас спросят, хотите ли вы занять все свободное место жесткого диска под систему. Если это так, а обычно это так, то соглашайтесь. На следующем этапе указываем таблицу разделов. Я выбираю GPT:
Проверяйте предложенную схему разбивки диска. Если все устраивает, то жмите Finish и согласитесь с применением изменений, начнется установка базовой системы.
Длится она буквально несколько минут. Чистая система ставится очень быстро. По ходу дела будет предложено указать пароль для root. Сделайте это. Далее нужно будет выбрать сетевой интерфейс для настройки.
Если у вас их несколько, то выберите тот, который вы хотите настроить для доступа к сети. После выбора интерфейса нужно будет согласиться с настройкой ip адреса на нем. Дальше я выбираю получить настройки по DHCP. Так проще всего. Если вам нужно вручную указать ip адрес, то откажитесь от dhcp и введите сетевые параметры вручную.
После этого нужно будет указать адрес dns сервера, предварительно отказавшись от ipv6. Если вы получили настройки по dhcp, то адрес уже будет заполнен, нужно будет только подтвердить его. Если настройки вручную указывали, введи сами dns сервер.
Теперь выбираем часовой пояс, дату и время. Ничего сложного нет, скриншоты приводить не буду. Если дата и время указаны верно, то просто выбирайте Skip, если есть расхождения, вручную укажите правильные. Это, кстати, нововведение в 11-й версии. Раньше такого календаря и часов не было.
Установка движется к завершению. Нужно указать, какие службы вы хотите запускать автоматически при загрузке системы. Обязательно укажите sshd, чтобы подключаться к серверу удаленно, еще ntpd не помешает. Остальное на ваше усмотрение, я больше ничего не указываю. dumped стоит по-умолчанию, пусть останется.
На следующем этапе нам предлагается выбрать некоторые параметры безопасности. Я не знаком подробно с этой темой, не разбирался, но по названиям вижу, что вещи весьма полезные. Можно и включить. Тут на ваше усмотрение. Хуже не будет, но и чего-то особенно тоже не ждите. Все эти настройки можно и позже сделать.
На заключительном этапе вам будет предложено добавить пользователей в систему. Если вы этого не сделаете, то не сможете подключиться по ssh к серверу. По-умолчанию в freebsd пользователю root запрещено подключаться по ssh. Это можно исправить только зайдя локально рутом и отредактировав настройки ssh. Так что создайте хотя бы одного пользователя и добавьте его в группу wheel, чтобы можно было подключиться по ssh и сделать su для получения root доступа.
Дальше выбирайте Exit, перезагружайте систему и вынимайте загрузочный диск.
Вы должны загрузиться в свежеустановленной системе Freebsd 11. На этом базовая установка закончена.
Настройка SSH сервера
Перво наперво нужно настроить sshd для удаленного подключения. Если сейчас попробовать подключиться к серверу, то ничего не выйдет. Мы увидим окно приветствия, но залогиниться не получится. Это из-за того, что в системе у нас нет ни одного пользователя, кроме root. А этому пользователю по-умолчанию запрещено подключаться через ssh. Соответственно, у нас два пути, либо разрешить подключаться руту, либо добавить других пользователей. Сделаем и то, и другое. Сначала разрешаем пользователю root подключаться по ssh. Для этого редактируем файл /etc/ssh/sshd_config. Пока у нас голая система, воспользуемся для этого редактором ee. Открываем файл на редактирование:
# ee /etc/ssh/sshd_config
Находим строчку PermitRootLogin, раскомментируем ее и ставим напротив yes. По-умолчанию там стоит no.
Здесь же я рекомендую изменить стандартный порт ssh 22 на что-то более экзотическое. Делается это для того, чтобы роботы, которые постоянно сканируют интернет и пытаются залогиниться на серваки, остались не у дел. На 22 порт постоянно кто-то ломится с несуществующими учетками и подбирает пароли. Все это отражается в логах и может мешать. Сменив порт на нестандартный, мы частично избавляемся от этой проблемы. Ищем строчку со словом Port и меняем значение с 22, например, на 11222.
Сохраняем изменения и выходим из редактора. Теперь нам необходимо перезапустить sshd для принятия изменений. Делаем это командой:
# service sshd restart
Демон sshd перезапустится. Можно пробовать подключаться по ssh, должно получиться зайти под root.
Многие считают небезопасным подключаться удаленно под учетной записью рута. Это вопрос неоднозначный, все зависит от конкретной ситуации. Добавим одного пользователя для удаленного подключения. Воспользуемся командой:
# adduser
Заполняем необходимые данные пользователя. Обязательно в качестве добавочной группы укажите wheel. Если пользователя не добавить в эту группу, то он не сможет зайти потом рутом. После добавления пользователя, подключаемся им по ssh. После логина используем команду:
# su -l
Вводим пароль рута и оказываемся в учетной записи root.
Как подключаться и работать решайте для себя сами.
Базовая настройка pfSense
После входа в веб-интерфейс, система может попросить принять условия — просто нажимаем Accept:
Для удобства поменяем языковые настройки. Переходим в раздел System — General Setup:
В подразделе «Localization» выбираем наш часовой пояс и язык, с которым нам будет удобнее работать:
* в нашем примере выставлено московское время и русский язык интерфейса. Однако, нужно отметить, что для pfSense нет полного перевода и некоторые элементы будут на английском.
Для применения настроен кликаем по Save:
Теперь сменим пароль по умолчанию для учетной записи admin. В верхней части интерфейса мы увидим предупреждение — кликаем по Change the password in the User Manager:
Вводим дважды новый пароль:
Сохраняем настройки:
Сообщение с предупреждением в верхней части экрана должно исчезнуть.
Переходим к настройке Интернет соединения. Кликаем по Интерфейсы — WAN:
В подразделе «Общие настройки» выбираем вариант получения сетевых настроек:
* в нашем примере мы зададим вручную IP-адрес. Если не используется IPv6 — отключаем его (как в данном случае).
Ниже задаем IP-адрес (если мы выбрали вариант получения Статический IPv4):
Указываем маску подсети:
Справа от «IPv4 Шлюз» кликаем по Добавить новый шлюз:
В открывшемся окне добавляем адрес шлюза для доступа к сети Интернет и кликаем Добавить:
Сохраняем настройки:
Если для подключения к панели управления по локальной сети требуется статический маршрут, после применения настроек мы можем потерять управление системой. Необходимо заранее позаботиться о .
Для того, чтобы изменения вступили в силу, необходимо их применить:
Настройка завершена. Можно попробовать прописать наш pfSense в качестве шлюза и проверить доступ к сети Интернет.
В моем случае Интернет не заработал по причине наличия маршрута через локальную сеть. .
Дополнительные материалы по Freebsd
Рекомендую полезные материалы по Freebsd: |
Описание установки Freebsd 11 на одиночный диск, либо на софтовый raid1, сделанный средствами zfs, которые поддерживает стандартный установщик. Базовая настройка Freebsd, которую можно выполнить после установки сервера общего назначения. Представлены некоторые рекомендации по повышению удобства пользования и безопасности. Описание и нюансы обновления системы Freebsd с помощью утилиты freebsd-update. Показано пошагово на конкретном примере обновления. Настройка Freebsd шлюза для обеспечения выхода в интернет. Используется ipfw и ядерный нат, dnsmasq в качестве dhcp и dns сервера. Мониторинг сетевой активности с помощью iftop. Подробная настройка на Freebsd прокси сервера squid + sams2 — панели управления для удобного администрирования. Настройка максимально быстрого web сервера на базе Freebsd и nginx + php-fpm. Существенный прирост производительности по сравнению с классическим apache. Настройка web сервера на Freebsd в связке с apache, nginx, php и mysql. Пошаговая установка и настройка каждого компонента. |
Установка phpmyadmin на виртуальный хост
Остался последний шаг в нашем деле — установка phpmyadmin. В принципе, wordpress можно установить уже сейчас, но без удобного средства работы с mysql как-то неловко. В будущем оно все равно пригодится. Так что ставим из портов:
# cd /usr/ports/databases/phpmyadmin # make install clean
По-умолчанию, phpmyadmin устанавливается в папку /usr/local/www/phpMyAdmin, но так как мы для него создали отдельный виртуальный хост, то переносим все содержимое папки туда:
# mv /usr/local/www/phpMyAdmin/* /web/sites/pma53.websrv.local/www/ # chown -R www:www /web/sites/pma53.websrv.local/www/
Создаем папку для конфига:
# mkdir /web/sites/pma53.websrv.local/www/config # chmod 0750 /web/sites/pma53.websrv.local/www/config && chown www:www /web/sites/pma53.websrv.local/www/config
Дальше идем по адресу http://pma53.websrv.local/setup/ нажимаем «новый сервер» и настраиваем. Не буду подробно на этом останавливаться, там все просто и многократно описано в интернете. Выбираем все значения инсталлятора по умолчанию.
На этом все. Наш web сервер готов. Загружаем скрипты сайта в /web/sites/websrv.local/www и пользуемся.
Настройка ipfw и ядерного nat на Freebsd 10
Для того, чтобы включить firewall и nat на будущем freebsd маршрутизаторе можно просто подгрузить необходимые модули ядра. Так сделать проще всего и быстрее, но есть нюанс. Как только вы загружаете модуль ipfw, вы теряете доступ к серверу. Если вы работаете не за консолью, а скорее всего это так, тем более если у вас вообще нет доступа к консоли сервера, то делать так не рекомендуется по понятным причинам. Поэтому мы поступим по-другому. Добавим необходимые опции в ядро, в том числе и опцию, которая делает по-умолчанию фаервол открытым, соберем новое ядро и установим его. Так мы не потеряем удаленный доступ к серверу.
Перед сборкой ядра обновим исходники системы. Я предпочитаю это делать через svn. Если он у вас не установлен, то установите:
Теперь обновляем исходники:
Копируем стандартное ядро и добавляем туда новые строки:
Собираем и устанавливаем новое ядро:
Добавляем в файл /boot/loader.conf строку:
Добавляем в /etc/rc.conf следующие строки (комментарии уберите):
Идем в указанную папку и создаем там файл для правил ipfw:
Содержание этого конфига приведу в виде ссылки на скачивание уже готового файла с подробными комментариями. Думаю, вы без проблем разберетесь в настройках. Здесь не хочу на этом подробно останавливаться, все же тема настройки ipfw это отдельный разговор, у нас задача настроить роутер. Вот готовый набор правил — rc.firewall. Не забудьте указать свои интерфейсы и ip адреса. Если ошибетесь, потеряете доступ к серверу. Когда все настроите, отключите логирование. Там по-умолчанию стоит запись логов на правила nat и deny all.
Копируем скрипт безопасного редактирования правил и делаем его исполняемым:
Подробно о том, что это за скрипт и как он работает я рассказал в теме по настройке freebsd, ссылку на которую давал в начале. Активируем новые правила запуском скрипта:
Откроется список правил в редакторе по-умолчанию. Там уже будут все правила. Можете еще раз их проверить и если все в порядке, сохраняете файл и выходите из редактора. В консоли вы увидите следующее:
Проверим примененные правила:
Если доступ к роутеру не потеряли, значит все в порядке. Можно перезагрузить сервер и все добавленные параметры в rc.conf активируются. Сделайте это и попробуйте на каком-нибудь компьютере в сети пропинговать адрес в интернете по ip, к примеру 8.8.8.8. Если пинги пройдут, значит все в порядке.
Поле того, как убедитесь, что ipfw настроен корректно, правила применятся и доступ к серверу есть, можете перевести его из открытого режима работы (последнее правило автоматически устанавливается allow all from any to any) в закрытый. Для этого в файл /boot/loader.conf добавьте строку и перезагрузите сервер:
На этом основная настройка шлюза на Freebsd 10 окончена. Клиенты смогут выходить в интернет. Но для удобства необходимо на шлюз установить и настроить dhcp и dns сервер, для обслуживания запросов пользователей. Иначе придется вручную забивать сетевые параметры и использовать сторонний dns сервер.
Настройка ntp для синхронизации времени
Минимально необходимый инструментарий для настройки мы получили, продолжаем работу. Чтобы время на сервере всегда было актуальным, его надо регулярно синхронизировать. Можно пойти двумя путями. Либо запускать через определенные промежутки времени утилиту ntpdate с ключами, либо настроить и запустить службу ntpd, которая будет постоянно работать и синхронизировать время. Более правильный вариант, использовать службу, но он чуть сложнее в настройке. Чтобы синхронизировать время через ntpdate, достаточно просто ввести команду:
# ntpdate -b europe.pool.ntp.org
и время будет синхронизировано. Можно запускать эту команду через cron с определенной периодичностью. Если у вас уже запущена служба ntpd, то ntpdate не сработает, выдаст ошибку:
the NTP socket is in use, exiting
Настроим в таком случае ntpd. Если она у вас уже запущена, то в файле /etc/rc.conf уже есть строчка
ntpd_enable="YES"
если ее нет, добавьте.
Дальше отредактируем файл /etc/ntp.conf В качестве серверов синхронизации укажем:
server 0.pool.ntp.org server 1.pool.ntp.org server 2.pool.ntp.org server 3.pool.ntp.org
и добавим две строчки в конец:
driftfile /var/db/ntpd.drift logfile /var/log/ntpd.log
Сохраняем, перезапускаем ntpd командой:
# killall ntpd && ntpd
Теперь наш сервер будет автоматически синхронизировать свое время.
17.2.3. Хосты с двойным подключением
Есть еще один тип подключения, который мы должны рассмотреть, и это
случай, когда хост находится в двух различных сетях. Технически,
любая машина, работающая как сетевой шлюз (в примере выше
использовалось PPP-соединение), считается хостом с двойным
подключением. Однако этот термин реально используется для описания
машины, находящейся в двух локальных сетях.
В одном случае у машины имеется два адаптера Ethernet, каждый
имеющий адрес в разделенных подсетях. Как альтернативу можно
рассмотреть вариант с одним Ethernet-адаптером и использованием
алиасов в команде ifconfig(8). В первом случае используются два
физически разделённые сети Ethernet, в последнем имеется один
физический сегмент сети, но две логически разделённые подсети.
В любом случае таблицы маршрутизации настраиваются так, что для
каждой подсети эта машина определена как шлюз (входной маршрут) в
другую подсеть. Такая конфигурация, при которой машина выступает в
роли маршрутизатора между двумя подсетями, часто используется, если
нужно реализовать систему безопасности на основе фильтрации пакетов или
функций межсетевого экрана в одном или обоих направлениях.
Возможности pfSense
Из коробки, нам доступны следующие возможности:
- Брандмауэр.
- DNS и DHCP.
- Проброс портов.
- Маршрутизация и NAT.
- Ограничение скорости.
- VPN — IPSEC, L2TP, OpenVPN.
- Аутентификация через LDAP (например, Active Directory) или RADIUS.
Это не совсем все возможности — лишь пример, довольно, часто используемых функций.
Помимо доступных сервисов, мы можем воспользоваться менеджером пакетов (Система — Менеджер пакетов — Доступные пакеты), чтобы расширить возможности pfSense, например, мы можем установить:
- Прокси-сервер, например, SQUID + squidGuard.
- Блокировщики отслеживания и рекламы: pfblockerng.
- Средства мониторинга: zabbix-agent, zabbix-proxy.
И так далее…
Анализ сетевой активности в freebsd с помощью iftop
Иногда хочется посмотреть, что происходит на роутере и кто использует интернет в данный момент. По-умолчанию, в системе нет готового средства для получения этой информации. На помощь нам придет простая программа iftop, которая позволяет в режиме реального времени посмотреть активность на сетевом интерфейсе.
Устанавливаем iftop на настроенный Freebsd шлюз:
Запускаем iftop с указанием интерфейса и отображением используемых портов:
Видим любопытную картину — кто, куда, по какому порту и с какой скоростью лезет.
Я для примера на одном из компьютеров запустил генератор трафика интернета. Он занял почти весь канал и это стало отлично видно на роутере с помощью iftop. Конечно, эта простая утилита не решает всех вопросов по мониторингу сетевой активности, но для представления текущей картины подходит, если вам не нужно что-то большее.
Подготовка сервера к настройке шлюза
Подробно вопрос настройки сервера Freebsd 10 я рассмотрел отдельно. Рекомендую ознакомиться с материалом. Здесь я не буду останавливаться на нюансах, а просто приведу команды, которые нам необходимы, без комментариев и подробных пояснений.
Любую настройку я предпочитаю начинать с обновления системы. Выполним его:
# freebsd-update fetch # freebsd-update install
Теперь установим mc, я привык работать в нем:
# pkg install mc
Включаем синхронизацию времени. Для этого добавляем в /etc/rc.conf
ntpd_enable="YES"
И запускаем демон ntpd:
# service ntpd start
Теперь проверим сетевые настройки. Первый сетевой интерфейс я настроил еще во время установки, поэтому доступ в интернет на сервере уже есть. Вот мой конфиг сети:
hostname="freebsd" ifconfig_hn0="SYNCDHCP" ifconfig_hn1="inet 10.20.30.1 netmask 255.255.255.0" defaultrouter="192.168.1.1"
Не забываем добавить dns сервер в /etc/resolv.conf.
Подготовительный этап завершен. Прежде чем двигаться дальше, я рекомендую проверить все, что было настроено тут, чтобы потом не отвлекаться. Убедитесь, что на самом сервере есть интернет, что он доступен в локальной сети — пингует другие машины и они его. После этого двигайтесь дальше.
Дополнительные материалы по Freebsd
Онлайн курс «DevOps практики и инструменты»
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
Проверьте себя на вступительном тесте и смотрите программу детальнее по .
Рекомендую полезные материалы по Freebsd: |
Описание установки Freebsd 11 на одиночный диск, либо на софтовый raid1, сделанный средствами zfs, которые поддерживает стандартный установщик. Базовая настройка Freebsd, которую можно выполнить после установки сервера общего назначения. Представлены некоторые рекомендации по повышению удобства пользования и безопасности. Описание и нюансы обновления системы Freebsd с помощью утилиты freebsd-update. Показано пошагово на конкретном примере обновления. Настройка Freebsd шлюза для обеспечения выхода в интернет. Используется ipfw и ядерный нат, dnsmasq в качестве dhcp и dns сервера. Мониторинг сетевой активности с помощью iftop. Подробная настройка на Freebsd прокси сервера squid + sams2 — панели управления для удобного администрирования. Настройка максимально быстрого web сервера на базе Freebsd и nginx + php-fpm. Существенный прирост производительности по сравнению с классическим apache. Настройка web сервера на Freebsd в связке с apache, nginx, php и mysql. Пошаговая установка и настройка каждого компонента. |
Задачи
Возьмем офис из прошлой статьи и добавим туда второго провайдера.
- Нужно отправить трафик от одной локальной сети через одного провайдера.
- Вторую локальную сеть — через второго провайдера.
- Так же нужно пробросить веб-порты сервера через обоих провайдеров так, чтобы были доступны оба IP адреса.
В эту схему добавим второй офис, у которого так же 2 провайдера. Между офисами есть 2 туннеля.
- Нужно пустить трафик до второго офиса через ВПН1
- кроме сервера, который должен работать через ВПН2
Решим эти задачи средствами исключительно PF и отдельно — средствами множественных таблиц маршрутизации.
Получается вот такая схема окончательной настройки:
Настройка статического IP-адреса
Сперва выведем информацию об имеющихся сетевых интерфейсах, выполним команду:
1 |
ipa 1lo<LOOPBACK,UP,LOWER_UP>mtu65536qdisc noqueue state UNKNOWN group default qlen1 linkloopback000000000000brd000000000000 inet127.0.0.18scope host lo valid_lft forever preferred_lft forever inet6::1128scope host valid_lft forever preferred_lft forever 2ens32<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdisc pfifo_fast state UP group default qlen1000 linkether005056929588brd ffffffffffff inet10.10.16.28brd10.255.255.255scope global ens32 valid_lft forever preferred_lft forever inet6 fe80::25056fffe92958864scope link valid_lft forever preferred_lft forever |
Для примера, сетевому интерфейсу ens32 назначим статический IP-адрес (10.10.16.22/24).
В конфигурационном файле (/etc/network/interfaces), строку описания сетевого интерфейса (ens32), приводим к виду:
1 |
auto ens32 iface ens32 inet static address10.10.16.22 netmask255.255.255.0 gateway10.10.16.1 dns-nameservers8.8.8.88.8.4.4 |
Пояснения:
auto — запускать интерфейс при загрузке системы;iface — имя интерфейса;address — статический ip-адрес;netmask — маски сети;gateway — шлюз по-умолчанию;dns-nameservers -сервера DNS, разделяются пробелами;
Вместо параметра auto, можно использовать allow-hotplug, если нужно запускать интерфейс как только система обнаружит устройство.
Небольшое дополнение по настройки DNS серверов. При отсутствии пакета resolvconf (отвечающий за автоматическое назначение DNS серверов), настройки DNS будут определяется содержимым файла /etc/resolv.conf, добавим в него параметры DNS:
1 |
domain example.com search example.com nameserver8.8.8.8 nameserver8.8.4.4 |
После внесения изменений перезапускаем сетевые интерфейсы:
1 | etcinit.dnetworking restart |
Хочу обратить внимание, если использовать параметр allow-hotplug, то при перезапуске сервиса сети, сетевой интерфейс не поднимется вплоть до перезагрузки сервера. Потому как этот параметр обозначает, что настройки будут приняты только тогда, когда устройство будет подключено и обнаружено системой, а т.к
перезагрузка сервиса сети никак не связана с отключением устройства, то и настройки к уже обнаруженному устройству не будут применены.
17.2.6. Устранение неполадок
Иногда с распространением маршрута возникают проблемы, и некоторые
сайты не могут к вам подключиться. Наверное, самой полезной командой
для определения точки неверной работы маршрутизации является
traceroute(8). Она также полезна и когда вы сами не можете
подключиться к удаленной машине (то есть команда ping(8) не
срабатывает).
Команда traceroute(8) запускается с именем удаленного хоста, с
которым вы хотите установить соединение, в качестве параметра. Она
показывает промежуточные сетевые шлюзы по пути следования, в конце
концов достигая адрес назначения или прерывая свою работу из-за
отсутствия соединения.
За дополнительной информацией обратитесь к странице Справочника по
traceroute(8).
Заключение
Подведем итог того, что сделали. За короткое время настроили полноценный шлюз (по сути программный роутер) на базе Freebsd 10 для обеспечения выхода в интернет клиентов за сервером. При этом обеспечили автоматическое получение настроек. Даже на скромном виртуальном сервере такой шлюз способен переварить достаточно большой траффик.
Вся настройка занимает буквально 10-15 минут. Основное время уходит на сборку ядра. Чем выше версия Freebsd, тем дольше оно собирается, несмотря на то, что скорости железа существенно возрастают.
Пройдемся по пунктам и разберемся с тем, что конкретно мы сделали:
- Подготовили сервер к настройке шлюза.
- Пересобрали ядро с необходимыми параметрами.
- Настроили ipfw и nat, включили маршрутизацию.
- Установили и настроили dnsmasq для раздачи сетевых настроек по dhcp и dns сервера.
- Установили iftop для простейшего анализа сетевой активности на внешнем интерфейсе.
Этого достаточно для полноценной работы шлюза на Freebsd 10. Если есть необходимость подсчета пользовательского траффика или ограничения доступа к определенным ресурсам, можно настроить прокси сервер squid и sams2 к нему.
источник