Установка, настройка VPN-сервереа (PPTPD), настройка маршрутизации.

PPTPD — point-to-point сервер, для установки туннельного, защищённого соединения.

PPP (англ. Point-to-Point Protocol) — двухточечный протокол канального уровня (Data Link) сетевой модели OSI. Обычно используется для установления прямой связи между двумя узлами сети, причем он может обеспечить аутентификацию соединения, шифрование и сжатие данных. Используется на многих типах физических сетей: нуль-модемный кабель, телефонная линия, сотовая связь и т. д.

Часто встречаются подвиды протокола PPP такие, как Point-to-Point Protocol over Ethernet (PPPoE) , используемый для подключения по Ethernet, и иногда через DSL; и Point-to-Point Protocol over ATM (PPPoA), который используется для подключения по ATM Adaptation Layer 5 (AAL5), который является основной альтернативой PPPoE для DSL.

PPP представляет собой целое семейство протоколов: протокол управления линией связи (LCP), протокол управления сетью (NCP), протоколы аутентификации (PAP, CHAP), многоканальный протокол PPP (MLPPP).

Установка pptpd:

aptitude install pptpd

Настройка:

gedit /etc/ppp/pptpd-options

В этот конфиг добавляем строку logfile /var/log/pptpd.log — лог нашего сервера, и debug. Это не обязательно делать.

Дальше: gedit /etc/pptpd.conf

В конце файла добавьте две строки вида:
localip 192.168.0.1 # это виртуальный ИП адрес вашего сервера.
remoteip 192.168.0.234-238,192.168.0.245 # это диапазон адресов, которые будут даваться подключившимся к вам пользователям.

В gedit /etc/ppp/chap-secrets добавляем аккаунты клиентов.
# Secrets for authentication using CHAP
# client server secret IP addresses
xxx * 000000 192.168.10.232

Вот так выглядит это выглядит. ИП адресс можно не указывать, если не укажите — будет выдаватся какой то из диапазона выше указаных адресов. Имя — ххх, пароль — 000000. Не забудьте звёздочку.

После этого в терминале — pptpd — сервер запущен,готов к использованию.

Дальше нам нужно настроить маршрутизацию, так как будет создан только туннель точка-точка. Нам нужно направить поток интернета с одного туннеля в другой, и наоборот. Для этого напишем скрипт вот такого содержания.

#!/bin/sh
PATH=/usr/sbin:/sbin:/bin:/usr/bin

#
# delete all existing rules.
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

# Always accept loopback traffic
iptables -A INPUT -i lo -j ACCEPT

# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state —state NEW -i ! ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o ppp1 -m state —state ESTABLISHED,RELATED -j ACCEPT

# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i ppp1 -o ppp0 -j ACCEPT

# Masquerade.
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# Don’t forward from the outside to the inside.
iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
iptables -A FORWARD -i eth0 -o ppp0 -j REJECT
# Enable routing.
echo 1 > /proc/sys/net/ipv4/ip_forward

Собственно у меня два туннеля — ppp0 и ppp1,за то, что бы они обменивались ip-пакетами, отвечает эта часть скрипта:
# Allow established connections, and those not coming from the outside
iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state —state NEW -i ! ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o ppp1 -m state —state ESTABLISHED,RELATED -j ACCEPT

# Allow outgoing connections from the LAN side.
iptables -A FORWARD -i ppp1 -o ppp0 -j ACCEPT

Если, к примеру, у вас интернет имеется не через ppp0 а через любое другое соединение (посмотреть название вы можете набрав в терминале ifconfig) то вам нужно просто заменить ppp0 на этот интерфейс.

После этого сохраняем скрипт, даём определённый права на запуск и выполняем.

Всё это выполнялось на Ubuntu 11.04 desktop.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *