Загрузка...

Настройка VPS с нуля: прокси-сервер на Ubuntu + 3x-ui + SSL

Введение

В этой статье разберём полную настройку VPS на Ubuntu: от базовой безопасности до рабочего VPN-сервера с веб-панелью 3x-ui и SSL-сертификатом.

1. Подготовка сервера

Подключение и обновление

# Подключаемся к серверу
ssh root@{your_ip}

# Обновляем систему
apt update && apt upgrade -y

Создание пользователя

Никогда не работайте под root:

# Создаём пользователя alex
adduser alex
usermod -aG sudo alex

Настройка SSH-ключей

На вашем локальном компьютере:

# Генерируем ключ (если нет)
ssh-keygen -t ed25519 -C "alex@laptop"

# Копируем на сервер
ssh-copy-id alex@{your_ip}

Безопасность SSH

Отредактируйте /etc/ssh/sshd_config:

Port 2222                    # Меняем стандартный порт
PermitRootLogin no          # Отключаем вход root
PasswordAuthentication no   # Только ключи
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2

Применяем:

systemctl restart sshd

Теперь подключаемся:

ssh -p 2222 alex@{your_ip}

2. Базовые утилиты и безопасность

Установка необходимых пакетов

sudo apt install -y curl wget htop nano git unzip zip fail2ban

Настройка Fail2ban

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

SWAP (если мало RAM)

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Часовой пояс

sudo timedatectl set-timezone Europe/Moscow

3. Установка 3x-ui

Из-за блокировки GitHub API на некоторых серверах, используем ручную установку.

На локальном компьютере

Скачиваем архив (требуется VPN или прямое подключение):

wget https://github.com/mhsanaei/3x-ui/releases/latest/download/x-ui-linux-amd64.tar.gz

Загружаем на сервер:

scp -P 2222 x-ui-linux-amd64.tar.gz alex@{your_ip}:/tmp/

На сервере

# Переходим в root
sudo su

# Распаковываем
cd /tmp
tar -xzf x-ui-linux-amd64.tar.gz
chmod +x x-ui/x-ui
mv x-ui/x-ui /usr/local/bin/
mkdir -p /usr/local/x-ui
cp -r x-ui/* /usr/local/x-ui/

# Создаём systemd сервис
cat > /etc/systemd/system/x-ui.service << 'EOF'
[Unit]
Description=x-ui Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/x-ui
WorkingDirectory=/usr/local/x-ui
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
EOF

#  Или используй другой способ:                                                                                                                                                                                                            
#                                                                                                                                                                                                                                             
#     echo '[Unit]                                                                                                                                                                                                                            
#     Description=x-ui Service                                                                                                                                                                                                                
#     After=network.target                                                                                                                                                                                                                    
#                                                                                                                                                                                                                                             
#     [Service]                                                                                                                                                                                                                               
#     Type=simple                                                                                                                                                                                                                             
#     ExecStart=/usr/local/bin/x-ui                                                                                                                                                                                                           
#     WorkingDirectory=/usr/local/x-ui                                                                                                                                                                                                        
#     Restart=always                                                                                                                                                                                                                          
#     RestartSec=3                                                                                                                                                                                                                            
#                                                                                                                                                                                                                                             
#     [Install]                                                                                                                                                                                                                               
#     WantedBy=multi-user.target' > /etc/systemd/system/x-ui.service    

# Запускаем
systemctl daemon-reload
systemctl enable x-ui
systemctl start x-ui
systemctl status x-ui

Проверяем работу:

  • Панель: http://IP:2053
  • Логин/пароль: admin / admin

Важно: сразу смените пароль в настройках!

4. SSL-сертификат Let’s Encrypt

Установка Certbot

sudo apt install -y certbot

Получение сертификата

sudo certbot certonly --standalone -d domain.ru --agree-tos --email admin@domain.ru

Пути к файлам:

  • Сертификат: /etc/letsencrypt/live/domain.ru/fullchain.pem
  • Ключ: /etc/letsencrypt/live/domain.ru/privkey.pem

Автообновление сертификата

Создаём задачу в cron:

sudo crontab -e

Добавляем строку:

0 3 * * * certbot renew --quiet --post-hook "systemctl restart x-ui"

Или одной командой:

echo "0 3 * * * certbot renew --quiet --post-hook 'systemctl restart x-ui'" | sudo crontab -

Проверяем:

sudo crontab -l

Настройка HTTPS в 3x-ui

  1. Открываем http://IP:2053
  2. Panel Settings → Security
  3. Включаем HTTPS
  4. Указываем пути:
    • Certificate: /etc/letsencrypt/live/domain.ru/fullchain.pem
    • Key: /etc/letsencrypt/live/domain.ru/privkey.pem
  5. Сохраняем

Теперь панель доступна по https://domain.ru:2053

5. Проверка работы

# Проверяем статус сервиса
sudo systemctl status x-ui

# Проверяем порты
sudo ss -tlnp | grep -E '2053|2096'

# Проверяем автообновление SSL
sudo certbot renew --dry-run

Итог

Мы настроили:

  • ✅ Безопасный SSH (порт 2222, только ключи)
  • ✅ Пользователя без root
  • ✅ Fail2ban для защиты от брутфорса
  • ✅ SWAP для стабильности
  • ✅ VPN-панель 3x-ui
  • ✅ SSL-сертификат с автообновлением

Важные замечания:

  • Настройте UFW (если нужен) для открытия портов 2053, 443, и портов VPN
  • Регулярно обновляйте систему: sudo apt update && sudo apt upgrade
  • Делайте бэкапы конфигурации 3x-ui

Статья подготовлена на основе реального опыта настройки сервера на Ubuntu 24.04

domain.ru — замените на свой домен
{your_ip} — на ip вашего сервера

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *