2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Роутер на Freebsd 10 для доступа в интернет

Будем использовать следующую версию системы для решения нашей задачи по настройке шлюза:

Если вы еще не установили систему, то рекомендую мою статью с подробным описанием установки Freebsd 10 с видео в конце. Если вдруг будете устанавливать в качестве виртуальной машины на Hyper-V, то у меня есть отдельная заметка на эту тему с описанием поддержки ядром freebsd гипервизора Hyper-V.

На сервере установлены 2 сетевые карты:

  • hn0 — внешний интерфейс, получает интернет от провайдера, настройки по dhcp
  • hn1 — локальная сеть, адрес 10.20.30.1, установлен вручную

В нашу задачу по настройке программного freebsd роутера будет входить настройка маршрутизации на сервере, установка и настройка ipfw, включение nat, настройка локального dhcp и dns сервера.

Если у вас недостаточно опыта и вы не чувствуете в себе сил разобраться с настройкой шлюза самому с помощью консоли сервера — попробуйте дистрибутив на основе centos для организации шлюза и прокси сервера в локальной сети — clearos. С его помощью можно через браузер настроить весь необходимый функционал. В отдельной статье я подробно рассказал о настройке и установке clearos.

Иногда хочется посмотреть, что происходит на роутере и кто использует интернет в данный момент. По-умолчанию, в системе нет готового средства для получения этой информации. На помощь нам придет простая программа iftop, которая позволяет в режиме реального времени посмотреть активность на сетевом интерфейсе.

Устанавливаем iftop на настроенный Freebsd шлюз:

# pkg install iftop

Запускаем iftop с указанием интерфейса и отображением используемых портов:

Видим любопытную картину — кто, куда, по какому порту и с какой скоростью лезет.

Я для примера на одном из компьютеров запустил генератор трафика интернета. Он занял почти весь канал и это стало отлично видно на роутере с помощью iftop. Конечно, эта простая утилита не решает всех вопросов по мониторингу сетевой активности, но для представления текущей картины подходит, если вам не нужно что-то большее.

Читать еще:  Официальный трейлер-анонс CIVILIZATION VI

Мониторинг сети с помощью iptraf

iptraf — это одна из самых лучших программ для мониторинга сети в Linux. Она предоставляет очень удобный интерактивный интерфейс, с помощью которого можно наглядно увидеть всю необходимую информацию, причем достаточно подробно. Утилита не поставляется по умолчанию, но она достаточно популярна, поэтому вы можете установить ее из официальных репозиториев. Для этого в Ubuntu выполните команду:

sudo apt install iptraf

А в CentOS / Red Hat выполните:

sudo yum install iptraf

После установки утилиты для ее запуска просто наберите в терминале iptraf:

Перед вами откроется интерактивный интерфейс на основе Ncurses, в котором необходимо выбрать нужное действие. Здесь доступны монитор пропускной способности сети, статистика по интерфейсу, статистика по сбоям и монитор локальной сети.

Обратите внимание на нижнюю часть окна, там отображается описание выбранного действия, а также находятся подсказки по горячим клавишам.

Например, для просмотра сетевых соединений и статистики трафика для каждого из них выберите «IP traffic moitor». Затем вам будет необходимо выбрать сетевой интерфейс, например, enp2s0:

Дальше вы увидите все IP адреса, с которыми сейчас выполняется взаимодействие. Здесь можно увидеть направление отправки пакетов, количество пакетов и общий объем переданных или полученных данных в байтах.

С помощью других пунктов меню можно посмотреть статистику по интерфейсу или статистику по работе локальной сети. Утилита даже может работать в неразборчивом режиме, чтобы собирать максимум данных про локальную сеть.

Также поддерживаются фильтры, которые позволяют отфильтровывать информацию только по определенному критерию. Например, чтобы создать фильтр откройте меню «Filters», затем выберите «IP. «, а дальше «Apply new filter»:

Затем нужно указать имя фильтра:

На следующем этапе вы можете расписать нужные параметры фильтрации:

Чтобы применить фильтр нужно выбрать «Apply filter» и выбрать имя фильтра из списка:

Читать еще:  Адрес для впн подключения. Создание и настройка VPN соединения для Windows. Как настроить vpn подключение в Win XP

