• Как связать несколько локальных сетей через 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 таки подключишся.
    Ответ написан
  • Стоит ли менять Docker на Proxmox?

    @dronmaxman
    VoIP Administrator
    Для твоей текущей конфигурации proxmox добави пару плюсов в виде снимков, клонирование, бекап на уровне всей виртуальной машинки, возможность запускать windows. При правильном подборе железа можно пробросить GPU или еще какой-то девайс и попробовать какой-то изврат. В целом это хороший опыт.
    Ответ написан
    Комментировать
  • Есть ли какие-нибудь ограничения виртуальной Windows 11 на маке?

    @dronmaxman
    VoIP Administrator
    На macbook с Intel, работает адекватно, впринцыпе 99% всего будет работать, есть даже прикольный вариант с Paralells + BootCamp.

    На m1, эмуляция через UTM теряет 90% производительности. Paralells + windows 11 ARM, работает быстро, большая часть софта запускает. НО!!! Если надо использовать какой-то драйвер для подключения внешнего устройства через USB в виртуальную машину, то 99% что не будет работать т.к. драйверов под windows arm ОЧЕНЬ мало, а x86 драйвера не работают.
    Ответ написан
    3 комментария
  • Проект на Vue3 в Docker. Как получить данные из примонтированной директории?

    @dronmaxman
    VoIP Administrator
    Именованая шара решит проблему.
    Как в docker сохранить данные имеющиеся в контейнере?

    Чаще всего такое происходит из-за нехватки прав, изменить права на src=/path/to/external/public, в соответствии с правами процесса который запускается в контейнере.
    Ответ написан
    Комментировать
  • Возможно ли получить сертификат от Lets Encrypt без nginx?

    @dronmaxman
    VoIP Administrator
    docker run -it --rm \
      -v "./letsencrypt:/etc/letsencrypt" \
      -v "./lib/letsencrypt:/var/lib/letsencrypt" \
      -p 80:80 -p 443:443 \
      certbot/certbot certonly \
      --standalone \
      --preferred-challenges http \
      --agree-tos \
      --email myemail@gmail.com \
      -d example.org
    Ответ написан
    Комментировать
  • Что имеют в виду, когда говорят "смотрит в интернет"?

    @dronmaxman
    VoIP Administrator
    ТВ смотрит в интернет"

    Значит что между устройством и интернетом на стороне пользователя нет посредников, то есть нет роутера, а кабель интернета подключен прямо в ТВ, соответственно любой участник интернета может попробовать подключиться к этому устройству.

    "приложение смотрит в Интернет", порт смотрит в "Интернет"

    Процессы которые работают с интернет при работа слушают какие-то порты, на основании порта операционная система знает какому именно процессу предназначается пакет который пришел из интернета. Когда так говорят, то это значит что порт который слушает приложение доступен всем через интернет.
    Ответ написан
    1 комментарий
  • Почему ошибки 4004 и 4015 по DNS при настройке NAT на Windows Server 2012 R2?

    @dronmaxman
    VoIP Administrator
    Допустимо ли в принципе настраивать NAT на сервере, где установлены AD DC, DNS и DHCP?


    Не допустимо даже иметь два сетевый интерфейса на контроллере домена, особенно если один из интерфейсов будет не доступен в пределах локальной сети. Просто вдумайся что ты сделал, у тебя тачка введенная в домен будет делать DNS запрос на доменные ресурсы и в ответ получать внешний адрес (да, не всегда внешний, но ты не может это контролировать) который ей не доступен или не будет отвечать, что в свою очередь приведет замедление и лагам на всех ПК в домене.

    Если это железный сервер, поставь на него ProxMox и уже на нем сделай вирталками AD и маршрутизатор. Но как показывает практика, маршрутизатор лушче железный.
    Ответ написан
    3 комментария
  • Как добавить к SSL сертификату конкретный порт на домене?

    @dronmaxman
    VoIP Administrator
    Даже если ты подсунеш офф сертификат, то браузер все равно будет ругаться, т.к. порт не стандартный, не 443.

    Тебе нужен поддомент, например фаст.мой.домен, и настроить reverce_proxy в fastpannel на порт 8888 для этого домена.

    https://kb.fastpanel.direct/sites/how-to-use-upstr...
    Ответ написан
    4 комментария
  • Как пробразовать набор команд Docker CLI в файл YAML для Docker Compose?

    @dronmaxman
    VoIP Administrator
    ChatGPT, просто скопировал твой вопрос ему

    version: '3.7'
    
    networks:
      zabbix-net:
        driver: bridge
        ipam:
          config:
            - subnet: 172.20.0.0/16
              ip_range: 172.20.240.0/20
    
    services:
      postgres-server:
        image: postgres:latest
        container_name: postgres-server
        environment:
          POSTGRES_USER: "zabbix"
          POSTGRES_PASSWORD: "zabbix_pwd"
          POSTGRES_DB: "zabbix"
        networks:
          zabbix-net:
        restart: unless-stopped
    
      zabbix-snmptraps:
        image: zabbix/zabbix-snmptraps:alpine-7.0-latest
        container_name: zabbix-snmptraps
        volumes:
          - /zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw
          - /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro
        networks:
          zabbix-net:
        ports:
          - "162:1162/udp"
        restart: unless-stopped
    
      zabbix-server-pgsql:
        image: zabbix/zabbix-server-pgsql:alpine-7.0-latest
        container_name: zabbix-server-pgsql
        environment:
          DB_SERVER_HOST: "postgres-server"
          POSTGRES_USER: "zabbix"
          POSTGRES_PASSWORD: "zabbix_pwd"
          POSTGRES_DB: "zabbix"
          ZBX_ENABLE_SNMP_TRAPS: "true"
        networks:
          zabbix-net:
        ports:
          - "10051:10051"
        volumes:
          - zabbix-snmptraps:/var/lib/zabbix/snmptraps:rw
        restart: unless-stopped
    
      zabbix-web-nginx-pgsql:
        image: zabbix/zabbix-web-nginx-pgsql:alpine-7.0-latest
        container_name: zabbix-web-nginx-pgsql
        environment:
          ZBX_SERVER_HOST: "zabbix-server-pgsql"
          DB_SERVER_HOST: "postgres-server"
          POSTGRES_USER: "zabbix"
          POSTGRES_PASSWORD: "zabbix_pwd"
          POSTGRES_DB: "zabbix"
        networks:
          zabbix-net:
        ports:
          - "443:8443"
          - "80:8080"
        volumes:
          - /etc/ssl/nginx:/etc/ssl/nginx:ro
        restart: unless-stopped
    
      pgadmin:
        image: dpage/pgadmin4
        container_name: pgadmin
        environment:
          PGADMIN_DEFAULT_EMAIL: "user@domain.com"
          PGADMIN_DEFAULT_PASSWORD: "SuperSecret"
        networks:
          zabbix-net:
        ports:
          - "8083:80"
        restart: unless-stopped
    
    volumes:
      zabbix-snmptraps:
    Ответ написан
    Комментировать
  • Как полностью сбросить приложение на Mac?

    @dronmaxman
    VoIP Administrator
    Для удаления используй https://freemacsoft.net/appcleaner/
    Ответ написан
    Комментировать
  • Как подключить дополнительный монитор к macbook m1 pro?

    @dronmaxman
    VoIP Administrator
    У меня тоже самое, монитор гаснет переодически, но за 2 года ничего плохого не случилось. Поможет только заземление, как минимум надо сам мак заземлить.
    Ответ написан
    Комментировать
  • Как завернуть транк FreePBX на отдельный интерфейс?

    @dronmaxman
    VoIP Administrator
    Когда у тебя два сетевых интерфейса то лучше на внутреннем не прописывать gw, а только адрес и маршруты.
    Ответ написан
  • Почему изменилось расположение букв на клавиатуре MacBook?

    @dronmaxman
    VoIP Administrator
    У тебя наверное до этого была американкая раскладка, а теперь европейская. Да это нормально.
    Ответ написан
    Комментировать
  • Как в docker сохранить данные имеющиеся в контейнере?

    @dronmaxman
    VoIP Administrator
    Есть два подхода, использовать внутренний volumes

    version: '3.6'
    services:
      smtp:
        image: exim4:v1
        container_name: smtp
        ports:
          - 2025:25
        volumes:
          - exim4_config:/etc/exim4
          - exim4_mail:/var/mail
          - exim4_logs:/var/log/exim
        restart: unless-stopped
        networks:
          - localnet
    
    
    volumes:
      exim4_config:
      exim4_mail:
      exim4_logs:


    или запустить контейнер руками и сгенерировать конфиг, и пользоваться твои compose

    docker run -it --rm \
      -v /opt/exim4/smtpsender04/config:/etc/exim4 \
      -v /opt/exim4/smtpsender04/mail:/var/mail ʼ
      exim4:v1 /bin/bash -c "exim -bP >/etc/exim4/exim.conf"
    Ответ написан
    3 комментария