Помогни ни да направим Uroci.net по - богат! Добави урок

FreeBSD NAT рутер

GibsonIT.net   трудност:    видян: 10841

Настоящата статия предполага, че базова инсталация на 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 public@localhost > 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. Даден е абсолютният минимум от конфигурационни настройки. За повече и по-подробна информация се обръщайте към FreeBSD Handbook

powered: www.freebsd-bg.org




Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com