Настройка PPTP VPN сервера на Vyatta

Еще одна интересная тема. Мне недавно было необходимо настроить работу PPTP сервера на Vyatta. Vyatta очень специфичный Linux-дистрибутив основанный на системе Debian и используется в качестве шлюзов, фаерволов и VPN-концентраторов. Сама по себей настройка PPTP сервера на Linux банальна, но в Vyatta для конфигурирования системы используется CLI интерфейс, ну точнее это и не интерфейс вовсе, а набор команд для работы системы (A command-line interface (CLI)) Мне сервер был необходим что-бы иметь защищенный доступ к офисному шлюзу через такие устройства как iPad, iPhone, Android 4.1 & 4.2 любой телефон или таблет. Т.е. будучи в сети 3G телефон соединяется по туннелю с PPTP сервером и получает доступ ко всей системе. Удобно во многих случаях, так как на моем Android 4.1 телефоне есть терминал и я могу выполнять удаленно манипуляции с серверами на Linux в офисной сети. Как реализовать все это, читайте ниже.

Настройка PPTP сервера на Vyatta

Сначала обрисую ситуацию, на Vyatta шлюзе есть 6-ть сетевых интерфесов, 4-е внутренних, 1-ин для OpenVPN (vtun0) и один внешний, с постоянный IP адресом (pppoe). Наша цель подвесить PPTP сервер именно на внешний IP. PPTP тунельный протокол, соответсвенно необходимо будет дать клиентам внутренние IP адреса, также не стоит забывать, что на Vyatta шлюзе работает фаерволл, который закрывает все и вся, т.е. его необходимо настроить тоже, иначе он просто не пустит клиентов.

Поехали…

configure
set vpn pptp
configure
set vpn pptp

Режим аутентификации это юзер\пароль.
В моем случае юзер: user, пароль: 1234567

set vpn pptp remote-access authentication mode local
set vpn pptp remote-access authentication local-users username user password 1234567
set vpn pptp remote-access authentication mode local
set vpn pptp remote-access authentication local-users username user password 1234567

Устанавливаем размер клиентского пула локальных адресов:

set vpn pptp remote-access client-ip-pool start 192.168.100.110
set vpn pptp remote-access client-ip-pool stop 192.168.100.120
set vpn pptp remote-access client-ip-pool start 192.168.100.110
set vpn pptp remote-access client-ip-pool stop 192.168.100.120

Указываем DNS & WINS серверы, в моем случае, WINS необязательно.

set vpn pptp remote-access dns-servers server-1 192.168.98.2
set vpn pptp remote-access wins-servers server-1 192.168.98.2
set vpn pptp remote-access dns-servers server-1 192.168.98.2
set vpn pptp remote-access wins-servers server-1 192.168.98.2

Указываем внешний адрес, который и будет слушать PPTP сервер:

set vpn pptp remote-access outside-address 212.233.122.12
set vpn pptp remote-access outside-address 212.233.122.12

Принимае изменения и сохраняем их в текщий конфиг:

commit
save
exit
commit
save
exit

На этом настройка сервера оконченна.
Посмотреть только что принятые настройки можно так:

[email protected]# show vpn
ipsec  pptp
[edit]
[email protected]# show vpn pptp
 remote-access {
     authentication {
         local-users {
             username user {
                 password 1234567
             }
         }
         mode local
     }
     client-ip-pool {
         start 192.168.100.110
         stop 192.168.100.120
     }
     dns-servers {
         server-1 192.168.98.2
     }
     outside-address 212.233.122.12
 }
[edit]
[email protected]# show vpn
ipsec  pptp
[edit]
[email protected]# show vpn pptp
 remote-access {
     authentication {
         local-users {
             username user {
                 password 1234567
             }
         }
         mode local
     }
     client-ip-pool {
         start 192.168.100.110
         stop 192.168.100.120
     }
     dns-servers {
         server-1 192.168.98.2
     }
     outside-address 212.233.122.12
 }
[edit]

Настройка фаерволла на Vyatta

PPTP сервер слушает порт 1723, т.е. его надо открыть для доступа снаружи. Открываем конфигурационный файл:

vi /opt/vyatta/etc/config/config.boot
vi /opt/vyatta/etc/config/config.boot

Идем в секцию фаервола и добавляем правило:

        rule 20 {
            action accept
            description "Allow PPTP access from the Internet"
            destination {
                port 1723
            }
            protocol tcp
        }
        rule 20 {
            action accept
            description "Allow PPTP access from the Internet"
            destination {
                port 1723
            }
            protocol tcp
        }

Принимаем изменения в системе:

configure
load /opt/vyatta/etc/config/config.boot
commit
save
configure
load /opt/vyatta/etc/config/config.boot
commit
save

Проверить статус соедиенения можно так:

root@gateway:/home/vyatta# show vpn remote-access
Active remote access VPN sessions:
 
User       Time      Proto Iface Remote IP       TX pkt/byte   RX pkt/byte
---------- --------- ----- ----- --------------- ------ ------ ------ ------
vyatta     00h00m12s PPTP  ppp1  192.168.100.110      9    114      9    132
[email protected]:/home/vyatta# show vpn remote-access
Active remote access VPN sessions:

User       Time      Proto Iface Remote IP       TX pkt/byte   RX pkt/byte
---------- --------- ----- ----- --------------- ------ ------ ------ ------
vyatta     00h00m12s PPTP  ppp1  192.168.100.110      9    114      9    132

Факт что Vyatta редкий дистрибутив, по этому я в двойне надеюсь, что эта статья многим будет полезна. И конечно я продолжу цикл статей по настройке всевозможных сервисов сервисов для Vyatta.