Доработал документацию: Внес изменения в требования к Docker; Внес изменения в команды выпуска сертификатов; Исправил ошибки в последовательсти действий.

This commit is contained in:
ansible 2024-06-12 02:53:47 +03:00
parent d41189c080
commit 7022c7c4e3

View File

@ -15,24 +15,24 @@
### Требования
1. Ubuntu Server 22.04 LTS
2. Установленный Docker Compose
3. Установленный Pritunl с бесплатной лицензией
4. Порт веб интерфейса Pritunl сменен со стандартного 443 на любой свободный, кроме 80 и 443
2. Установленный Docker и Docker Compose в соотвествии с документацией https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository . Пакеты docker.io и docker-compose не поддерживаются.
3. Пользователь с доступом к Docker без sudo `sudo usermod -aG docker ${USER}`
4. Установленный Pritunl с бесплатной лицензией
5. Порт веб интерфейса Pritunl сменен со стандартного 443 на любой свободный, кроме 80 и 443
### Установка
1. (Рекомендуется) зафиксировать версию Pritunl
```
sudo apt-mark hold pritunl*
```
2. Клонировать репозиторий /opt/pritunl-fakeapi
2. Клонировать репозиторий /opt/pritunl-fakeapi . Можно использовать любой путь на сервере. /opt/pritunl-fakeapi используется в примерах команд ниже.
```
sudo mkdir /opt/pritunl-fakeapi -p && \
sudo chown ${USER}:${USER} /opt/pritunl-fakeapi && \
git clone https://github.com/nd4y/Pritunl-Fake-API.git /opt/pritunl-fakeapi && \
cd /opt/pritunl-fakeapi
git clone https://github.com/nd4y/Pritunl-Fake-API.git /opt/pritunl-fakeapi
```
3. (Рекомендуется) сгенерировать сертификаты удостоверяющего центра и сервера. (команды для выпуска сертификатов протестированы на OpenSSL 1.1.1w)
1. Перейти в каталог `cd /opt/pritunl-fakeapi/mounts/nginx/certs` и удалить имеющиеся сертификаты `rm -f *.pem`
3. (Рекомендуется) сгенерировать сертификаты удостоверяющего центра и сервера. (команды для выпуска сертификатов протестированы на OpenSSL 1.1.1w (Debian 10) и OpenSSL 1.1.1f (Ubuntu 22.04 LTS)
1. Перейти в каталог и удалить имеющиеся сертификаты `cd /opt/pritunl-fakeapi/mounts/nginx/certs && rm -f *.pem`
2. Выпустить сертификат удостоверяющго центра
```
openssl req -x509 -newkey rsa:4096 -keyout ca.key.pem -out ca.crt.pem -sha256 -days 3650 -nodes -subj "/CN=Self-Signed Root Certification Authority"
@ -43,25 +43,25 @@ cd /opt/pritunl-fakeapi
```
4. Подписать запрос на сертификат сервера сертификатом удоствоверяющего центра
```
openssl x509 -req -in tls.req.pem -CA ca.crt.pem -CAkey ca.key.pem -out tls.crt.pem -days 3650 -extensions SAN -extfile <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:pritunl-fakeapi.local"))
openssl x509 -req -in tls.req.pem -CA ca.crt.pem -CAkey ca.key.pem -out tls.crt.pem -CAcreateserial -days 3650 -extensions SAN -extfile <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:pritunl-fakeapi.local"))
```
5. Удалить файл приватного ключа удостоверяющего центра и файл запроса сертификата сервера
5. Удалить файл приватного ключа удостоверяющего центра, файл запроса сертификата сервера и srl файл.
```
rm -f ca.key.pem tls.req.pem
rm -f ca.key.pem tls.req.pem ca.crt.srl
```
4. Запустить контейнеры
```
cd /opt/pritunl && docker compose up -d
```
5. Установить сертификат удостоверяющего центра в доверенные для Pritunl
```
cat ca.crt.pem >> /usr/lib/pritunl/usr/lib/python3.9/site-packages/certifi/cacert.pem
```
6. Отключить использование VPN сервером Pritunl порта 80/TCP
4. Отключить использование VPN сервером Pritunl порта 80/TCP
```
sudo pritunl set app.redirect_server false
```
5. Запустить контейнеры
```
cd /opt/pritunl-fakeapi && docker compose up -d
```
6. Установить сертификат удостоверяющего центра в доверенные для Pritunl
```
cat /opt/pritunl-fakeapi/mounts/nginx/certs/ca.crt.pem | sudo tee -a /usr/lib/pritunl/usr/lib/python3.9/site-packages/certifi/cacert.pem
```
7. Добавить запись в /etc/hosts
```
echo "127.0.0.1 pritunl-fakeapi.local" | sudo tee -a /etc/hosts