Вот понадобилось одному моему товарищу поставить у себя дома сервер в локальной сети провайдера, да и еще с подключением по VPNу к интернету, для получения реального статического IP.

И тут, я пришел к нему на помощь. Почесали тыковку, посмотрели на железо, подумали что должен делать данный сервер. Составили техническое задание.
Итак, задача выглядела так.

Из железа:
  CPU: AMD-K6(tm)-III Processor
  ad0: 19130MB <SAMSUNG SV0221H/SJ100-01>
  rl0: <RealTek 8139 10/100BaseTX>
  rl1: <RealTek 8139 10/100BaseTX>
  real memory: 268435456 (256 MB)

Нужно сконфигурить домашний роутер выполняющий следующие задачи:

— Трансляция адресов в локальную сеть и интернет через NAT
— Подключение к интернету по VPN
— На сервере должен крутится сайт, DNS, почта
— Нарезать приемлемую полосу пропускания для трафика (приоритет по портам)
— Закрыть все лишнее, что не отдается с сервера в мир.

Взяли пивка с чипсами и кальмарами (Заметьте, это главный инструмент!! Так как на такой машинке этот процесс будет не шустрым, особенно сборка ядра)

Подумали какую ставить версию, но ввиду того что машинка не очень шустрая — выбор пал на FreeBSD версии 5.5.

Ну так вот, подключили мы все к монитору, клавиатуре и сетке. И начали процесс инсталляции.

Первым делом делаем загрузку с какого нибудь LIVE-CD, что бы протестить наше железо на живучесть и надежность.

Если все супер, приступаем к инсталляции FreeBSD:

После успешной инсталляции, перед нами стоит задача выпить первый глоток пива, только сильно не спешите — процесс нужно растянуть (вариант в котором будет быстро уходить заранее закупленное большое количество пива — не катит, так как железка старенькая и к тому времени как будет собрано новое ядро, и будет выпито не мало пива — не факт что получится продолжить процесс настройки 🙂 )

Начинаем настройку основных наших сервисов:
pptp_client — из портов
mc — из портов
cvsup — поставили в процессе установки ОС
natd — установлен по умолчанию в ОС, нужно только настроить и запустить
bind — установлен по умолчанию в ОС, нужно только настроить и запустить
ipfw — будем пересобирать ядро, для включения данной функции
apache + php + mysql — все из портов

Так как у нас еще нет интернета, а pptp_clientа мы будем собирать из портов, нам нужно предварительно скачать его и положить в папку /usr/ports/distfiles/. В нашем случае это версия pptpclient-1.7.0, у вас может быть другая.. Лучший способ зайдя в порт pptp_clienta выполнить команду: make fetch. Вы сразу же уведите необходимый файл, а после того как коннект не произойдет и путь откуда пыталась скачать его система.
В нашем случае очень повезло, у провайдера в локальной сети имеется открытый FTP с расшареной папкой distfiles и другими.
И мы сделали так:
В файл /etc/make.conf прописали такой код:
MASTER_SITE_OVERRIDE?=ftp://nix.superprovider.ua/freebsd/distfiles/${DIST_SUBDIR}/
и потом, зайдя в порты:

# cd /usr/ports
# make search name=pptp
Port: pptpclient-1.7.0
Path: /usr/ports/net/pptpclient
Info: PPTP client for establishing a VPN link with an NT server
Maint: thomas@cuivre.fr.eu.org
B-deps:
R-deps:
WWW: http://pptpclient.sourceforge.net/
# cd /usr/ports/net/pptpclient
# make install clean
По окончанию инсталляции:
# pkg_info | grep pptpclient
pptpclient-1.7.0 PPTP client for establishing a VPN link with an NT server

И принимаемся за его настройку.
Добавляем в файл /etc/ppp/ppp.conf (не трогая то что выше по умолчанию) такие строки:

inet:
set device "!/usr/local/sbin/pptp 10.10.1.254 --nolaunchpppd"
set log Phase LCP IPCP CCP tun command
disable acfcomp protocomp
deny acfcomp
enable lqr
set lqrperiod 5
set cd 5
set redial 0 0
set reconnect 0 0
set redial 15
set timeout 0
set login
set dial
enable mssfixup
disable ipv6cp
accept MSChapV2
set mppe 128 stateless
nat enable yes
nat same_ports yes
nat use_sockets yes
set authname login_user
disable dns
set authkey passwd_user
add default HISADDR

Пробуем законектится:

# ppp -ddial inet
# ifconfig

мы должны увидеть появление туннеля tun0, примерно так:

tun0: flags=8051 mtu 1498
inet 151.17.93.11 --> 10.10.10.252 netmask 0xffffffff
Opened by PID 10398

Ура, интернет появился, значит все остальное будет делаться без проблем. Доинсталиваем остальной софт из портов и переходим к его настройке:

Установка mc. В портах ест две версии, полная и lite. В последнее время я больше ориентируюсь на lite, потому как легко и быстро ставится и классная в ней подсветка синтаксиса, которая заводится сразу после инсталляции продукта.

# cd /usr/ports/misc/mc-light/
# make install clean
# cd /usr/ports/lang/php4
Тут мы убиваем 2 с половиной зайца, инсталлируя сразу php - apache и mysql клиент станут сами.
# make install clean
Далее, проверим какая у нас версия клиента mysql установилась и доставим серверную часть.
# pkg_info | grep sql
mysql-client-5.1.6_1
# cd /usr/ports/databases/mysql51-server
# make install clean

На этом процесс инсталляции основных продуктов закончен, теперь если есть желание — можно перезагрузить нашу железку набрав в консоли:
# reboot или shutdown -r
и пока железка перезагружается, глотнуть еще пивка.
А после загрузки примемся к настройке natd, ipfw, bind и скрипта переподключения к провайдеру, в случае обрыва связи или зависания последней.

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/177


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

Please note: JavaScript is required to post comments.