Yellow Leaf

Yellow Leaf


Поиск по сайту


Вход
Правила портала
Регистрация
Забыли пароль?
О команде проекта
Справка по оформлению постов


Последние комментарии к новостям и статьям
Re: Доступн для загрузки пакет с играми для Ubuntu Linux - GamePack 9.10.2
Re: Использование нескольких интернет-каналов для повышения надёжности соединения
Re: Вышла новая версия библиотеки QRemoteSignal
Re: Организация трансляции потока с веб-камеры с помощью ffserver
Re: Общий принтер в локальной сети на Linux
Ещё комментарии >>>


 


Новые файлы
Debian: cue2tracks_0.2.11_all (Дополнение для CUE 2 Tracks v0.2.11)
Gentoo: cue2tracks-0.2.11 (Дополнение для CUE 2 Tracks v0.2.11)
CUE 2 Tracks v0.2.11
Jabber-Shell 20090303
EasySoft AutoRun 0.4.1


Новое на форуме
Blog API
коммерческие услуги по статьям на сайте
Цепочка из openvpn?
Движок сайта. версия 2.0
Не получаеться поднять VPN сервер на Ubuntu server 10.04


Проекты
Jabber-Shell
Qmmp
QStarDict
PHPSAAdmin


Друзья сайта
 Open Kazan - Казанское сообщество пользователей OpenSource 


Посетителей с 08.09.2006

4748151


Внешний вид портала


RSS-Ленты
Новости
Файлы


 

   
  Яндекс цитирования  

«Жёлтый Лист» - cайт о мире юникс
Новости Форум Статьи Файлы Пользователи
   

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

MooSE 2010-06-24 03:32:07

Допустим у нас встала задача быстро развернуть шлюз да выхода в интернет небольшой сети (домашней или небольшого офиса). Фактически задача сводится к установке операционной системы и развёртывании 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 и спокойно выходить в сеть. На этом всё. Приятной работы!

Ключевые слова:freebsd, gate, gateway, pf

Версия для печати


Комментарии:

Содержание*:
=

При копировании материалов с этого сайта ссылка на источник обязательна! Уважайте труд авторов!


Если материалы с этого сайта оказались вам полезны - Вы можете поддержать этот проект переведя на его счёт любую сумму, какую сочтёте нужным.

рублей


Обратная связь


© 2006-2010 Вадим Калинников aka MooSE
Сайт размещён на VPS от Агава