Теперь в любом пункте статистики будет отображаться только та информация, которая подходит под созданный фильтр.

Мониторинг трафика Linux чаще всего выполняется администраторами именно с помощью этой утилиты. Видео про использование утилиты:

Установка и настройка dnsmasq

Для нашего роутера на freebsd подойдет любой dns и dhcp сервер. Можно использовать традиционные named и dhcp-server. Но для простоты и удобства, когда не нужен дополнительный функционал, я предпочитаю использовать простой и быстрый в настройке dnsmasq.

Устанавливаем dnsmasq на Freebsd шлюз:

Приводим конфиг к следующему виду:

Добавляем в /etc/rc.conf:

Все, теперь наш шлюз полностью готов. Настраиваем на клиентах получение настроек по dhcp и проверяем работу интернета.

Информацию о выданных leases dhcp сервера dnsmasq можно посмотреть в файле /var/db/dnsmasq.leases.

2: Пользовательская настройка ядра

Теперь можно приступать к настройке ядра системы.

Согласно конвенции об именах конфигурационных файлов ядра, имя ядра должно записываться в верхнем регистре. В данном руководстве этот файл будет называться EXAMPLE. Настройки ядра хранятся в каталоге /usr/src/sys/architecture/conf; допустим, используется архитектура AMD64.

Откройте конфигурационный каталог:

Создайте файл EXAMPLE и откройте его для редактирования в любом текстовом редакторе (в данном случае используется ее):

Ядро GENERIC поддерживает огромное количество различной аппаратуры; ядро EXAMPLE поддерживает только оборудование, необходимое для запуска сервера, все стандартные и ненужные устройства удалены. Также EXAMPLE поддерживает фаервол для фильтрации пакетов (pf), шейпинг трафика (altq), шифрование файловой системы (geom_eli) и безопасность IP (IPsec).

Примечание : Подробнее об опциях можно прочесть в документации FreeBSD . Попробуйте самостоятельно написать код для ядра.

Заключение

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

Вся настройка занимает буквально 10-15 минут. Основное время уходит на сборку ядра. Чем выше версия Freebsd, тем дольше оно собирается, несмотря на то, что скорости железа существенно возрастают.

Читать еще:  Вирус Мигающий CapsLock

Пройдемся по пунктам и разберемся с тем, что конкретно мы сделали:

  1. Подготовили сервер к настройке шлюза.
  2. Пересобрали ядро с необходимыми параметрами.
  3. Настроили ipfw и nat, включили маршрутизацию.
  4. Установили и настроили dnsmasq для раздачи сетевых настроек по dhcp и dns сервера.
  5. Установили iftop для простейшего анализа сетевой активности на внешнем интерфейсе.

Этого достаточно для полноценной работы шлюза на Freebsd 10. Если есть необходимость подсчета пользовательского траффика или ограничения доступа к определенным ресурсам, можно настроить прокси сервер squid и sams2 к нему.

Как работает мониторинг сети?

Все данные, которые распространяются через интернет передаются в виде пакетов определенного размера. Данные разделяются на части определенного размера и из них составляются пакеты, которые будут отправлены в ядро системы а затем в сеть, где пройдут путь из многих компьютеров и маршрутизаторов пока достигнут цели. С помощью специального программного обеспечения мы можем отслеживать сколько пакетов и какого размера проходит через наш компьютер и неважно, были они созданы локальной программой или получены из сети.

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

3: Сборка и установка ядра

Создав пользовательские конфигурации ядра, нужно собрать и перекомпилировать его.

Вернитесь в каталог /usr/src и выполните команду make buildkernel, используя новый конфигурационный файл:

cd /usr/src
sudo make buildkernel KERNCONF=EXAMPLE

Это может занять некоторое время в зависимости от объёма ресурсов сервера (в среднем сервер в 1GB компилируется 90 минут).

После завершения перекомпиляции установите новое ядро:

sudo make installkernel KERNCONF=EXAMPLE

Затем перезапустите систему.

sudo shutdown -r now

После этого сервер отключит текущие сервисы, синхронизирует диски и обновит ядро.

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

sysctl kern.conftxt | grep ident

На экране должен появиться такой результат:

Настройка и перекомпиляция ядра выполнена успешно.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector