Ответы пользователя по тегу Linux
  • Как правильно запретить выход на "серые" сети через eth0?

    hint000
    @hint000
    у админа три руки
    там сверху вниз -
    Accept
    проброс портов
    masquerade
    проброс портов и masquerade в таблице NAT, а цепочка FORWARD в таблице FILTER. Нет никакой разницы, заполните вы сперва NAT, затем FILTER или сперва FILTER, затем NAT.
    Имеет значение только порядок правил в пределах каждой цепочки.
    Таргет Accept доступен в любых цепочках таблицы FILTER и в любых цепочках таблицы NAT, так что совершенно бесполезна информация о том, что у вас сначала Accept - это никак не помогает определить, к чему относится ваш Accept.

    Но можно с уверенностью ответить на последний вопрос:
    и в самый низ я пихаю эти 3 правила, мы же дропаем FORWARD этих пакетов ? или их надо пихать до правила masquerade ?
    Никакой разницы между этими вариантами не будет, они эквивалентны. Либо оба эти варианта будут работать, либо оба варианта работать не будут. Зависит от того, что у вас раньше в цепочке FORWARD.
    Ответ написан
    1 комментарий
  • Как закрыть сайты на хостинге от индексации ботами?

    hint000
    @hint000
    у админа три руки
    Только от честных ботов. Вы им в robots.txt говорите, что им сюда не следует ходить и они не ходят.
    Но они не обязаны делать так, как им велено в robots.txt.
    А запретить только ботам вы сможете не раньше, чем научитесь отличать бота от человека. А если разработчик захочет сделать бота, неотличимого от человека?

    Ну если контент на сайте не общедоступный, а только для зарегистрированных пользователей - тогда другое дело, хоть по паспорту можно регистрировать живых пользователей и боты уже не пройдут (у них нет паспортов).
    Ответ написан
  • Как реализовать взаимодействие виртуальной ОС с переферией для прошивки?

    hint000
    @hint000
    у админа три руки
    Пробрасывать USB-устройство в виртуальную машину.
    Подключаете устройство к хосту, прописываете в настройках виртуальной машины, что такое-то устройство нужно отдать под управление виртуальной машины. Когда стартуете виртуалку, то устройство перестанет быть доступно на хосте и будет доступно только из виртуалки. "Горячее подключение" (т.е. без перезапуска виртуалки) скорее всего не будет работать, только "холодное".

    P.S. надеюсь, в качестве гипервизора вы используете Qemu-KVM, а не богомерзкий VB.

    P.P.S. мне-то на практике приходилось пробрасывать только аппаратный USB-ключ,
    а вот есть человек Денис _______________ - он собаку съел на пробросе в виртуалку даже видеокарты (и статья на Хабре есть https://habr.com/ru/articles/575654/ https://habr.com/ru/articles/448312/ ). Это к тому, что при необходимости можно не только USB-устройства пробросить, но и PCI-устройства.
    Ответ написан
    1 комментарий
  • Не отображаются файлы на рабочем столе, хотя в папке они есть?

    hint000
    @hint000
    у админа три руки
    Попробуйте в настройках автозапуска приложений (при логине) добавить nautilus --no-default-window
    Такое чувство, что у вас ни один файловый менеджер не привязан к управлению рабочим столом, и остались только функции оконного менеджера.
    Ответ написан
    Комментировать
  • Как заставить опенВПН отключаться при закрытии терминала?

    hint000
    @hint000
    у админа три руки
    В ярлык:
    Exec=sh -c "echo $$ | tee /tmp/qwe123.pid; su -l qwe-internet -c 'DISPLAY=:0 openvpn --config /opt/123.ovpn'"

    В crontab добавить:
    * * * * * ps -q $(cat /tmp/qwe123.pid) >/dev/null 2>&1 || команда-на-отключение-ovpn

    В пределах одной минуты после закрывания окна (среднестатистически через полминуты) произойдёт отключение.
    Принцип: тупо пишем номер процесса в файл, а кроном отлавливаем наличие процесса с таким номером.
    Ответ написан
  • Lvm versus fsck - как решить проблему курицы и яйца?

    hint000
    @hint000
    у админа три руки
    Ответ хоть и никак не относится к lvm, но...
    юзер жмет ресет во время работы по дурной виндовой привычке
    / или /usr не восстанавливаются, полэкрана красным, сервисы не стартовали
    Митигирую такой сценарий выносом из / отдельных ФС /var и /tmp (про /home можно не говорить, это у всех норма его выносить, ну и тем более никакого swap-файла на / ). В сам / при повседневной работе практически ничего не пишется, только при редких ручных изменениях /etc и при обновлении или установке пакетов. Так что в момент, когда Штирлиц бьёт Холтоффа бутылкой по башке, повредиться может в основном /var или /home, но никак не / (ведь Штирлиц обычно не устанавливает обновления при беседе с Холтоффом).
    Практикую этот лайфхак уже лет семь, полёт нормальный.
    spoiler
    65b2852c9562e042532647.png
    Ответ написан
    3 комментария
  • Как создать скрипт для выключения нескольких пк?

    hint000
    @hint000
    у админа три руки
    Ответ написан
    Комментировать
  • Как вырезать слова из вывода?

    hint000
    @hint000
    у админа три руки
    sshd -T | grep -i ‘^mac” | xargs -n1 echo | grep -v etm | xargs echo

    Исходную строку разбили на много строк, по одному слову на строку, погрепали ненужное, снова собрали из отдельных слов одну строку.
    Это ленивый (и не универсальный) вариант, если не хотите изучать sed или awk, как советует pfg21 (а он плохого не посоветует).
    Ответ написан
    2 комментария
  • Почему во freepbx само ставится ПО?

    hint000
    @hint000
    у админа три руки
    Например, атоматически устанавливались обновления, а у какого-то из установленных пакетов изменились зависимости, что-то добавилось в зависимостях и поэтому это что-то автоматически установилось, чтобы не препятствовать обновлению. Но такое редко бывает и haproxy сам по себе не мелочь какая-то, чтобы внезапно появиться в чьих-то зависимостях. Но проверить легко - отдаёте команду на удаление haproxy (удаление начинается только после подтверждения [Y/n], так что можно не подтверждать и ничего фактически не удалять):sudo apt remove haproxy
    ...и смотрите список пакетов к удалению после строки The following packages will be REMOVED:
    Ответ написан
    Комментировать
  • Как выяснить, какая служба/программа/скрипт генерирует SNMP-запросы во вне?

    hint000
    @hint000
    у админа три руки
    sudo netstat -upnc | grep ":161 \|:162 "
    161\UDP и 162\UDP - это порты, которые использует SNMP
    здесь sudo требуется, чтобы увидеть информацию о процессах, без sudo команда показывает остальную информацию, кроме номеров и имён процессов.
    -с нужно для постоянного обновления, т.к. на момент запуска может не быть трафика по указанным портам; прерываете команду, когда заметите полезный вывод.
    пробел после 161 и 162 нужен, чтобы не было мусора в выводе.
    Ответ написан
    Комментировать
  • Как сделать образ флешки (ext2) в ISO формате?

    hint000
    @hint000
    у админа три руки
    ISO имеет свою собственную файловую систему. Нельзя сделать образ в ISO, чтобы вместе с этим сохранилась файловая система Ext2. Разве что снять образ с Ext2, а потом этот единственный файл образа ещё и упаковать внутрь ISO, но это совершенно бессмысленный вариант.
    Поэтому вам правильно пишут в других ответах. Забудьте слово ISO, оно здесь ни к чему. Просто образ диска. В "сыром формате" (raw) образ можно снять командой dd. После этого можно командой qemu-img преобразовать raw в формат одного из гипервизоров, либо попробовать скормить гипервизору прямо raw, если гипервизор умный.
    Ответ написан
    9 комментариев
  • Как удаленно установить и запустить OS в режиме lite?

    hint000
    @hint000
    у админа три руки
    Я хочу поднять кластер на компьютерах в учебном классе для расчетов гидродинамики на openfoam. Точнее мы с преподавателем.
    Надо было с этого начинать. :)
    Я не занимался системным администрированием и по этому плохо разбираюсь в необходимых технологиях
    Тогда лучший вариант для вас - это самый простой в реализации вариант. У него есть недостатки, но он на самом деле простой.
    1. Берёте флешку и устанавливаете Linux на флешку. Т.е. не в режиме Live-USB, а делаете полноценную установку, только вместо диска выбираете пустую флешку.
    2. Устанавливаете туда нужную программу и прописываете её запуск после загрузки системы.
    3. Берёте ещё (N-1) флешек и клонируете с первой флешки. Загружаете с этих N флешек N компьютеров. По окончании работы забираете флешки с собой.
    Ответ написан
    Комментировать
  • Комп виснет наглухо, в логах есть следы, кто может разобрать, в чём причина?

    hint000
    @hint000
    у админа три руки
    и потом "многоточие"
    Не исключено, что за многоточием скрывается самое интересное. Т.е. что-то могло писаться в лог, но кэш не удалось сбросить на диск. В таком случае было бы здорово настроить вывод rsyslog по сети на другой линуксовый хост (параллельно с записью в локальный файл) - есть шанс, что в переданном логе сохранится больше интересного.

    А ещё я бы погонял Memtest86 непрерывно проходов пять или больше.
    А ещё в конфигах включите комбинации с клавишей SysRq и после очередного зависания проверьте, реагирует ли на магическую последовательность R E I S U B.
    Ответ написан
    Комментировать
  • Как подключить к интернету виртуальную машину в Linux?

    hint000
    @hint000
    у админа три руки
    У вас из сильно устаревших инструкций. Такой синтаксис (-net) уже не следует использовать. Нужно примерно так:
    -netdev user,id=FooBar-099999 -device virtio-net-pci,netdev=FooBar-099999
    (здесь "FooBar-099999" - это произвольный идентификатор). Т.е. опция -net user заменена на -netdev user, а опция -net nic заменена на универсальную опцию -device (которая в qemu относится не только к сети, но и к любым виртуальным устройствам).
    Но вы точно хотите в режиме -netdev user (-net user)? На каждый чих руками пробрасывать порт и делать холодный перезапуск виртуальной машины?
    Лучше сразу привыкать настраивать полноценную сеть через бридж. Со стороны qemu это выглядит примерно так:
    -netdev bridge,id=Foo-09,br=virbr0 -device virtio-net-pci,netdev=Foo-09,mac=52:54:00:00:99:99
    ...но требует предварительного поднятия бриджа на хосте, либо прописыванием в конфиг сети, либо командами из пакета bridge-utils. Здесь virbr0 - это имя предварительно созданного бриджа.
    Ответ написан
    3 комментария
  • Не подключается к RDP, что делать?

    hint000
    @hint000
    у админа три руки
    Как можно проверить, не серый ли айпи?
    И проверять не нужно. Он серый, гарантирую.
    IP-адрес я брал на компьютере с помощью команды ip addr
    Вы же видите, что тут нет белого адреса.
    Еще пробовал
    curl ifconfig.me
    Вывело:
    138.124.180.132
    И он тоже не работает
    Это белый, но после NAT провайдера, с этого адреса кроме вас ещё куча клиентов работает (сотня человек запросто).
    нет возможности сейчас подключить по-хорошему домашний инет к ПК
    Ну тогда на что вы рассчитываете?
    Это проблема провайдера или как?
    Это не проблема провайдера, потому что провайдер не обещал вам белый адрес. Если вам нужно ночью ехать на другой конец города, а денег на такси нет, есть деньги на трамвай, но трамвай не ходит ночью - то это проблема трамвая (по вашей логике)? Ни у трамвая, ни у провайдера проблемы нет, они работают так, как должны работать.
    Как мне бороться с этим?
    Арендовать VPS, настроить туннель и пробрасывать нужные порты с белого адреса VPS на свой ПК.

    Upd. Кстати, адрес 138.124.180.132 принадлежит не ISP-конторе (в том числе и не сотовому оператору), а VPS-хостеру. Причём настолько нищебродскому хостеру, что даже сайт у них сделан на коленке за несколько часов школьником. Причём диапазон адресов как бы назначен США, но принадлежит якобы британской компании. Очень загадочно. :) Вы не морочите нам голову?
    Ответ написан
    8 комментариев
  • Как настроить rsyslog.conf?

    hint000
    @hint000
    у админа три руки
    Чтобы задать правильный вопрос, вам нужно понять один принцип.
    Событие для записи в лог генерирует конкретная программа. Вернее, множество конкретных программ.
    TCP (сбоев/разрывов соединений)
    Соединения tcp на конкретном хосте могут иметь десять, сто, тысяча программ. Чтобы конкретная программа писала в лог насчёт разрыва соединения, нужно, чтобы автор этой программы предусмотрел, написал кусок кода, который это делает. Чтобы тысяча программ писали в лог насчёт разрыва соединения, нужно, чтобы тысяча авторов написали в своих программах такие куски кода (что крайне маловероятно). Нет какой-то магии, которая бы без всякого программного кода делала что-то, чего кому-то захотелось.
    rsyslog простая штука, он записывает в лог события, которые получает от любых программ (ну ещё может получать события с других хостов или посылать на другой хост). Сам по себе он не следит за происходящим в системе. Знаете шутку "если никто не видел, значит ничего и не было" - так это как раз про rsyslog. Вот и подумайте, а кто должен сообщить логгеру про такое событие, как разрыв соединения.
    Ответ написан
    Комментировать
  • Как скомпилировать программу linux?

    hint000
    @hint000
    у админа три руки
    Есть такой код (не мой)

    Что я делаю не так?
    1. вы не даёте ссылку на источник кода, а это могло бы упростить разбор.
    2. вангую, что этому коду лет десять, может быть меньше, может быть больше. Давайте посмотрим, какие версии ядра Linux были поддерживаемыми лет 10 назад; а это были версии 2.6.x и 3.x.x; версия 4.0 впервые появилась в 2015 г., версия 5.0 - в 2019 г. Уже поняли, на что я намекаю? Вы пытаетесь подсунуть компилятору исходники ядра одной из последних версий, на которой этот код, возможно, никто вообще не тестировал. Сколько там изменений было за десяток лет... Короче, пробуйте его скомпилировать вместе с исходниками 3.x. Если ошибок будет хотя бы меньше - уже кое-что.
    Ответ написан
    Комментировать
  • Как откатить перемещение файлов в KDE Dolphin?

    hint000
    @hint000
    у админа три руки
    Самый очевидный вариант: переместить все файлы с диска Б в папку на диске А
    Ничего очевидного в этом не вижу.
    Хотя была старая академическая шутка
    Дано: пустой чайник; задача: вскипятить воду. Физик: наливает в чайник воду, ставит чайник на плиту, кипятит. Математик: делает всё то же самое, что и физик. Меняем условия. Дано: чайник с водой; задача: вскипятить воду. Физик: ставит чайник на плиту, кипятит. Математик: выливает воду из чайника и говорит: "задача сводится к предыдущей".

    Самый очевидный вариант: повторить перемещение с диска А на диск Б.
    В вашем варианте некоторые файлы будут перемещены три раза: А -> Б -> А -> Б - а нафига?

    боюсь что один из файлов окажется битым т.к. я прервал процесс перемещения.
    Перемещение файла на другой диск состоит из двух простых действий: (1) копирование файла на другой диск; (2) удаление исходного файла. Второе действие выполняется только когда первое выполнено успешно. В принципе битый файл может остаться на новом месте, если процесс перемещения был жёстко убит (обычно такого не бывает в случае штатной отмены действия). Но в случае битого файла не было завершено копирование, а потому не было и удаления исходного файла. Т.е. для каждого битого файла остался исходный небитый на диске А. Тем более не логично возвращать что-то с Б на А, рискуя затереть битым небитого.
    - Битый небитого везёт... (из русской народной сказки)
    Ответ написан
    Комментировать
  • Iptables, в чем назначение состояние NEW в цепочке INPUT?

    hint000
    @hint000
    у админа три руки
    Давайте по аналогии. Вы заходите в автобус или в вагон поезда. В этот момент вы - NEW. К вам подходит кондуктор. В автобусе вы покупаете билет, а в поезде предъявляете ранее купленный билет. Кондуктор запоминает ваше лицо и больше к вам не пристаёт, потому что теперь вы - ESTABLISHED. А ещё у вас может быть с собой чемодан - это ваш RELATED.
    Когда вы делаете ... --state RELATED,ESTABLISHED,NEW -j ACCEPT -это значит что кондуктор спит или бухает, вошедших NEW зайцев никто не проверяет, они спокойно едут.
    Не забывайте, что после срабатывания -j ACCEPT или -j DROP дальнейшие правила в цепочке не применяются, так что не важно, что в следующей строчке вы хотите закрыть доступ по какому-то порту, если вы уже применили -j ACCEPT раньше.
    Ответ написан
    4 комментария