LinuxForum.Fans
Тема

"Свалка" репозиториев и просто установка различных программ для Debian

Автор: survordie 1 сообщений 551 просмотров
14.08.2026 15:08 · отредактировано #440266

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

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

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

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

    Скачиваем и устанавливаем (на примере версии 1.2.3):
    text
    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

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

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

    text
    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

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

    text
    sudo aptitude update

    Установка:

    text
    sudo aptitude install max 

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

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

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

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

    text
    sudo nano /etc/firejail/firejail.config

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

    text
    network yes

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

    text
    #restricted-network yes

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

    text
    mkdir -p ~/.config/firejail

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

    text
    nano ~/.config/firejail/max.profile

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

    text
    
    # 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. Ничего страшного не произойдёт, если включить его и на машине с обычным интерфейсом:

    text
    
    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:

    text
    nano ~/update-max-net.sh

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

    text
    
    #!/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") правил сгенерировано"

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

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

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

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

    или

    text
    ip -br a

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

    text
    "$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 не будут выполняться.

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

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

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

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

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

    text
    exit  

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

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

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

    text
    nano ~/run-max.sh

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

    text
    
    #!/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)

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

    text
    chmod +x ~/run-max.sh

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

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

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

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

    Создаем файл:
    text
    nano ~/.local/share/applications/max-firejail.desktop

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

    text
    
    [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
    

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

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

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

    text
    update-desktop-database ~/.local/share/applications/

  • Установка Obsidian

    Obsidian — мощное приложение для ведения заметок в формате Markdown, построенное на базе локальной папки с файлами. Поддерживает граф связей, плагины и удобную навигацию.
    text
    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. Поддерживает подсветку синтаксиса, вкладки, плагины и работу с кодировками.
    text
    sudo aptitude install pluma

  • Установка текстового редактора xed

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

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

    text
    sudo aptitude install -f

  • Установка мессенджера Bitrix24

    Bitrix24 — корпоративный мессенджер и CRM-система.
    text
    wget -O /tmp/bitrix24.deb https://dl.bitrix24.com/b24/bitrix24_desktop.deb && sudo apt-get install /tmp/bitrix24.deb

Войдите или зарегистрируйтесь, чтобы ответить.