Настройка сети и ВПН подключения «вручную» в Linux. Предварительная настройка роутинга. Настройка серверной части на Ubuntu Linux

Не является эталоном безопасности и плохо дружит с фаерволами, но является одним из самых простых способов построения изолированной локальной сети и установки защищённого соединения с ней. При том, что протокол PPTP достаточно дырявый, чтоб не использовать его в корпоративных сетях и там, где нужна гарантия конфиденциальности, он вполне приемлем для построения частных сетей для обмена информацией, либо выхода в Интернет через такие сети. В любом случае, уязвимость протокола не останавливает многих интернет-провайдеров от подключения своих клиентов именно через PPTP.

При определённых настройках между клиентом и сервером устанавливается прямое шифрованное соединение в стандартной, незащищённой сети. Таким образом данный тип соединения может быть использован для выхода в Интернет из публичных Wi-Fi сетей и интернет-кафе.

И так, для начала нам нужен сервер. Для VPN сетей с небольшой нагрузкой виртуального сервера (VPS) более чем достаточно. Проблема в том, что порог вхождения на рынок интернет-услуг, мягко говоря не высок. Соответственно качество этих услуг часто оставляет желать лучшего. В любом случае, перед покупкой необходимо уточнит разрешены ли у хост-провайдера VPN сети вообще и включены ли на их VPS NAT и TUN/TAP .

На правах рекламы я рекомендую провайдера . Я пользуюсь их услугами с момента открытия ими второго дата-центра в Нью-Йорке (почти 2 года) и за это время нареканий к их работе у меня не возникло. За почти десять лет я сменила множество провайдеров и мне есть с чем сравнить. То есть это действительно современный сервис «для людей». В случае с DigitalOcean, поддержка VPN включается в один клик клиентом при создании VPS. После регистрации и внесения минимального месячного платежа клиент сам выбирает конфигурацию своего VPS (Droplet, в терминологии DigitalOcean), которая варьируется от 512 MB RAM и 20 GB дискового пространства, до тех мощностей, которые клиенту по карману. Система виртуализации - KVM , накопители - SSD диски. Деньги со счёта клиента списываются ежедневно из расчёта почасовой оплаты. Клиент в любое время может пересоздать, изменить или уничтожить свой Droplet, а так же создать новый. Они гордятся своими 55-ю секундами и по факту, действительно, между нажатием кнопки «создать» и получением письма с IP-адресом и паролем для root-доступа проходит не больше минуты. DigitalOcean так же продают услуги в Амстердаме, что для европейских и восточноевропейских клиентов, возможно, более предпочтительно из-за расстояния и пинга между сервером и аудиторией этого сервера. В любом случае, при создании VPS нужно поставить галку напротив «Private Networking», чтоб включить в конфигурацию NAT и TUN/TAP.

Я настоятельно не рекомендую без острой необходимости использовать 32-х битные дистрибутивы современных операционных систем в виду устаревшей архитектуры и того, что сами разработчики уделяют им гораздо меньшее внимание, по сравнению с 64-х битными. Таким образом в природе существует 32-х битная серверная версия Ubuntu 14.04, но на официальном сайте Ubuntu она не представлена там, где предлагается загрузка образа этой ОС.

И так, после того как с сервером мы определились, то приступаем к установке. В моём случае это VPS с 1024 RAM и 64-х битной Ubuntu 14.04 в качестве ОС.

Aptitude install pptpd

Разрешаем IP-forwarding. Для этого редактируем файл /etc/sysctl.conf и в нём либо расскоментируем, либо добавляем следующую строку, если таковая отсутствует:

Net.ipv4.ip_forward = 1

Для принятия изменений в терминале командуем:

Правим файл /etc/pptpd.conf и приводим его к следующему виду:

Option /etc/ppp/pptpd-options logwtmp localip 10.30.1.1 remoteip 10.30.1.30-40,10.30.1.15

