Вот понадобилось одному моему товарищу поставить у себя дома сервер в локальной сети провайдера, да и еще с подключением по 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/?p=177


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

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

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

Add your comment now

You must be logged in to post a comment.