Яндекс.Метрика

    Ни о чём

    Настройка сервера под FreeBSD в качестве роутера

    После базовой установки FreeBSD на сервер или обычный ПК его можно использовать в качестве интернет-шлюза для внутренней (локальной) сети.
    Мы рассмотрим настройку интернет-шлюза средствами программы ipnat.

    Перед началом работы, советую обновить порты. Таким образом мы получим самую новую версию DHСP-сервер.
    Для этого в консоли, предварительно авторизировавшись root-пользователем вводим:

    portsnap fetch update

    Дожидаемся завершения обновления.

    IPNAT по сути уже установлен в базовой системе. Перед запуском ipnat нужно разрешить системе работать с демоном программы. Для этого используя текстовый редактор (например ee) добавим пару строк в файл конфигурации системы. Также мы настроим DHCP-сервер для автоматического назначения IP-адресов клиентам нашего маршрутиризатора.
    Это делаем командой:

    ee /etc/rc.conf

    Затем опускаемся стрелками на клавиатуре в самый низ файла, далее с новой строки пишем:

    gateway_enable="YES"

    Эта запись говорит системе, что она будет выполнять функции шлюза (роутера).
    Теперь укажем FreeBSD, что переадрессовывать пакеты из интернета в локальную сеть и наоборот будет программа ipnat.

    В rc.conf допишем:

    ipnat_enable="YES"
    ipnat_rules="/etc/ipnat.rules"

    Первая строка говорит системе, что разрешен запуск программы ipnat, вторая строчка указывает самой программе, где находится файл конфигураии ipnat.

    Теперь правим файл конфигурации ipnat: ee /etc/ipnat.rules
    По умолчанию этот файл пустой. Пропишем в него параметры переадресации пакетов:

    map sk0 192.168.0.0/24 -> 0.0.0.0/0

    1. map — включает ipnat.
    2. sk0 — название сетевого интерфейса для локальной сети (Можно узнать командой ifconfig. В данном примере название произвольное.)
    3. 192.168.0.0/24 — диапазон ip-адресов локальной сети (В примере предполагается, что шлюз будет иметь адрес 192.168.0.1. IP-адрес можно указать в файле /etc/rс.conf для каждого сетевого адаптера.)

    Осталось только перезагрузить ipnat для применения изменений.
    Перезагружаем командой: /etc/rc.d/ipnat restart

    Теперь все машины из локальной сети могут выходить интернет через Ваш шлюз. Для этого на компьютерах локальной сети укажите вручную IP-адрес в диапазоне 192.168.0.0/24, маску подсети: 255.255.255.0, в качестве шлюза 192.168.0.1 (То бишь Ваш шлюз), адреса DNS-серверов (Их можно узнать на Вашем шлюзе под FreeBSD командой "cat /etc/resolv.conf", параметр nameserver. Их там, как правило, два, на клиентах пишем два(если один, то один). Вот собственно и все.

    Переадрессация портов из интернета в локальную сеть

    Часто необходимо иметь доступ из внешней сети (интернет), к некоторым портам локальной сети.
    Возможно у Вас есть сервер игры CS, или FTP/HTTP сервер в локальной сети, и Вам необходимо поделится документами с друзьями или дать возможность другим пользователям поиграть в CS на Вашем сервере.

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

    Такую возможность предоставляет также программа IPNAT.
    Для реализации вышеописанных возможностей переадрессации необходимо в конфигурационный файл ipnat (в конец файла /etc/ipnat.rules) дописать следующее:

    rdr re0 0.0.0.0/0 port 27015 -> 192.168.0.2 port 27015 tcp

    1. rdr — переадрессация из 27015 порта внешнего на 27015 порт внутренний
    2. re0 — название внешнего сетевого адаптера (Можно узнать командой ifconfig. В данном примере название произвольное.).
    3. 0.0.0.0/0 — диапазон адресов для внешней сети (Можно вместо этого указать внешний ip-адрес).
    4. port 27015 — номер порта для переадрессации. Для CS: 27015, Для WEB-сервера: 80, Для FTP-сервера: 21.
    5. 192.168.0.2 — IP-адрес компьютера (сервера) в локальной сети на который перенаправляются запросы.
    6. tcp — протокол интернета. Для CS tcp иди udp, для FTP/HTTP tcp, для WOW both и т.д.

    Снова перезагружаем ipnat для применения изменений: /etc/rc.d/ipnat restart

    Теперь все пользователи из внешней сети имеют доступ к Вашим локальным ресурсам, обращаясь к внешнему ip-адресу шлюза, указав определенный порт. Настройка IPNAT завершена.

    Приступаем к установке и настройку DHCP-севера.
    Ставить его будем из портов. Войдя в систему как root, пишем в консоли:

    cd /usr/ports/net/isc-dhcp31-server
    make install clean

    После того, как система установит DHCP-сервер, необходимо в файл /etc/rc.conf добавить записи:

    dhcpd_enable="YES"
    dhcpd_ifaces="sk0"

    1. dhcpd_enable=«YES» — разрешаем системе работать с демоном DHCP-сервреа.
    2. dhcpd_ifaces=«sk0» — укзываем DHCP-серверу, какой сетевой интерфейс он будет обслуживать.
    3. sk0 — название сетевого интерфейса для локальной сети (Можно узнать командой ifconfig. В данном примере название произвольное.)

    Теперь правим файл конфигурации DHCP-сервера. Создаем его и пропишем параметры для локальной сети:

    ee /usr/local/etc/dhcpd.conf

    Прописуем параметры:

    option domain-name "kiev.ua"; #kiev.ua - домен для поиска по умолчанию.
    option domain-name-servers 0.0.0.1, 0.0.0.2; #0.0.0.1, 0.0.0.2 - сервера имен Вашего провайдера.
    option subnet-mask 255.255.255.0; #255.255.255.0 - маска внешней сети. Узнаем командой ifconfig.

    default-lease-time 3600; #время жизни кеша запросов
    max-lease-time 86400; #максимальное время жизни кеша запросов
    ddns-update-style none;
    subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.2 192.168.0.2;
    option routers 192.168.0.1;
    }


    1. subnet 192.168.0.0 — начальный IP-адрес для Вашей локальной подсети.
    2. netmask 255.255.255.0 — маска для локальной сети.
    3. range 192.168.0.2 192.168.0.32 — диапазон IP-адресов для локальной сети.
    4. option routers 192.168.0.1 — IP-адрес шлюза для локальной сети. (Вашего сервера.)

    Теперь перезагружаем DHCP-сервер командой:

    /usr/local/etc/rc.d/isc-dhcpd restart

    Готово. Все компьютеры, подключенные к Вашему роутеру под FreeBSD получат автоматически IP-адрес и доступ в интернет.