Где localip - IP виртуального сетевого интерфейса ppp0. Не нужно прописывать сюда внешний IP сервера, или IP других сетевых интерфейсов сервера.
Remoteip - диапазон клиентских адресов в количестве десяти (от 10.30.1.30 и до 10.30.1.40), а так же (через запятую) выделенные адреса (если таковые необходимы). В моём случае выделенный адрес один. Вы можете указать здесь любое приемлемое значение.
Например:

Localip 10.10.1.1 remoteip 10.10.1.100-200,10.10.1.25,10.10.1.26

В таком случае динамичные адреса, раздаваемые клиентам присутствуют в количестве ста штук и два адреса зарезервированы.

User1 pptpd password "*" user2 pptpd password "10.30.1.15"

В файле у нас два пользователя user1 и user2, password - пароли пользователей, звёздочка в кавычках говорит о том, что user1 получит свободный IP из указанного в /etc/pptpd.conf диапозона, а за user2 закреплён выделенный адрес. Соблюдение синтаксиса обязательно.

Редактируем файл /etc/ppp/pptpd-options
name pptpd refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe-128 ms-dns 8.8.8.8 ms-dns 8.8.4.4 proxyarp nodefaultroute lock nobsdcomp novj novjccomp nologfd noipx mtu 1400 mru 1400

Где ms-dns - DNS сети. Указаны публичные адреса Google, но можно выставить свои, если таковые имеются. MTU и MRU по умолчанию установлены в значение 1500. Если удалить эти две строки, то будет использоваться значение по умолчанию. В моём случае при значениях по умолчанию наблюдается большая потеря пакетов. То есть к этим строкам подход индивидуальный. Всё зависит от настроек клиентской стороны и от скорости соединения в целом.

Перезагружаем pptp сервер

Service pptpd restart

Проверяем.

Netstat -alpn | grep:1723

Если получаем нечто похожее на то, что на скриншоте, то всё работает как надо.

Создаём правила NAT для iptables

Iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save

Если хотим, чтоб клиенты видели друг друга в локальной сети и могли обмениваться файлами, то прописываем следующие правила:

Iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT iptables --append FORWARD --in-interface eth0 -j ACCEPT

Сохраняем

Iptables-save

Если вы используете стороннюю программу для настроек фаервола, то перед тем как вносить через неё изменения, следует убедиться, что принятые только что правила отображаются в этой программе. Я использую панель управления Webmin и фаервол обычно настраиваю через неё. Соответственно там отображаются лишь те правила, которые были внесены через неё. Если добавить правило и применить, то изменения, принятые через терминал в процессе настройки PPTP сервера перезапишутся. Чтоб этого не произошло, в Webmin, в настройках фаервола нужно вернуть текущую конфигурацию iptables. Убеждаемся, что принятые изменения присутствуют в списке правил и только тогда жмём «сохранить».

На этом всё. Ниже два скриншота с настройками подключения на стороне клиента (Windows и Linux).

После удачного соединения можно вывести список сетевых интерфейсов с помощью команды ifconfig и убедиться в том, что всё работает.

Поскольку PPTP не является примером безотказности ввиду своих сложных отношений с фаерволом, то можно слегка ускорить Сеть, завернув трафик через прокси сервер. То есть клиенты локальной сети будут выходить из неё в Интернет через прокси сервер. Как установить и настроить Squid я . Ниже конфигурация Squid 3.3 для Ubuntu 14.04, позволяющая клиентам локальной сети выходить в Интернет.

