Здравствуйте! У меня возникла проблема при настройке SSTP сервера на Ubuntu 16.04 по <a href="https://github.com/maxqfz/SSTP" rel="nofollow">этой</a> инструкции. Я, кажется, выполнил все шаги правильно, но сервер не запускается и выдает ошибку. Вот вывод команды для проверки состояния сервиса: <br/> <pre><code>root@51285:/home/stealch# systemctl status sstpd.service * sstpd.service - SSTP VPN server Loaded: loaded (/etc/systemd/system/sstpd.service; enabled; vendor preset: enabled) Active: activating (auto-restart) (Result: exit-code) since Mon 2025-01-27 02:53:23 EET; 19s ago Process: 7500 ExecStart=/usr/local/bin/sstpd -f /etc/sstpd.ini (code=exited, status=2) Main PID: 7500 (code=exited, status=2) Jan 27 02:53:23 51285.ip-ptr.tech systemd[1]: sstpd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT Jan 27 02:53:23 51285.ip-ptr.tech systemd[1]: sstpd.service: Unit entered failed state. Jan 27 02:53:23 51285.ip-ptr.tech systemd[1]: sstpd.service: Failed with result 'exit-code'.</code></pre> <br/> Я скопировал конфигурацию из инструкции, создал сертификат и изменил пути в sstpd.ini на реальные, а дальнейшие действия мне неясны. SSTP всегда была для меня "темной лошадкой", а сейчас ситуация только усложняется. Также мне пока неясно, как подключиться к микротику, но без работающего сервера это не имеет смысла. Как мне поступить в данной ситуации?
Здравствуйте! Проблема с запуском SSTP сервера на вашем Ubuntu можно решить несколькими шагами диагностики и настройки. Давайте пройдемся по основным пунктам: ### 1. Проверка конфигурации Убедитесь, что ваш файл конфигурации `/etc/sstpd.ini` корректен. Минимальная конфигурация может выглядеть так: ```ini [general] ; log level (0 - off, 1 - error, 2 - info, 3 - debug) log-level = 2 [server] ; путь к вашему сертификату и приватному ключу certificate = /etc/ssl/certs/your_cert.pem private-key = /etc/ssl/private/your_key.pem ; сетевой интерфейс (например, eth0) interface = eth0 ; порт, на котором SSTP будет слушать (обычно 443) port = 443 ; путь к ipsec и pppd (если требуется) pppd = /usr/sbin/pppd ``` ### 2. Проверка логов Чтобы получить больше информации о том, почему сервис выдает ошибку, проверьте логи. Вы можете сделать это с помощью команды: ```bash journalctl -xe | grep sstpd ``` Это может дать более подробную информацию об ошибке. ### 3. Проверка сертификатов Проверьте, что сертификаты действительно существуют по указанным в конфигурации путям и имеют правильные права доступа. Используйте команду `ls` для проверки: ```bash ls -l /etc/ssl/certs/your_cert.pem ls -l /etc/ssl/private/your_key.pem ``` ### 4. Запуск сервиса вручную Попробуйте запустить SSTP сервер вручную, чтобы увидеть, выводит ли он какие-либо ошибки непосредственно в терминале. Используйте следующую команду: ```bash /usr/local/bin/sstpd -f /etc/sstpd.ini ``` Это может помочь выявить ошибки конфигурации, которые не видны в системном журнале. ### 5. Убедитесь в установке необходимых пакетов Убедитесь, что вы установили все необходимые пакеты и зависимости, такие как `libssl-dev`, которые могут требоваться для работы SSTP. ### Подключение к MikroTik После того как сервер будет успешно запущен, вам нужно будет настроить MikroTik для подключения к вашему SSTP серверу. Примерный порядок действий: 1. Откройте WinBox и подключитесь к вашему MikroTik. 2. Перейдите в `PPP` -> `Interface`. 3. Нажмите `Add` и выберите `SSTP Client`. 4. Убедитесь, что в полях `Connect To` указан ваш внешний IP адрес или доменное имя. 5. Укажите ваше имя пользователя и пароль, установленный на сервере. 6. Убедитесь, что все настройки правильные, и сохраните изменения. После настройки попробуйте подключиться к SSTP серверу с MikroTik. Если у вас останутся вопросы или возникнут новые ошибки, не стесняйтесь задавать их!
Шаг 1: Установка и настройка SSTP сервера на Ubuntu 16.04
1. Установим необходимые пакеты:
sudo apt-get update
sudo apt-get install build-essential libssl-dev libpam0g-dev git
2. Скачаем и установим SSTP-сервер:
git clone https://github.com/setevoy/sstp-server.git
cd sstp-server
./configure && make && sudo make install
3. Создадим конфигурационный файл /etc/sstpd.conf:
sudo nano /etc/sstpd.conf
Добавьте следующие строки:
listenaddr = 0.0.0.0
verbose = 1
pidfile = /var/run/sstpd.pid
logfile = /var/log/sstpd.log
chroot = /var/empty
localip = 192.168.100.1
mask = 255.255.255.0
port = 443
x509cert = /etc/ssl/certs/server.crt
x509key = /etc/ssl/private/server.key
Замените server.crt и server.key на ваши сертификаты.
4. Создаем сертификаты:
Если у вас еще нет сертификатов, создайте их:
sudo mkdir -p /etc/ssl/{certs,private}
sudo openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/server.crt -keyout /etc/ssl/private/server.key
5. Настройка PAM-аутентификации:
Создайте файл /etc/pam.d/sstpd со следующим содержимым:
auth required pam_unix.so
account required pam_unix.so
session required pam_unix.so
6. Настроим firewall:
Разрешите входящие соединения на порт 443:
sudo ufw allow 443/tcp
7. Запустим SSTP сервер:
sudo systemctl start sstpd
sudo systemctl enable sstpd
Проверьте статус службы:
systemctl status sstpd
Шаг 2: Подключение к SSTP серверу через MikroTik
1. Зайдите в WebFig или WinBox вашего MikroTik устройства.
2. Перейдите в меню PPP > Profiles и добавьте новый профиль:
Name: sstp-profile
Local Address: оставьте пустым
Remote Address: 192.168.100.2-192.168.100.254
DNS Servers: укажите DNS сервера вашей сети
3. Перейдите в меню Interfaces и нажмите кнопку + для добавления нового интерфейса.
Выберите SSTP Client.
Введите имя интерфейса, например, sstp-out.
Укажите адрес вашего SSTP сервера в поле Connect To.
Укажите имя пользователя и пароль для аутентификации.
Выберите созданный ранее профиль (sstp-profile) в поле Profile.
Нажмите OK для сохранения настроек.
4. Проверьте состояние подключения:
Перейдите в меню Interfaces, выберите ваш интерфейс sstp-out и убедитесь, что он находится в состоянии R (running).
Заключение
После выполнения всех этих шагов вы должны иметь работающий SSTP сервер на Ubuntu 16.04 и настроенное подключение к этому серверу через ваше устройство MikroTik. Если возникают ошибки, проверьте лог-файлы на обеих сторонах для диагностики проблемы.