Установка шлюза FreeBSD 11.0 Release

Записи по установке и настройке шлюза. Элементарные вещи не указываю, которые по умолчанию, остановлюсь, только на тех вещах, которые нужно поменять или настроить.

Скачиваем, записываем, вставляем дистрибутив, дальше стандартная установка, много где описана с картинками, останавливаться не буду. На первом этапе выбираем кодировку (Russian KOI-8 R)  и присваиваем имя шлюзу.

Так как у нас несколько филиалов, то присваиваю имя gw[name].<city>.local

где city — месторасположение, например город или город и улица и т.д. на ваше усмотрение.

Далее выбираем нужные компоненты, рекомендую кроме основных doc, ports, src.

Задаем пароль для root. Настраиваем сетевой интерфейс. В моем случае fxp0. Отказываемся от DHCP присваиваем статический адрес, например 192.168.141.254, маску 255.255.255.0 и шлюз 192.168.141.254. Пока для настройки, потом шлюз поменям поставим, которые уже будут нужны. Все элементарно меняется через файл /etc/rc.conf

IPv6 не настраиваем, отказываемся. Настраиваем DNS сервера.

Заводим пользователя user, назначаем ему группу wheel, для того, чтобы потом можно было зайти через ssh и через su заходить на сервер.

В принципе, пока все перезагружаемся и смотрим на свежеустановленную FreeBSD 11.0 :-)

Дальше обновляем порты:

# portsnap fetch extract
# cd /usr/ports/ports-mgmt/portmaster && make install clean

Для того, чтобы сервер NTP запускался при загрузке, добавьте строку ntpd_enable="YES" в файл /etc/rc.conf.

#service ntpd start

через некоторое время

# sockstat | grep 123
root ntpd 2145 20 udp6 *:123 *:*
root ntpd 2145 21 udp4 *:123 *:*
root ntpd 2145 22 udp4 192.168.141.254:123 *:*
root ntpd 2145 23 udp6 ::1:123 *:*
root ntpd 2145 24 udp6 fe80::1%lo0:123 *:*
root ntpd 2145 25 udp4 127.0.0.1:123 *:*
# ntpdate -q 192.168.141.254
server 192.168.141.254, stratum 2, offset 0.000003, delay 0.02568
 9 Nov 22:21:33 ntpdate[54330]: adjust time server 192.168.141.254 offset 0.000003 se

Все заработало!

portmaster /usr/ports/security/openvpn
portmaster /usr/ports/net-mgmt/iftop
portmaster /usr/ports/sysutils/webmin
portmaster /usr/ports/www/squid

ee /etc/sysctl.conf
net.inet.ip.fw.one_pass=0 #posle obrabotki kanala paket povtorno vvoditsya po sl
net.inet.ip.fw.verbose_limit=5 #vkluchet podrobnyie soobsheniya

На всякий решил из портов поставить bind и dhcpd, передумал решил поюзать Unbound
# portmaster /usr/ports/dns/bind99
rndc-confgen -a
portmaster /usr/ports/net/isc-dhcp43-server/

Unbound Сайт проекта https://www.unbound.net/

Настройка Unbound http://muff.kiev.ua/content/unbound-nastroika-keshiruyushchego-dns-servera

Сюда /etc/rc.conf добавляем:

local_unbound_enable="YES"
drill -S FreeBSD.org @192.168.141.254

Запускаем первый раз

service local_unbound onestart

Это будет заботиться о обновлении , /etc/resolv.conf
так что запросы для DNSSEC защищенных доменов теперь будут работать.
Например, выполните следующие действия для проверки достоверности FreeBSD.org DNSSEC
доверия дерево:

% drill -S FreeBSD.org
;; Number of trusted keys: 1
;; Chasing: freebsd.org. A

