Главная   Реклама   Каталог   Контакты  
 


Маршрутизация на базе natd в ОС FreeBSD

Что бы поднять NAT и Firewall на FreeBSD надо:

Скомпилировать ядро:
Следующие строки нужно включить в
/usr/src/sys/i386/conf/GENERIC файл конфигурации:

options IPFIREWALL
options IPDIVERT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options DUMMYNET
options TCP_DROP_SYNFIN

Где 1, 2 строки - сама возможность маршрутизации; 3, 4 - возможность вести логи и ограничение их списка; 5 - требуется для ведения статистики; 6 - отброс флуд-пакетов.

Переходим в директорию
/usr/src/
make buildkernel KERNCONF=GENERIC
make installkernel KERNCONF=GENERIC

Следующие строки можно к примеру включить в rc.conf файл конфигурации:

hostname="free"
ifconfig_rl0="10.0.0.1"
gateway_enable="YES"
firewall_enable="YES"
firewall_type="open"
natd_enable="YES"
natd_interface="rl0"
natd_flags="-redirect_port tcp 10.0.0.10:80 80"
tcp_extensions="NO"
tcp_drop_synfin="YES"
icmp_drop_redirect="YES"
icmp_log_redirect="YES"
sendmail_enable="NONE"

Для удаленного управления нужно добавить следующую строку:
sshd_enable="YES"
(возможно понадобится скопировать /etc/ssh/ssh_host_dsa_key.pub в
/root/.ssh/authorized_keys и
разрешить логинится удаленно для root в файле /etc/ssh/sshd_config)

Следующие строки можно включить в rc.firewall файл конфигурации (секция "open"):

[Oo][Pp][Ee][Nn])
oif="rl0"
iif="tx0"
oip="132.5.7.172"
iip="10.0.0.1"
lan="10.0.0.0/24"
setup_loopback
# allow all for LAN
${fwcmd} add 500 pass all from ${lan} to ${iip} via ${iif}
${fwcmd} add 550 pass all from ${iip} to ${lan} via ${iif}
# download - 60K upload - 6K for all lan ip's
${fwcmd} add 600 pipe 1 ip from any to any in via ${oif}
${fwcmd} add 650 pipe 2 ip from any to any out via ${oif}
# for selected ip's only
# ${fwcmd} add 601 pipe 1 all from any to 10.0.0.10
# ${fwcmd} add 651 pipe 2 all from 10.0.0.10 to any
${fwcmd} pipe 1 config bw 512Kbit/s
${fwcmd} pipe 2 config bw 48Kbit/s
# dns setup
${fwcmd} add 770 pass tcp from any to ${oip} 53 setup
${fwcmd} add 780 pass udp from any domain to any
${fwcmd} add 790 pass udp from any to any domain
# main setup
${fwcmd} add 800 pass tcp from any http,https,20-21,989-990 to any
${fwcmd} add 810 pass tcp from any to any http,https,20-21,989-990
${fwcmd} add 830 pass tcp from any pop3,pop3s,smtp,imap,imaps,aol to any
${fwcmd} add 840 pass tcp from any to any pop3,pop3s,smtp,imap,imaps,aol
${fwcmd} add 65000 deny ip from any to any
;;

Где oip, oif - внешний интерфейс; iip, iif - внутренний; lan - внутренняя сеть.

Такая конфигурация ipfw весьма параноидальна, и здесь приведена только в качестве примера. На практике обычно нужен более открытый фаервол.

Статьи про Домашние Сети и все что с ними связано...
Статьи, которые помогут начинающим сделать свою первую мини-Домашниюю Сеть и настроить ее. Новички обязаны ознакомиться со всеми статьями в данном разделе!
Все о беспроводных сетях. Теория и практика. Зарисовки работающих радио-линков. Таблицы для рассчетов.

Rambler's Top100

©2005 Company.Ltd. All rights reserved