Пример:
Есть
выход в интернет на интерфейсе rl0 с адресом 78.105.65.8
локальная сеть 192.168.0.0/24 на интерфейсе rl1 с адресом 192.68.0.1
нужно организовать доступ из локальной сети в интернет, для этого ставим freebsd версия не принцепиальна.
1 Собираем ядро с поддержкой IPFW + NAT для этого шагаем:
Код: Выделить всё
[/]# cd /sys /i386/conf
[/usr/src/sys/i386/conf/]# cp GENERIC MYCORE
после чего правим конфигурацию ядра добавляя/удаляя туда нужные нам опции, при этом вдумчиво читаем комментарии, а в частности необходимо изменить переменную
ident GENERIC на
ident MYCORE и добавить нужные нам опции :
Код: Выделить всё
options IPFIREWALL # Поддержка файрвола
options IPDIVERT # NAT (трансляция адресов)
options IPFIREWALL_FORWARD # перенаправление (форвардинг) пакетов например, для прозрачного прокси
options IPFIREWALL_DEFAULT_TO_ACCEPT # дефолтовое правило(последнее) разрешает все всем
это минимум опций для того чтобы сделать транслирующую железку, подробнее смотри на сайте и форуме.
после этого нужно скомпилить новое ядро, для этого в каталоге с конфигурацией ядра создаем скрипт такого вида:
Код: Выделить всё
[/usr/src/sys/i386/conf/]# ee make-core.sh
#!/bin/sh
kernel=”MYCORE”
config ${kernel}
cd ../compile/${kernel}
make cleandepend && make depend && make -j8 -B && make install && shutdown -r now
сделать файл исполняемым и запустить:
Код: Выделить всё
[/usr/src/sys/i386/conf/]# chmod +x make-core.sh
[/usr/src/sys/i386/conf/]# ./make-core.sh
2 после сборки ядра настраиваем rc.conf:
Код: Выделить всё
[/]# ee /etc/rc.conf
gateway_enable="YES"
sshd_enable="YES"
defaultrouter="78.105.65.1" # стандартный шлюз(настройки провайдера)
ifconfig_rl0="inet 78.105.65.8 netmask 255.255.255.240"
ifconfig_rl1="inet 192.168.0.1 netmask 255.255.255.0"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-f /etc/natd.conf"
firewall_enable="YES"
firewall_script="/etc/ipfw.conf"
3 далее создаем если не создан или редактируем если создан resolv.conf и указываем в нем dns сервера провайдеа:
Код: Выделить всё
[/]# ee /etc/resolv.conf
nameserver 217.234.23.6
nameserver 89.145.87.109
4 далее создаем конфиг для nat:
Код: Выделить всё
[/]# ee /etc/natd.conf
log yes
use_sockets yes
same_ports yes
dynamic yes
unregistered_only yes
5 после чего создаем правила для межсетевого экрана
Код: Выделить всё
[/]# ee /etc/ipfw.conf
#!/bin/sh
fwcmd="/sbin/ipfw -q"
oif="rl0" #
${fwcmd} -f flush
${fwcmd} add pass all from any to any via lo0
${fwcmd} add deny all from any to 127.0.0.0/8
${fwcmd} add deny all from 127.0.0.0/8 to any
${fwcmd} add divert 8668 ip from any to any via ${oif}
6 после чего перезагружаете систему и пользуйтесь интернетом.
ЗЫ: настройки взяты произвольно, так что для работа способности используйте выданные вам провайдером, это касательно внешнего(интернет) интерфейса, настройки для локального интерфейса будут справедливы и для вашей сети.
ЗЫ2: для того чтобы локальные пользователи могли попасть в интернет необходимо присвоить им адреса с диапазона 192.168.0.0/24, например 192.168.0.2,192.168.0.3 ... 192.168.0.254, маска подсети 255.255.255.0, шлюзом указать вашу машину 192.168.0.1, а в dns серверах прописать dns сервера провайдера те что указываете в
resolv.conf
ЗЫ3: более подробное описание настроек ищите на сайте и в интернет это минимум для поднятия шлюза.