Категория:
Писал статью про установку различных ТВ-тюнеров, но тут свалилась срочная работа, в одной небольшой компании нужно было провести ИТ-аудит, и настроить доступ удаленных площадок в внутреннюю сеть компании.Так вместо, "про тюнеры" получилась статья "про VPN".
На шлюз, с двумя сетевыми карточками, был установлен OpenSuse 11.2, без X-Windows. С провайдером было настроено соединение PPPoE, через один из интерфейсов, с помощью YAST. Интернет на шлюзе появился. Теперь нужно, раздать интернет в внутреннюю сеть и настроить подключение по VPN внешних площадок по M$ Windows, часть из которых используют Yota.
Первое что я установил это был mc (Ностальгия по Norton Commander )
sudo zypper install mc
В качестве сервера VPN, я решил использовать pptpd, хотя можно было использовать и openvpn.
Устанавливаем pptpd
sudo zypper install pptpd
Настраиваем файл конфигурации /etc/pptpd.conf
Я оставил его почти, без изменений за исключением двух строк
localip 192.168.110.1
Это IP который использует сам сервер VPN при соединении с клиентом.
remoteip 192.168.110.100-110
Это диапазон IP выдается клиентам при подключении.
Можно выдавать адреса и из внутренней локальной сети (и использовать параметр proxyarp), но я это не делал специально, так как доступ нужен был к конкретному серверу, а не к всей внутренней локальной сети.
в файле /etc/pptpd.conf есть еще один параметр.
option /etc/ppp/options.ppp0
Этот параметр указывает на файл, конфигурации PPP. Причем по умолчанию, при установке пакета, он не создается и запуск демона приведет к ошибке.
В этом файле вообще немного параметров и к ним есть комментарии. Cоздаем файл /etc/ppp/options.ppp0, я не стал, заморачиваться и просто скопировал, уже существующий /etc/ppp/options.pptp (так как у меня стоял уже PPTP Client) под именем /etc/ppp/options.ppp0 и отредактировал его.
# Lock the port
lock
auth
# Включаем автoризацию
name pptpd
# Имя сервера VPN
refuse-pap
refuse-mschap
refuse-eap
#Отключаем все протоколы кроме chap
nobsdcomp
nodeflate
mtu 1400
mru 1400
#Выставляем MTU
lcp-echo-failure 5
lcp-echo-interval 30
Открываем файл /etc/ppp/chap-secrets и прописываем логины и пароли например
vasya pptpd pA$$word "*"
# login password IP
Вместо "*", можно прописать для каждого клиента IP из пула адресов прописанного в /etc/pptpd.conf. Но будьте осторожны, если вы допустим прописали адрес 192.168.110.100 для vasya, а этот адрес был выдан уже для другого коннекта, то при подключении vasya, предыдущей пользователь будет отключен.
Все настроено, запускаем демон
/etc/init.d/pptpd start
Настраиваем VPN соеденение в M$ Windows
На вкладке "Безопасность" выбираем "Дополнительно" и указываем следующие параметры:
Шифрование - "необязательное"
Отключаем все протоколы и включаем CHAP соединяемся и проверяем коннект, с клиента должен пинговаться 192.168.110.1..
Здесь я сделаю маленькое примечание на счет Yota.
Рекомендованный MTU для Mobile WiMAX=1386, техническая поддержка Yota сказала, что надо установить MTU=1372. В общем если, оставить MTU по умолчанию для PPTP в M$ Windows, то соеденение нестабильное, например попытка подключения по RDP, приводила к разрыву VPN. Я не стал высчитывать точное значение MTU (был уже вечер субботы) , а установил для протокола MTU=1400, а для соединения VPN MTU=1350. Все заработало. Если не знаете как поменять MTU идем по ссылке читаем и меняем.
Если у вас WIN7 (с правами админа)
netsh interface ipv4 set subinterface "Название подключения" mtu=xxxx store=persistent
Ну вот, теперь переходим к настройке Firewall,напоминаю, что нужно обеспечить раздачу интернета на офис и обеспечить доступ подключенных по VPN клиентов к одному из серверов в локальной сети офиса.
Настройки хранятся в файле /etc/sysconfig/SuSEfirewall2, приведу и опишу те значения которые нужны для обеспечения работы VPN и разадчи интернета.
-----------------------
FW_DEV_EXT="any dsl0 eth0"
FW_DEV_INT="eth1"
#Назначем интерфесы
FW_ROUTE="yes"
FW_MASQUERADE="yes"
#Включаем роутинг и маскарадинг
FW_MASQ_NETS="0/0"
#Даем неограниченный доступ в интернет из внутренней сети
FW_SERVICES_EXT_TCP="1723"
#Открываем порт для VPN
FW_SERVICES_EXT_IP="47"
#Открываем протокол GRE=47
FW_FORWARD="192.168.110.0/24,192.168.10.3 192.168.10.3,192.168.110.0/24"
#Открываем доступ на сервер 192.168.10.3 из нашей сети VPN 192.168.110.0/24
----------------------------------------
Ну вот и все, VPN работает, интернет раздается, в дальнейшем на сервер был установлен Squid2 в режиме "прозрачного" прокси и lightsquid, но это тема уже для другой статьи.
Всем удачи!
PS: Статья перенесена со старого форума, под авторством DrStrip 23/06/2010
Я бы в /etc/ppp/options.pptp добавил следующие строки
#шифрование
require-mschap-v2
require-mppe-128
и в конце
logfile /var/log/pptpd.log
Шифрование поможет избежать ошибок юзверей (при отключенном шифровании по дефолту все что выше висты отваливается и надо изменять настройки соединения), а логи это всегда хорошо
Тока вот одна ошибка возникла при настройке файрвола нужно ещё указать в FW_DEV_INT="eth1 ppp"