Рубрика: Linux

  • Включить режим performance на proxmox\ debian

    1️ Проверить текущую частоту процессора

    cat /proc/cpuinfo | grep "cpu MHz"
    

    Команда показывает текущую частоту каждого ядра.


    2️ Проверить режим работы CPU (governor)

    cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
    

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

    • powersave — минимальная частота (экономия энергии)
    • performance — максимальная производительность

    Если везде powersave — это причина низкой производительности.


    3️ Временно переключить CPU в performance

    echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
    

    Изменение действует до перезагрузки.


    4️ Переключение через cpupower (Intel / современные CPU)

    cpupower frequency-set -g performance
    

    Работает на большинстве Intel и поддерживаемых CPU.

    Если команда не найдена:

    apt install linux-cpupower
    

    5️ Сделать performance постоянным (через cpufrequtils)

    Установить пакет

    apt install -y cpufrequtils
    

    Отредактировать конфиг

    nano /etc/default/cpufrequtils
    

    Добавить или изменить строку:

    GOVERNOR="performance"
    

    6️ Перезагрузить сервер

    reboot
    

    После загрузки CPU будет работать в режиме performance постоянно.

  • Установка и настройка репозиториев Debian 13 (trixie)\ proxmox

    1️ Очистить старые репозитории

    find /etc/apt/ -type f \( -name "*.list" -o -name "*.sources" \) -exec rm -f {} \;
    

    2️ Установить ключ Proxmox (обязательно)

    Без этого репозиторий Proxmox работать не будет.

    apt update
    apt install -y curl gpg
    curl -fsSL https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg \
    | gpg --dearmor -o /usr/share/keyrings/proxmox-archive-keyring.gpg
    

    3️ Добавить репозиторий Proxmox (no-subscription)

    cat << 'EOF' > /etc/apt/sources.list.d/proxmox.sources
    Types: deb
    URIs: http://download.proxmox.com/debian/pve
    Suites: trixie
    Components: pve-no-subscription
    Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
    EOF
    

    4️ Добавить основные репозитории Debian 13

    cat << 'EOF' > /etc/apt/sources.list
    deb https://deb.debian.org/debian trixie main contrib non-free non-free-firmware
    # deb-src https://deb.debian.org/debian trixie main contrib non-free non-free-firmware
    
    deb https://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
    # deb-src https://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware
    
    deb https://deb.debian.org/debian trixie-proposed-updates main contrib non-free non-free-firmware
    # deb-src https://deb.debian.org/debian trixie-proposed-updates main contrib non-free non-free-firmware
    
    deb https://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware
    # deb-src https://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware
    
    deb https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
    # deb-src https://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
    EOF
    

    5️ Обновить списки пакетов

    apt update


  • Установка и настройка агента proxmox в linux (QEMU Guest Agent)

    https://res.cloudinary.com/dtwco1l6i/image/upload/v1635291046/JamesLiangCA/02/qemu1.png
    https://www.virtualizationhowto.com/wp-content/uploads/2024/10/QEMU-guest-agent-installation-in-Proxmox.png
    https://techlifetravel.com/wp-content/uploads/2019/12/proxmoxagentarrows.png

    QEMU Guest Agent нужен для корректной работы виртуальных машин в Proxmox:

    • корректное выключение и перезагрузка ВМ;
    • отображение IP-адресов;
    • работа snapshot’ов;
    • нормальная интеграция ВМ с хостом.

    1️ Установка агента в гостевой ОС (Debian / Ubuntu)

    Внутри виртуальной машины:

    apt update
    apt install -y qemu-guest-agent acpid
    

    2️ Включение сервиса

    systemctl enable qemu-guest-agent
    systemctl start qemu-guest-agent
    

    Проверка:

    systemctl status qemu-guest-agent
    

    Статус должен быть active (running).


    3️ Включить агент в Proxmox (обязательно)

    На хосте Proxmox:

    1. Открыть ВМ
    2. Options → QEMU Guest Agent → Enabled
    3. Перезагрузить виртуальную машину

    Без этого шага агент работать не будет.

  • Смена порта SSH


    1️ Открыть конфигурацию SSH

    nano /etc/ssh/sshd_config
    

    2️ Изменить порт и указать IP-адреса

    Пример конфигурации (порт и IP вымышленные):

    Port 52822
    #AddressFamily any
    
    ListenAddress 203.0.113.10
    ListenAddress 198.51.100.25
    ListenAddress 192.0.2.45
    ListenAddress 10.0.0.0/8
    ListenAddress 172.16.0.0/12
    ListenAddress 192.168.0.0/16
    

    Что это значит

    • Port 52822 — SSH будет доступен не на стандартном 22 порту;
    • ListenAddress — SSH слушает только указанные IP, остальные игнорируются;

    3️ Проверить конфигурацию

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

    sshd -t
    

    Если ошибок нет — команда ничего не выведет.


    4️ Перезапустить SSH

    systemctl restart ssh
    

    или

    systemctl restart sshd

  • Создание самоподписанного сертификата в Linux (OpenSSL)

    openssl req -x509 -newkey rsa:4096 -nodes -sha256 \
    -keyout private.key \
    -out public.key \
    -days 3650 \
    -subj «/CN=APP»

    скопировать в докер
    docker cp private.key 3x-ui:private.key

    docker cp public.key 3x-ui:public.key

  • Копирование файлов по SSH (scp)

    scp /var/lib/vz/template/iso/debian-12.8.0-amd64-DVD-1.iso \
    root@192.168.1.2:/var/lib/vz/template/iso/debian-12.8.0-amd64-DVD-1.iso

  • Привязка имени сетевого интерфейса к MAC-адресу в Debian

    https://poweradm.com/wp-content/uploads/2023/10/disable-network-manager-and-switch-to-systemd-netw.png
    https://phoenixnap.com/kb/wp-content/uploads/2024/09/output-from-ip-link-show-ip-command-update.png

    4

    Инструкция полезна, если:

    • после перезагрузки меняются имена интерфейсов;
    • сеть «отваливается»;
    • используется несколько NIC;
    • система работает в виртуализации.

    1️ Посмотреть сетевые устройства в системе

    lspci | grep -i ethernet
    

    Показывает все сетевые адаптеры, которые видит система.


    2️ Проверить MAC-адреса интерфейсов

    ip link show eno1
    ip link show enp2s0
    

    Запоминаем MAC-адреса нужных интерфейсов.


    3️ Проверить существующие .link-файлы

    cat /etc/systemd/network/*.link
    

    Если файлов нет — это нормально, будем создавать свои.


    4️ Зафиксировать имя интерфейса enp2s0

    nano /etc/systemd/network/10-enp2s0.link
    
    [Match]
    MACAddress=00:e0:4c:01:41:72
    
    [Link]
    Name=enp2s0
    

    Применяем изменения:

    udevadm control --reload
    udevadm trigger
    

    5️ Зафиксировать имя интерфейса eno1

    nano /etc/systemd/network/10-eno1.link
    
    [Match]
    MACAddress=b4:2e:99:aa:fb:8f
    
    [Link]
    Name=eno1
    

    Применяем изменения:

    udevadm control --reload
    udevadm trigger
    

    6️ Отключить offloading (при проблемах с сетью)

    Иногда помогает при фризах, дропах и странном поведении NIC:

    ethtool -K eno1 gro off gso off tso off
    

    7️ Перезапустить сеть

    Перезапуск сетевых сервисов:

    systemctl restart networking
    

    Или напрямую systemd-networkd:

    sudo systemctl restart systemd-networkd
    

    8️ Диагностика проблем

    Проверка ошибок драйвера

    dmesg | grep -i eth
    

    Просмотр логов сети

    journalctl -u networking -b
    journalctl -xe
    cat /var/log/syslog | grep -i network
    

  • Создание пользователей в debian

    adduser test && usermod -aG sudo,root test
    passwd test

  • Настройка времени и NTP на Proxmox\debian (Europe/Moscow + chrony)

    1. Установить часовой пояс (Москва)

    timedatectl set-timezone Europe/Moscow
    

    Проверка:

    timedatectl
    

    Ожидаемо:

    Time zone: Europe/Moscow (MSK, +0300)
    

    2. Установить chrony (если не установлен)

    apt update
    apt install -y chrony
    

    3. Отключить автоматические источники NTP

    Proxmox/Debian могут автоматически подтягивать NTP:

    • через DHCP
    • через sourcedir
    • через пакетные defaults

    3.1 Закомментировать sourcedir

    sed -i 's/^sourcedir/#sourcedir/' /etc/chrony/chrony.conf
    

    3.2 Удалить автогенерируемые источники

    rm -f /etc/chrony/sources.d/*
    

    4. Очистить старые NTP и задать свои серверы

    sed -i '/^server\|^pool\|^source/d' /etc/chrony/chrony.conf && \
    cat >>/etc/chrony/chrony.conf <<'EOF'
    server ntp0.ntp-servers.net iburst
    server ntp1.ntp-servers.net iburst
    server ntp2.ntp-servers.net iburst
    server ntp6.ntp-servers.net iburst
    EOF
    

    5. Перезапустить chrony

    systemctl enable --now chrony
    systemctl restart chrony
    

    6. Принудительно синхронизировать время (один раз)

    chronyc makestep
    

    7. Проверка источников времени

    chronyc sources -v

    8. Итоговая проверка

    timedatectl
  • Как узнать внешний IP-адрес linux

    wget -qO- http://ipecho.net/plain | xargs echo

    curl ifconfig.me

    curl https://api.ipify.org

    wget -qO- ifconfig.me

    Через DNS (без HTTP)

    dig +short myip.opendns.com @resolver1.opendns.com

    curl -6 ifconfig.me

  • Как увеличить максимальный размер вложений в iRedMail (Postfix + Amavis + Roundcube)

    Postfix — лимит размера письма (SMTP)

    Проверьте текущий лимит:

    postconf message_size_limit
    

    Установите, например, 500 MB:

    postconf -e "message_size_limit = 524288000"
    systemctl restart postfix
    

    Проверка:

    postconf message_size_limit
    

    Amavis — лимит проверки и обработки писем

    Если используется Amavis (по умолчанию в iRedMail), его лимит обязателен к изменению, иначе письма будут отклоняться.

    Откройте файл:

    nano /etc/amavis/conf.d/50-user
    

    Добавьте или измените строки:

    
    $max_message_size = 524288000;
    
    $MAX_EXPANSION_QUOTA = 2*1024*1024*1024;   # 2 GB
    

    Перезапустите Amavis:

    systemctl restart amavis
    

    Roundcube — лимит вложений в веб-интерфейсе

    Если используется веб-почта Roundcube, она может ограничивать размер вложений ещё до отправки.

    Откройте конфигурацию Roundcube:

    nano /path/to/roundcube/config/config.inc.php
    

    Добавьте:

    // Максимальный размер письма (в байтах)
    $config['max_message_size'] = 524288000; // 500 MB
    

    Nginx — лимит загрузки файлов

    Проверьте конфигурацию Nginx:

    grep -R "client_max_body_size" /etc/nginx
    

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

    client_max_body_size 500M;
    

    Перезапустите Nginx:

    systemctl restart nginx
    

    PHP — лимиты загрузки и обработки данных

    Roundcube работает через PHP, поэтому лимиты PHP должны быть не меньше лимита вложений.

    Определите активный php.ini:

    php --ini | grep "Loaded Configuration"
    

    Измените параметры:

    upload_max_filesize = 500M
    post_max_size = 500M
    memory_limit = 1024M
    max_execution_time = 3600
    max_input_time = 3600
    

    Перезапустите PHP-FPM:

    systemctl restart php-fpm
  • Установка и защита WordPress на Debian

    Установка базового стека

    apt update && apt upgrade -y
    apt install -y nginx mariadb-server \
    php8.4-fpm php8.4-mysql php8.4-xml php8.4-curl \
    php8.4-gd php8.4-mbstring php8.4-zip unzip curl
    

    Создание базы данных WordPress

    mysql_secure_installation
    
    CREATE DATABASE wp_example CHARACTER SET utf8mb4;
    CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'STRONG_PASSWORD';
    GRANT ALL PRIVILEGES ON wp_example.* TO 'wp_user'@'localhost';
    FLUSH PRIVILEGES;
    

    Установка WordPress

    cd /var/www
    wget https://wordpress.org/latest.zip
    unzip latest.zip
    mv wordpress example-site.ru
    chown -R www-data:www-data /var/www/example-site.ru
    

    Конфигурация wp-config.php

    cp wp-config-sample.php wp-config.php
    nano wp-config.php
    
    define('DB_NAME', 'wp_example');
    define('DB_USER', 'wp_user');
    define('DB_PASSWORD', 'STRONG_PASSWORD');
    define('DB_HOST', 'localhost');
    

    SALT-ключи

    curl -s https://api.wordpress.org/secret-key/1.1/salt/
    

    Полностью заменить блок AUTH_KEY … NONCE_SALT.


    Автообновления безопасности WordPress

    define( 'WP_AUTO_UPDATE_CORE', 'minor' );
    

    Конфигурация Nginx (HTTPS)

    server {
        server_name example-site.ru www.example-site.ru;
        root /var/www/example-site.ru;
        index index.php index.html;
    
        client_max_body_size 10G;
    
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.4-fpm.sock;
        }
    
        location ~ /\. {
            deny all;
        }
    
        listen 443 ssl;
        ssl_certificate /etc/letsencrypt/live/example-site.ru/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example-site.ru/privkey.pem;
    }
    

    Получение SSL-сертификата Let’s Encrypt

    apt install -y certbot python3-certbot-nginx
    certbot --nginx -d example-site.ru -d www.example-site.ru
    

    Автообновление:

    systemctl enable certbot.timer
    

    Защита WordPress (рекомендованный минимум)

    Закрыть xmlrpc.php

    location = /xmlrpc.php {
        deny all;
    }
    

    Ограничить wp-admin по IP

    location ^~ /wp-admin/ {
        allow 192.168.100.0/24;
        deny all;
    
        index index.php;
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.4-fpm.sock;
        }
    }
    

    wp-login rate limit

    limit_req_zone $binary_remote_addr zone=wp_login:10m rate=10r/m;
    
    location = /wp-login.php {
        limit_req zone=wp_login burst=20 nodelay;
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.4-fpm.sock;
    }
    

    Security Headers

    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;
    add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
    

    Fail2Ban для Nginx + WordPress

    apt install -y fail2ban
    
    [nginx-wordpress]
    enabled = true
    filter = nginx-wordpress
    logpath = /var/log/nginx/access.log
    maxretry = 5
    bantime = 1h
    

    Скрытие версии WordPress (MU-plugin)

    mkdir -p wp-content/mu-plugins
    nano wp-content/mu-plugins/hardening.php
    
    <?php
    remove_action('wp_head', 'wp_generator');
    add_filter('the_generator', '__return_empty_string');
    

    Разрешение загрузки .exe (только для администраторов)

    add_filter('upload_mimes', function ($mimes) {
        if (current_user_can('administrator')) {
            $mimes['exe'] = 'application/octet-stream';
        }
        return $mimes;
    });
    

  • Как посмотреть какой linux установлен?

    cat /etc/os-release
    или
    lsb_release -a

    Файл /etc/os-release описан в спецификации freedesktop.org и есть практически во всех современных дистрибутивах:
    Ubuntu (все актуальные)
    Debian (7+)
    CentOS / RHEL (7+)
    Rocky Linux / AlmaLinux
    Fedora
    Arch Linux
    openSUSE
    Amazon Linux
    Oracle Linux
    Alpine Linux
    Linux Mint
    Kali Linux



  • Тормозит Windows Server 2025 в Proxmox 9

    https://miro.medium.com/1%2AWYb98Z6s398lysqX0JnyWA.png
    https://forum.proxmox.com/data/attachments/71/71553-0267929853ac3e1acc07f0fb6163bdd4.jpg?hash=AmeSmFOsPh

    4

    Проблема

    В 2025 году администраторы всё чаще сталкиваются с ситуацией, когда:

    • тормозит Windows Server 2025
    • появляются фризы и задержки в виртуальной машине
    • система «подвисает» даже при низкой нагрузке
    • особенно часто проблема возникает в Proxmox 9

    Основные причины тормозов

    1️⃣ Неподходящий тип CPU в Proxmox

    По умолчанию виртуальная машина может использовать универсальный CPU-профиль, который:

    • не оптимален для Windows Server 2025;
    • не использует современные инструкции процессора;
    • приводит к фризам и общей медлительности ВМ.

    2️⃣ Включённая Virtualization Based Security (VBS)

    В Windows Server 2025 VBS включена по умолчанию, что в виртуальной среде:

    • резко снижает производительность;
    • увеличивает задержки ввода-вывода;
    • вызывает микрофризы и «тормоза» в ВМ.

    Решение №1: смена CPU типа в Proxmox

    Выключаем виртуальную машину:

    qm shutdown 109
    

    Меняем тип процессора на оптимальный для Windows:

    qm set 109 --cpu x86-64-v2-AES
    

    Запускаем ВМ:

    qm start 109
    

    👉 После смены CPU Windows Server начинает работать заметно плавнее.


    Решение №2: отключение VBS в Windows Server 2025

    Для виртуальных машин VBS рекомендуется отключить, если не требуется повышенная защита.

    Что даёт отключение VBS:

    • значительный прирост производительности;
    • исчезновение фризов;
    • снижение нагрузки на CPU.

    VBS отключается через:

    • Group Policy
    • Windows Security
    • или параметры реестра (в корпоративной среде)

    ⚠️ После отключения VBS требуется перезагрузка ВМ.

  • fail2ban как снять бан с ip адреса на Linux

    Посмотреть адреса в бан листе fail2ban
    sudo fail2ban-client get roundcube banip
    sudo fail2ban-client status roundcube

    Cнять бан в fail2ban с конкретного ip
    sudo fail2ban-client set roundcube unbanip

    Снять бан со все адресов
    sudo fail2ban-client set roundcube unbanip —all

    Просмотреть лог
    sudo grep Ban /var/log/fail2ban.log