Задать вопрос
  • Почему запрашивает пароль после настройки SSH?

    shurshur
    @shurshur
    ksologub, либо передать ssh ключ через параметр -i имя_файла, либо в .ssh/config описать этот файл, например:

    Host IP.of.mikrotik
        IdentityFile ~/.ssh/mikrotik_rsa
    Написано
  • Возможна ли модификация UEFI для смены названия подключённых устройств?

    shurshur
    @shurshur
    ruslanisayeu, прошивка биоса - это бинарный код для архитектуры x86. Там где-то должны быть строки, вот в них найти чё так.

    Но это будет только в самом BIOS отображаться, приложения и ОС будут видеть нстоящий процессор.
    Написано
  • Как получить превью видео вконтакте?

    shurshur
    @shurshur
    Владислав, гугл "как получить access token vk" прям куча информации.

    Надо только понять, нужен токен пользователя (своего) или группы, у них там есть различия в правах, и иногда нужно именно токен группы. Но для данной задачи дсотаточно токена пользователя.
    Написано
  • Возможна ли модификация UEFI для смены названия подключённых устройств?

    shurshur
    @shurshur
    ruslanisayeu, в BIOS скорее всего сам код BIOS правили, инструкции процессора при этом не менялись.
    Написано
  • Сложная маршрутизация на linux роутере. Как правильно готовить policy based routing?

    shurshur
    @shurshur
    Godless, есть -j MARK - это метка, которая ставится на пакет, и вот именно её можно использовать в ip rule. Метка -j CONNMARK это метка соединения.

    Возможно, будет понятнее из вот такого фрагмента скрипта для моего старого fw:

    # Add connmark rules for policy routing
    if [ "$CONNMARK" = "1" ]
    then
      iptables -t mangle -A PREROUTING -i $IF_V -j MARK --set-mark 6
      iptables -A INPUT -i $IF_Q -j CONNMARK --set-mark 3
      iptables -A INPUT -i $IF_O -j CONNMARK --set-mark 4
      iptables -A INPUT -i $IF_C -j CONNMARK --set-mark 5
      iptables -A INPUT -i $IF_V -j CONNMARK --set-mark 6
      iptables -A INPUT -i $IF_M -j CONNMARK --set-mark 7
      iptables -A INPUT -i $IF_X -j CONNMARK --set-mark 8
      iptables -A INPUT -i $IF_T -j CONNMARK --set-mark 9
      iptables -A INPUT -i $IF_S -j CONNMARK --set-mark 10
      for if in $IF_A $IF_W $IF_S
      do
        iptables -A FWD_ACCEPT -i $IF_Q -o $if -j CONNMARK --set-mark 3
        iptables -A FWD_ACCEPT -i $IF_O -o $if -j CONNMARK --set-mark 4
        iptables -A FWD_ACCEPT -i $IF_C -o $if -j CONNMARK --set-mark 5
        iptables -A FWD_ACCEPT -i $IF_V -o $if -j CONNMARK --set-mark 6
        iptables -A FWD_ACCEPT -i $IF_M -o $if -j CONNMARK --set-mark 7
        iptables -A FWD_ACCEPT -i $IF_X -o $if -j CONNMARK --set-mark 8
        iptables -A FWD_ACCEPT -i $IF_T -o $if -j CONNMARK --set-mark 9
        iptables -A FWD_ACCEPT -i $IF_S -o $if -j CONNMARK --set-mark 10
      done
      for chain in PREROUTING OUTPUT
      do
        iptables -t mangle -A $chain -j CONNMARK --restore-mark
      done
    fi


    Тут на все входящие и транзитные пакеты ставится CONNMARK, а затем с помощью:

    iptables -t mangle -A $chain -j CONNMARK --restore-mark


    ставится обычный MARK с таким же значением. Можно было бы делать явный MARK так:

    iptables -t mangle -A $chain -m connmark --mark 5 -j MARK --set-mark 5


    Но если обе метки имеют одинаковое значение, то --restore-mark часто просто удобнее.

    Для работы L2TP было сделано так

    for ip in 85.21.0.0/24 78.107.1.0/24
    do
      for p in tcp udp
      do
        iptables -t mangle -A OUTPUT -d $ip -p $p --dport 1701 -j MARK --set-mark 5
      done
    done


    Проблема в том, что L2TP-сервер провайдера на порту 1701 имеет такой же IP, как и внутри туннеля, и с моими наворотами после поднятия VPN трафик до самого VPN начинал роутиться внутрь VPN. Но если явно трафик до сетей, где обитает VPN-сервер, пометить меткой таблицы с роутингом в нужного провайдера мимо VPN, то начинает работать.

    В принципе, можно много чего делать. Например, по сигнатурам маркировать трафик при наличии каких-то ключевых комбинаций и маркировать. Или маркировать по --state NEW новые соединения, а дальше уже промаркированными они будут существовать свой жизненный цикл.

    Сама маршрутизация таким вот корявеньким но работающим скриптом.

    spoiler
    #!/bin/sh
    #set -v
    source /lib/rc/sh/functions.sh
    source /etc/firewall/vars
    
    addpr() {
      # if table mark
      if=$1
      table=$2
      mark=$3
      c=$(ip a l dev $if|grep scope\ global|awk '{ print $2 }')
      ip=$(echo $c|cut -d / -f 1)
      mask=$(echo $c|cut -d / -f 2)
      net=$(ip ro l dev $if|grep scope\ link|grep -v metric|awk '{ print $1 }')
      einfo Adding policy routing for $table [$net]
      if [ -z "$net" ]
      then
        ewarn "SKIP $table [net undefined]"
        return
      fi
      #einfo Adding ip=$ip mask=$mask net=$net
      #echo ip route replace $net dev $if src $ip table $table
      ip route replace $net dev $if src $ip table $table
      #echo ip route replace $LAN_A dev $IF_A src $ip table $table
      ip route replace $LAN_A dev $IF_A src $ip table $table
      #echo ip route replace $LAN_W dev $IF_W src $ip table $table
      ip route replace $LAN_W dev $IF_W src $ip table $table
      # fixme: check wheither pointopoint or not, don't compare with ppp0
      if [ "$if" = "ppp0" ]
      then
        ip route replace default dev $if table $table
      else
        gw=$(ip ro l dev $if|grep \ via\ |head -n 1|awk '{ print $3 }')
        if [ -z "$gw" ]
        then
          net1=$(echo $net|cut -d / -f 1)
          # fixme this is buggy
          gw=$(echo $net1|perl -pne 's/\.0$/.1/')
          einfo "BUGGY GW $gw"
        fi
        #echo $table ... gw=$gw
        ip route replace default via $gw table $table
      fi
      ip ru del p 10$mark >& /dev/null
      ip ru add p 10$mark fwmark $mark lookup $table
      ip ru del p 11$mark >& /dev/null
      ip1=$(echo $ip|tr . ' '|awk '{ print $1 "." $2 }')
      if ! [ "$ip1" = "10.254" ]
      then
        ip ru add p 11$mark from $ip lookup $table
      fi
    }
    
    eindent
    eindent
    addpr $IF_Q *** 3
    addpr $IF_O *** 4
    addpr $IF_C *** 5
    addpr $IF_V l2tpvpn 6
    addpr $IF_M *** 7
    addpr $IF_X *** 8
    addpr $IF_T *** 9
    addpr $IF_S *** 10
    eoutdent


    Тут IF_Q, IF_O, IF_C - провайдерские интерфейсы (и локальные сети в них); IF_V - VPN в провайдера IF_C; IF_M, IF_X, IF_T, IF_S - разные VPN; IF_A, IF_W - внутриквартирные сети.
    Написано
  • Чем мониторить трафик копроративной сети?

    shurshur
    @shurshur
    datka, transparent в век повсеместного https очень неудобно использовать.
    Написано
  • Нужен ли периодический ping (heartbeat) на локальных соединениях?

    shurshur
    @shurshur
    Локальные соединения обычно рвутся либо при умирании приложения, либо если там оказваются забиты все буферы (например, случился deadlock в недрах кода и входящий в приложение трафик не разбирается). Всё это нормально обрабатывать просто на исключениях. И логгировать. В случае возникновения реальных проблем (частые повторы ситуации, потери важных данных итд) - разбираться более целенаправленно.
    Написано
  • Где сидят блокчейн-разработчики?

    shurshur
    @shurshur
    Enterneter, когда блокчейны с биткойнами только начинали хайповать, было довольно много людей, которые пытались там что-то детально изучать, что-то пробовать и аналогичное разрабатывать. Сейчас это вышло из моды. Сейчас все любознательные на нейросети перекинулись.
    Написано
  • Можно ли восстановить номер телефона?

    shurshur
    @shurshur
    rPman, не 3 года, а 1 год всего был отстойник в нулевых, а сейчас и того меньше, так как оборот номеров очень большой, а выданные операторам ёмкости не резиновые..
    Написано
  • Можно ли восстановить номер телефона?

    shurshur
    @shurshur
    Скорее всего, номер попал под требования об обновлении персональных данных. А поскольку это требование приходит как SMS или звонок на этот же номер, то узнать об этом было затруднительно.

    Восстановить, увы, никак.
    Написано
  • Долговечен ли File_Id документа в тг?

    shurshur
    @shurshur
    На текущий момент да, file_id живут бесконечно. Но есть большой вопрос, когда в Телеграме перестанет хватать финансов всё это хранить за многие годы. И что они при этом будут делать - неясно. Например, у них должны быть тысячи файлов, загруженные уже мёртвыми аккаунтами - логично удалять именно их, а не файлы живых ботов.

    У меня есть бот, который отправляет статичные тексты и ногда с файлами. Когда я набор текстов и файлы обновляю, бот при первой отправки файла не находит file_id в таблице files своей собственной базы, загружает файл в Телеграм и записывает в базу. В дальнейшем этот файл всегда отправляется по id. Уже не первый год работает без проблем. Но файлы я храню, в случае необходимости просто почищу таблицу - и файлы загрузятся заново.
    Написано
  • Работаю в мониторинге. Куда двигаться дальше?

    shurshur
    @shurshur
    Если текущая контора устраивает и начальник адекватный, то рекомендую пойти с этим вопросом к нему. Возможно, предложат конкретное направление роста к взаимному интересу и работника, и работодателя.
    Написано
  • Почему то дискорд бот не реагрует на события on_member_remove и on_member_join?

    shurshur
    @shurshur
    Дубль Почему event on_member_join не работает?

    На сайте нельзя размещать вопросы повторно. Тем более в том первом вопросе тебе уже ответили.
    Написано
  • Почему event on_member_join не работает?

    shurshur
    @shurshur
    MinZeroMax, всё в разных файлах не так делается. В discord.py для этого придумали коги (cogs).

    Включение интентов на портале недостаточно, нужно также передать эти интенты в инициализацию бота, вон там в ответе пример этого есть. Если это не сделать, то во взаимодействии бота с серверами дискорда события входа-выхода передаваться не будут.
    Написано
  • Как переключить раскладку клавиатуры в консоли?

    shurshur
    @shurshur
    Valdemar Smörman, вариантов не 0.

    На самом деле в консоли клавиатурная раскладка и шрифт грузятся через команды loadkeys и setfont, а файлы для них лежат в /usr/share/{keymaps,consolefonts,consoletrans}. Но это в рантайме можно поменять, а автору явно лучше было бы на постоянной основе. И там setupcon автоматизирует этот процесс лучше, заодно позволя общий конфиг с X.
    Написано
  • Чем удобно производить контроль/логирование производимых изменений в конфигах/инфраструктуре?

    shurshur
    @shurshur
    Довольный Айтишникъ, конфиги цисок просто сливаются файлами и кладутся в гит. Можно даже логгировать что там происходит по сети и реагировать например на событие записи в конфиг. Ну или тоже уже начать конфигами управлять за пределами самих цисок, что вообще-то тоже может быть неплохо.
    Написано
  • Как подключить роутер к интернету через Wi-Fi?

    shurshur
    @shurshur
    JohnFord, а там такое устройство есть? Может, оно называется как-нибудь типа wlp1s2?
    Написано
  • Как восстановить таблицу разделов и mbr если еще не перегрузился?

    shurshur
    @shurshur
    Есть утилита testdisk которая умеет находить разделы, если они там были, а таблица разделов уже всё.
    Написано
  • Куда класть soho/стартап бэкапы?

    shurshur
    @shurshur
    В любом случае, имеет смысл хранить ещё один запасной бэкап где-нить на диске у себя дома, можно даже не совсем регулярный, на случай совсем внезапной ситуации.
    Написано