pptpd PoPToPD настройка ubuntu

Настройка pptpd VPN на linux для выхода в интернет через шлюз.

В качестве VPN сервера воспользуемся пакетом pptpd
итак приступим:

1
apt-get install pptpd

редактируем файл:
/etc/pptpd.conf
в нем убираем комментарии со строк:

1
2
3
4
# IP-адрес сервера в VPN-сети:
localip 192.168.1.1
# Диапазон адресов для выдачи VPN-клиентам:
remoteip 192.168.1.102-154,192.168.1.101

Остальное не трогаем. после соединения с сервером вам присвоиться IP из этого диапазона , а локальный ip сервера станет 192.168.1.1.

Теперь правим файл: /etc/ppp/pptpd-options

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Требовать от клиента обязательное авутентификации:
auth
# Укажем файл, в который писать лог:
logfile /var/log/pptpd.log
# Адрес DNS-сервера, указываемого клиентам:
ms-dns 8.8.8.8
ms-dns 192.168.1.1
# Чтобы не сбивался маршрут по умолчанию:
nodefaultroute
# Опция proxyarp имеет смысл только если вы VPN-клиентам выделяете адреса
# из вашей реальной Ethernet-сети. У нас все VPN-клиенты находятся в другой VPN-подсети,
# поэтому эту опцию закомментируем:
#proxyarp

8.8.8.8 – это всем извесный DNS от google.
192.168.1.1 – это локальный DNS у меня на сервере он поднят.

Создаем пользователей, для этого добавляем в файл /etc/ppp/chap-secrets.

1
2
3
# Secrets for authentication using CHAP
# client<——>server<>secret<><——><——>IP addresses
userlogin            pptpd            password           *

# применим настройки файрвола через rc.local, можно сделать иначе, но я остановился на этом варианте.
nano /etc/rc.local

# добавляем строки до exit 0
iptables -A FORWARD -s 10.1.0.0/24 -j ACCEPT
iptables -A FORWARD -m state —state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth0 -j MASQUERADE

для openvz

iptables -t nat -A POSTROUTING -o venet0 -s 10.0.0.1/24 -j SNAT —to x.x.x.x
Where x.x.x.x is your server’s outgoing IP.

перезапускам сервис, чтобы параметры вступили в силу:

1
/etc/init.d/pptpd restart

пробуйте присоединиться к серверу, для этого в Windows ищите создание нового соединения там в комментариях указано VPN. Там указываете IP сервера, после появится окошко в нем указываете имя и пароль. Если все правильно сделали то Соединение пройдет успешно. Пробуйте интернет. Если интернет работает, то на этом все и закончилось для вас.

Если не работает делаете следущее:

в командной строке Windows (cmd) пишите:

tracert -d google.com
и смотрите что происходит, если одни звезды значит проблемы на сервере, ваши пакеты не проходят.

идем на сервер и прописываем следущее:

1
echo 1 >/proc/sys/net/ipv4/ip_forward

Если появился интернет на этом заканчиваем.

Если нет продолжаем
tracert -d google.com

Смотрите первым хостом пройденым должнен стать ваш сервис и появятся циферки вместо звезд.
но до конца всеравно ничего не доходит, значит на сервере надо настроить трансляцию адресов тоесть NAT:
идем на сервер и прописываем следущее

(разрешаем обращаться в интернет)

1
iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT

(разрешаем интернету отдавать пакеты)

1
iptables -A FORWARD -d 192.168.1.0/24 -m state —state ESTABLISHED,RELATED -j ACCEPT

 

(ethX заменить на внешний интерфейс, 123.123.123.123 заменить на внешний ip, с этого ип пользователи будут ходить в интернет)

узнать eth[0/1/2/3/4] и внешний IP, можно так:

1
ifconfig

она вам выдаст все интерфейсы и IP к ним привязанные. веберите нужный и укажите в командной строке

 

1
iptables -t nat -A POSTROUTING -s  192.168.1.0/24 -o ethX -j SNAT —to-source 123.123.123.123

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

 

 

vps

также возможно большое MTU

узнать какое MTU максимально

ping ya.ru  -f -l 1500

 

https://raw.github.com/cwaffles/ezpptp/master/ezpptp.sh

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.