1 (12.10.2026 13:44:35 отредактировано survordie)

Предыдущая часть по установке базовых программ находится тут.

Я обычный пользователь, которому надо не так уж и много. Однако то, чем пользуются другие, довольно часто меня просто поражает. Я о таких программах даже и не слышал. Я не знаю насколько вообще эта тема востребована, но я сюда на всякий случай выложу установку тех программ, которые я видел за последнее время на этом форуме, но под другие дистрибутивы.

  • +  Установка dns-firewall

    Фильтрующий DNS прокси сервер для iptables
    Смотрим версию https://github.com/nthuemmel/dns-firewall-rust/releases

    Скачиваем и устанавливаем (на примере версии 1.2.3):

    wget -O /tmp/dns-firewall.deb https://github.com/nthuemmel/dns-firewall-rust/releases/download/v1.2.3/dns-firewall_1.2.3-1_amd64.deb && sudo apt install /tmp/dns-firewall.deb
  • + Установка мессенджера MAX

    Внимание! После установки ЭТО занимает почти 2 Гигабайта!!! места на жёстком диске.

    +  Установка MAX

    Ключ:

    curl -fsSL https://download.max.ru/linux/deb/public.asc | sudo gpg --dearmor -o /usr/share/keyrings/max.gpg

    Репозиторий:

    echo -e "Types: deb\nURIs: https://download.max.ru/linux/deb\nSuites: stable\nComponents: main\nSigned-By: /usr/share/keyrings/max.gpg " | sudo tee /etc/apt/sources.list.d/max.sources

    Обновление кеша:

    sudo aptitude update

    Установка:

    sudo aptitude install max 
    +  Изоляция через Firejail - рекомендуемый способ

    Т.к. приложение потенциально небезопасно, то запускать его нужно в изоляции. Для этого есть два способа - через FireJail и через создание полноценного контейнера systemd-nspawn. Здесь описан первый способ.
    Обратите внимание, что после этой настройки файлы в MAX можно будет отправлять только если они находятся вне перечисленных ниже подкаталогов домашней директории пользователя (documents, pictures и т.д.) !

    Для начала ставим сам Firejail - песочницу для приложений:

    sudo aptitude install firejail

    Включаем доступность сети для FireJail.
    Для этого отредактируем файл firejail.config:

    sudo nano /etc/firejail/firejail.config

    раскомментируем строку:

    network yes

    и закомментировать:

    #restricted-network yes

    Создаем каталог для хранения профилей firejail:

    mkdir -p ~/.config/firejail

    Создаём профиль для Max:

    nano ~/.config/firejail/max.profile

    со следующим содержимым:

    # 1. Стандартные блокировки
    include /etc/firejail/disable-common.inc
    include /etc/firejail/disable-programs.inc
    include /etc/firejail/whitelist-common.inc
    
    # 2. Разрешаем весь домашний каталог
    whitelist ${HOME}
    
    # 3. Запрещаем доступ к чувствительным данным
    blacklist ${HOME}/.ssh
    blacklist ${HOME}/.gnupg
    blacklist ${HOME}/.mozilla
    blacklist ${HOME}/.cache
    blacklist ${HOME}/documents
    blacklist ${HOME}/pictures
    blacklist ${HOME}/videos
    blacklist ${HOME}/music
    
    # 4. Базовые разрешения
    include /etc/firejail/whitelist-runuser-common.inc
    include /etc/firejail/whitelist-var-common.inc
    
    # 5. Дополнительная изоляция
    private-dev
    private-tmp
    nosound      

    где
    private-dev - создаёт пустые устройства (камеру и звук), заставляя думать MAX, что этих устройств нет в системе.
    private-tmp - создаёт изолированный временный каталог для приложения. Если после добавления этой опции MAX не запускается или выдаёт ошибки подключения к локальному сервису (например, failed to connect to 127.0.0.1), закомментируйте эту строку (поставьте # в начале) и попробуйте снова.
    Обратите внимание на названия каталогов типа /documents, которые мы переименовали при настройке Xfce.

    Настраиваем фильтры
    MAX - это шпионское приложение, известное своей сетевой активностью, которая выходит далеко за рамки простого обмена сообщениями. Поэтому используя netfilter ограничим неуёмное любопытство этого шпиёна, разрешив подключаться лишь к тем серверам, которые действительно нужны для его работы, и заблокировать все остальные.
    Сторонние сервисы определения IP: Приложение обращается к множеству внешних сервисов, чтобы узнать ваш IP-адрес. Среди них api.ipify.org, checkip.amazonaws.com, ifconfig.me и другие. Для работы мессенджера это не нужно, и такие запросы можно смело блокировать.
    Домены конкурентов (Telegram, WhatsApp и др.): MAX проверяет доступность сайтов других мессенджеров, например, main.telegram.org и mmg.whatsapp.net. Эта функция, скорее всего, используется для сбора данных, и её также можно отключить.
    Аналитические и прочие «лишние» запросы: В целом, принцип «разрешено только самое необходимое» здесь работает лучше всего.

    Если на машине включён мост (bridge), то нужно включить IP forwarding. Ничего страшного не произойдёт, если включить его и на машине с обычным интерфейсом:

    sudo tee /etc/sysctl.d/99-firejail-forward.conf > /dev/null <<'EOF'
    # Включаем IP-форвардинг для работы Firejail с bridge (veth) и виртуалок.
    net.ipv4.ip_forward = 1
    EOF

    Т.к. FireJail не умеет работать с доменными именами, а только с IP, создадим скрипт, которые преобразует доменные имена, необходимые MAX в IP:

    nano ~/update-max-net.sh

    со следующим содержимым:

    #!/bin/bash
    NET_FILE="$HOME/.config/firejail/max.net"
    
    cat > "$NET_FILE" <<'EOF'
    *filter
    :INPUT DROP [0:0]
    :FORWARD DROP [0:0]
    :OUTPUT DROP [0:0]
    -A OUTPUT -o lo -j ACCEPT
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A OUTPUT -p udp --dport 53 -j ACCEPT
    -A OUTPUT -p tcp --dport 53 -j ACCEPT
    
    # Подсети VK/OK — разрешаем целиком, чтобы ротация IP не ломала доступ
    -A OUTPUT -d 155.212.204.0/24 -p tcp -m multiport --dports 80,443 -j ACCEPT
    -A OUTPUT -d 217.20.144.0/20 -p tcp -m multiport --dports 80,443 -j ACCEPT
    
    # CDN вне этих подсетей
    -A OUTPUT -d 5.101.40.0/24 -p tcp -m multiport --dports 80,443 -j ACCEPT
    -A OUTPUT -d 5.61.23.0/24 -p tcp -m multiport --dports 80,443 -j ACCEPT
    -A OUTPUT -d 83.222.28.0/24 -p tcp -m multiport --dports 80,443 -j ACCEPT
    -A OUTPUT -d 89.221.238.0/24 -p tcp -m multiport --dports 80,443 -j ACCEPT
    -A OUTPUT -d 185.16.148.0/24 -p tcp -m multiport --dports 80,443 -j ACCEPT
    -A OUTPUT -d 185.180.200.0/24 -p tcp -m multiport --dports 80,443 -j ACCEPT
    -A OUTPUT -d 66.96.162.0/24 -p tcp -m multiport --dports 80,443 -j ACCEPT
    EOF
    
    # Функция: проверить, входит ли IP в уже разрешённые подсети
    in_subnet() {
        local ip=$1
        # 155.212.204.0/24
        [[ "$ip" =~ ^155\.212\.204\. ]] && return 0
        # 217.20.144.0/20 (217.20.144.x – 217.20.159.x)
        if [[ "$ip" =~ ^217\.20\.(14[4-9]|15[0-9])\. ]]; then
            return 0
        fi
        # Остальные /24
        for net in 5.101.40 5.61.23 83.222.28 89.221.238 185.16.148 185.180.200 66.96.162; do
            [[ "$ip" == $net.* ]] && return 0
        done
        return 1
    }
    
    DOMAINS="max.ru st.max.ru web.max.ru download.max.ru platform-api.max.ru platform-api2.max.ru dev.max.ru i.oneme.ru ws-api.oneme.ru api.oneme.ru api-gost.oneme.ru fgost.oneme.ru fu.oneme.ru iu.oneme.ru mycdn.me i.mycdn.me gif4.mycdn.me ru.oneme.app okcdn.ru calls.okcdn.ru iv.okcdn.ru st.okcdn.ru vm.okcdn.ru vu.okcdn.ru omub.okcdn.ru omu.okcdn.ru api.okcdn.ru trace-flow.ru"
    
    for DOMAIN in $DOMAINS; do
       for IP in $(dig +short "$DOMAIN" | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'); do
           if [ -n "$IP" ] && ! in_subnet "$IP"; then
               echo "-A OUTPUT -d $IP -p tcp -m multiport --dports 80,443 -j ACCEPT" >> "$NET_FILE"
           fi
       done
    done
    
    echo "COMMIT" >> "$NET_FILE"
    echo "" >> "$NET_FILE"
    echo "OK: $(grep -c '^-A' "$NET_FILE") правил сгенерировано"

    Делаем скрипт исполняемым:

    chmod +x ~/update-max-net.sh

    iptables считается устаревшим, но FireJail на данный момент работает только через него.
    Проверяем работоспособность фильтра, но сначала узнаем активный интерфейс, через который идёт доступ к интернету:

    ip route show default | awk '/default/ {print $5; exit}'

    или

    ip -br a

    В моём случае это ВайВай с именем wlp4s0.
    Теперь проверим, что осуществляется фильтрация полученных адресов выше на этом интерфейсе. Для этого нужно зайти в оболочку (шелл) FireJail:

    "$HOME/update-max-net.sh" && firejail --net=wlp4s0 --netfilter="$HOME/.config/firejail/max.net" --profile="$HOME/.config/firejail/max.profile" bash

    Тут мы скриптом update-max-net.sh формируем файл ~/.config/firejail/max.net, который затем используем в параметре netfilter для фильтрации траффика на сетевом интерфейсе wlp4s0.
    Ошибок при запуске не должно быть. Обратите внимание, что оболочка FireJail содержит то же имя, что оболочка хоста, что может немного запутить. В оболочке FireJail любые команды с sudo не будут выполняться.

    Убедиться, что разрешённый домент доступен:

    curl -I https://max.ru --connect-timeout 5

    Убедиться, что неразрешённый домен недоступен:

    curl -I https://yandex.ru --connect-timeout 5

    Выйсти из оболочки FireJail:

    exit  

    Далее запуск с помощью:

    "$HOME/update-max-net.sh" && firejail --net=wlp4s0 --netfilter="$HOME/.config/firejail/max.net" --profile="$HOME/.config/firejail/max.profile" max 

    .desktop файлы не могут работать с двойными командами, поэтому сделаем скрипт-обёртку для запуска MAX:

    nano ~/run-max.sh

    со следующим содержимым:

    #!/bin/bash
    INTERFACE=$(ip route show default | awk '/default/ {print $5; exit}')
    [ -z "$INTERFACE" ] && { echo "Не найден интерфейс по умолчанию"; exit 1; }
    
    "$HOME/update-max-net.sh" || exit 1
    
    exec firejail --net="$INTERFACE" \
      --netfilter="$HOME/.config/firejail/max.net" \
      --profile="$HOME/.config/firejail/max.profile" \
      max    

    Скрипт определяет сетевой интерфейс, через который идёт маршрут по умолчанию (то есть тот, через который реально работает интернет), формирует правила фильтрации для этого интерфейса и запускает MAX в изолированной среде FireJail. Это работает одинаково на машинах с bridge (br0) и без него (eth0, enpXsY, wlpXsY)

    Делаем скрипт исполняемым

    chmod +x ~/run-max.sh

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

    bash -c  "$HOME/run-max.sh"

    Из-за того, что запускается скрипт преобразования доменных имён в IP, запуск MAX может занимать до 20 секунд.

    +  Добавляем в Пуск - Опционально

    Создаем файл:

    nano ~/.local/share/applications/max-firejail.desktop

    с содержимым:

    [Desktop Entry]
    Name=MAX (Firejail)
    Comment=Мессенджер MAX в изолированной среде
    Exec=bash -c "$HOME/run-max.sh"
    Icon=max
    Terminal=false
    Type=Application
    Categories=Network;InstantMessaging;
    StartupNotify=true

    Даём права на выполнение:

    chmod +x ~/.local/share/applications/max-firejail.desktop

    Обновляем кеш меню:

    update-desktop-database ~/.local/share/applications/
  • + Установка Obsidian

    Obsidian — мощное приложение для ведения заметок в формате Markdown, построенное на базе локальной папки с файлами. Поддерживает граф связей, плагины и удобную навигацию.

    wget -O /tmp/obsidian.deb https://github.com/obsidianmd/obsidian-releases/releases/download/v1.12.4/obsidian_1.12.4_amd64.deb && sudo apt-get install /tmp/obsidian.deb
  • +  Установка текстового редактора Pluma

    Pluma — простой и быстрый текстовый редактор, форк классического gedit. Поддерживает подсветку синтаксиса, вкладки, плагины и работу с кодировками.

    sudo aptitude install pluma
  • +  Установка текстового редактора  xed

    xed — текстовый редактор из набора X-Apps от Linux Mint, форк Pluma. Почему-то некоторые пользователи предпочитают именно его, а не Pluma. В Debian 13 не включён по понятной причине.
    Скачиваем файл, распаковываем его.
    Получится каталог packages. В нём 5 deb-файлов. Запускаем терминал в этом каталоге, устанавливаем пакеты:

    sudo dpkg -i *.deb

    затем фиксим недостающие зависимости:

    sudo aptitude install -f
  • +  Установка мессенджера Bitrix24

    Bitrix24 — корпоративный мессенджер и CRM-система.

    wget -O /tmp/bitrix24.deb https://dl.bitrix24.com/b24/bitrix24_desktop.deb && sudo apt-get install /tmp/bitrix24.deb
Debian 13 + xfce