Воскресенье, 29.06.2025, 04:57
Приветствую Вас Гость | RSS
UBUNTOLOG
Главная | Каталог статей | Регистрация | Вход
Форма входа

Меню сайта
Категории раздела
Server [44]
WEB [14]
Все что связанно с web технологиями
Desktop [11]
Все что связанно с рабочей станцией
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Server

    Шлюз в интернет на FreeBSD за полчаса

    Шлюз в интернет на FreeBSD за полчаса

    Допустим у нас встала задача быстро развернуть шлюз да выхода в интернет небольшой сети (домашней или небольшого офиса). Фактически задача сводится к установке операционной системы и развёртывании DHCP, DNS и NAT. Далее будет показано как можно быстро и легко решить эту задачу используя ОС FreeBSD 8.0.

    Для начала нужно установить ОС на сервер. Ставить систему можно даже с bootonly CD докачивая необходимое по сети. Нужно поставить только самый минимум.

    Допустим что у сервера два интерфейса: le0, который "смотрит" в интернет и em0, к которому подключена локальная сеть. В локальной сети мы будем использовать пространство 172.31.255.0/24, причём первый адрес (172.31.255.1) будет использоваться сервером.

    Первым делом нужно добавить в файл /etc/rc.conf строку:

    gateway_enable="YES"

    Эта строка при загрузке сервера разрешает пересылку IP-пакетов. Без неё не возможно использование сервера в качестве маршрутизатора. Чтобы это изменение вступило в силу до перезагрузки нужно выполнить команду:

    sysctl net.inet.ip.forwarding=1

    Следующим шагом сконфигурируем DNS. Сначала нужно в файле /etc/namedb/named.conf заменить строку:

     listen-on { 127.0.0.1; };

    На:

     listen-on { any; };

    После этого разрешим запуск DNS-сервера добавив в /etc/rc.conf строку:

    named_enable="YES"

    И запустим сервис:

    /etc/rc.d/named start

    Проверить работу DNS-сервера можно командой:

    nslookup www.ylsoftware.com 127.0.0.1

    В случае нормальной работы DNS вывод должен выглядеть примерно вот так:

    Server: 127.0.0.1
    Address: 127.0.0.1#53
    Non-authoritative answer:
    Name: www.ylsoftware.com
    Address: 89.108.78.131

    Обновляем дерево портов:

    portsnap fetch extract

    Затем установим DHCP-сервер:

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

    Далее создадим файл /usr/local/etc/dhcpd.conf следующего содержания:

    default-lease-time 600;
    max-lease-time 7200;
    ddns-update-style none;
    log-facility local7;
    subnet 172.31.255.0 netmask 255.255.255.0 {
    range 172.31.255.100 172.31.255.200;
    option domain-name-servers 172.31.255.1;
    option domain-name "office.localdomain";
    option routers 172.31.255.1;
    default-lease-time 600;
    max-lease-time 7200;
    }

    Конфигурация DHCP-сервера более подробно уже была рассмотрена ранее и сейчас останавливаться на ней мы не будем. Для запуска DHCP-сервера нужно добавить в /etc/rc.conf строки:

    dhcpd_enable="YES"
    dhcpd_ifaces="em0"
    dhcpd_flags="-q"

    Запускаем DHCP-сервер:

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

    Теперь осталось только настроить пакетный фильтр. Из всего многообразия оных во FreeBSD выберем pf. Создадим файл /etc/pf.rules следующего содержания:

    # Базовые настройки
    if_ext = "le0"
    if_int = "em0"
    net_int = "172.31.255.0/24"
    set block-policy drop
    set state-policy if-bound
    scrub all reassemble tcp fragment reassemble
    # NAT для локальной сети
    nat pass on $if_ext from $net_int -> ($if_ext) static-port
    # Запрещаем весь лишний трафик
    block drop all
    # Разрешаем всё на loopback-интерфейсе
    pass quick on lo0 all
    # Разрешаем исходящий трафик
    pass out quick on $if_ext inet proto tcp from ($if_ext) to any flags S/SA keep state
    pass out quick on $if_ext inet proto { udp, icmp } from ($if_ext) to any keep state
    pass out quick on $if_int from ($if_int) to $net_int
    # Разрешем любой трафик со стороны локальной сети
    pass in quick on $if_int from $net_int to any keep state

    Добавляем в /etc/rc.conf строки:

    pf_enable="YES"
    pf_rules="/etc/pf.rules"

    Запускаем пакетный фильтр:

    /etc/rc.d/pf start

    Теперь компьютеры в локальной сети смогут получать сетевые настройки по DHCP и спокойно выходить в сеть. На этом всё. Приятной работы!

    Категория: Server | Добавил: Vyacheslav (10.01.2011)
    Просмотров: 3184 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Copyright VR © 2025
    Сделать бесплатный сайт с uCoz