Задача: Дать доступ к корпоративной сети удаленным пользователям.
Установить на сервере в корпоративной сети сервер vpn, разрешить использование сетевых шар, удаленным пользователям. (в сети на каждую шару стоит ограничение доступа по ip)
Сервер в сети стоит за NAT'ом.
Решение:
1. Установка vpn сервера pptpd
Открываем конфиг /etc/pptp.conf
bcrelay eth1 - передача VPN-клиентам широковещателных пакетов, смотрящий на роутер (о настройке роутера ниже.)
localip - ip адреса vpn сервера в сети.
В данном случае:
refuse-pap - отключаем аутентификацию по протоколу pap
refuse-chap - отключаем аутентификацию по протоколу chap
refuse-mschap - отключаем аутентификацию по протоколу mschap
require-mppe-128 - требовать использование mppe с 128-битным шифрованием, в данном случае отключено
ms-dns - указывать клиентам днс сервер, в данном случае не нужно
nodefaultroute - указываем клиентам, не использовать vpn подключение шлюзом по умолчанию. для windows это не поможет, придется в ручную убирать галку в свойствах tcp подключения.
lock - создавать файл блокировки
proxyarp - если клиентам раздавать адреса из существующей сети, то нужно указывать. Если адреса клиентов из другой подсети, нужно за комментировать.
nobsdcomp - отключаем сжатие BSD-Compress (Если используется система не BSD отключить)
auth - требовать от сервера подтвердить свою подлинность перед началом обмена пакетами
Создаем пользователей, которые могут подключаться к vpn.
Открываем файл /etc/ppp/chap-secrets
пользователю name всегда будет присваиваться ip 192.168.0.151
Очень хорошо описаны все опции конфигов pptp - читать
Перезапускам сервер
Сервер работает. Но он не доступен из вне, так он еще и за nat'ом у нас. Исправим этом.
Необходимо разрешить входящие соединения по 47 протоколу, а так же входящие соединения на tcp порт 1723
Открываем настройки роутера. Раздел NAT. Указываем имя/выбираем из списка pptp
если в списке серверов, не оказалось pptp - указываем вручную порты 1723. Сохраняем.
Также удобно, если не выделенный ip/нет днс имени, зарегистрировать себе днс в dyndns.
в роутере также указан настрйоки dyndns. Не буду тут останавливаться, ничего сложного нет.
Если у кого сервер смотрит в интернет т.е. Не за натом. Используйте ddclient, описание здесь
2. Настройка подключения
На клиентах устанавливаем pptp-linux
Можно запустить создание подключения указав параметры.
username.dyndns.org - днс имя сервера
username/passw - логин / пароль pptp
При этом создаются/редактируется файл /etc/ppp/peers/vpn, можно его отредактировать
!upd: заметил, что рвется соединение при копировании файлов.
Посмотрел mtu.
Установить на сервере в корпоративной сети сервер vpn, разрешить использование сетевых шар, удаленным пользователям. (в сети на каждую шару стоит ограничение доступа по ip)
Сервер в сети стоит за NAT'ом.
Решение:
1. Установка vpn сервера pptpd
apt-get install pptpdНастройка pptp сервера.
Открываем конфиг /etc/pptp.conf
option /etc/ppp/pptpd-optionsoption - подключение конфиг файла, о нем ниже.
debug
bcrelay eth1
localip 192.168.0.1
remoteip 192.168.0.150-200
bcrelay eth1 - передача VPN-клиентам широковещателных пакетов, смотрящий на роутер (о настройке роутера ниже.)
localip - ip адреса vpn сервера в сети.
В данном случае:
- 192.168.0.1 - смотрит в сеть
remouteip - диапазон адресов для выдачи клиентам при подключении к vpn
Открываем конфиг /etc/ppp/pptpd-options
name pptpdname - имя сервера vpn
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
#require-mschap
#require-mppe-128
#ms-dns 192.168.0.1
nodefaultroute
lock
nobsdcomp
proxyarp
auth
logfile /var/log/pptpd.log
refuse-pap - отключаем аутентификацию по протоколу pap
refuse-chap - отключаем аутентификацию по протоколу chap
refuse-mschap - отключаем аутентификацию по протоколу mschap
require-mppe-128 - требовать использование mppe с 128-битным шифрованием, в данном случае отключено
ms-dns - указывать клиентам днс сервер, в данном случае не нужно
nodefaultroute - указываем клиентам, не использовать vpn подключение шлюзом по умолчанию. для windows это не поможет, придется в ручную убирать галку в свойствах tcp подключения.
lock - создавать файл блокировки
proxyarp - если клиентам раздавать адреса из существующей сети, то нужно указывать. Если адреса клиентов из другой подсети, нужно за комментировать.
nobsdcomp - отключаем сжатие BSD-Compress (Если используется система не BSD отключить)
auth - требовать от сервера подтвердить свою подлинность перед началом обмена пакетами
Создаем пользователей, которые могут подключаться к vpn.
Открываем файл /etc/ppp/chap-secrets
username name pptpd pass *пользователю username может назначится любой ip адрес из диапазона 150-200 (указывали в настройках). и этот пользователь доступен только для сервера "pptpd".
name * pass 192.168.0.151
пользователю name всегда будет присваиваться ip 192.168.0.151
Очень хорошо описаны все опции конфигов pptp - читать
Перезапускам сервер
/etc/init.d/pptpd restart
Сервер работает. Но он не доступен из вне, так он еще и за nat'ом у нас. Исправим этом.
Необходимо разрешить входящие соединения по 47 протоколу, а так же входящие соединения на tcp порт 1723
IPTABLES -A INPUT -p gre -s 0/0 -j ACCEPTА также нужно пробросить порт 1723 в роутере:
IPTABLES -A OUTPUT -p gre -m state --state RELATED,ESTABLISHED -j ACCEPT
IPTABLES -A INPUT -p tcp -s 0/0 --dport 1723 j ACCEPT
Открываем настройки роутера. Раздел NAT. Указываем имя/выбираем из списка pptp
если в списке серверов, не оказалось pptp - указываем вручную порты 1723. Сохраняем.
Также удобно, если не выделенный ip/нет днс имени, зарегистрировать себе днс в dyndns.
в роутере также указан настрйоки dyndns. Не буду тут останавливаться, ничего сложного нет.
Если у кого сервер смотрит в интернет т.е. Не за натом. Используйте ddclient, описание здесь
2. Настройка подключения
На клиентах устанавливаем pptp-linux
apt-get install pptp-linuxНастройка pptp подключения
Можно запустить создание подключения указав параметры.
pptpsetup -create vpn -server username.dyndns.org -username username -password passwvpn - имя подключения
username.dyndns.org - днс имя сервера
username/passw - логин / пароль pptp
При этом создаются/редактируется файл /etc/ppp/peers/vpn, можно его отредактировать
# written by pptpsetup
pty "username.dyndns.org --nolaunchpppd"
lock
nobsdcomp
nodeflate
name username
remotename vpn
ipparam vpn
pty - создать vpn подключение
lock - создать файл блокировки
name - логин
remotename - имя удалённой системы для аутентификации
linkname - устанавливает логическое имя канала.
ipparam - передавать ip адрес, с которого подключались к vpn
!upd: заметил, что рвется соединение при копировании файлов.
Посмотрел mtu.
ifconfig ppp1| fgrep -i mtuоказалось 1500
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1Тогда в созданное подключение (/etc/ppp/peers/vpn) добавил строку
mtu 1460Теперь соединение не рвется.
в файле /etc/ppp/chap-secrets - уже создана запись с логином и паролем для vpn
# added by pptpsetup for vpn
username vpn "passw" *
Пробуем подключится:
sudo pon vpnСмотрим лог подключения:
sudo plog
Sep 24 13:10:39 debian pppd[15573]: Connect: ppp1 <--> /dev/pts/3
Sep 24 13:10:40 debian pppd[15573]: CHAP authentication succeeded: Access granted
Sep 24 13:10:40 debian pppd[15573]: CHAP authentication succeeded
Sep 24 13:10:41 debian pppd[15573]: local IP address 192.168.0.150
Sep 24 13:10:41 debian pppd[15573]: remote IP address 192.168.0.1
Мы подключились.
Чтобы подключать vpn при загрузке компьютера, пропишем в файл /etc/network/interfaces
auto ppp1
iface ppp1 inet ppp
provider vpn
pre-up link set ppp0 up
pre-up link set ppp0 up - перед тем как подключить vpn проверяет, подключен ли интернет ppp0
Монтируем шару:
Я внес в /etc/fstab запись
//192.168.0.1/share /media/share smbfs username=user,password=pass,rw,iocharset=utf8,noauto,noexec,noatime 0 0И монтирую. конечно для начала нужно создать точку монтирования mkdir /media/share
mount /media/shareмонтирования описано тут
Комментариев нет:
Отправить комментарий