VPN сервер на Linux
PPTPD-OPTIONS на русском
VPN – Virtual Private Network (виртуальная частная сеть) – простыми словами, это служба, которая обеспечивает связь между удалёнными точками, путём объединения их в одну общую сеть. Протокол связи – PPPoE (point-to-point-over-ethernet), т.е. это туннелированное соединение с определёнными настройками шифрования, что в свою очередь позволяет не только объединить две удалённые сети в один сегмент, но и защитить такое соединение от перехвата пакетов злоумышленниками.
VPN можно использовать не только сетевым администраторам для нужд крупных компаний (объединение двух офисов), но и простым пользователям. Например для сетевых баталий, в случаях, когда игра не имеет официального сервера и не подразумевает неофициальные, а поиграть с товарищами ну очень хочется. Тогда можно объединить 2,3,4 и более компьютеров в единую сеть. Даже если вы отдалены от товарищей и находитесь на другом континенте, пользуетесь услугами другого провайдера и прочее…
В ОС Linux служба VPN настраивается путём установки пакета pptpd и редактирования конфигурационных файлов под ваши нужды. Я постараюсь максимально понятно объяснить что к чему. Вместе с вами мы настроим VPN сервер на Linux, научимся соединять с ним Linux машины с помощью графических утилит и просто терминала. Ну и конечно же мы разберём с вами подключение из под ОС Windows.
Итак, приступаем к установке и настройке:
Пункт первый – устанавливаем пакет pptpd. В Linux Debian/Ubuntu и подобных воспользуйтесь утилитой apt-get. Кстати пакет находится обычно в стандартных репозиториях, так что дополнительно ничего подключать не надо.
apt-get install pptpd
Пункт второй – конфигурируем главный файл – pptpd-options. Лежит файлик в папке /etc/ppp и редактируется с правами администратора редактором на ваш вкус. Кстати, на всякий случай, чтобы было понятнее понять что к чему, я потрудился перевести pptpd-options на русский язык. Собственно вот он:
##############################################################################
Перевод pptpd-options на русский язык.
Вы можете использовать pptpd-options с комментариями на русском языке в своей системе.
Вы можете свободно распространять текст перевода pptpd-options со ссылкой на источник.
Конфигурационный файл pptpd-options переведён Squ1sh специально для StudyLinux.ru
###############################################################################
Аутентификация
Имя локальной системы аутентификации
(Должно быть вторым в файле /etc/ppp/chap-secrets) (после имени пользователя)
name pptpd
Опционально – имя домена для аутентификации.
domain mydomain.net
Префикс домена из имени пользователя до аутентификации.
(применяется если вы используете pppd с chapms-strip-domain патчем)
#chapms-strip-domain
Шифрование
На заметку – refuse-выкл. тип шифрования, require – вкл. тип шифрования
refuse-pap
refuse-chap
refuse-mschap
Рекомендуется включить mschap-v2 шифрования для аутентификации Windows клиентов
require-mschap-v2
Включим MPPE 128-bit шифрование. На нём и будет всё завязано.
(Внимание! MPPE использует MSCHAP-V2 во время аутентификации)
require-mppe-128
Сеть и маршруты
Если pppd работает для Microsoft Windows клиентов, включите в
pppd поддержку одного или двух DNS (Domain Name Server – Сервер имён). Для linux клиентов не работает!
адресов для клиентов. Первым указывается адрес первичного DNS сервера вашей #локальной сети; Вторым — вторичный (если таковой есть)
#ms-dns 10.0.0.1
#ms-dns 10.0.0.2
По той же схеме можно указать адреса WINS серверов.
#ms-wins 10.0.0.3
#ms-wins 10.0.0.4
#Proxyarp — это одна из функциональных возможностей протокола ARP, позволяющая #имитировать принадлежность разных IP-сетей к одному Ethernet-сегменту
#(использование одного сетевого префикса для обеих сетей). Короче опция должна #быть включена, ибо без неё никак
proxyarp
Не назначать маршрутом по умолчанию (defaultroute – назначение этого #соединения маршрутом по умолчанию в таблице маршрутизации)
nodefaultroute
Пишем логи
Включаем дебаггинг с записью логов.
#debug
Показать все установленные опции.
(Часто по просьбе список рассылки, чтобы поверить опции). Лично я вообще не #понял что это за вещь, и с чем её едят. Я даже сомневаюсь в правильности
#перевода… Ну да ладно, всё равно опция не важна.
#dump
Разное
Использовать блокировку портов UCPP, чтобы одновременно несколько # последовательных устройств не обращались к одному порту
lock
Отключить BSD-Compress сжатие.
nobsdcomp
###########################################################################
Как вы могли заметить, я выделил несколько параметров жирным. Это минимальные 7 параметров для приемлемой работы VPN сервера. Т.е. ваш минимальный конфиг pptpd-options может выглядеть так:
name pptpd
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
lock
nobsdcomp
Его вполне хватит для того, чтобы играться по сети, или объединить 2 офиса в сеть. Но, если не указать DNS-сервера в файле pptpd-options, то невозможно будет обращаться к компьютеру по Net-Bios имени (только по ip-адресу), что создаст некоторые трудности при не статичных адресах (работающий DHCP-сервер в сети), если вы не знаете адреса, а только имя нужной машины.
________________________________________
Пункт третий – настройка адресов/диапазона адресов в VPN. Пользователь, который будет подключаться к нашей сети должен естественно получить ip-адрес. Вы можете выдавать адреса из диапазона, либо привязать каждого пользователя к определённому адресу (уж как вам нравится). Если привяжете IP к имени пользователя VPN, то можете пропустить настройку pptpd.conf, если будете выдавать адреса из диапазона – читаем внимательно. Итак, файл pptpd.conf. Находится он прямо в корне папки /etc. Из него нам нужно только 2 параметра, их я и перевёл. Листаем файл в самый конец и видим следующее:
IP-адрес сервера в локальной сети
localip 192.168.1.1
Диапазон адресов для клиентов PPTP-сервера
remoteip 192.168.1.50-254
По этому файлу всё.
Пункт четвёртый – заводим пользователей VPN. Список пользователей, паролей и привязанных к ним ip-адресов хранится в файле chap-secrets. Лежит он в /etc/ppp.
Приведу 2 примера добавления пользователей:
#Пример №1 – пользователь получает ip-адрес из указанного нами в /etc/pptpd.conf диапазона адресов
Username pptpd password “*”
#Пример №2 – привязка ip-адреса к аккаунту VPN пользователя.
Username pptpd password “192.168.1.52”
Т.е. принцип таков – сначала пишем логин пользователя, потом имя службы (ту, котоую указали в параметре name в начале файла pptpd-options), затем идёт пароль, и в кавычках указываем ip-адрес, или * если выдавать из диапазона. Вот собственно и вся настройка.
Кстати, после того, как отредактируете все нужные файлы – перезапустите службу
/etc/init.d/pptpd restart
Естественно к вашему серверу должен быть доступ извне, т.е. в правилах iptables по необходимости добавить следующее:
Добавить комментарий