Канал на Youtube


Бесплатная техподдержка !

VPN сервер Ubuntu


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

  Для этих целей можно использовать виртуальные частные сети (Virtual Private Network - VPN). В нашем случае, это будет самый распространенный протокол в странах СНГ, а именно - PPTP (Point-to-Point Tunneling Protocol). Многие кабельные провайдеры интернета используют именно его для предоставления услуг доступа ко Всемирной сети.

  Поднять свой сервер на Linux Ubuntu Server LTS не так уж трудно. Для этого нам понадобится доступ к Интернету и реальный IP (если нужно будет подключаться из Интернета).

  Заходим на сервер, используя учетную запись root и устанавливаем необходимые пакеты командой apt-get install pptpd Нам предложат также установить пакет bcrelay, он позволяет дублировать широковещательные пакеты, принятые на входящем интерфейсе на виртуальные (PPP тоннели клиентов).

Установка vpn сервера

  Нажимаем enter и наш сервер установлен. Приступим к конфигурации. Откроем файл nano /etс/pptpd.conf и в самом низу увидим следующие строки

#localip 192.168.0.1
#remoteip 192.168.0.234-238,192.168.0.245
# or
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245

  Это настройки IP адресов клиентов. Раскомментируем первые две строки (удалим символ #) и немного подправим их.

  Строка localip 192.168.0.1 значит, что у нашего VPN сервера будет IP 192.168.0.1 можно указать наш IP в одной из непосредственно подключенных сетей. Например, у меня в домашней сети у сервера IP адрес - 172.30.2.1 Чтобы не нагружать сервер еще и ненужной маршрутизацией я использовал его же.

  Вторая строка - remoteip 192.168.0.234-238,192.168.0.245 указывает диапазон IP адресов, которые будут присваиваться клиентам. Как видно из этих строк, сетевой адрес может быть любым (во второй группе строк). Для удобства мы выберем его из того же диапазона что и IP нашего сервера.

  Я использую дома такую логику выдачи IP: 1й - роутер, 2-19 - компьютеры, 20-49 - статический VPN (при подключении выдается один и тот же адрес), 50-100 - VPN клиенты, 101-199 - Wi-Fi клиенты, 200-254 - для различных устройств (например IP роутера, телевизора и т.п). Укажем такой диапазон remoteip 172.30.2.50-100 и сохраним конфигурацию.

  Перейдем в каталог cd /etс/ppp/ здесь хранятся все файлы настройки pptpd (сервер) и pppd (клиент).

  Переименуем файл pptpd-options командой mv pptpd-options pptpd-options.bak и создадим его по новой nano pptpd-options Это сделано для того, чтобы легче было вставить несколько строк в новый файл, чем искать параметры среди десятков строк с комментариями. Вставим в этот новый файл такое содержимое:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
#require-mppe-128
ms-dns 172.30.2.1
nodefaultroute
lock
nobsdcomp
auth
logfile /var/log/pptpd.log

  Что все это значит? Давайте по порядку:

  • Использовать имя pptpd для поиска логинов в chap-secrets
     
  • При указании этой опции pptpd не согласится аутентифицироваться по протоколу refuse-pap, refuse-chap, refuse-mschap
     
  • Требовать у партнёра аутентификации с помощью MS-CHAPv2
     
  • Требовать использования MPPE со 128-битным шифрованием require-mppe-128 т.е. шифровать весь трафик. Это увеличивает нагрузку на сервер и не все "слабые" устройства его поддерживают (Wi-Fi роутеры и т.п.).
     
  • Предложить использовать DNS сервер с IP 172.30.2.1
     
  • nodefaultroute - не устанавливать шлюз по умолчанию от сервера к клиенту, в противном случае, весь трафик в Интернет будет послан через подключившегося клиента, также Интернет отключится из-за потери маршрута к провайдеру.
     
  • Lock - блокировать сессии, т.е. с одного логина может быть только одно подключение
     
  • nobsdcomp - не сжимать трафик. При включении увеличивает нагрузку на наш сервер
     
  • auth - требовать авторизации (логин и пароль)
     
  • logfile /var/log/pptpd.log - писать логи работы в этот файл.

 
 Сохраняем и закрываем этот конфигурационный файл.

   Теперь нужно добавить пользователей, которые будут подключаться к нашему серверу. Откроем файл nano chap-secrets (он используется для хранения учетных записей PPP).

  Для корректной работы нужно соблюдать такой формат: колонки должны быть разделены хотя бы одним пробелом или табом (Tab), не допускается использование пробелов в именах (иначе пробел рассматривается как следующая колонка), логин должен начинаться на букву. Например:

Добавление пользователей vpn сервера

  Первая колонка - это логин пользователя, вторая - имя сервиса. В нашем случае это pptpd. Далее - пароль пользователя, последняя - IP адрес, который будет выдан. Причем, если стоит * то IP адрес будет выдан из заданного ранее диапазона автоматически. Также в качестве IP можно указать адрес, который может быть за пределами диапазона.

  Перед тем, как использовать сервер, нужно его перезапустить. Для этого выполним /etс/init.d/pptpd restart если в конфигурации нет ошибок, сервер будет запущен.

Перезапуск сервера VPN

rоot@CoolServ:/etс/ppp# /etс/init.d/pptpd restart
Restarting PPTP:
Stopping PPTP: pptpd.
Starting PPTP Daemon: pptpd.

  Если вы используете IPTables (фаервол) в него нужно добавить такие строки:

# VPN - PPTPD
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT

  Для предоставления доступа к Интернету VPN клиентам через наш сервер нужно дописать такое правило в IPTables:

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

   где eth1 - интерфейс в сторону Интернета.

   Для проверки можно создать тестовое подключение VPN с отключенным шифрованием (не обязательным) и используя любой указанный логин подключиться к серверу.

  Частые ошибки при подключении

691 - проверьте логин и пароль (регистр и пробелы в нем)
718 - проблема с настройкой фаервола на сервере или сервер не смог запуститься
741 или 742  - нужно отключить обязательное шифрование на стороне клиента


  Чтобы создать клиентское подключение PPTP из Windows XP выполняем следующие пункты: нажимаем "Пуск" - "Панель управления" - "Сеть и подключения к интернету" - "Сетевые подключения".

Создание нового vpn подключения
 

   Жмем на "Создание нового подключения" - это запустит "Мастер новых подключений".

Мастер создания нового подключения
 

  Нажимаем "Далее". В следующем окне выбираем "Подключить к сети на рабочем месте".

Подключиться к сети на рабочем месте
 

  Нажимаем кнопку "Далее" Теперь выбираем "Подключение к виртуальной частной сети" и снова давим на "Далее"

Подключение к виртуальной частной сети
 

  Теперь вписываем название подключения. Здесь можно написать что угодно, это будет просто названием подключения, для примера мы напишем "PPTP" (по типу соединения).

Даем название нашему подключению
 

   Может появиться следующий вопрос «Использовать настроенные подключения к Интернету?» (Если у Вас уже настроено подключение PPPoE), в нем нажимаем "Не набирать номер".


 

  Если такое сообщение не появилось, читаем далее.

   Теперь у Вас попросят ввести адрес сервера, указываем IP вашего сервера или его имя.

Указываем адрес VPN сервера
 

  Нажимаем далее. Ставим по желанию галочку "Создать ярлык на рабочем столе" и жмем "Готово". Запускаем только что созданное VPN подключение:

Окно удаленного подключения
 

  В окне, показанном на фото выше, выбираем "Свойства". Появится окошко в котором выбираем вкладку "Безопасность". Находим в нем пункт "Требуется шифрование данных" и убираем галочку. в противном случае мы не сможем подключиться, будут появляться ошибки 741 или 742  - «требуемый тип шифрования не поддерживается сервером».

Включаем шифрование данных
 

  После этого нажимаем кнопку «ОК», возвращаемся в предыдущее окно, вводим логин, пароль и подключаемся к нашему удаленному серверу по защищенному VPN каналу !



предыдущая  следующая
главная

Полина
Не работает, ошибка 807. что делать?

Михаил
Настроил VPN согласно инструкции вашей статьи, подключение создается, но за пределы сервера выйти не могу. На сервере три интерфейса, только они и пингуются. eth0 - интернет, eth1 и eth2 - локальная сеть. Что упускаю, что-бы увидеть машины локалок? Спасибо за ранее.

Кахович Андрей
Можете попробовать связаться с автором (его почтовый адрес в конце статьи).

Я из Ташкента
Автору спасибо. У меня таое случай. Есть филиалы. Допустим подключается через РРТР на сервер 1.2.3.4 и получает ИП 5.6.7.0/24. Далее все клиенты должны использовать ресурса расположенного 8.9.10.1 и при этом каждый клиент использовать в НАТе свой собственный ИП. Т.к 8.9.10.1 сервер регисрирует и по ИП адресам клиента.

John
Вопрос непонятен. Вы просто сообщаете, что сделали такую сеть, или что-то хотите узнать?
Задайте вопрос на форуме, там есть подходящие ветки. И подробностей побольше, пожалуйста.

Самвел
делаю все так как описано, но при подключении с внешного мира выдает ошибку 828 типа не найден адрес удаленного сервера. как исправить подскажите пожалуйста

vady-ra
Тут может быть несколько причин. 1) Ошибки в настройке подключения 2) сервер находится за NAT или не имеет реального статического IP (если подключаетесь через инет). Если не получилось - напишите мне на почту, попробуем решить.