Http_port 8085 icp_port 0 cache_mem 256 MB memory_replacement_policy lru maximum_object_size_in_memory 512 KB cache_swap_low 90 cache_swap_high 95 access_log /var/log/squid3/access.log squid logfile_rotate 12 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 dns_nameservers 8.8.8.8 8.8.4.4 positive_dns_ttl 6 hours negative_dns_ttl 1 minutes #auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords #auth_param basic children 5 #auth_param basic realm Please provide your username and password. #auth_param basic credentialsttl 24 hour #acl ncsa_users proxy_auth REQUIRED acl localnet src 10.0.0.0/8 # RFC 1918 possible internal network acl localnet src 172.16.0.0/12 # RFC 1918 possible internal network acl localnet src 192.168.0.0/16 # RFC 1918 possible internal network acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl SSL_ports port 443 # https acl SSL_ports port 22 # ssh acl All_ports port 1-65535 # unregistered ports acl CONNECT method CONNECT http_access allow localnet #http_access allow ncsa_users http_access allow All_ports http_access allow CONNECT SSL_ports http_access deny all coredump_dir /var/spool/squid3 request_header_access Cache-Control deny all

В данной конфигурации Squid будет обслуживать клиентов локальной сети без пароля, из внешних сетей доступ к нему будет закрыт. Если раскомментировать закомментированые строки конфигурации, то клиенты локальной сети по прежнему смогут обращаться к нему без пароля, но так же будет возможен доступ из вне, но уже с паролями, указанными в файле «passwords».

Для клиентов локальной сети адрес прокси должен быть локальным. Смотрите скриншот выше с выводом команды «ifconfig». У меня на сервере два физических сетевых интерфейса: eth0, который смотрит в Интернет и eth1 - интерфейс, смотрящий в локальную сеть. Таким образом в моём случае адрес прокси будет 10.128.9.55. Для клиентов из внешних сетей в качестве адреса должен служить внешний IP сервера.

Таким образом PPTP нет необходимости пробрасывать трафик от клиента во внешнюю сеть через фаервол. Этим будет заниматься Squid.

На этом всё. Наша сеть работает.

Инструкция

Проверьте, существует ли поддержка протокола PPP в ядре вашей операционной системы. Проще всего это сделать, просмотрев значения опций с префиксом CONFIG_PPP в файле текущей конфигурации ядра. Обычно он устанавливается в каталог /boot и имеет имя, начинающееся с config. Узнайте имя данного файла при помощи команды
ls /boot
или
ls /boot | grep conf
Выведите нужные строки командой cat, осуществив фильтрацию при помощи grep. Например:
cat /boot/config-2.6.30-std-def-alt15 | grep PPP
Проанализируйте строки, содержащие опции CONFIG_PPP, CONFIG_PPP_ASYNC, CONFIG_PPP_SYNC_TTY. Если перед ними нет символа #, поддержка соответствующего функционала имеется (при значениях m - в виде внешнего модуля, при значениях y - включена в ядро).

Проверьте, инсталлировано ли в системе клиентское программное обеспечение для установления VPN-соединений. Нужный пакет обычно носит имя, начинающееся с pptp. Используйте apt-cache с опцией search для поиска нужного пакета в доступных репозиториях и rpm с опцией -qa для того, чтобы проверить, установлен ли пакет. При работе в графической среде может иметь смысл воспользоваться такими программами, как synaptic.

Произведите инсталляцию недостающего программного обеспечения. Используйте подходящие менеджеры пакетов (apt-get, rpm в консоли, synaptic в графической среде, и т.д.). Если была осуществлена инсталляция пакета ppp с модулями ядра для поддержки соответствующего протокола, перезагрузите компьютер.

Попробуйте настроить VPN при помощи скриптов конфигурирования, таких как pptp-command или pptpsetup. Часто они входят в состав пакетов с клиентским ПО для установки VPN-соединений. Для получения справки по параметрам командной строки данных утилит используйте их запуск с опцией --help. Например:
pptpsetup --help
Если конфигурирующие скрипты установлены не были, перейдите к следующему шагу для осуществления ручной настройки VPN.

Создайте каталог /etc/ppp, а в нем - файл с именем chap-secrets. Откройте файл в текстовом редакторе. Добавьте в него строку вида:
LOGIN SERVER PASSWORD *
Значения LOGIN и PASSWORD - имя пользователя и пароль. Они должны предоставляться провайдером услуг доступа к VPN. Вместо SERVER укажите произвольное имя соединения или *.

