Задать вопрос
  • Неочевидный вопрос: почему в WireGuard трафик для удалённых узлов (peers) идёт через стандартные маршруты, а не через тоннель?

    @dronmaxman
    VoIP Administrator
    not from all - ни откого не принимать, по факту никогда не будет работать

    не маркированый 1234
    32765: from all not fwmark 0x1234 lookup 100500

    вообще без меток
    32765: from all fwmark 0x0/0xFFFFFFFF lookup 100500

    Надеюсь ты в курсе что в wg0.conf можно указать таблицу маршрутизации (Table=100500) для интерфейса WG и не издеваться так над правилами?
    Ответ написан
    1 комментарий
  • Перенаправление на другой сервер, если первый не отвечает?

    @dronmaxman
    VoIP Administrator
    Ставим nginx и настраиваем его как прокси.

    http {
        upstream backend {
            server primary_server.example.com;  # Основной сервер
            server backup_server.example.com backup;  # Резервный сервер
        }
    
        server {
            listen 80;
            server_name example.com;
    
            location / {
                proxy_pass http://backend;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
            proxy_read_timeout 10s; # Тайм-аут ожидания ответа от сервера
            proxy_send_timeout 10s; # Тайм-аут на отправку данных к серверу
            proxy_next_upstream error timeout http_502 http_503 http_504; # Условия перехода на резервный сервер
            }
        }
    }


    1. upstream backend - блокирует определение пула серверов для балансировки нагрузки.
    2. server primary_server.example.com - это основной сервер, на который Nginx будет отправлять запросы.
    3. server backup_server.example.com backup - это резервный сервер, на который запросы будут направляться только тогда, когда основной сервер недоступен.
    4. proxy_pass - используется для передачи запросов к пулу серверов.
    Ответ написан
    Комментировать
  • Как реализовать работающий скрипт на RouterOS 7.15.3?

    @dronmaxman
    VoIP Administrator
    :local msg "192.168.1.123 parsing packet failed, possible cause: wrong password"
    :local ipAddress [:pick $msg 0 [:find $msg " parsing packet failed"]]
    :log info "IP Address: $ipAddress"
    Ответ написан
    1 комментарий
  • Что меняется при установке tsc=unstable в параметрах ядра?

    @dronmaxman
    VoIP Administrator
    на что влияет параметр tsc

    Если включить tsc=unstable:
    - Игнорируется TSC как источник времени, если он обнаружен как нестабильный.
    - Переключение на альтернативные таймеры, которые могут быть более стабильными, но немного медленнее в работе, например HPET или ACPI PMTIMER.

    Насколько я вычитал из гугла, это не баг, а следствие кучи технологий сохранения энергии типа динамической частоты, снижения энерго потребления. Процессору, а особенно двум тяжело синхронизировать время и они переходят на другой способ синхронизации HPET, что в свою очередь незначительно понижает производительность. Кстати HPET надо включить в bios (High Precision Event Timer).

    В большинстве задач использование HPET снизит продуктивность процессора на 1-3%, для виртуализации это может быть около 10%. Все зависит от систем которые будут использоваться, насколько эти системы критичны к времени, например база данных.

    Можно попробовать поиграться с настройками BIOS выключив настройки энегро экономии, разные acpi sleep state, dynamic frequency, C-states або SpeedStep

    Возможно есть свежий bios в котором пофиксили проблему. Более свежее ядро linux так же может помоч.
    Ответ написан
    2 комментария
  • Маршрутизатор с функцией Link Aggregation Control Protocol (LACP)?

    @dronmaxman
    VoIP Administrator
    LACP позволяет объединить каналы между двумя устройствами, между этими устройствами нет промежуточных точек. LACP должен поддерживаться с обоих сторон, а не только на твоей стороне). Если бы у тебя к одному провайдеру было бы три кабеля, и все они на стороне провайдера входили бы в одино устройство, то ты мог бы договорится и объединить их в один LACP.

    То что ты ищеш это решения SD-WAN.
    Peplink
    Speedify
    OpenMPTCProuter

    Суть у них одна и та же. Есть домашний роутер, есть роутер в облаке. Домашний роутер строит через разных провайдеров тунель к облачному роутеру через всех доступных ему провайдеров, облачный сервер объединяет эти туннели и выпускает в интернет. Соответственно облачный роутер должен иметь интернет каналы больше чем все твои 3 провайдера вместе)

    Почему так? Почему просто нельзя сумировать каналы?
    Есть протоколы которые не предусматривают изменение IP адреса в процессе работы, а именно это и будет происходить если просто просумировать интернет каналы. Поэтому в большенстве случаев просто используют балансировку между интернет каналыми ибо тупо дешевле чем SD-WAN
    Ответ написан
    Комментировать
  • Как в очереди отслеживать не отвеченные звонки?

    @dronmaxman
    VoIP Administrator
    может быть NO ANSWER да же, если кто-то ответил на звонок.

    Логично, допустим в очереди 3 агента, один ответил на звонок а остальные естественно нет, а проверку ты делаеш в hangup, а для 3х агентов будет 3 хенгапа)

    Надо делать через handler. Надо переписать начало звонка и перед вызовом queue вставить handler такого вида.

    ;; Это надо вставить перед вызовом очереди 
    same => n,Set(CHANNEL(hangup_handler_push)=hdlr-queue-miss-call,s,1(${CALLERID(num)})
    
    [hdlr-queue-miss-call]
    exten => s,1,Noop(---==== Handler queue miss call ===---)
    same => n,Set(CLIENT_NUMBER=${ARG1})
    same => n,GotoIf($[${ABANDONED}]?:end_call)
    same => n,AGI(tg-noanswer.php, ${CLIENT_NUMBER}, ${STRFTIME(${EPOCH},,%Y.%m.%d--H:%M:%S)})
    same => n(end_call),Hangup()
    Ответ написан
    7 комментариев
  • Как пустить трафик на instagram.com в туннель, имея openwrt-роутер?

    @dronmaxman
    VoIP Administrator
    Попробуй так https://habr.com/ru/articles/767464/

    Обрати внимание на ссылку https://github.com/itdoginfo/allow-domains
    Ответ написан
    Комментировать
  • Объясните, можно ли выпустить еще сертификаты на подобии CA или продлить существующий на MikroTik для SSTP?

    @dronmaxman
    VoIP Administrator
    дата действия CA 365 дней

    знатно промахнулся) лет на 20 стоило выпускать. Как только он заканчивается, то все сертификаты которые он подписал стают не валидны.

    По хорошему надо все переделать с нуля.

    Если нужен как-то промежуточный этап, то можна сделать кросс подпись. Выпускаем новый сертификат CA со сроком жизни 20 лет, и выпустить новый сертификат для sstp но подписать его зразу двумя сертификатами CA - это кросс подпись. Это даст тебе время обновить CA на клиентах, т.к. этому сертификату sstp будут доверять клиенты и с новим и со старым CA.
    Ответ написан
  • Как перенаправить домен 3го уровня на другой ДНС сервер?

    @dronmaxman
    VoIP Administrator
    *.blog.mysite.ru
    Ответ написан
    Комментировать
  • Безопасна ли установки ПО для VDI?

    @dronmaxman
    VoIP Administrator
    VMware Horizon Client - это офф клиент то VMware, нормальный софт, сами используем. Он не дает возможности подключаться к ПК сотрудника, только получать немного статистика про подключение.

    Вот если бы это был какой-то NoName с китайского сайта - я бы задумался)
    Ответ написан
    Комментировать
  • Как сделать общедоступной консоль игры в браузере как на хостингах?

    @dronmaxman
    VoIP Administrator
    https://tty-share.com/

    (так консоль сервера становится доступной только одному пользователю),

    Почему?
    Ответ написан
  • Не доступен формат файла на мак "Обмен персональной информацией (.p12)"?

    @dronmaxman
    VoIP Administrator
    В macOS есть встроенная утилита openssl, попробуй с помощью нее сначала экспортировать в cer и потом конвертировать в p12.

    openssl pkcs12 -export -out certificate.p12 -in certificate.cer -nokeys
    Ответ написан
    Комментировать
  • Я добавил правило в DOCKER-USER которое дает доступ к портам только 1 айпи, но теперь из контейнеров нельзя выйти в интернет. Как поправить?

    @dronmaxman
    VoIP Administrator
    sudo iptables -I DOCKER-USER -i ens3 ! -s IP/24 -j DROP

    Дава расшифруем что ты написа: блокировать ВСЕ что зашло через интерфейс ens3 кроме одной подсети. В результате твои контейнеры отправляют запросы, а ответы блокируются этим правилом.

    Надо указать порт, пример для web сервера
    sudo iptables -I DOCKER-USER -i ens3  ! -s IP/24 -p tcp -m tcp --dport 80 -j DROP
    Ответ написан
    5 комментариев
  • Получить сертификат автоматически и продлить https для apache?

    @dronmaxman
    VoIP Administrator
    Я вот так это делаю

    services:
      nginx:
        image: nginx:alpine
        restart: always
        ports:
          - 80:80
          - 443:443
        networks:
          - web
        volumes:
          - ./letsencrypt:/etc/letsencrypt:ro
          - ./www:/var/www/html
          - ./nginx/nginx.conf:/etc/nginx/nginx.conf
          - ./nginx/conf:/etc/nginx/conf.d
          - ./nginx/logs:/var/log/nginx
        command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'"
    
    
      certbot:
        image: certbot/certbot
        environment:
          - PGID=101
          - PUID=101
        volumes:
          - ./letsencrypt:/etc/letsencrypt:rw
          - ./www/certbot:/var/www/certbot
        entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
    Ответ написан
    Комментировать
  • Как связать несколько локальных сетей через WireGuard на ubuntu?

    @dronmaxman
    VoIP Administrator
    Пример конфигурации объединения двух сете (Lan2Lan) через WireGuard VPN сервер с публикацией порта веб сервера (192.168.10.10:80) на WireGuard сервере через VPN без NAT (без маскарада реального IP клиента) !!!

    Схему сети смотрите в вопросе.

    # Сервер

    /etc/wireguard/wg0.conf

    [Interface]
    PrivateKey = <VPN_SERVER_PRIVATE_KEY>
    Address = 10.8.0.1/24
    ListenPort = 51820
    
    [Peer]
    PublicKey = <CLIENT2_PUBLIC_KEY>
    AllowedIPs = 10.8.0.2/32, 192.168.10.0/24 ## маршруты сами прописываются в таблицу маршрутизации сервера
    
    [Peer]
    PublicKey = <CLIENT3_PUBLIC_KEY>
    AllowedIPs = 10.8.0.3/32, 192.168.88.0/24 ## маршруты сами прописываются в таблицу маршрутизации сервера
    
    
    
    
    ## Forward
    sudo sysctl -w net.ipv4.ip_forward=1
    
    
    ## Firewall 
    sudo iptables -A FORWARD -i wg0 -j ACCEPT
    sudo iptables -A FORWARD -o wg0 -j ACCEPT
    sudo iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE 
    
    ## Публикуем порт и прокидываем его на сервер в локальной сети за Клиент 2 через VPN
    iptables -t nat -A PREROUTING -i enp3s0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.10.10:80


    # Клиент 2

    [Interface]
    Address = 10.8.0.2/32
    PrivateKey = <CLIENT2_PRIVATE_KEY>
    Table = 100
    PostUp = ip rule add from 10.8.0.2 table 100; ip route add 192.168.88.0/24 dev wg0; ip route add 10.8.0.0/24 dev wg0; ip rule add fwmark 1/3 table 100
    PostDown = ip rule del from 10.8.0.2 table 100; ip route del 192.168.88.0/24 dev wg0; ip route del 10.8.0.0/24 dev wg0; ip rule del fwmark 1/3 table 100
    
    [Peer]
    AllowedIPs = 0.0.0.0/0
    PublicKey = <VPN_SERVER_PUBLIC_KEY>
    Endpoint = <VPN_SERVER_IP>:51820
    
    
    
    
    ## Forward
    sudo sysctl -w net.ipv4.ip_forward=1
    
    
    ## Firewall 
    sudo iptables -A FORWARD -i wg0 -j ACCEPT
    sudo iptables -A FORWARD -o wg0 -j ACCEPT
    sudo iptables -t nat -A POSTROUTING -o enp4s0 -j MASQUERADE
    
    ## Вот эта строчка маркирует ответ от веб сервера, а потом на него 
    ## применяется правило (ip rule add fwmark 1/3 table 100) и  пакет попадает в таблицу 100 и 
    ## при такой конфигурации будет виден реальный IP клиента. 
    ## При этом сервер 192.168.10.10 в интернет будет выходить через gw (Клиент 2), 
    ## а ответы  отправлять в VPN.
    
    iptables -t mangle -A PREROUTING -i wg0 -m conntrack --ctstate NEW -j CONNMARK --set-xmark 0x1/0x3
    iptables -t mangle -A PREROUTING -i enp3s0 -m connmark ! --mark 0x0/0x3 -j CONNMARK --restore-mark --nfmask 0x3 --ctmask 0x3


    # Клиент 3

    [Interface]
    Address = 10.8.0.3/32
    PrivateKey = <CLIENT3_PRIVATE_KEY>
    Table = 100
    PostUp = ip rule add from 10.8.0.3 table 100; ip route add 192.168.10.0/24 dev wg0; ip route add 10.8.0.0/24 dev wg0; ip rule add fwmark 1/3 table 100
    PostDown = ip rule del from 10.8.0.3 table 100; ip route del 192.168.10.0/24 dev wg0; ip route del 10.8.0.0/24 dev wg0; ip rule del fwmark 1/3 table 100
    
    [Peer]
    AllowedIPs = 0.0.0.0/0
    PublicKey = <VPN_SERVER_PUBLIC_KEY>
    Endpoint = <VPN_SERVER_IP>:51820
    
    
    
    ## Forward
    sudo sysctl -w net.ipv4.ip_forward=1
    
    
    ## Firewall 
    sudo iptables -A FORWARD -i wg0 -j ACCEPT
    sudo iptables -A FORWARD -o wg0 -j ACCEPT
    sudo iptables -t nat -A POSTROUTING -o enp4s0 -j MASQUERADE
    Ответ написан
  • Почему сервис не запускается в контейнере докер?

    @dronmaxman
    VoIP Administrator
    main_queue:
        build:
          context: .
          dockerfile: Dockerfile
        command: 'php artisan queue:work'
        depends_on:
          - main_db 
        networks:
          - mm-network
        environment:
          - DB_CONNECTION=${DB_CONNECTION}
          - DB_HOST=${DB_HOST}
          - DB_PORT=${DB_PORT}
          - DB_DATABASE=${DB_DATABASE}
          - DB_USERNAME=${DB_USERNAME}
          - DB_PASSWORD=${DB_PASSWORD}


    или

    main_queue:
        build:
          context: .
          dockerfile: Dockerfile
        command: 'php artisan queue:work'
        depends_on:
          - main_db 
        networks:
          - mm-network
        env_file:
          - .env
    Ответ написан
  • Возможна ли авторизация на сайте через kerberos на macos не в домене?

    @dronmaxman
    VoIP Administrator
    Чтобы пройти аутентификацию в царстве Kerberos IU в macOS:

    В папке "Приложения" откройте папку "Утилиты". Затем откройте Keychain Access.
    В меню Keychain Access выберите Ticket Viewer.
    Выберите Добавить идентификатор. В поле "Идентификатор:" введите имя пользователя IU в формате username@ADS.IU.EDU (используйте заглавные буквы, как указано). Затем введите парольную фразу в поле "Пароль:".
    Выберите "Продолжить", чтобы получить свой первый билет Kerberos.
    Чтобы сделать этот идентификатор Kerberos идентификатором по умолчанию, выберите Установить по умолчанию.
    Ответ написан
    1 комментарий
  • Есть ли удобная программа для доступа к виртуальным машинам?

    @dronmaxman
    VoIP Administrator
    Ответ написан
    Комментировать
  • Создать мини-сервер с переадресацией на разные адреса?

    @dronmaxman
    VoIP Administrator
    - По локальной сети, предположим - 192.168.30.10:9000
    - Через VPS, предположим - vps_1.org:9001


    На этом моменте решают через HarpinNAT или создают на роутере DNS запись vps_1.org которая ссылается на 192.168.30.10. На клиенте прописывают vps_1.org и уже в зависимости от локации, он будет подключаться соответственно.

    - Через VPS, предположим - vps_1.org:9001
    - Через резервный VPS, предположим - vps_2_reserve.org:9002

    Тут сложнее, разве что делать две А записи vps_1.org которые будут ссылаться на оба VPN и уже какой IP рандомом отдаст DNS таки подключишся.
    Ответ написан