Настройка VPN подключения под Linux Данная инструкция написана на основе Debian 3.1.
Для успешного подключения к VPN серверу GT необходимо наличие в ядре поддержки mppe и пакета pptp-linux.
При соответствующих изменениях может быть использована и для других Linux.
Перед началом работы, проверьте, что установлен пакет pptp-linux.
Этот пакет - клиентская часть VPN.
На данный момент существует два варианта подключения к VPN в зависимости от района и оборудования ГТ.
Первый, вам выдали статические адреса для подключения, и второй - адреса определяются автоматически (по DHCP).
Предположим, что от провайдера вы получили следующие реквизиты:
IP адрес VPN сервера 10.19.0.1
IP вашего компьютера 10.20.0.17
Маска 255.255.255.252
Шлюз 10.20.0.18
Имя пользователя: my_login
Пароль пользователя: my_pass
Будьте внимательны!!!
Вышеуказанные реквизиты условны и вы должны заменить их своими данными!!
Для того, чтобы подключить компьютер к Интернету, используя VPN, требуется отредактировать три файла и создать один файл:
1. Файл описания сетевого (или нескольких) интерфейса.
/etc/network/interfaces
2. Файл паролей
/etc/ppp/chap-secrets
3. Вновь созданный файл в каталоге /etc/ppp/peers/, названный, например, tunnel.
/etc/ppp/peers/tunnel
4. Файл инициализации (переинициализации).
/etc/inittab
1. /etc/network/interfaces
Предположим, что у вас имеется два сетевых интерфейса eth0 и eth1.
Интерфейс (сетевая карта) eth0 для внутренней сети имеет,
например: ip 192.168.0.1
mask 255.255.255.0
Интерфейс, выходящий в Интернет (eth1), имеет настройки, полученные от провайдера.
Например: ip 10.20.0.17
mask 255.255.255.252
gate 10.20.0.18
Примечание : Возможно, в вашем районе адреса назначаются автоматически по DHCP, в этом случае провайдер вам выдает только адрес Vpn-сервера, логин и пароль.
################ начало файла ########################## # /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface
auto lo
iface lo inet loopback
# The first network card - this entry was created during the Debian installation # (network, broadcast and gateway are optional) auto eth0 iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
# Настройки второго интерфейса, выходящего в Интернет # (network, broadcast and gateway are optional) auto eth1 iface eth1 inet static
address 10.20.0.29
netmask 255.255.255.252
# Для доступа к VPN серверу провайдера необходим маршту, # поэтому дописывается строка
up route add 10.19.0.1 gw 10.20.0.18
################### конец файла ######################
Внимание:
1. Если адреса назначаются по DHCP, то настройки внешнаго интерфейса выглядят так :
auto eth1
iface eth1 inet dhcp
2. Если ваш компьютер имеет только одну сетевую карту, то настройки eth1
применяются для eth0 и секция eth1 удаляется.
3. Если сетевых карт две и в Интернет "смотрит" eth0, то настройки eth0 и eth1
просто меняются местами.
4. После изменения файла interfaces для поднятия интерфейса нужно дать команду ifconfig eth1 up
2. /etc/ppp/chap-secrets
В этот файл необходимо добавить строку, содержащую информацию об авторизации, полученную от првайдера.
Замените слова my_login и my_pass своими данными.
#################### начало файла ######################## # Secrets for authentication using CHAP
# client server secret IP addresses
my_login * "my_pass" *
##################### конец файла #######################
3. /etc/ppp/peers/tunnel
Во вновь созданный файл tunnel в каталоге /etc/ppp/peers/ скопируйте нижеследующее содержимое и замените слово my_login своими данными
А также в строке pty "/usr/sbin/pptp 10.19.0.1 --nolaunchpppd"
адрес 10.19.0.1 должен быть VPN сервером провайдера, mtu 1492 - рекомендуется.
#################### начало файла ######################## # Configuration file for PPP, using PPP over Ethernet # to connect to a DSL provider.
#
# See the manual page pppd(8) for information on all the options.
##
# Section 1
#
# Stuff to configure...
# MUST CHANGE: Uncomment the following line, replacing the user@provider.net # by the DSL user name given to your by your DSL provider.
# (There should be a matching entry in /etc/ppp/pap-secrets with the password.)
user my_login
# Use the pppoe program to send the ppp packets over the Ethernet link # This line should work fine if this computer is the only one accessing # the Internet through this DSL connection. This is the right line to use # for most people.
pty "/usr/sbin/pptp 10.19.0.1 --nolaunchpppd"
# If the computer connected to the Internet using pppoe is not being used # by other computers as a gateway to the Internet, you can try the following # line instead, for a small gain in speed:
#pty "/usr/sbin/pppoe -I eth0 -T 80"
# An even more conservative version of the previous line, if things # don't work using -m 1452...
#pty "/usr/sbin/pppoe -I eth0 -T 80 -m 1412"
# The following two options should work fine for most DSL users.
# Assumes that your IP address is allocated dynamically # by your DSL provider...
noipdefault
# Comment out if you already have the correct default route installed
defaultroute
##
# Section 2
#
# Uncomment if your DSL provider charges by minute connected # and you want to use demand-dialing.
#
# Disconnect after 300 seconds (5 minutes) of idle time.
#demand
#idle 300
##
# Section 3
#
# You shouldn't need to change these options...
#hide-password
#lcp-echo-interval 20
#lcp-echo-failure 3
# Override any connect script that may have been set in /etc/ppp/options.
connect /bin/true
#require-chap
noauth
persist
mtu 1492
#debug
#kdebug 15
##################### конец файла #######################
После этого можно попробовать установить соединение командой pppd call tunnel При успешном соединении с сервером провайдера в системе должен появиться дополнительный ppp интефейс, который будет видно в ifconfig
4. Если есть необходимость, в том чтобы pptp соединенте поднималось всегда, например сразу же при загрузке компьютера и дальше постоянно было активным, то в файл :
/etc/inittab
нужно добавить только одну строку в самом конце.
#################### начало файла ######################## # /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
# The default runlevel.
id:2:initdefault:
# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
# /etc/init.d executes the S and K scripts upon change # of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
# Action on special keypress (ALT-UpArrow).
#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last # characters of the device (after "tty").
#
# Format:
# <id>:<runlevels>:<action>:<process>
#
# Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
# Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
# Example how to put a getty on a modem line.
#
#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
# Эта строка добавлена для установки соединения T3:23:respawn:/usr/sbin/pppd nodetach call tunnel ##################### конец файла #######################
После перезагрузки pptp активизируется автоматически.
__________________________________________________________
Дополнительная информация:
Если компьютер под Linux'ом использовать в роли шлюза, то клиентские компьютеры могут не соединиться с отдельными сайтами.
В частности: www.dom2.ru, www.erc.ur.ru, а также соединение "клиент-банк" ВУЗ-банка.
Проблема вызвана несовместимостью сетевых настроек MTU.
MTU (Maximum Transmission Unit) - это максимальный размер пакета получаемых/передаваемых данных.
Значение MTU по умолчанию - 1500, а протокол PPPoE использует 1492 или 1454.
Способ решения проблемы:
0. Установить VPN подключение.
1. Определите IP адрес вашего шлюза (default gateway). Для этого наберите route -n в командной строке на машине, где установлен Linux, в строчке начинающейся с 0.0.0.0 нужное нам значение находится в столбике Gateway.
2. Затем на одной из клиентских машин наберите:
PING -f -l 1500 xxx.xxx.xxx.xxx (где xxx.xxx.xxx.xxx - адрес шлюза, который Вы получили на предыдущем шаге).
Вполне вероятно, что вы получите сообщение об ошибке, указывающее, что пакет должен быть фрагментирован.
Если это так, то попробуйте:
PING -f -l 1492 xxx.xxx.xxx.xxx. Если и эта команда не работает, то:
PING -f -l 1454 xxx.xxx.xxx.xxx.
Числа в каждом из этих примеров (1500, 1492, 1454) - значения MTU. Продолжайте запускать эту команду, постепенно уменьшая значения MTU до тех пор, пока вместо сообщения об ошибке не появится нормальный ответ со стороны шлюза. Наибольшее значение MTU из сработавших и является тем, которое Вам нужно использовать.
3. Сконфигурируйте все ваши клиентские компьютеры так, чтобы вместо значения MTU по умолчанию, использовать другое значение.
Для Windows 2000 и XP:
- Запустите Редактор реестра (REGEDIT.EXE) на одной из ваших клиентских машин.
- Найдите ключ HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces
Там должно быть несколько вложенный ключей для ключа Interfaces; вероятнее всего, их будет три.
- Посмотрите содержание каждого ключа, и найдите тот, который соответствует вашему сетевому адаптеру. Создайте в нем новый параметр MTU типа DWORD.
- Кликните дважды на новом значении, выберите опцию Decimal, и введите значение MTU, определенное вами.
- Для вступления изменений в силу перезагрузите Windows.
Windows 98 / ME:
- Запустите Registry Editor (REGEDIT.EXE) на одной из ваших клиентских машин.
- Перейдите в раздел HKEY_LOCAL_MACHINESystemCurrentControlSetServicesClassNet
- В этой ветви найдите ключ (типа 0005), который содержит TCP/IP, задаваемый значением DriverDesc.
- Создайте параметр MaxMTU типа "Строковой параметр".
- Щелкните дважды на новом значении, выберите опцию Decimal, и введите значение MTU, определенное выше.
- Перезагрузите Windows для того, чтобы изменения вступили в силу.
Повторите описанную выше процедуру для каждой клиентской машины во внутренней сети.
Для упрощения задачи можно использовать программы умеющие изменять MTU, например DrTCP MTU Registry Tweak Utility.