Создайте каталог /etc/ppp/peers. Создайте в нем файл, имеющий имя, совпадающее со значением SERVER из предыдущего шага (или произвольное имя, если было указано значение *). Отредактируйте этот файл, добавив в него информацию вида:
pty "pptp SERVER --nolaunchpppd"
name LOGIN
ipparam SERVER
remotename SERVER
lock
noauth
nodeflate
nobsdcomp
Значения LOGIN и SERVER здесь - те же, что и в шаге 5. На этом настройку VPN в Linux можно считать законченной.

Полезный совет

Подключение к VPN осуществляйте командой
pppd call SERVER
где SERVER - имя соединения, совпадающее с аналогичным значением из шага 6.

Операционные системы на базе Linux приобретают все большее распространение в качестве основной рабочей среды для настольных компьютеров. Это происходит вследствие совершенствования графических оболочек, предоставляющих пользователю удобный интерфейс для решения подавляющего большинства задач. Так, настроить сеть в линуксе сегодня можно, используя административную оснастку KDE.

Вам понадобится

  • - пароль пользователя root.

Инструкция

Запустите программу конфигурирования системы. Откройте меню запуска приложений графической оболочки, разверните раздел настроек. Найдите пункт «Центр управления системой» или System management center. Кликните по нему. Введите пароль пользователя root, если он будет запрошен. Данное приложение также можно выполнить из консоли или окна запуска программ, введя команду acc.

Перейдите к конфигурированию сетевых интерфейсов. В окне центра управления системой найдите раздел Network. Кликните по кнопке Ethernet interfaces.

Настройте сетевые интерфейсы. На текущей странице центра управления системой в списке Interfaces выделите нужный пункт. В выпадающем списке Configuration выберите метод конфигурирования: Manually, Use DHCP или Zeroconf. Введите адреса DNS-серверов в поле DNS servers. При выборе ручного способа конфигурирования (Manually), задайте IP-адрес и сетевую маску в полях IP address и Netmask соответственно. Нажмите кнопку Apply для применения изменений. Нажмите кнопку Main для перехода к предыдущей странице.

Возле ректора 27 мая 2011 в 22:04

Настройка сети и ВПН подключения «вручную» в Linux

  • Чулан *

Мы будем настраивать параметры сети используя дистрибутив Ubuntu, для других дистрибутивов настройка будет незначительно отличатся.

В некоторых дистрибутивах Вы найдете утилиту настройки сети «network-manager», которая позволяет настраивать параметры сети через графический интерфейс. В данном руководстве мы откажемся от её использования и будем настраивать всё сами, вручную.

Так как ВПН часто приходится настраивать на машине, у которой больше нет другого выхода в интернет, то советую заранее припастись пакетом pptp-linux с официального репозитория. В некоторых дистрибутивах пакет pptp-linux находится на установочном диске. В дальнейшем он нам понадобится для настройки VPN-соединения.

Настройка сети
1. Запускаем терминал . Applications (Приложения) - Стандартные - Терминал.
Выполним такую команду sudo apt-get remove network-manager , далее пароль пользователя и удаляем «network-manager».

2. Вводим команду ifconfig -a , перед нами появляется список всех(активных и неактивных) сетевых устройств, которые именуются как eth0, eth1, eth2 и т.д. У меня стоит одна сетевая карта (eth0 ) к которой подключена локальная сеть, поэтому в примерах будет использоваться eth0 .

3. Почти вся информация о настройках сети и методах ее активации хранится в файле /etc/network/interfaces, именно с ним мы и будем работать. Вводим в терминале sudo nano /etc/network/interfaces , далее пароль пользователя. Итак, мы запустили консольный редактор nano, с помощью которого и будут редактироваться файлы настроек. Перемещение курсора осуществляется с помощью стрелок вверх, вниз, влево, вправо:-). В открытом файле будут такие строки:

