февраля 20 2010 01:44 дп

Настройка Kernel NAT на FreeBSD

freebsd_logo.png

Эта маленькая статья описывает настройку kernel nat на Freebsd, настройка очень проста и займет у вас минимум времени. Основное время потраченное на настройку уйдет на сборку ядра системы, установку и перезагрузку.

Начнем с сборки ядра, если вы не сталкивались с ней, тогда вам будет полезно прочитать статью в которой это процесс описан более-менее подробно: http://sudouser.com/kompilyaciya-yadra-v-freebsd.html . Если же вам знакому эта процедура то перейдем к редактированию конфига нашего ядра, добавим туда следующие строки

Код:

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
options IPFIREWALL_FORWARD
options DUMMYNET
options IPFIREWALL_NAT
options LIBALIAS

В файл /etc/make.conf добавляем

Код:

CFLAGS+= -DIPFIREWALL_NAT

Затем собираем ядро

Код:

cd /usr/src/ ; make buildkernel KERNCONF=YOURKERNCONF && make installkernel KERNCONF=YOURKERNCONF

В файл конфигурации ipfw добавляем параметры для NAT, айпи адрес 1.1.1.1 замените на ваш айпи, в который вы будете транслировать локальные айпи пользователей, так же замените сеть 192.168.0.0/16 из примера на вашу, так же обратите внимание на номера правил для ната, возможно вам придется сменить их в соответствии с вашей конфигурацией.

Код:

extip="1.1.1.1"
ipfw nat 123 config ip ${extip} log
ipfw add 10 nat 123 ip from 192.168.0.0/16 to any
ipfw add 20 nat 123 ip from any to ${extip}

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

Код:

firewall_enable="YES"
firewall_script="/home/ipfw.sh"

Затем внесем изменения в файл /etc/sysctl.conf, добавьте в конец файла строку, она нужна что бы пакеты проходили через все правила фаервола, а не до первого совпадения, как стоит по умолчанию, так как если вы например ограничиваете скорость, то нат работать не будет, так как фаервол проверяет пакеты только до первого совпадения правил, иначе говоря только обрежет скорость и все.

Код:

net.inet.ip.fw.one_pass=0

Теперь можно перезагрузить машину, после загрузки NAT будет работать.
Надеюсь, статья была вам полезна.




4 комментария »


4 комментария to “Настройка Kernel NAT на FreeBSD”

  1. funt1k on 10 Мар 2010 at 08:31 #

    Бываю редко и метко.
    options IPDIVERT — пережитки старого NATD
    это уже не модно как говориться

  2. transkriptsiya on 09 мая 2011 at 14:58 #

    для чего добавляем в мейк файл строку
    options IPDIVERT
    ? для чего она

  3. transkriptsiya on 09 мая 2011 at 14:59 #

    для чего добавляем в мейк файл строку
    CFLAGS = -DIPFIREWALL_NAT

    ? для чего она

  4. Andrew BLOG » Архив » FreeBSD: nat, ipfw, squid, vpn, mpd5. Настройка. on 13 Фев 2013 at 23:00 #

    […] Настройка Kernel NAT на FreeBSD […]

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


« | »



Server load average: 0.01, 0.02, 0.00
Server uptime: 20 days, 5:46
Your IP is: 54.225.57.89.