DNSSEC Trust tree:
freebsd.org. (A)
|---freebsd.org. (DNSKEY keytag: 36786 alg: 8 flags: 256)
    |---freebsd.org. (DNSKEY keytag: 32659 alg: 8 flags: 257)
    |---freebsd.org. (DS keytag: 32659 digest type: 2)
        |---org. (DNSKEY keytag: 49587 alg: 7 flags: 256)
            |---org. (DNSKEY keytag: 9795 alg: 7 flags: 257)
            |---org. (DNSKEY keytag: 21366 alg: 7 flags: 257)
            |---org. (DS keytag: 21366 digest type: 1)
            |   |---. (DNSKEY keytag: 40926 alg: 8 flags: 256)
            |       |---. (DNSKEY keytag: 19036 alg: 8 flags: 257)
            |---org. (DS keytag: 21366 digest type: 2)
                |---. (DNSKEY keytag: 40926 alg: 8 flags: 256)
                    |---. (DNSKEY keytag: 19036 alg: 8 flags: 257)
;; Chase successful
28.7.2. DNS Server Configuration in FreeBSD 10.0 and Later

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-dns.html

DNS сервер BIND, который шел по-умолчанию в FreeBSD c 10-й версии заменили на кеширующий DNS сервер Unbound.

Как правило, на сервере не нужно создавать свои зоны DNS и быстрого кэширующего сервера вполне достаточно, даже лучше (меньше и проще настройки).

Достоинства Unbound?

  • Unbound распространяется под лицензией BSD, имеет модульную структуру и поддерживает работу резолвера в рекурсивном и кэширующем режиме.
  • Во время работы сервера, кэш целиком располагается в памяти.
  • Есть возможность проверки валидности DNSSEC-сигнатур, асинхронных запросов и библиотеки для интеграции кода резолвера.
  • Прототип сервера был написан на Java, одна для увеличения производительности был переписан на Си.
  • Отличие от BIND — маленький размер и большая скорость работы.

Настраиваем кеширующий DNS сервер Unbound на FreeBSD

Редактируем файл конфигурации unbound.conf

ee /var/unbound/unbound.conf
 
server:
# Уровень логирования - 0 (только ошибки)
verbosity: 0
# Порт, на котором слушаем запросы
port: 53
# Описываем интерфейсы, на которых будем слушать запросы
interface: 127.0.0.1
# Указываем исходящий интерфейс
outgoing-interface: X.X.X.X
#  Указываем сети, чьи запросы будем обрабатывать
#access-control: 10.0.0.0/21 allow
# разрешаем  ip4 tcp/udp и запрещаем поддержку ipv6
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
# От чьего имени работает daemon unbound
username: unbound
# Указываем лог-файл и отключаем использование syslog
logfile: "unbound.log"
use-syslog: no
# Указываем путь к pid-файлу
pidfile: "/var/run/local_unbound.pid"
# "Прячем" версию софта
hide-version: yes

Добавляем строки в rc.conf с указанием запускать Unbound и стартуем его первый раз в ручном режиме командой.

echo '# DNS server' >> /etc/rc.conf ; echo 'local_unbound_enable="YES"' >> /etc/rc.conf ; /etc/rc.d/local_unbound start

Проверяем работоспособность DNS, кстати nslookup уже тоже нет по-умолчанию, вместо него привыкаем использовать drill

drill @127.0.0.1 google.com

Если дрилл ответил нам без ошибок, все в порядке, DNS настроен и работает.

P.S. рестарт unbound
/etc/rc.d/local_unbound restart
или мягкий reload

ps интересные находки:

ARPWatch — следим за новыми устройствами в сети http://muff.kiev.ua/content/arpwatch-sledim-za-novymi-ustroistvami-v-seti

Arping — проверяем доступность хоста по MAC-адресам

Slurm — просмотр нагрузки на сетевых интерфейсах в режиме реального времени http://muff.kiev.ua/content/slurm-prosmotr-nagruzki-na-setevykh-interfeisakh-v-rezhime-realnogo-vremeni

3proxy — быстрый прокси за несколько минут http://muff.kiev.ua/content/3proxy-bystryi-proksi-za-neskolko-minut