Бързо ръководство по конфигуриране на FreeBSD NAT рутер
Публикувана от admin на March 04 2010 11:34:49
Настоящата статия предполага, че базова инсталация на FreeBSD е преминала успешно
и ще разгледа необходимите настройки за конфигуриране на мрежовите възможности
на FreeBSD. Допълнително изискване е да бъде предварително инсталиран сорс кода
на ядрото (т.е. Kern-Developer тип инсталация)

Прекомпилация на ново ядро
cd /usr/src/sys/i386/conf
cp GENERIC core-kernel

# Редактирайте новата конфигурация на ядрото
vi core-kernel

# Премахнете излишните драйвери на устройства като SCSI, USB, звукови карти,
тунери и прочие.

# Добавете следното:
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_FORWARD
options IPDIVERT
options IPFILTER
options IPSTEALTH
options TCPDEBUG
options BRIDGE
options DUMMYNET
options RANDOM_IP_ID
options TCP_DROP_SYNFIN
options NETGRAPH
options HZ=1000
# или 2000
options DEVICE_POLLING # само
за еднопроцесорни системи

# … и запишете промените
# Същинска компилация
config core-kernel
cd ../../compile/core-kernel
make depend && make && make install

# Ако нищо не се обърка можете да рестартирате, за да ползвате новото ядро.
Ако нещо се обърка консултирайте се с Handbook.
reboot

Системни настройки
Редактирайте /etc/sysctl.conf и добавете следното:

net.inet.ip.forwarding=1
net.inet.tcp.sendspace=131072
net.inet.tcp.recvspace=131072
net.inet.tcp.inflight_enable=1
net.inet.tcp.inflight_debug=0
net.inet.tcp.inflight_min=6144 # or more
kern.ipc.somaxconn=1024

Редактирайте /etc/rc.conf и добавете следното:
(предполагаме, че мрежовите ви устройства са съответно fxp0 и fxp1 – fxp0 е
свързан към Интернет, а fxp1 – към локалната мрежа. Съответните стойности за
IP адреси ще ви бъдат дадени от доставчика на услуги.)


# Настройки на мрежовите интерфейси:
ifconfig_fxp0="inet
11.22.33.44 netmask 255.255.255.0 up"
# ifconfig_fxp0="dhcp" – в случай,
че доставчика ви ползва DHCP за раздаване на адреси
ifconfig_fxp1="inet
192.168.0.1 netmask 255.255.255.0 up"
# Включване на възможността за рутиране на пакети:
gateway_enable="YES"

# Маршрут по подразбиране:
defaultrouter="11.22.33.1"

# Име на машината:
hostname="router.my-org.net"

# Изключване на Sendmail и ограничаването му само до локално обслужване
(НЕОБХОДИМО !!!)
sendmail_enable="NO"

# Настройки на защитната стена:
firewall_enable="YES"
firewall_script="/etc/rc.ipfw"

# Настройки на транслирането на мрежовите адреси NAT:
natd_enable="YES"
natd_interface="fxp0"

# Запишете настройките и прекратете редактирането на /etc/rc.conf
# Редактирайте файла /etc/rc.ipfw и въведете следното:

#!/bin/sh
fwcmd="/sbin/ipfw"
int_net="192.168.0.0/24"
${fwcmd} add 1000 divert natd ip from ${int_net} to not ${int_net}
# … и като за начало "отворете" firewall
${fwcmd} add 65000 allow ip from any to any
# Конфигурирането на firewall е извън обхвата на настоящото кратко изложение.
# Запишете настройките и рестартирайте.

Ако сте въвели всичко и промените са успешни проверете с ipfw list.
Би трябвало да видите нещо като:

01000 divert 8668 ip from 192.168.0.0/24 to not 192.168.0.0/24
65000 allow ip from any to any
65535 deny ip from any to any

Използвайте ps -ax | grep natd, за да проверите дали процесът
natd се е стартирал успешно. При правилно стартиране това би трябвало да ви
покаже:

110 ?? Ss 00:00.00 natd -n fxp0

Дотук вече имате настроен FreeBSD рутер с поддръжка на транслация на мрежови
адреси и след като настроите компютрите в локалната ви мрежа да използват тази
машина като Internet gateway те би трябвало да имат достъп до Интернет.

Настройки на приложения
# Инсталирайте следните пакети:
# Помагало за следене натоварването на мрежовите интерфейси в
реално време
pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/All/trafshow-3.1_1.tgz

# Помагало за синхронизиране на системните сорсове при update
на операционната система
pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/All/cvsup-without-gui-16.1g.tgz

# SNMP daemon
pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/All/ucd-snmp-4.2.6.tgz

# HTTP Server
pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/All/apache-1.3.29.tgz

# Multi Router Traffic Grapher
pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/All/mrtg-2.9.25,1.tgz

Забележка: Съобразете
версиите на пакетите с актуалните версии на някой от сайтовете, където са разположени
mirrors !!!

# Конфигуриране на MRTG
/usr/local/etc/rc.d/snmpd.sh start
cd /usr/local/etc/mrtg/
cfgmaker [email protected] > mrtg.cfg

# Редактирайте mrtg.cfg и променете
директивата WorkDir (в началото на файла) на
WorkDir: /usr/local/www/data/mrtg

# Запишете настройките

mkdir /usr/local/www/data/mrtg
cd /usr/local/www/data/mrtg/
indexmaker /usr/local/etc/mrtg/mrtg.cfg
> index.html

# Редактирайте crontab да изпълнява
MRTG на всеки 5 минути:
crontab -e

# … и въведете следното:
*/5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

# Запишете настройките

# Стартирайте два пъти MRTG
/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg
/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg

# … и игрнорирайте предупрежденията

# Рестартирайте, за да се уверите, че системата зарежда всички
приложения и процеси без грешки, след което опитайте да отворите http://192.168.0.1/mrtg/

Това кратко ръководство изяснява основните стъпки при настройка
на NAT рутер с използване на FreeBSD. Даден е абсолютният минимум от конфигурационни
настройки.


Статията е представена с любезното съдействие на : http://slavov.maxds.eu