Ответы пользователя по тегу Linux
  • Блокировка Openvpn/Wireguard, какой VPN сервер выбрать в качестве альтернативы?

    ValdikSS
    @ValdikSS
    Самый простой вариант, который (пока) не блокируют — OpenVPN TCP через HTTP-прокси. OpenVPN поддерживает работу через прокси без дополнительных программ, поэтому настройка сводится к:
    • Установке прокси-сервера на сервере (настройте его так, чтобы доступ был разрешён только к IP-адресу и порту VPN-сервера)
    • Добавлению директивы http-proxy в конфигурационный файл клиента


    Вообще, OpenVPN TCP можно туннелировать в любом другом слое или протоколе. Самый очевидный и популярный вариант — stunnel.
    Альтернативный подход, не столь надёжный, зато применяемый на стороне и клиента, и сервера — нарушение определения VPN-протокола до блокировки сессии. Примеры: 1, 2.
    Ответ написан
    Комментировать
  • Как скрыть код на питоне на мини-компьютере от пользвователя?

    ValdikSS
    @ValdikSS
    Для этого используют полнодисковое шифрование с использованием Trusted Boot.
    Ответ написан
    Комментировать
  • Комп виснет наглухо, в логах есть следы, кто может разобрать, в чём причина?

    ValdikSS
    @ValdikSS
    Вполне возможно, что причина зависаний в nouveau. Я недавно сталкивался с подобными зависаниями на 8600GT, причём система зависала полностью, словно процессор переставал выполнять код, будто драйвер вводит систему в бесконечное ожидание команд от PCI-шины, блокирующее процессор.

    https://forums.debian.net/viewtopic.php?t=150559
    Кому-то помогло отключение аппаратного курсора:
    https://bbs.archlinux.org/viewtopic.php?id=254229

    решил проверить syslog и увидел странное […] и потом "многоточие"
    Скорее всего вы видите нуль-байты битого файла: размер файла успел увеличиться до зависание системы, а сами данные не успели записаться.

    Решение: использовать проприетарный драйвер или сообщать об ошибке разработчикам nouveau и отлаживать с ними.
    Ответ написан
    2 комментария
  • Какие linux дистрибутивы можно установить на пк с 8 гигами озу?

    ValdikSS
    @ValdikSS
    1. Установите ядро 6.1, в более старых отсутствует поддержка MGLRU. В Debian 12 оно установлено по умолчанию, в Debian 11 необходимо установить из backports: https://packages.debian.org/bullseye-backports/lin...
    2. Установите пакет zram-tools, он настроит сжатие оперативной памяти — это гораздо быстрее, чем сброс данных на диск. В настройках /etc/default/zramswap настройте использование 80% RAM
    3. Настройте MGLRU — улучшенный менеджер виртуальной памяти и файлового кеша, который куда лучше понимает, какие данные вытеснять не следует (это основная причина тормозов при недостатке памяти):
    sudo tee /etc/tmpfiles.d/mglru.conf <<EOF
    w-      /sys/kernel/mm/lru_gen/enabled          -       -       -       -       y
    w-      /sys/kernel/mm/lru_gen/min_ttl_ms       -       -       -       -       1000
    EOF

    И перезагрузитесь.
    Ответ написан
    1 комментарий
  • Могу ли я назначить приложению конкретный сетевой интерфейс в ubuntu?

    ValdikSS
    @ValdikSS
    Необходимо настроить либо policy routing для каждого интерфейса (в особенности, для физического интерфейса сервера), либо настроить отдельные программы (демоны) на bind к конкретным сетевым интерфейсу (и убедиться, что у вас сохраняется маршрут по умолчанию через оба интерфейса, но при этом имеют разную метрику).
    И самый простой вариант, который позволит подключаться только с заранее указанных IP-адресов — добавить маршрут через конкретный интерфейс до конкретного адреса или диапазона.
    Ответ написан
    Комментировать
  • Список аннонсированных префиксов в asn для скрипта?

    ValdikSS
    @ValdikSS
    Вам нужен BGP Full View.
    Ответ написан
    Комментировать
  • Нужен ли отдельный linux user для сайта?

    ValdikSS
    @ValdikSS
    Нужны отдельные unix-пользователи на сервис/проект/сайт, иначе в случае взлома сайта А будет возможность читать и модифицировать файлы сайта Б, т.к. все файлы принадлежат www-data.

    Отдельные пользователи нужны всем сервисам, которые так или иначе взаимодействуют с файлами. В случае PHP это php-fpm (или другой исполнитель) — у каждого сайта должен быть свой пул со своим пользователем. Всё, с чем взаимодействие ведётся только по сети/сокету и имеет правильное разделение привилегий (базы данных), должны работать от своего (стандартного) пользователя.

    В случае веб-сервера также уместно разделить статические данные от кода: картинкам и .js-файлам следует назначить www-data, чтобы веб-сервер мог их прочесть и раздать, а php-код любого сайта при этом не мог эти данные модифицировать. Верно и в обратную сторону — веб-сервер не сможет отдать ваши .php-файлы без их исполнения в случае некорректной настройки веб-сервера.
    Ответ написан
    Комментировать
  • Почему Linux постоянно обращается к внешнему диску во время простоя?

    ValdikSS
    @ValdikSS
    Если вы недавно создали файловую систему на диске, и особенно если раздел большой (многотерабайтный), то на нём еще могут создаваться inode'ы.
    https://fedetft.wordpress.com/2022/01/23/on-ext4-a...

    Если к диску обращаются программы, обнаружить конкретный процесс или файл поможет эта статья:
    https://habr.com/ru/articles/476414/
    Ответ написан
    1 комментарий
  • Как настроить множество сеервисов на одном сервере?

    ValdikSS
    @ValdikSS
    Но я все еще могу ввести s1.domain.com:9090 или domain.com:9090 и попасть на второй сервер

    Потому что вы пробрасываете (expose) порты из Docker на хост. Не используйте эту функцию, тогда сервисы не будут открываться на порту хоста.
    Ответ написан
  • Почему такое странное поведение статической маршрутизации в linux?

    ValdikSS
    @ValdikSS
    Так как вы пытаетесь маршрутизировать подсеть через роутер 10.0.0.1, которая доступна через другой "роутер" (10.0.0.2) в вашем же L2-сегменте, роутер 10.0.0.1 отправляет вашему компьютеру ICMP Redirect в целях оптимизации маршрута.
    Настраивается принятие ICMP-редиректов опцией net.ipv4.conf.all.accept_redirects и сопутствующими, а отправка — net.ipv4.conf.all.send_redirects и сопутствующими.

    Почему маршрутизация перестаёт работать, когда трафик идёт напрямую? Сложно сказать без отладки, но пальцем в небо: Wi-Fi — не Ethernet, хоть и пытается быть похожим на него. В Wi-Fi не передаётся MAC-адрес отправителя, из-за чего, например, его нельзя добавить в Ethernet-бридж.
    Компьютер подключён также по Wi-Fi? В таком случае, вероятно, смартфон получает ваши пинги с MAC-адреса роутера 10.0.0.1, соответственно и ответить пытается ему, а не компьютеру.
    Ответ написан
    Комментировать
  • Как отобразить работу скрипта Python запущенного через systemctl?

    ValdikSS
    @ValdikSS
    Скорее всего, если ваш скрипт пишет в stdout/stderr, а вы это не видите в журнале, проблема с буферизацией вывода.
    Запускайте скрипт как python3 -u bot.py. Параметр -u отключает буферизацию.

    -u Force the stdout and stderr streams to be unbuffered. This option has no effect on the stdin stream.
    Ответ написан
  • Безопасны ли такие настройки nftables?

    ValdikSS
    @ValdikSS
    Не смогут ли посторонние лица эксплуатировать сервер в качестве маршрутизатора?
    Могут, у вас же в IPv4 FORWARD-таблице policy accept без каких-либо запрещающих правил.
    Добавьте разрешающее правило для интерфейса туннеля, а остальное заблокируйте.
    Также блокировка всех исходящих и входящих IPv6-пакетов создаст проблемы программам, рассчитывающим на доступность IPv6-связности (хотя бы внутри хоста). Разрешите пакеты с/до lo.
    Ответ написан
    Комментировать
  • Как вывести Линукс из бесконечного свопа?

    ValdikSS
    @ValdikSS
    Alt-PrintScreen-F нажмите, это запустит Out-of-memory-killer и убьет процесс с самым большим потреблением RAM.
    А чтобы избавиться от проблемы — Давняя проблема Linux: плохая работа при недостатк... (общая информация) + ядро 6.1+ с включённым MGLRU.
    Ответ написан
    Комментировать
  • Dnsmasq: как использовать DNS-серверы, полученные по DHCP от провайдера?

    ValdikSS
    @ValdikSS
    Используйте любой способ динамической настройки. В NetworkManager есть плагин для задействования dnsmasq, если вам нужен именно этот сервер.
    https://fedoramagazine.org/using-the-networkmanage...

    Если у вас не используется NetworkManager, а используется dhclient или dhcpcd, напишите хуки, которые бы правили конфигурационный файл и перезапускали dnsmasq.
    Ответ написан
  • Какой Линукс подойдет для этого компьютера?

    ValdikSS
    @ValdikSS
    У вас 32-битный процессор? Из современных именитых x86 32-битных дистрибутивов осталось только два: Debian и OpenSUSE Tumbleweed. Остальные либо еще формируют 32-битные пакеты, но не выпускают установочные .iso (а значит, никто эти пакеты не проверяет), либо вовсе не собирают x86, либо многие пакеты в них сломаны, как в ArchLinux32.

    Рекомендую вам попробовать с Debian 12 (bookworm, в данный момент в testing), т.к. он достаточно свежий, а главное — в нём свежее ядро, в котором решена давняя проблема Linux — зависание при недостатке памяти.
    После установки, выполните следующие команды, чтобы увеличить отзывчивость:

    sudo apt install zram-tools
    sudo sed -i 's/^#PERCENT=.*/PERCENT=150/' /etc/default/zramswap
    echo 'w-      /sys/kernel/mm/lru_gen/enabled          -       -       -       -       y' | sudo tee /etc/tmpfiles.d/mglru.conf
    echo 'w-      /sys/kernel/mm/lru_gen/min_ttl_ms       -       -       -       -       1000' | sudo tee -a /etc/tmpfiles.d/mglru.conf


    Перезагрузитесь, затем пробуйте пользоваться системой.

    Если же у вас Pentium 4 из более поздних поколений, то можете установить 64-битный дистрибутив, из выбор значительно шире. См. статью по ссылке выше.
    Ответ написан
    Комментировать
  • Автоматическая раздача ipv6?

    ValdikSS
    @ValdikSS
    В автоматическом режиме
    Никак, Wireguard предназначен только для статических туннелей, преимущественно сервер-сервер. Никакой конфигурации клиента со стороны сервера не предусмотрено.
    Ответ написан
    Комментировать
  • Как сделать загрузочную USB из ISO файла под Linux?

    ValdikSS
    @ValdikSS
    Вот так точно работает:

    dd if=linuxmint-20.2-xfce-64bit.iso bs=1 count=432 of=isohdpfx.bin
    
    xorriso -as mkisofs -V "Mint" -o final/linuxmint-20.1-xfce-oldpc-le9-07.07.2021-64bit.iso -J -joliet-long -cache-inodes -isohybrid-mbr isohdpfx.bin -b isolinux/isolinux.bin -c isolinux/boot.cat -boot-load-size 4 -boot-info-table -no-emul-boot -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot -isohybrid-gpt-basdat unpacked
    Ответ написан
    Комментировать
  • Как по SSH на удалённой машине вывести на экран уведомление?

    ValdikSS
    @ValdikSS
    wall позволит отправлять сообщения всем пользователям машины, часто они дублируются как уведомление в DE.
    Ответ написан
    Комментировать
  • За счет чего происходит ускорение программ при наличии модуля ядра linux?

    ValdikSS
    @ValdikSS
    Модуль TUN/TAP, через которые работают все не-ядерные VPN, очень медленный из-за того, что у него есть только интерфейс получения и отправки пакетов по одному пакету за вызов. Большое количество переключений контекста между ядром и пользовательским уровнем очень затратны, что влечёт за собой неэффективное использование процессорного времени.

    Это типичная известная проблема, которую можно решить в течение месяца, но которую не решили в течение двух десятилетий. Достаточно кому-нибудь взяться, внедрить современный (io_uring, например) или какой-то отдельный интерфейс для отправки и получения нескольких пакетов за один вызов, и скорость магически увеличится на порядок-два.

    Оценить ускорение от уменьшения переключений контекста довольно просто, достаточно провести тестирование со значительно увеличенным MTU пакета. Вот какие цифры приводит проект slirp4netns.

    Implementation |  MTU=1500  |  MTU=4000  |  MTU=16384  |  MTU=65520
    ---------------|------------|------------|-------------|------------
    slirp4netns    | 1.07 Gbps  | 2.78 Gbps  |  4.55 Gbps  |  9.21 Gbps
    Ответ написан
    4 комментария
  • Как решить проблему по перезаписыванию resolv.conf?

    ValdikSS
    @ValdikSS
    1. Ищем официальную документацию на CentOS 7. Находим.
    2. Ссылки на смену DNS нет, но есть ссылки на документацию RedHat 7. Переходим.
    3. Открываем раздел Configuring and managing networking > Chapter 33. .... Бинго!


    Смотрите, как просто!
    Ответ написан
    1 комментарий