Минимальная конфигурация для дома или офиса

Post Reply
rasrzn
Posts: 3
Joined: 26 Apr 2020, 09:18

Минимальная конфигурация для дома или офиса

Post by rasrzn »

Минимальная конфигурация для дома или офиса SSTP VPN

Для поднятия sstp сервера понадобятся VPS и доменное имя.

В роли сервера будет выступать Linux Debian 8 x64 и accel-ppp версии 1.12-072, клиентами будут Windows 7/2008r2 и Mikrotik.

Перед установкой aсcel, для доменного имени которое будет использоваться для подключений, надо в панели управления у регистратора DNS создать А-запись указывающую на текущий ip-адрес VPS.
Screenshot_1.png
Screenshot_1.png (9.44 KiB) Viewed 19200 times
Устанавливаем accel по инструкции https://accel-ppp.org/wiki/doku.php?id= ... ion_debian

Приводим файл настроек к следующему виду:
Спойлер
[modules]
log_file

sstp

auth_mschap_v2

chap-secrets

[core]
log-error=/var/log/accel-ppp/core.log
thread-count=1

[ppp]
verbose=1
min-mtu=1280
mtu=1400
mru=1400
#accomp=deny
#pcomp=deny
#ccp=0
#mppe=require
ipv4=require
ipv6=deny
ipv6-intf-id=0:0:0:1
ipv6-peer-intf-id=0:0:0:2
ipv6-accept-peer-intf-id=1
lcp-echo-interval=20
#lcp-echo-failure=3
lcp-echo-timeout=120
unit-cache=1
#unit-preallocate=1

[sstp]
verbose=1
cert-hash-proto=sha1,sha256
#cert-hash-sha1=
#cert-hash-sha256=
accept=ssl
ssl-protocol=tls1,tls1.1,tls1.2,tls1.3
#ssl-dhparam=/etc/ssl/dhparam.pem
#ssl-ecdh-curve=prime256v1
#ssl-ciphers=DEFAULT
#ssl-prefer-server-ciphers=0
ssl-ca-file=/etc/ssl/sstp-ca.crt
ssl-pemfile=/etc/ssl/sstp-cert.pem
ssl-keyfile=/etc/ssl/sstp-key.pem
#host-name=domain.tld
http-error=allow
#timeout=60
#hello-interval=60
#ip-pool=sstp
#ipv6-pool=sstp
#ipv6-pool-delegate=sstp
ifname=sstp%d

[dns]
dns1=8.8.8.8
#dns2=172.16.1.1

[client-ip-range]
0.0.0.0/0

[log]
log-file=/var/log/accel-ppp/accel-ppp.log
log-emerg=/var/log/accel-ppp/emerg.log
log-fail-file=/var/log/accel-ppp/auth-fail.log
#log-debug=/dev/stdout
#syslog=accel-pppd,daemon
#log-tcp=127.0.0.1:3000
copy=1
#color=1
#per-user-dir=per_user
#per-session-dir=per_session
#per-session=1
level=3

[chap-secrets]
gw-ip-address=192.168.11.1
chap-secrets=/etc/ppp/chap-secrets
#encrypted=0
#username-hash=md5

[cli]
verbose=1
telnet=127.0.0.1:2000
tcp=127.0.0.1:2001
#password=123
#sessions-columns=ifname,username,ip,ip6,ip6-dp,type,state,uptime,uptime-raw,calling-sid,called-sid,sid,comp,rx-bytes,tx-bytes,rx-bytes-raw,tx-bytes-raw,rx-pkts,tx-pkts
Создаём файл с логинами\паролями для клиентов.

Code: Select all

touch /etc/ppp/chap-secrets
Редактируем его, добавляя нужных нам пользователей:

Code: Select all

user1 * user1pass 192.168.11.2
user2 * user2pass 192.168.11.3
Переходим в папку /etc/ssl/ и создаём самоподписанные сертификаты для подключения к серверу.
  1. Создаём корневой ключ:

    Code: Select all

    openssl genrsa -out sstp-ca.key
  2. Создаём корневой сертификат:

    Code: Select all

    openssl req -x509 -new -key sstp-ca.key -days 3650 -out sstp-ca.crt
  3. Создаём ключ для сервера sstp:

    Code: Select all

    openssl genrsa -out sstp-key.pem
  4. Формируем запрос на сертификат:

    Code: Select all

    openssl req -new -key sstp-key.pem -out sstp-csr.csr
  5. Подписываем запрос на сертификат корневым сертификатом:

    Code: Select all

    openssl x509 -req -in sstp-csr.csr -CA sstp-ca.crt -CAkey sstp-ca.key -CAcreateserial -out sstp-cert.pem -days 3650
