Простой способ раздачи интернета в сети

команды, freebsd, настройка, установка, сервер, server, ubuntu

Задача довольно тривиальная: сервер на FreeBSD имеет 2-е сетевые карты; в одну вставлен RJ-45 от ADSL-модема, от второй сетевой карты кабель идёт в коммутатор, а уже посредством коммутатора сеть получают остальные ПК. Сервер FreeBSD соединяется с интернетом по PPPOE и будет раздавать его остальным. Реализовывать раздачу будем nat‘ом. Опишу почти самый простой способ.
Сначала перекомпилим ядро, не пугайтесь, это не сложно, нем более мы лишь добавим туда несколько нужных параметров, а не будем пересматривать всё содержимое конфигурационного файла (это отдельная история).

1) Проверим, присутствуют ли тексты ядра:
ls /usr/src/sys

Если такого каталога нет, значит вставляем диск №1 с freebsd в cd-rom на сервере,
заходим в систему под root’ом:
su -l
Password:

запускаем:
sysinstall

выбраем Configure, далее Distributions, потом src, потом base и sys.
Жмём везде «ОК», ждём пока не спросят откукда устанавливать, выбираем CD/DVD

команды, freebsd, настройка, установка, сервер, server, ubuntu

и ждём пока скопируются исходники.
Тем, кто устанавливал FreeBSD по этой инструкции, пункт 1 можно пропустить.

2) Тексты ядра скопировались, далее:
cd /usr/src/sys/i386/conf
cp GENERIC mykern
ee /usr/src/sys/i386/conf/mykern

Меняем строчку:
ident GENERIC
на:
ident mykern

и в конце файлика mykern, который мы редактируем, добавляем строки:
# dlya paketov
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPFIREWALL_FORWARD
options IPDIVERT
options DUMMYNET
# dlya krasoty
options SC_PIXEL_MODE
options VESA
options VGA_WIDTH90
options SC_NORM_ATTR=(FG_GREEN|BG_BLACK)
options SC_KERNEL_CONS_ATTR=(FG_YELLOW|BG_BLACK)

Закрываем файлик, сохранив изменения.

После этого делаем:
cd /usr/src
make buildkernel KERNCONF=mykern
make installkernel KERNCONF=mykern

ВНИМАНИЕ: Если вы выполнили успешно 2-е последние строчки и находитесь физически далеко от сервера, не перезагружайтесь, иначе фаервол начнёт действовать и блокировать все пакеты (выполняется правило по умолчанию)

3) Далее подредактируем:
ee /etc/rc.conf

Проверим наличие строк:
gateway_enable="YES"
natd_enable="YES"
#re0-сетевой интерфейс, к которому подключён ADSL (измените на свой)
natd_interface="re0"
natd_flags="-dynamic -f /etc/natd.conf"
firewall_enable="YES"
#файл с правилами фаервола-rc.firewall
firewall_script="/etc/rc.firewall"

Если вышеуказанных строк нет(а их скорее всего нет), добавьте их.

4) Теперь:
ee /etc/natd.conf

Содержимое должно быть следующим (исправьте если это не так):
log yes
deny_incoming yes
verbose no
log_denied yes
same_ports yes
use_sockets yes
unregistered_only yes

5) Добавим пару простейших правил, лишь бы заработал необходимый минимум.
mv /etc/rc.firewall /etc/rc.firewall_old
cp /etc/rc.firewall_old /etc/rc.firewall
ee /etc/rc.firewall

Стираем там всё, зажав сочетание кнопок Ctrl+K
и впишим туда следующее:
/sbin/ipfw -f flush
/sbin/ipfw -q add 00100 allow all from any to any via lo0
/sbin/ipfw -q add 00101 allow all from any to 127.0.0.0/8
/sbin/ipfw -q add 00102 allow all from 127.0.0.0/8 to any
#re0-сетевой интерфейс, к которому подключён ADSL (измените на свой)
/sbin/ipfw -q add divert natd all from any to any via re0
#re1-сетевой интерфейс, к которому подключён коммутатор(хаб,свич)(измените на свой)
/sbin/ipfw -q add 00103 allow all from any to any via re1
#www allow
/sbin/ipfw -q add 00104 allow all from any to any 80
/sbin/ipfw -q add 00105 allow all from any 80 to any
#ssh allow
/sbin/ipfw -q add 00106 allow all from any to any 22
/sbin/ipfw -q add 00107 allow all from any 22 to any
#dns allow
/sbin/ipfw -q add 00108 allow all from any to any 53
/sbin/ipfw -q add 00109 allow all from any 53 to any
#ping allow
/sbin/ipfw -q add 00110 allow icmp from any to any

6) Всё, перезагружаем сервер:
shutdown -r now
момент истины.

7) Клиенты.
Когда с сервером всё завершено успешно, на клиентах в настройках сетевого интерфейса, в качестве шлюза надо прописать внутренний адрес нашего сервера (в данном примере это ip адрес re1). И IP адреса и маска подсети у клиентов должны быть из той же подсети, что и re1, а так же не забудьте прописать dns сервера (скорее всего их вам сообщил провайдер). От настройки клиентов можно избавиться, настроив один раз dhcp-сервер и указав клиентам, автоматически получать настройки сети.

— ниже не обязательно для прочтения —
для тех, кто хочет понять хотябы коротко, что мы сделали:
Впаяли в ядро фаервол, в атозагрузку добавили nat и фаервол (ipfw), создали правила, разрешающие ssh, www, ping, dns, перезапустили сервер и настроили клиентов. Таким образом обеспечили раздачу интернета через freebsd сервер. Более подробное конфигурирование ядра и правил фаервола-это уже темы отдельных статей.

Простой способ раздачи интернета в сети: Один комментарий

  1. Уведомление: Как сделать мост (bridge) на FreeBSD | Media UniX

Добавить комментарий