Я как-то уже писал про настройку VPN-сервера в Debian на основе OpenVPN, но т.к. у меня до конца не получилось ее реализовать(так и не смог заставить windows-клиентов подключаться, хотя в связке debian-debian vpn работал), я нашел другой способ — через pptp.
Итак начнем.(Основывался на статье ) Сервер Debian 5.0.4. Все делаем из под root'а. 1.
aptitude install pptpd
2. Редактируем /etc/pptpd.conf
option /etc/ppp/pptpd-options
stimeout 3 #Какая-то задержка...
localip 192.168.100.x #Устанавливаем локальный ip-адрес,
#который будет у виртуального интерфейса ppp0, можно указать диапазон
remoteip 192.168.100.(x+1)-(x+n) #Устанавливаем диапазон локальных ip-адресов,
#которые будут назначаться клиентам, можно один адрес
Как я понял, адреса должны быть в той же сети что и все компы, чтоб клиент мог к ним обращаться, но не должны совпадать с существующими, это я думаю и так понятно. 3. В /etc/ppp/chap-secrets задаем логин и пароль для авторизации
# Secrets for authentication using CHAP
# client server secret IP address
user pptpd 12345 *
1-ое поле user — это имя пользователя
2-ое pptpd — я так понял это метка, которая объявляется в следующем конфиге
3-е 12345 — пароль
4-е * — ip-адрес, который будет присвоен клиенты с данным именем и паролем, если указана "*" то адрес будет выбран из указанного выше диапазона, но можно указать конкретный адрес из того же диапазона. 4. Редактируем /etc/ppp/pptpd-options
auth
lock
debug #Включить отладку
name pptpd #Метка
nodefaultroute
refuse-pap #refuse - запрещает/отключает использовать шифрование
refuse-chap
refuse-mschap
require-mschap-v2 #Вроде виды шифрования, chap используют windows-клиенты
require-mppe-128
proxyarp
Если кто-то из читателей знает описание опций которые здесь не раскрыты, буду признателен если напишите их в комментариях, а я их добавлю в текст 5.В файл /etc/modules.conf советуют добавить строчку:
alias ppp-compress-18 ppp_mppe_mppc
но я ничего не добавлял. 6. Если у кого-то не включен форвардинг необходимо включить
echo 1 > /proc/sys/net/ipv4/ip_forward
и поместить в скрипт, который будет добавлять автоматом при загрузке системы, это я описывать не буду, т.к. я это делал в другом месте, по-моему при настройке iptables. В ссылке выше, автор дает пример, куда можно поместить.
На этом настройка сервера завершена. Перезапускаем ppptpd:
/etc/init.d/pptpd restart
Кому-то возможно придется настраивать firewall, т.к. появится новый интерфейс, скорее всего ppp0
Настройка windows-клиента.
Я опишу это на примере windows 7.
Открываем Центр управления сетями о общим доступом — Настройка нового подключения — Подключение к рабочему месту — подключение с помощью VPN. Вводим ip-адрес(внешний, если подключаетесь через интернет) или DNS-имя компьютера и любое имя для названия подключения. Вводите имя и пароль который указали в конфиге выше(в /etc/ppp/chap-secrets). Ну вот в принципе и все.
P.S. Проблема с которой я столкнулся при подключении windows-клиентом, это что он портит маршруты, которые у вас есть если вы подключаетесь из работающей сети (например с работы) в другую (в удаленный офис). Чтоб старые маршруты остались нетронутыми, а только появился маршрут в новую сеть заходим в свойства VPN-подключения — вкладка сеть — свойства протокола Интернета TCP/IP v.4 — Дополнительно — На вкладке Параметры IP убираем галочку «Использовать основной шлюз в удаленной сети». Отключаем VPN-соединение и подключаем вновь. Все, теперь у Вас нормальные маршруты.
P.P.S. Еще одна проблема при подключении из windows — Иногда не может подключиться с первого раза, приходится несколько раз нажимать «Повторить» (иногда много раз :) )
Настройка linux-клиента. На примере Debian 1. Устанавливаем ppp-клиента.
aptitude install pptp-linux
2. В /etc/ppp/chap-secrets (или mschap-secrets, если используется шифрование mschap/mschap-v2)задаем логин и пароль для авторизации (как на сервере)
# Secrets for authentication using CHAP
# client server secret IP address
user pptp 12345 *
3. Создаем файл /etc/ppp/options.pptp.vpn. Вместо слова vpn может использоваться любое слово, которое вам удобно, это будет имя подключения, оно будет еще использоваться в следующих конфигах. Пишем в него:
lock
noauth
refuse-pap
refuse-eap
refuse-chap
refuse-mschap
require-mppe-128
nobsdcomp #Не использовать сжатие (почему незнаю)
nodeflate
persist #Возобновлять подключение при разрыве
4. Создаем файл /etc/ppp/peers/vpn и пишем в него
pty "pptp <имя сервера или ip-адрес> --nolaunchpppd"
name логин #имя пользователя из файла /etc/ppp/chap-secrets
remotename pptp
file /etc/ppp/options.pptp.vpn
ipparam vpn
5. При первом подключении можно использовать отладку для вывода сообщений. Делаем это следующей командой
pon vpn debug dump logfd 2 nodetach
Если будут ошибки, то подключение прервется, у меня сначала были, я их не понимал, но было видно что ругается на MPPE, после чего я проверил чтоб в конфигах и на сервере и на клиенте была строчка require-mppe-128, после чего все подключилось. Если ошибок нет, то вывод просто остановится. Можно будет запустить второй терминал и проверить командой ifconfig -a что появился сетевой интерфейс ppp0, а также проверить наличие маршрута через ppp0 командой route
Если все нормально то подключаться можно командой
pon vpn
а отключаться
poff vpn
Чтоб не было проблем с маршрутами (как я описывал в примере с windows-клиентом) нужно добавить маршрут вручную в подключенную сеть (у меня это сеть 192.168.0.0)
route add -net 192.168.0.0 netmask 255.255.255.192 dev ppp0
Если после добавления маршрута все работает нормально, машины из удаленной сети видны, то можно добавление этого маршрута автоматизировать. Для этого создайте файл /etc/ppp/ip-up.d/vpn со следующим содержимым
pptp плохой выбор. Непонятно как работает, нет стабильности, непонятно что с безопасностью. OpenVPN прекрасно работает, что не получилось им реализовать?
Огромное спасибо! Но к сожалению я уже все конфиги погрохал :(. Но если Вы непротив, то я могу к Вам обратиться в следующий раз при какой-нибудь проблеме. Хотя ведь ничего не мешает поднять оба сервера. Можно попробовать еще раз. Может тогда пообщаемся в каком-нибудь более интерактивном режиме?
Интерактивно только за деньги. А так бесплатно и сразу для всех. Такие дела. Хорошая статья по OpenVpn тут. То что там FreeBSD не играет никакой роли. В Debian
apt-get install openvpn
И всё, дальше по статье (easy-rsa вроде идёт в том же пакете). Если конектите 2 сервака, то один просто может быть «клиент», то есть конфиги те же, что и для десктопного клиента. В логах обычно всё пишется, если траблы. В windows клиент может работать как прога в трее (по-умолчанию), так и сервисом (нужно галочки при инсталляции проставить). Разницы никакой, просто юзерам будет меньше надоедать.
Ещё по статье по ссылке указанной выше:
— параметр auth MD5 не указывайте, вытрите его вообще (тогда по дефолту будет работать sha1);
— юзайте стандартный порт (по памяти вроде 1194 udp);
— не забывайте открыть этот порт на фаерволах;
— могут быть ещё какие-то твики, от оригинала в статье, изучайте просто вопрос внимательней, что каждый параметр делает, их там немного;
— не забывайте отзывать сертификаты уволившихся людей ), мало ли.
Установлен Debian.
На эту команду aptitude install pptpd консоль выдает сообщение:
166 packages upgraded, 213 newly installed, 25 to remove and 676 not upgraded.
Такое ощущение что ты подключил на старую версию Дебиана репозиторий от нового и при установке он тебе обновит зависимые пакеты, но скорей-всего все сломается.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
И всё, дальше по статье (easy-rsa вроде идёт в том же пакете). Если конектите 2 сервака, то один просто может быть «клиент», то есть конфиги те же, что и для десктопного клиента. В логах обычно всё пишется, если траблы. В windows клиент может работать как прога в трее (по-умолчанию), так и сервисом (нужно галочки при инсталляции проставить). Разницы никакой, просто юзерам будет меньше надоедать.
Ещё по статье по ссылке указанной выше:
— параметр auth MD5 не указывайте, вытрите его вообще (тогда по дефолту будет работать sha1);
— юзайте стандартный порт (по памяти вроде 1194 udp);
— не забывайте открыть этот порт на фаерволах;
— могут быть ещё какие-то твики, от оригинала в статье, изучайте просто вопрос внимательней, что каждый параметр делает, их там немного;
— не забывайте отзывать сертификаты уволившихся людей ), мало ли.
Пакет vpnpptp работает и в Debian, и в Ubuntu и много где еще.
Установлен Debian.
На эту команду aptitude install pptpd консоль выдает сообщение:
166 packages upgraded, 213 newly installed, 25 to remove and 676 not upgraded.
Это так и должно быть или нет?