• Каким образом можно создать виртуальную сетевую папку в ubuntu?

    leahch
    @leahch Куратор тега Linux
    3Д специалист. Долго, Дорого, Дерьмово.
    Все просто.
    1) Делаете VPN (OpenVPN или WireGuard) между серверами
    2) Ставите на сервер дома NFS-сервер, и расшариваете папочку, пусть будет /mnt/share
    3) На удаленном сервере монтируете в какой нибудь каталог mount -t nfs /mnt/share 192.168.XXX.XXX:/mnt/share
    Ответ написан
    Комментировать
  • Как настроить маршрутизацию VLAN с использованием Debian в качестве роутера?

    @Bright144
    допустим у тебя на роутере интерфейсы:
    eth0(который выходить на интернет);
    eth1;
    eth2;
    eth3;
    eth4;
    Сначала политику FORWARD устанавливает на DROP с командой
    iptables -P FORWARD DROP
    и добавляем правило для всех установленного соединение
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    .
    Теперь мы хотим пропускать трафик из eth4 на eth1 добавляем правило iptables -A FORWARD -i eth4 -o eth1 -j ACCEPT
    и добавляем в таблицу nat такое правило
    iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
    .
    Это правило разрешает всем устройствам на eth4 доступ к устройствам на eth1. То есть подключенные устройства eth4 может постучатся к устройствам eth1, но устройства eth1 не может. Если хочешь сделать eth1 тоже мог постучаться к eth4 добавляешь такие же правило но поменяешь местами интерфейсов.
    Так ты можешь устанавливать правило для других интерфейсов.
    И чуть не забыл, у тебя должен быть включен ip forwarding. Раскомментируй на /etc/sysctl.conf net.ipv4.ip_forward=1, и примени команду sysctl -p
    Ответ написан
    9 комментариев
  • Как правильно подключить транк?

    @anton99zel
    29а класс средней школы №7
    Бывает Sip транк, бывает Sip клиент.
    Между тобой и Новофоном - транк
    Между Конечной точкой и тобой - Клиент
    register используется для регистрации твоего астериск на сервере оператора для подключения твоей конечной точки (одного выделенного номера).

    host, user,secret - для авторизации твоего сервера на стороне оператора для подключения множества неконечных точек для создания АТС на твоей стороне.
    Ответ написан
    1 комментарий
  • Ngixn как блокировать подобные запросы /?[a-z]{9}?

    @dodo512
    /path?query
    location работает только с /path, а GET параметры следует искать в $args.
    Или $request_uri там URI запроса целиком (с аргументами)
    if ($request_uri ~ "/\?[a-z]{9}") {
        return 403;
    }
    Ответ написан
    Комментировать
  • Как отследить где находится исполняемый файл, который нагружает сервер Linux?

    @kavabangaungava
    Всякое бывало.
    У меня была подобная проблема. Это майнер. Отловил с помощью lsof.
    Ответ написан
    Комментировать
  • Как посмотреть, через какой интерфейс произошло VPN соединение на Микротике?

    @TheBigBear Автор вопроса
    СтарОдмины мы
    Сам задал, сам отвечу
    Спасибо добрым людям с другого форума

    В PPP-профиль On Up надо скрипт добавить, который в лог будет писать:
    /log info "$"user", $"called-id""
    Ответ написан
    Комментировать
  • Как пустить трафик пользователя через резервный канал на miktotik?

    @Drno
    настраиваем отдельный порт под 2 провайдетра, настраиваем NAT
    далее в фаервол>>манг - делаем маркировку для нужного локального IP
    далее в ip>routes ставим роут 0.0.0.0 через нужный шлюз, с дистанцией больше основного инета. и там ставим маркикровку, которую указали в предыдущем действии

    В итоге икротик промаркирует траффик от указаного локального IP, и направит его в указаный шлюз
    Ответ написан
    Комментировать
  • Как работают маски /32 (255.255.255.255)?

    Mystray
    @Mystray
    NOC
    Ответ в общем случае - PPP.
    В чем суть маски и шлюза по умолчанию для обычного хоста? Определить, является ли адрес назначения в локальной сети (то есть сетевая часть получателя и отправителя совпадает) и, если получатель таки "не здесь", то отправить трафик "шлюзу по умолчанию", а он уже пусть разберется.
    В случае же PPP-соединения, которое есть "труба", в принципе нет "локальной сети", есть только некий удаленный хост, при чем только один, который находится на том конце трубы.
    С той стороны точно так же роутеру известно, что на противоположном конце конкретной трубы находится конкретный хост, и только один, потому ему тоже не надо заморачиваться с масками, то есть у нас отсутствует локалка.
    Так что получается х.х.х.х/32 ===PPP-соединение===y.y.y.y/32, оба хоста знают, кто находится на противоположном конце соединения, все счастливы, айпи-адреса можно раздавать независимо от того, в каком сегменте находится абонент, и не надо тратить лишние айпишники на "адрес сети", "адрес шлюза" и "широковещательный адрес".
    При этом марщрут по умолчанию тоже может бють не "на хост", а "в трубу", а уже с той стороны разберутся.
    Ответ написан
    Комментировать
  • Как работают маски /32 (255.255.255.255)?

    athacker
    @athacker
    Я вам даже больше скажу :-) Там IP-адреса могут быть даже из разных подсетей :-)

    Например, вам провайдер выдаст 192.168.1.1, а на серверной стороне будет IP 10.0.0.1. И что характерно -- всё будет работать :-)

    Дело в том, что L2TP строит туннель. Туннель -- это такая штука, которая "точка-точка". Т.е. фактически, в сети, которая доступна через поднятый L2TP-интерфейс, кроме вас и сервера, никого больше нет. И не будет :-) Поэтому нет смысла в туннеле делать маски длиннее /32. Любой трафик, который уходит через L2TP-интерфейс, будет попадать на сервер. А сервер уже дальше сам будет разбираться, что с этим трафиком делать -- либо маршрутизировать, либо дропнуть. Это так, если на пальцах совсем.
    Ответ написан
    Комментировать
  • Mikrotik Как разделить трафик wan и lan, для отправки одного через wireguard?

    karabanov
    @karabanov
    Системный администратор
    Сделай для Wi-Fi отдельный bridge и отдельный DHCP с отдельным пулом адресов.
    Интерфейс/сы wlan исключи из bridge который для LAN и добавь их в bridge, который для Wi-Fi
    Настрой NAT
    В настройках фаирвола с помощью Mangle промаркируй трафик из LAN и заворачивай только его в wireguard
    Ответ написан
    1 комментарий
  • Как пустить часть трафика через VPN?

    @MaDerer
    Лично мне известно о существовании двух вариантов доступа через роутеры. Инструкции уже не подскажу, так как занимался этим год-два назад.
    1. Через роутер Mikrotik.
    2. Через роутер с OpenWRT прошивкой.
    Суть обеих методов в том, что создаётся два соединения: основное и VPN. Все сайты, которые находятся в созданном списке заворачиваются на VPN. Остальные через обычный доступ.
    Я таким образом заворачиваю на Микротике нужные мне сайты на OpenVPN сервер, но достаточно долго возился по нескольким статьям, и когда у меня заработало, я сам не понял как. Точнее не понял, что я до этого делал не так, что у меня не работало.
    Ответ написан
    2 комментария
  • Как пустить часть трафика через VPN?

    Vindicar
    @Vindicar
    RTFM!
    Есть два подхода. В обоих случаях тебе нужен список заблокированных IP, его можно взять на антизапрете, например.
    Дальше вопрос, как пускать трафик.
    1. На хабре был материал про динамическую подгрузку маршрутов через BGP. Плюс - работает с любыми протоколами, и не требует дополнительной настройки со стороны проксируемого ПО. Минусы - ощутимо сложнее в понимании, на мой взгляд, да и с кроссплатформенностью могут быть проблемы. В статье приведена реализация на роутере Mikrotik.
    2. Использовать файл proxy.pac. Его можно сгенерировать скриптом типа такого:
    #!/bin/bash
    #!/bin/bash
    DNS_SERVER=8.8.8.8
    BLACKLIST_URL="http://antizapret.prostovpn.org/iplist.txt"
    #куда класть файл proxy.pac
    PACDIR=/var/www/html
    TMPLIST=/tmp/iplist.txt
    #домены, которые нужно пускать через прокси независимо от содержимого iplist.txt
    DOMAINS=(\
    rutracker.org \
    facebook.com \
    facebook.net \
    fbcdn.net \
    twitter.com \
    twitter.co \
    t.co \
    twimg.com \
    twitpic.com \
    periscope.tv \
    pscp.tv \
    )
    #качаем чёрный список
    wget -q --tries=10 -O "$TMPLIST" "$BLACKLIST_URL"
    # вытаскиваем IP наших прописанных доменов
    declare -a EXTRAIPS=()
    for domain in "${DOMAINS[@]}"
    do
            dig A "$domain" +short @$DNS_SERVER | grep -v '\.$' >>"$TMPLIST"
    done
    #в чёрном списке есть отдельные IP и есть подсети
    #также чёрный список очень длинный, поэтому кодируем его более компактно.
    IPLIST=`grep -Ex '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' "$TMPLIST" | awk '/^[0-9]+/ {split($1,b,/\./); printf("0x%02x%02x%02x%02x,", b[1],b[2],b[3],b[4]);}'`
    SUBNETLIST=`awk '/[0-9.]+\.[0-9]+\.[0-9]+\.[0-9]+\/[0-9]+/ {split($1,p,/\//); printf("[\"%s\", %s], ", p[1], p[2]);}' <"$TMPLIST"`
    #генерируем proxy.pac по шаблону
    #он проверяет домен на вхождение в фиксированные домены, а потом IP по списку.
    function templatePAC {
            NAME=$1
            shift
            DMNLIST=("$@")
            cat >"$PACDIR/$NAME" <<EOF
    function FindProxyForURL(url, host) {
      var domainblacklist = [
    EOF
            for d in "${DMNLIST[@]}"
            do
                    echo "  '$d'," >>"$PACDIR/$NAME"
            done
            cat >>"$PACDIR/$NAME" <<EOF
      ];
      var ipblacklist = [ $IPLIST ];
      var subnetblacklist = [ $SUBNETLIST ];
    
      function endsWith(str, suffix) {
        return str.indexOf(suffix, str.length - suffix.length) !== -1;
      }
      function numberToMask(n) {
        var m=[0,128,192,224,240,248,252,254,255];
        var r=[];
        for (var i=0; i<4; i++) {
          var p = (n > 8) ? 8 : n;
          r[i] = m[p];
          n -= p;
        }
        return r.join(".");
      }
      function maskMatch(ip, mask) {
        var m = numberToMask(mask[1]);
        return isInNet(ip, mask[0], m);
      }
    
      var blocked = false;
      for (var i=0; !blocked && (i<domainblacklist.length); i++)
        blocked = blocked || ((host == domainblacklist[i]) || endsWith(host, '.'+domainblacklist[i]));
      if (!blocked) {
        var ip = dnsResolve(host);
        for (var i=0; !blocked && (i<subnetblacklist.length); i++)
          blocked = blocked || maskMatch(ip, subnetblacklist[i]);
        blocked = blocked || (ipblacklist.indexOf(convert_addr(ip)) != -1);
      }
      if (blocked)
        return "PROXY ТУТ_ТВОЙ_ПРОКСИ:ПОРТ";
      else
        return "DIRECT";
    }
    EOF
    }
    # генерируем файл
    templatePAC proxy.pac "${DOMAINS[@]}"
    
    rm -f "$TMPLIST"

    Тогда можно отдавать этот proxy.pac любым веб-сервером (но лучше внутри VPN - если VPN не работает, то смысл в файле?), и настроить браузер на его использование.
    Минусы: работает только с браузерами, требует наличия вебсервера и полноценного прокси-сервера внутри VPN-сети (т.е. просто арендованный VPN не подойдёт, нужен VPS). Но мне показалось это проще в понимании, чем возня с BGP, да и требуется только наличие современного браузера и VPN клиента, без привязки к роутеру. Можно хоть на ноуте настроить, как я сделал.
    Ответ написан
    Комментировать
  • Алерт при отключении одного из БП?

    @TheBigBear
    СтарОдмины мы
    Мой скрипт в пару строк всего
    :global volt [/system health get voltage];
    :if ($volt < 131) do={
    /tool e-mail send to="admin@my-company.ru" body="$volt" subject="Power crash"
    }
    Пара пояснений
    В Вашем случае вместо voltage будет проверка psu1-voltage и psu2-voltage
    Микротики питаются через блоки питания типа ББП-20 (12 вольт и аккум 7 АЧ - на деле выдает 13,7 на розетке и 12.8 на полностью заряженном аккуме) напряжения хватает, глюков нет
    Значение 131 = 13.1 В Почему именно это - в момент отключения питания напряжение на аккуме снижается до номинального плавно - вот и подобрал среднее
    body= - пишите что хотите
    почта настраивается в Tools - E-mail
    Шедулер запускает раз в час - Вы можете сделать хоть раз в минуту (микротики на аккумуляторе могут работать до двух дней, так что мне не принципиально)
    Проверку на то, что письмо уже отправлено и повторять не нужно делать не стал
    Дерзайте
    Ответ написан
    4 комментария
  • Настройка репозиторий ubuntu 20 без интернета?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Возможно, если принесёте кусочек интернета откуда-нибудь. См. apt-mirror, например.
    Ответ написан
    5 комментариев
  • Обьясните внятно что такое SRE(обеспечения надежности веб-сервисов)?

    xSkyFoXx
    @xSkyFoXx
    SRE, Site Reliability Engineering, это инженерная профессия, которая ставит себе за цель обеспечение надёжной работы систем. Слово "site" используется в широком смысле и включает в себя обеспечение надёжности всех логических уровней системы.
    SRE, если мне не изменяет память, возникли в Google. Возникли для обеспечения надёжной работы большого количества сервисов.
    "Библией SRE" является книга, изданная Google (бесплатно доступна здесь: https://landing.google.com/sre/book.html Она включает в себя множество практик, приёмов и фолософский утверждений, которые SRE используют в повседневной работе. Сам такой владею и местами перечитываю до наступления понимания.
    Надо понимать, что SRE - это разработчики с глубокими навыками системного администрирования и очень крепкой психикой, потому что именно они находятся на переднем фронте систем и их работа - обеспечивать бесперебойную доступность сервисов по всей планете, 24/7.
    Ответ написан
    2 комментария
  • Публикация kubernetes Dashboard через NodePort, как?

    @thunder2004 Автор вопроса
    разобрался, сам виноват что неправильно прописал параметр в файле конфигурации,
    вот рабочий вариант
    kind: Service
    apiVersion: v1
    metadata:
    labels:
    k8s-app: kubernetes-dashboard
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard
    spec:
    type: NodePort
    ports:
    - port: 443
    targetPort: 8443
    nodePort: 32320
    selector:
    k8s-app: kubernetes-dashboard
    Ответ написан
    Комментировать
  • Что такое такое rest api?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    API социальных сетей - это вполне типичные примеры реализации REST API.

    REST (RESTful) - это общие принципы организации взаимодействия приложения/сайта с сервером посредством протокола HTTP. Особенность REST в том, что сервер не запоминает состояние пользователя между запросами - в каждом запросе передаётся информация, идентифицирующая пользователя (например, token, полученный через OAuth-авторизацию) и все параметры, необходимые для выполнения операции.

    Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):
    1. получение данных с сервера (обычно в формате JSON, или XML)
    2. добавление новых данных на сервер
    3. модификация существующих данных на сервере
    4. удаление данных на сервере

    Операция получения данных не может приводить к изменению состояния сервера.

    Для каждого типа операции используется свой метод HTTP-запроса:
    1. получение - GET
    2. добавление - POST
    3. модификация - PUT
    4. удаление - DELETE

    Т.е. :

    GET-запрос /rest/users - получение информации о всех пользователях
    GET-запрос /rest/users/125 - получение информации о пользователе с id=125
    POST-запрос /rest/users - добавление нового пользователя
    PUT-запрос /rest/users/125 - изменение информации о пользователе с id=125
    DELETE-запрос /rest/users/125 - удаление пользователя с id=125
    Ответ написан
    20 комментариев
  • Почему может не проходит платеж за Apple Developer Program?

    У меня такая же проблема скажите вы оплату производили пользуясь Safari?

    Вобщем получилось у меня оплатить)))
    Расклад такой я написал в поддержку в сотый раз и мне дали менеджера он естественно кормил завтраками потом сказал что хз в чем проблема и что бы я создал новый аккаунт. Я уже создавал новый аккаунт и толку 0, поэтому забил и не стал опять это делать. Я написалиему вопрос про графу при оплате Billing address типо чтоттам за адресс должен быть и т.д. Он сказал чтоттам адресс должен быть который я указывал когда получал карту в банке.
    И вот тут прикол. В Америке если физ.лицотполучает карту то они указывают допустим свой домашний адресс как billing address в РФ при получении карты мы ничего не указываем. Я ему объяснил это и сказал что бы он спросил у технарей как их система проверяет данные перед списание средств. И выяснилось как он сказал что их система пытается проверить данные которых нет. В итоге он сказал что позволит мне оплатить прямым банковским переводом и дал реквизиты для перевода я перевел деньги со счета компании и в тот же день получил доступ.
    Надеюсь кому то поможет. Попробуйте раскрутить их на прямой банковский перевод со счета на счет. Вам дадут в эпл номер заказа который надо будет указать при переводе в деталях платежа и все они получат и откроют доступ.
    Ответ написан
    4 комментария