Auto lo
iface lo inet loopback

auto lo - говорит о том, что локальная петля lo поднимается автоматически при загрузке системы.
Интерфейс lo - интерфейс обратной петли и позволяет компьютеру обращатся к самому себе. Интерфейс имеет ip-адрес 127.0.0.1 и необходим для нормальной работы системы.

4. Редактируем файл и добавляем несколько строк:

Auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address xxx.ххх.ххх.ххх
netmask 255.255.255.0
gateway xxx.ххх.ххх.1

auto eth0 - говорит о том, что сетевая карта eth0 поднимается автоматически во время загрузке системы.
iface eth0 inet static - указывает, что интерфейс(iface) сетевой карты(eth0) находится в диапазоне адресов ipv4(inet) со статическим ip(static)
address xxx.ххх.ххх.ххх - статический ip адрес, тут Вы должны записать свой ip
netmask - стандартная маска сети
gateway xxx.ххх.ххх.1 - ip адрес основного шлюза, также замените на ip адрес Вашего шлюза

Редактирование закончено. Жмем Ctrl+O для сохранения, Ctrl+X для выхода из консольного редактора nano.

5. Необходимо записать адреса основного и вспомогательного серверов DNS в файл /etc/resolv.conf. Снова идем в терминал и набираем sudo nano /etc/resolv.conf, далее пароль пользователя. Добавляем строку:

nameserver xxx.xxx.xxx.1
nameserver xxx.xxx.xxx.2

xxx.xxx.xxx.1 и xxx.xxx.xxx.2 - замените на ip адреса Вашего основного и вспомогательного серверов DNS. Жмем Ctrl+O для сохранения, Ctrl+X для выхода из консольного редактора nano.

Теперь перейдем к настройке VPN-соединения
Помните в начале рукаводства я просил скачать пакет pptp-linux, надеюсь он уже имеется у Вас. Пришло время его установить. Установили? Отлично, переходим дальше.

1. Снова идем в терминал и набираем sudo nano /etc/ppp/options.pptp , далее пароль пользователя. Добавляем нижеуказанные строки:

lock
noauth
nobsdcomp
nodeflate
persist

Все остальные строки просто комментируйте используя знак # в начале строки.

2. Создаем файл подключения VPN. Для этого набираем в терминале sudo nano /etc/ppp/peers/vpn
defaultroute
pty "pptp MyVPN.com --nolaunchpppd"
name MyLogin
remotename PPTP
+chap
file /etc/ppp/options.pptp
ipparam vpn

Обязательно замените значение MyLogin на Ваш логин, а MyVPN.com на адресс Вашего VPN сервера. Жмем Ctrl+O для сохранения, Ctrl+X для выхода из консольного редактора nano.

Опишу некоторые параметры:
defaultroute - устанавливаем маршрут по умолчанию;
+chap - тип аутентификации. Помимо +chap может использоваться тип +pap .
file - читать дополнительные настройки из заданного файла.

3. Редактируем файл /etc/ppp/chap-secrets. Для этого вводим в терминале sudo nano /etc/ppp/chap-secrets , далее пароль пользователя. Добавляем строку:
MyLogin PPTP MyPassword *

Замените MyLogin на свой логин, а MyPassword на Ваш пароль для подключения. Жмем Ctrl+O для сохранения, Ctrl+X для выхода из консольного редактора nano.

4. Набираем в терминале sudo nano /sbin/vpn , далее пароль пользователя. Вставляем туда следующие строки:
#!/bin/sh
case "$1" in
start)
echo -n "Starting vpn: "
pon vpn
sleep 5
route add default dev ppp0
ifconfig
echo
;;
stop)
echo -n "Stopping vpn: "
poff vpn
sleep 5
route del default dev ppp0
ifconfig
echo
;;
*)
echo "*** Usage: vpn {start|stop}"
exit 1;
;;
esac
exit 0