Самвел
покопался в настройках, эта ошибка пропала теперь выдает ошибку 800, знаю че за ошибка

имя впн сервера это я понимаю локальный айпи сервака?брандмаэур вроде настроил разрешил входящый травфик, на счет ПО думаю это отпадает там на сервере убунту 13,04. Уже не знаю че делать с внешного мира не подключается

vady-ra
Это dns имя/ip сервера. те если у сервера ip 1.2.3.4 то нужно в подключении клиента их и писать. Если вы за NATом и настроили проброс портов (порт 1723 TCP) на сервер, то нужно писать dns/ip NATа

george
Конечно в свете последних событий (история со Сноуденом) это хорошее решение для обеспечения анонимности. Мне же советуют просто пользоваться платным vpn сервером. Предлагают http://www.anonymize.net/ или http://anonymous-proxy-server.net/, если кто-то слышал об этих сервисах, буду рад любой инфе. С уважением

Кахович Андрей
Ну, анонимайзеры (к тому же - платные). К организации защищенного vpn соединения отношения не имеют   !;)

Виталий
Спасибо! Очень интересная статья.

Кахович Андрей
Пожалуйста, Виталий, рады что понравилось!

Владимир
Огромнейшее спасибо за труд!
Начал осваивать и добавил в свою копилку еще одну систему, к ряду Windows и Hackintosh.

Но и с нетерпением жду продолжения статьи по UEFI.

Кахович Андрей
Рады что понравилось, Владимир! Про Uefi - подумаем  :)


Страницы: [1]


Бесплатные авторские уроки !