База знаний (цифровой суверенитет)
  • Cockpit - установка на Debian

    Перенесена
    Cockpit
    1 4 29

    A
    951
    0

    Установка Cockpit на Debian 12 (Bookworm) — это быстрый процесс, так как пакеты уже находятся в официальных репозиториях. Cockpit позволяет управлять сервером через удобный веб-интерфейс: мониторить ресурсы, управлять сетями, контейнерами и пользователями.

    Вот пошаговая инструкция:

    1. Обновление системы

    Перед установкой любого ПО рекомендуется обновить списки пакетов:

    sudo apt update && sudo apt upgrade -y
    
    

    2. Установка Cockpit

    Установите основной пакет Cockpit с помощью apt:

    sudo apt install cockpit -y
    
    

    3. Запуск и проверка службы

    После установки служба должна запуститься автоматически. Проверьте её статус:

    systemctl status cockpit.socket
    
    

    Если служба не активна, запустите её и добавьте в автозагрузку:

    sudo systemctl enable --now cockpit.socket
    
    

    4. Настройка брандмауэра (если включен)

    Cockpit по умолчанию использует порт 9090. Если у вас активен ufw или nftables, нужно открыть этот порт:

    • Для UFW:
    sudo ufw allow 9090/tcp
    
    
    • Для nftables/iptables: Убедитесь, что входящий трафик на порт 9090 разрешен.

    5. Доступ к веб-интерфейсу

    Теперь вы можете зайти в панель управления через браузер. Введите в адресную строку:

    https://ip-вашего-сервера:9090

    Примечание: Браузер может показать предупреждение о "небезопасном соединении", так как Cockpit использует самоподписанный SSL-сертификат. Нажмите "Дополнительно" и "Перейти на сайт (небезопасно)".

    Для входа используйте логин и пароль вашего обычного пользователя в системе или root.


    Дополнительные возможности

    Чтобы расширить функционал Cockpit, вы можете установить дополнительные модули:

    • Управление виртуальными машинами (KVM):
      sudo apt install cockpit-machines
    • Управление Podman (контейнеры):
      sudo apt install cockpit-podman
    • Управление сетевыми хранилищами и дисками:
      sudo apt install cockpit-storaged

  • A
    951
    0

    Создание конфига для NGINX и сертификата


    1. Создаём простой стандартный конфиг для нужного домена
    cd /etc/nginx/sites-available
    sudo touch <my_site>.conf
    sudo nano <my_site>.conf
    
    1. Вписываем в конфиг примитив, сохраняем
    server {
        listen 80;
        server_name my_domain.tld; # Замените на ваш домен
    
        location / {
            root /var/www/html;
        }
    }
    
    1. Создаём линк
    sudo ln -s /etc/nginx/sites-available/<my_site>.conf /etc/nginx/sites-enabled/
    
    1. Устанавливаем certbot, если ещё не установлен
    sudo apt install certbot python3-certbot-nginx -y
    
    1. Создаём сертификат для домена
    sudo certbot --nginx -d my_domain.tld
    
    1. Заходим сюда /etc/nginx/sites-available/<my_site>.conf и меняем текст конфига таком образом:
    server {
        listen 443 ssl;
        server_name my_domain.tld;  # Подставляем свой домен
    
        ssl_certificate /etc/letsencrypt/live/my_domain.tld/fullchain.pem; # Подставляем свой домен
        ssl_certificate_key /etc/letsencrypt/live/my_domain.tld/privkey.pem; # Подставляем свой домен
    
        location / {
            # Перенаправляем трафик на локальный порт Cockpit
            proxy_pass https://10.155.64.245:9090; # Подставляем нужный айпи-адрес
            
            # Настройки для поддержки WebSockets (обязательно для Cockpit)
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
    
            # Передача заголовков хоста и реального IP
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
    
            # Отключаем буферизацию для мгновенного отклика терминала
            proxy_buffering off;
        }
    }
    
  • A
    951
    0

    Изменение конфига Cockpit


    Выполните следующие шаги:

    1. Создание файла

    Запустите nano (он создаст пустой буфер, который сохранится как файл):

    sudo nano /etc/cockpit/cockpit.conf
    
    

    2. Содержимое файла

    Скопируйте и вставьте туда следующий блок (это критически важно для работы через Nginx, чтобы избежать ошибок "Cross-Origin" и бесконечной загрузки):

    [WebService]
    Origins = https://ваш-домен.com
    ProtocolHeader = X-Forwarded-Proto
    AllowUnencrypted = true
    
    
    • Origins: Укажите здесь адрес, по которому вы будете заходить в браузер (включая https://). Если адресов несколько, перечислите их через пробел.
    • ProtocolHeader: Говорит Cockpit верить заголовку от Nginx, что соединение безопасно.
    • AllowUnencrypted: Позволяет Cockpit принимать трафик от Nginx по локальной сети.

    3. Сохранение

    1. Нажмите Ctrl + O (сохранить).
    2. Нажмите Enter (подтвердить имя файла).
    3. Нажмите Ctrl + X (выйти из редактора).

    4. Перезапуск службы

    Чтобы Cockpit подхватил новые настройки, обязательно перезапустите его:

    sudo systemctl restart cockpit.socket
    

    Почему это важно?

    Без этого файла Cockpit увидит, что запрос пришел от прокси-сервера (Nginx), а не напрямую от клиента, и заблокирует соединение из соображений безопасности. В консоли браузера при этом обычно видна ошибка 403 Forbidden или проблемы с подключением WebSockets.

  • A
    951
    0
    1. Заходим по адресу https://my_domain.tld

    1. Вводим имя и пароль системного пользователя в окне авторизации
  • A Admin переместил эту тему из Cockpit в
  • A Admin переместил эту тему из