Жмем Ctrl+O для сохранения, Ctrl+X для выхода из консольного редактора nano.

На этом наши настройки заканчиваются. Теперь перезагрузить сетевое соединение, используясь команду sudo /etc/init.d/networking restart , далее пароль пользователя.

Для подключения ВПН набираем в терминале:
sudo sh /sbin/vpn start

Для отключения ВПН набираем в терминале:
sudo sh /sbin/vpn stop

Теги: linux vpn сеть

Рассмотрев в предыдущих частях теоретические вопросы перейдем к практической реализации. Сегодня мы рассмотрим создание VPN сервера PPTP на платформе Ubuntu Server. Данный материал рассчитан на читателей, имеющих навыки работы с Linux, поэтому мы не будем отвлекаться на вещи описанные нами в других статьях, таких как настройку сети и т.п. Если вы испытываете затруднения - предварительно изучите другие наши материалы.

Практическое знакомство с VPN мы начнем с PPTP, как наиболее простого в реализации. Однако следует помнить о том, что это слабозащищенный протокол и его не следует использовать для доступа к критически важным данным.

Рассмотрим схему, которую мы создали в нашей тестовой лаборатории для практического знакомства с данной технологией:

У нас имеется локальная сеть 10.0.0.0/24 с сервером терминалов 10.0.0.2 и 10.0.0.1, который будет выполнять функции VPN сервера, для VPN мы зарезервировали сеть 10.0.1.0/24. Внешний интерфейс сервера имеет условный выделенный IP адрес X.X.X.X. Наша цель - предоставить удаленным клиентам доступ к терминальному серверу и общим ресурсам на нем.

Настройка сервера PPTP

Установим пакет pptpd реализующий функционал PPTP VPN:

Sudo apt-get install pptpd

Теперь откроем файл /etc/pptpd.conf и зададим основные настройки VPN сервера. Перейдем в самый конец файла, где укажем адрес сервера в VPN сети:

Localip 10.0.1.1

И диапазон адресов для выдачи клиентам:

Remoteip 10.0.1.200-250

Адресов нужно выделить не меньше, чем возможных одновременных соединений, лучше с небольшим запасом, так как их увеличение без перезапуска pptpd невозможно. Также находим и раскомментируем строку:

Bcrelay eth1

Это позволит передавать VPN клиентам широковещательные пакеты внутренней сети.

Также можно использовать опции listen и speed , первая позволяет указать IP адрес локального интерфейса для прослушивания входящих PPTP соединений, второй указать скорость VPN соединений в бит/с. Например разрешим серверу принимать PPTP соединения только с внешнего интерфейса:

Listen X.X.X.X

Более тонкие настройки находятся в файле /etc/ppp/pptpd-options . Настройки по умолчанию вполне соответствуют нашим требованиям, однако кратко рассмотрим некоторые из них, чтобы вы имели представление о их назначении.

Секция #Encryption отвечает за шифрование данных и проверку подлинности. Данные опции запрещают использование устаревших и небезопасных протоколов PAP, CHAP и MS-CHAP:

Refuse-pap
refuse-chap
refuse-mschap

Require-mschap-v2
require-mppe-128

Следующая секция #Network and Routing , здесь следует обратить внимание на опцию ms-dns , которая позволяет использовать DNS сервер во внутренней сети. Это может быть полезно при доменной структуре сети или наличия в ней DNS сервера который содержит имена всех ПК сети, что дает возможность обращаться к компьютерам по их именам, а не только по IP. В нашем случае данная опция бесполезна и закомментирована. Подобным образом можно задать и адрес WINS сервера опцией ms-wins .

Здесь же находится опция proxyarp , включающая, как несложно догадаться из названия, поддержку сервером Proxy ARP.

В секции #Miscellaneous содержится опция lock , которая ограничивает клиента одним подключением.

Ivanov * 123 *
petrov * 456 10.0.1.201