Запускаем сервер:

Code: Select all

systemctl start accel-ppp
Переходим к клиентам. На windows-клиент копируем два файла: sstp-ca.crt и sstp-cert.pem
Запускаем консоль mmc.exe и добавляем оснастку «Сертификаты» управлять сертификатами для учётной записи компьютера.
Screenshot_3.png
Screenshot_3.png (20.46 KiB) Viewed 19200 times

После этого импортируем файлы sstp-ca.crt и sstp-cert.pem в «Доверенные корневые центры сертификации\Сертификаты»
Если с сертификатами всё хорошо, то оба сертификата будут действительными.
Screenshot_4.png
Screenshot_4.png (48.86 KiB) Viewed 19200 times
Далее создаём новое VPN-подключение к серверу по доменному имени, тип VPN SSTP, проверка подлинности MS-CHAP v2, логин\пароль из файла /etc/ppp/chap-secrets
Соединение с сервером можно устанавливать.

Чтобы заработал интернет через SSTP VPN надо разрешить пересылку пакетов между интерфейсами на сервере.
В /etc/sysctl изменяем следующее:

Code: Select all

net.ipv4.ip_forward = 1
После чего выполняем

Code: Select all

sysctl -a
Добавляем правило в iptables

Code: Select all

iptables -t nat -I POSTROUTING -o <ethernet> -j MASQUERADE
Настраиваем второго клиента — Mikrotik

С ним всё намного проще, для подключения по SSTP ему достаточно указать адрес подключения (можно ip, можно домен) и логин\пароль. Сертификаты не обязательны.

Теперь если выполнить в консоли команду

Code: Select all

 accel-cmd show sessions 
можно увидеть две активные сессии от пользователей user1 и user2

root@root:~# accel-cmd show sessions
ifname | username | calling-sid | ip | type | comp | state | uptime
--------+----------+--------------+--------------+------+------+--------+----------
sstp0 | user2 | 95.xxx.xx.xxx | 192.168.11.3 | sstp | | active | 00:29:17
sstp1 | user1 | 5.xxx.xxx.xxx | 192.168.11.2 | sstp | | active | 00:28:40

Автозапуск сервера активируется командой:

Code: Select all

systemctl enable accel-ppp.service
Настройка сервера закончена.
rasrzn
Posts: 3
Joined: 26 Apr 2020, 09:18

Re: Минимальная конфигурация для дома или офиса

Post by rasrzn »

Вариант настройки с сертификатами от Let's Encrypt.

Если нет своего домена для подключения, то можно зарегистрировать бесплатный домен 2-го уровня на сайте freenom.com

Например, регистрируем домен sstptest.tk

При регистрации указываем IP адрес нашего сервера VPS, где будет установлен SSTP, это будет являться А-записью.
Screenshot_7.png
Screenshot_7.png (57.99 KiB) Viewed 19166 times
Устанавливаем certbot

Генерируем сертификат для домена.

В файле настроек /etc/accel-ppp.conf в разделе [sstp] прописываем путь к полученным сертификатам

ssl-ca-file=/etc/letsencrypt/live/домен/fullchain.pem
ssl-pemfile=/etc/letsencrypt/live/домен/cert.pem
ssl-keyfile=/etc/letsencrypt/live/домен/privkey.pem

Перезапускаем accel командой

Code: Select all

systemctl restart accel-ppp
Проверить что с сертификатом всё корректно можно на сайтах https://www.sslshopper.com/ssl-checker.html https://www.digicert.com/help/ или https://www.ssllabs.com/ssltest/ введя имя своего домена.
Screenshot_8.png
Screenshot_8.png (29.33 KiB) Viewed 19166 times
С сертификатом всё хорошо, он доверенный, теперь можно подключаться любыми клиентами без установки сертификатов на них.

Также сертификаты можно генерировать на сайте https://www.sslforfree.com/
Post Reply