-
Notifications
You must be signed in to change notification settings - Fork 0
OpenVPN Pritunl
Matvey Gladkikh edited this page Apr 21, 2025
·
32 revisions
Tested on Debian 10/11 (mongodb uses "buster" apt repo for "bullseye" (not an error)). Docs: https://docs.pritunl.com/docs.
curl -L https://raw.githubusercontent.com/matveynator/sysadminscripts/main/pritunl | sudo bash
For full uninstall edit /etc/rc.local
apt-get --purge remove pritunl* mongodb-* openvpn
# /etc/rc.local Добавляем черные дыры для немаршрутизируемых адресов, а pritunl (openvpn) добавит от себя исключающий маршрут на свою внутрянку если что
ip route add blackhole 10.0.0.0/8
ip route add blackhole 172.16.0.0/12
ip route add blackhole 192.168.0.0/16
ip route add blackhole 169.254.0.0/16
ip route add blackhole 224.0.0.0/4
ip route add blackhole 240.0.0.0/4
#bookworm
#!/bin/bash
set -e
echo "🔄 Обновление системы..."
sudo apt update && sudo apt upgrade -y
echo "📦 Установка зависимостей..."
sudo apt install -y gnupg curl ca-certificates apt-transport-https \
software-properties-common lsb-release wget dnsutils
echo "🔐 Добавление GPG-ключа MongoDB 5.0..."
curl -fsSL https://pgp.mongodb.com/server-5.0.asc \
| sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb-server-5.0.gpg
echo "➕ Добавление репозитория MongoDB 5.0 (Bullseye)..."
echo "deb [ signed-by=/etc/apt/trusted.gpg.d/mongodb-server-5.0.gpg ] \
https://repo.mongodb.org/apt/debian bullseye/mongodb-org/5.0 main" \
| sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list > /dev/null
echo "🔐 Добавление GPG-ключа Pritunl..."
curl -fsSL https://raw.githubusercontent.com/pritunl/pgp/master/pritunl_repo_pub.asc \
| sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/pritunl.gpg
echo "➕ Добавление репозитория Pritunl..."
echo "deb [ signed-by=/etc/apt/trusted.gpg.d/pritunl.gpg ] \
https://repo.pritunl.com/stable/apt $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/pritunl.list > /dev/null
echo "🔄 Обновление списка пакетов..."
sudo apt update
echo "📥 Установка libssl1.1 для совместимости с MongoDB 5.0..."
wget http://security.debian.org/debian-security/pool/updates/main/o/openssl/\
libssl1.1_1.1.1w-0+deb11u2_amd64.deb \
-O /tmp/libssl1.1.deb
sudo dpkg -i /tmp/libssl1.1.deb
echo "🔄 Повторное обновление пакетов..."
sudo apt update
echo "📥 Установка MongoDB и Pritunl..."
sudo apt install -y mongodb-org pritunl
echo "✏️ Записываем корректный MongoDB‑URI в конфиг Pritunl..."
sudo tee /etc/pritunl.conf > /dev/null <<EOF
{
"mongodb_uri": "mongodb://127.0.0.1:27017/pritunl?retryWrites=true&w=majority"
}
EOF
echo "⚙️ Включаем и перезапускаем сервисы..."
sudo systemctl enable mongod pritunl
sudo systemctl restart mongod pritunl
echo "✅ Установка завершена!"
echo
echo "🔑 Ключ для первичной настройки Pritunl:"
sudo pritunl setup-key
echo
echo "🔐 Пароль администратора для веб‑интерфейса:"
sudo pritunl default-password
echo
# Вычисляем основной IP и пробуем сделать обратный DNS
IP=$(hostname -I | awk '{print $1}')
PTR=$(dig +short -x $IP | head -n1 | sed 's/\.$//')
if [ -n "$PTR" ]; then
TARGET="$PTR"
else
TARGET="$IP"
fi
echo "🌐 Откройте в браузере: https://$TARGET"