Первая запись позволяет подключаться к серверу пользователю ivanov c паролем 123 и присваивает ему произвольный IP адрес, вторая создает пользователя petrov с паролем 456, которому при подключении будет присваиваться постоянный адрес 10.0.1.201.

Перезапускаем pptpd :

Sudo /etc/init.d/pptpd restart

Важное замечание! Если pptpd не хочет перезапускаться, зависая на старте, а в /var/log/syslog добавляя строку long config file line ignored обязательно добавьте в конец файла /etc/pptpd.conf перенос строки.

Наш сервер готов к работе.

Настройка клиентских ПК

В общем случае достаточно настроить VPN соединение с опциями по умолчанию. Однако мы советуем явно указать тип соединения и отключить лишние протоколы шифрования.

Далее, в зависимости от структуры сети, необходимо указать статические маршруты и основной шлюз. Эти вопросы подробно разбирались в предыдущих частях.

Устанавливаем VPN соединение и пробуем пропинговать какой либо ПК в локальной сети, мы без каких либо затруднений получили доступ к терминальному серверу:

Теперь еще одно важное дополнение. В большинстве случаев доступ к компьютерам локальной сети будет возможен только по IP адресам, т.е. путь \\10.0.0.2 будет работать, а \\SERVER - нет. Это может оказаться неудобным и непривычным для пользователей. Существует несколько способов решения данной проблемы.

Если локальная сеть имеет доменную структуру, достаточно указать DNS сервером для VPN подключения DNS сервер контроллера домена. Воспользуйтесь опцией ms-dns в /etc/ppp/pptpd-options сервера и данные настройки будут получены клиентом автоматически.

Если DNS сервер в локальной сети отсутствует, то можно создать и использовать WINS сервер, информацию о нем также можно автоматически передавать клиентам при помощи опции ms-wins . И наконец, если удаленных клиентов немного, использовать на клиентских ПК файлы hosts (C:\Windows\System32\drivers\etc\hosts), куда следует добавить строки вида.

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 специально для сайт

###############################################################################

Аутентификация

Имя локальной системы аутентификации

(Должно быть вторым в файле /etc/ppp/chap-secrets) (после имени пользователя)

name pptpd

Опционально – имя домена для аутентификации.

domain mydomain.net

Префикс домена из имени пользователя до аутентификации.

(применяется если вы используете pppd с chapms-strip-domain патчем)

#chapms-strip-domain

Шифрование

На заметку – refuse-выкл. тип шифрования, require – вкл. тип шифрования

refuse-pap

refuse-chap

Включим 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

Пишем логи

Включаем дебаггинг с записью логов.

Показать все установленные опции.

(Часто по просьбе список рассылки, чтобы поверить опции). Лично я вообще не #понял что это за вещь, и с чем её едят. Я даже сомневаюсь в правильности

#перевода… Ну да ладно, всё равно опция не важна.

Разное

Использовать блокировку портов UCPP, чтобы одновременно несколько # последовательных устройств не обращались к одному порту

Отключить BSD-Compress сжатие.

nobsdcomp

###########################################################################

Как вы могли заметить, я выделил несколько параметров жирным. Это минимальные 7 параметров для приемлемой работы VPN сервера. Т.е. ваш минимальный конфиг pptpd-options может выглядеть так:

name pptpd

require-mschap-v2

require-mppe-128

proxyarp

nodefaultroute

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 по необходимости добавить следующее:

Разрешить всем протокол GRE iptables -A INPUT -p gre -j ACCEPT # Разрешить соединение с VPN-сервером; iptables -A INPUT -m tcp -p tcp —dport 1723 -j ACCEPT

ВНИМАНИЕ! Это только половина статьи! О том, как подключаться разными клиентами на разных операционных системах, а так же маршрутизации и приведение примера объединения двух и более офисов в 1 сеть, мы расскажем вам позже.

2015-12-12T18:46:56+00:00 admin Обзоры Статьи pptpd,VPN,Администрирование,Безопасность,Установка