Ключевые слова:adsl, modem, linux, vpn, pptp, ppp, (найти похожие документы)
From: Кавминводская Группа Пользователей Linux
Date: Mon, 20 Apr 2005 18:21:07 +0000 (UTC)
Subject: Настройка VPN соединения под Linux (через ADSL модем)
Оригинал: http://lug.kmv.ru/index.php?page=vpn
Чуточку о VPN в Linux
Данная статья не претендует на полноту описания натроек VPN. Здесь
описано решение конкретной задачи, и ни в коем случае не может
являться панацеей.
В наличии есть оборудование ADSL которое работает только мостом. Т.е.
вопросы маршрутизации, автоирзации и аккаунтинга она решать не может.
Именно поэтому было принято решение пускать пользователей через VPN.
Исходные данные:
1. Сервер на базе OS Linux (что может быть прекрасней :) )
2. DSLAM ZyXEL IES-1000 с модулями ADSL
3. Было указание выделять пользователям сетки по 4 ip. У меня
получилост 16 сетей по 4 адреса.
4. Сервисы каждого клиента должны быть видны из вне. Т.е. NAT мне не
подходит
Устанавливаем pppd. Версию и способ установки можете выбрать сами. Я
ставил из rpm версию 2.4.1
Устанавливаем pptpd. С ней заморочек не возникло. Установлена так же
из rpm, версия pptpd-server-1.1.2
Правим файлы.
/etc/pptpd.conf
#Указываем файл в котором будут настройки самого ppp соединения
options /etc/ppp/options.adsl
#Чтобы значть что происходит с pptpd включаем debug
debug
#Указываем на то что приниматься запрсы будут только на 192.168.0.3
listen 192.168.0.3
#В каком файлике хранится pid
pidfile /var/run/pptpd.pid
этот файлик остался нетронутым. Его используют пользователи dial-up
совместно с файлами вида options.ttyX
options
-detach
auth
login
proxyarp
modem
crtscts
lock
debug
options.adsl
ipparam PoPToP
lock
mtu 1490
mru 1490
192.168.0.3:192.168.65
ms-dns 192.168.0.3
proxyarp
auth
-pap
+chap
ipcp-accept-local
ipcp-accept-remote
deflate 0
Будем использовать CHAP аутентификацию. Заводить реальных
пользователей в системе не имеет смысла.
user * password 192.168.0.66
Я хочу присваивать IP по именам, поэтому в файле chap-secrets указываю
его явным образом. До подключения абонент настраивает свою сетевую
карту, прописывая первый ip адрес из отведенной ему сети с маской этой
сети, т.е.
ip 192.168.0.65
mask 255.255.255.252
gw 192.168.0.3
После подключения к серверу VPN ему отдается адрес 192.168.0.66 с
маской 255.255.255.255
Далее мне нужно разобраться с маршрутизацией подсетей и выпускать
пользователей за пределы своего сервера.
route add -net 192.168.0.64 netmask 255.255.255.252 eth0
route add -net 192.168.0.68 netmask 255.255.255.252 eth0
route add -net 192.168.0.72 netmask 255.255.255.252 eth0
....
route add -net 192.168.0.124 netmask 255.255.255.252 eth0
Теперь iptables
#Здесь позволяем нашим подсетям работать с pptpd и пропускаем протокол 47
iptables -A INPUT -p tcp -s 192.168.0.64/26 --sport 1024:65535 -d
192.168.0.3 --dport 1723 -j ACCEPT
iptables -A INPUT -p 47 -s 192.168.0.64/26 -d 192.168.0.3 -j ACCEPT
#Готовимся пропускать пользователей наружу и в их сторону. Здесь же
# считаем входящий/исходящий трафик
iptables -A FORWARD -i ppp+ -o eth0 -s 192.168.0.64/30 -d 0/0 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp+ -s 0/0 -d 192.168.0.64/30 -j ACCEPT
И так для каждой подсети, т.е. 16 раз :)
Вообще-то добавлять правила iptables можно в момент подключения
пользователя. Так даже гибче получится. Пишется скрипт по вкусу.
Запускается из /etc/ppp/auth-up. В этом же скрипте можете развить тему
биллинга, хоть повременного, хоть по объему трафика.
Теперь настройка MS клиента.
Настройка виндового клиента не составляет особого труда. В
Windows2000, например, создается VPN соединение с параметрами по
умолчанию, а затем в свойствах соединения убирается галочка
относительно шифрования данных.
PS: Эта статья написана скорее для того чтобы самому не забыть как
делалось, ну и заодно, может, пригодится кому.