• Как сделать так, чтобы при выполнении программа не закрывалась, а просила вводить значения дальше?

    @dronmaxman
    VoIP Administrator
    #!/bin/bash
    
    menu[0]='1.Текущий пользователь'
    menu[1]='2.Данные о каталоге'
    menu[2]='3.Запущенные процессы'
    menu[3]='4.Выход'
    
    menu () {
        for i in ${menu[@]}; do
            echo "$i"
        done
    
        read -p "Выберите номер процесса:" choice
            if (( choice == 1 )); then
                echo $(users)
            elif (( choice == 2 )); then
                echo $(ls)
            elif (( choice == 3 )); then
                echo $(ps)
            elif (( choice == 4 )); then
                exit
        fi
    }
    
    while true
    do
        menu
    done
    Ответ написан
    1 комментарий
  • Не обаруживается батарея на нотубуке, в чем проблема?

    @dronmaxman
    VoIP Administrator
    Предписано, проверить конектор батареи. С такой проблемой скорее всего надо итти в сервис.
    640b52b73da4a638177559.jpeg
    Ответ написан
    Комментировать
  • Asterisk входящий вызов на несколько внутренних номеров?

    @dronmaxman
    VoIP Administrator
    указать внешний дублирующий номер - "внешний номер"

    В настройках exten можно укзать "Мобильный номер". Он никак не участвует во входящих звонках.

    Есть ещё идея создать outbound route для определенного внутреннего номера что бы станция звонила на этот же номер и на дополнительный- это возможно?

    Что такое станция? Перефразируй вопрос, не понятно что имеется в виду.

    Общий подход такой.
    Для входящих
    - делаем очередь, в нее добавляем внутриние номера
    - inbound router заворачиваем входящие звонки в эту очередь

    Для исходящих
    - создаем outbound route
    - в нем создаем шаблон номера (городского, мобильного)
    - в него же добавляем транки
    - так же в нем можно ограничить какие внутренние номера могут пользоваться этим маршрутом (outbound route)
    Ответ написан
    8 комментариев
  • Нужен ли антивирус на linux server?

    @dronmaxman
    VoIP Administrator
    Тоже самое, ни разу не пригодился. Было пару пробитых серверов, ради интереса гонял на них разные антивирусы и скрипты, пытался найти трояна или зараженный файл - все глухо.

    Для себя сделал вывод, что это бестолковщина для linux сервера.

    По логике, антивирус в основном сканирует скачиваемые пользователем файлы и блокирует потенциально опасные действия пользователей. Но непосредственно на самом сервере пользователь не работает, а только запрашивает с него данные, а следовательно никаких привилегий на сервере не имеет.

    Вот, что реально помогает, это правильно настроенный firewall и fail2ban. Так же хорошей практикой является запускать процессы которые слушают порты от безправных учеток. В Fail2ban уже заложено множество шаблонов под разные сервисы, их достаточно просто включить.

    Универсальной статьи нет, так как настройка зависит от ПО которое крутиться на сервере.
    Есть общие рекомендации:
    - настроить firewall, открывать только нужные порты
    - для SSH использовать ключи, изменить порт (например 2324), ограничить доступ с определенных IP
    - запретить вход от root на сервер по паролю
    - не использовать имена учетных записей которые попадают в перебор (типа admin, super, cisco и т.д.)
    - запускать сервисы от непривилегированных учетных записей
    - настроить бекапы
    - настроить контроль версий etckeeper
    - настроить fail2ban

    Следующий уровень паранои, это уже решения по типу Suricata IDS-IPS
    Ответ написан
    Комментировать
  • Как узнать dns домена на python?

    @dronmaxman
    VoIP Administrator
    import dns.resolver
    
    answers = dns.resolver.query('4pda.to.', 'NS')
    
    for rdata in answers:
     print(rdata)
    Ответ написан
    1 комментарий
  • Как сделать фильтрацию сайтов по белому списку?

    @dronmaxman
    VoIP Administrator
    Mikrotik с этим плохо справиться, на сайте так же подгружаются другие ресурсы которые так же надо разрешать.
    Для этого нужен прокси, например kerio или squid.

    Есть микротики с поддержкой docker в котором можно запустить squid, возможно это твой случай.
    https://habr.com/ru/company/selectel/blog/694436/
    Ответ написан
  • Как называется устройство для объединение нескольких модемов в одну сеть?

    @dronmaxman
    VoIP Administrator
    Такие решения называются SD-WAN.

    Если грубо описать его работу, то выглядит это так.
    Есть роутер с поддержкой SD-WAN, есть сервер в облаке с хорошим интернет каналом. К роутеру подключено несколько интернет каналов, не важно каким образом, это так же могу быть модемы USB. Роутер строить через каждый интернет канала туннель в облаков и балансирует трафик между этими туннелями, так же роутер контролирует качество, стабильной работы каждого такого туннеля. Сервер собирает трафик со всех туннелей и уже пуляет в интернет.

    Да, при таком подходе можно суммировать трафик со всех интернет каналов, ограничение будет на стороне сервера, сколько он пропустит через себя.

    Как пример.
    https://5gstore.co.uk/sd-wan-pro-bonded-4g-5g-internet/
    Ответ написан
    1 комментарий
  • Почему при последующих итерациях появляется ошибка?

    @dronmaxman
    VoIP Administrator
    For lease expires -19418 day left

    Кажется в это строке не хватает домена, или у тебя пустая строка в конце списка.

    grep -iE 'expir.*date|expir.*on'

    Вот этот фильтр может не работать, еще может быть просто expires: или free-date:, а может и вообще этого поля не быть в whois.

    Попробуй вот так
    expdate=$(whois "$domain" | grep -iE 'expir.*date|expir.*on|expires|free-date' | head -1 | grep -oE '[^ ]+$')
    Ответ написан
    Комментировать
  • Ошибка SERVERFAIL bind9 как исправить?

    @dronmaxman
    VoIP Administrator
    $TTL    604800
    lra-lx1.local       IN      SOA     ns.lra-lx1.local. (
                          202301022         ; Serial
                             604800         ; Refresh
                              86400         ; Retry
                            2419200         ; Expire
                             604800 )       ; Negative Cache TTL
                                         A       192.168.1.10      ; delete this line
                                         MX      50 mx.lra-lx1.local.
                                         CAA     128 issue "sectigo.com"
                                         TXT     "v=spf1 a mx -all"
    $ORIGIN example.com.
    ns           IN      A       192.168.1.20
    mx           IN      A       192.168.1.30


    попробуй так
    Ответ написан
    4 комментария
  • Будут ли работать коммутаторы Cisco 3750G из стека по отдельности в одном сетевом сегменте?

    @dronmaxman
    VoIP Administrator
    Чисто технически может возникнуть конфлик IP адресов т.к. в стеке у них один адрес, так же STP брыкнет.

    В теории надо выдернуть один коммутатор из стека, подцепиться консолью, поменять IP, приоритет STP и hostname (что бы discovery не ругался). Но ты все равно не сможешь собрать стек без полной перезагрузки, так же потребуется засинхронить конфиг с мастера, когда оба будут в новой локации.

    У тебя один стек? Если нет, возможно получить переносить по одному стеку целиком.
    Ответ написан
    1 комментарий
  • Минимизация стоимости входящих в роуминге. Как принимать звонок по сотовой сети и переадресовывать по интернету?

    @dronmaxman
    VoIP Administrator
    Вариантики
    1) Сложный, надо понимать что и как ты делаешь. Своя АТС+GSM шлюз, приложение на телефон.
    2) Запросить у своего оператора возможно отдать номер по SIP, поставить приложение на телефон.
    3) Отнести симку оператору который поставит ее в свой шлюз и отдаст по SIP, поставить приложение на телефон.
    4) Самый удобный и не требующий особых навыков. Поищи на ali устройство по ключевому слову SIMBOX
    Ответ написан
    2 комментария
  • Как на микротике ограничить интернет, но открыть локалку при использовании kid control?

    @dronmaxman
    VoIP Administrator
    Можно.Выключи KidControl и добавь в конце всех правил
    /ip firewall add action=accept chain=kid-control comment="Allow localnet for kid-control" dst-address=192.168.88.0/24 src-address=192.168.88.0/24

    Когда включишь KidControl, это правило должно оказаться над остальными правила KidControl и разрешать трафик в локальной сети.
    192.168.88.0/24 - это адресация твоей локальной сети

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

    @dronmaxman
    VoIP Administrator
    Мой опыт настройки на mikrotik ac2, 7.6

    # За основу была взята это статья
    https://habr.com/ru/post/549282/

    # Настраиваем VPN от WARP
    https://habr.com/ru/post/594551/
    https://github.com/ViRb3/wgcf

    # Настраиваем pptp для BGP
    Получаем настройки pptp у телеграм бота
    https://t.me/antifilter_vpn_bot

    # Настраиваем BGP
    1. Делаем темплейт для BGP
    /routing bgp template
    set default disabled=no output.network=bgp-networks
    add as=65514 disabled=no name=antifilter output.network=bgp-networks .no-client-to-client-reflection=yes router-id=10.42.1.3 routing-table=main

    где
    10.42.1.3 - pptp адрес mikrotik

    2. Настраиваем фильтр для входящих маршрутов, который переписывает GW
    /routing filter rule
    add chain=discard disabled=no rule="reject;"
    add chain=antifilter-in disabled=no rule="set gw *0x4a; accept;"

    где
    *0x4a - имя интерфейса для обхода блокировки, в моем случае wireguard WARP, лучше настраивать через winbox GUI

    3. Поднимаем BGP
    /routing bgp connection
    add as=65514 connect=yes disabled=no hold-time=4m input.filter=antifilter-in keepalive-time=1s listen=yes local.address=10.42.1.3 .role=ebgp multihop=yes name=rublacklist output.filter-chain=discard .network=bgp-networks \
        .no-client-to-client-reflection=yes remote.address=10.75.66.20/32 .as=65444 .port=643 router-id=91.231.206.202 routing-table=main templates=antifilter

    где
    65514 - АS с твоей стороны, выбираем любой от 65000-65999
    65444 - АS отдающая маршруты, выбрать можно тут https://antifilter.network/bgp, я выбрал весь RU сегмент

    4. VPN от CF warp имеет свойство падать если в нем не ходит трафик, добавил костыль в виде ping yDNS
    /tool netwatch
    add disabled=no down-script="" host=77.88.8.8 http-codes="" interval=30s test-script="" type=icmp up-script=""
    Ответ написан
  • Как выпустить сайт из локалки в мир через VPS?

    @dronmaxman
    VoIP Administrator
    Не хватает правили прероутинга на VPS

    Не забыть поменять переменные на реальные адреса
    WAP_IP - это IP адрес с интерфейса eth0
    PPP_MIK_IP - это IP адрес с интерфейса ppp на микротик
    PPP_VPS_IP - это IP адрес с интерфейса ppp на VPS

    -t nat -A PREROUTING -d $WAN_IP -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination $PPP_MIK_IP:80
    -t nat -A PREROUTING -d $WAN_IP -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination $PPP_MIK_IP:443

    так же возможно понадобиться, зависит от конфигурации VPN, попробуй сначала добавить только первые 2 правила
    -t nat -A POSTROUTING -d 192.168.43.0/24 -p tcp -m tcp --dport 80 -j SNAT --to-source $PPP_VPS_IP
    -t nat -A POSTROUTING -d 192.168.43.0/24 -p tcp -m tcp --dport 443 -j SNAT --to-source $PPP_VPS_IP
    Ответ написан
    Комментировать
  • Как настроить фаервол на сервере с несколькими IP?

    @dronmaxman
    VoIP Administrator
    Все достаточно просто.

    Недолюбливаю я ufw, мне больше по душе ferm
    Не забываем про
    sudo sysctl -w net.ipv4.ip_forward=1

    Сносим ufw и cтавим надстройку ferm над firewall
    sudo apt install ferm

    Правим конфиг ferm
    sudo vim /etc/ferm/ferm.conf
    @def $WAN_IP1 = 1.1.1.1; # На этом разрешаем входящие
    @def $WAN_IP2 = 1.1.1.2; # Через этот выходим
    @def $DEV_WAN = ens1s0;
    @def $VPN_NETS = (10.10.10.0/24 10.10.20.0/24); # Сети VPN клиентов
    
    
    domain (ip ip6) {
        table filter {
            chain INPUT {
                policy DROP; # Политика поумолчанию, если нет разрешающего правила значит запрещено
    
                # connection tracking
                mod state state INVALID LOG log-prefix '[FERM] INVALID INPUT DROP: ';
                mod state state INVALID DROP;
                mod state state (ESTABLISHED RELATED) ACCEPT;
    
                # allow local packet
                interface lo ACCEPT;
    
                 # respond to ping
                 #proto icmp ACCEPT;
                
                daddr $WAN_IP1 {
    
                    # respond to ping
                    proto icmp ACCEPT;
    
                    # allow SSH connections
                    proto tcp dport 22 ACCEPT;
    
                    # allow WEB connections
                    proto tcp dport (http https) ACCEPT;
    
                    # allow VPN wireguard connections
                    proto udp dport 51820 ACCEPT;
                }
    
    
            }
            chain OUTPUT {
                policy ACCEPT;
    
                # connection tracking
                #mod state state INVALID DROP;
                mod state state (ESTABLISHED RELATED) ACCEPT;
            }
            
            chain FORWARD {
                policy DROP; 
    
                # connection tracking
                mod state state INVALID DROP;
                mod state state (ESTABLISHED RELATED) ACCEPT;
    
                saddr $VPN_NETS ACCEPT; # Разрешаем трафику от VPN клиентов проходить в любом направлении
            }
        }
        table nat {
            chain POSTROUTING {
                saddr $VPN_NETS outerface $DEV_WAN SNAT to $WAN_IP2; # Маскируем-натим исходящий трафик от VPN клиентов вторым IP
            }
        }
    }
    
    @include ferm.d/;


    Применяем конфиг
    sudo ferm -i /etc/ferm/ferm.conf
    Ответ написан
    1 комментарий
  • Log интернет соединения от провайдера?

    @dronmaxman
    VoIP Administrator
    Если это микротик, то набросать простой скрипт проверки канала с логированием в файл прямо на нем.
    Если предпологается мониторить с какого-то ПК - то в интернете полно скриптов.
    Если у тебя есть белый адрес, то можно найти телеграм бота который будет пингать твой роутер из мира - потом выгрузишь переписку с ботом в файл)
    Ответ написан
    1 комментарий
  • Почему не работает SMTP на Ubuntu?

    @dronmaxman
    VoIP Administrator
    > nc: connect to smtp.yandex.ru port 465 (tcp) failed: Network is unreachable
    Помоему ошибка однозначная, проблема в сети, возможно DNS не резолвит smtp.yandex.ru или нет маршрута к нему, или на его стороне firewall блокирует тебя.

    Че тут гадать, надо проверять.
    Для начала ping smtp.yandex.ru
    Потом telnet smtp.yandex.ru 465
    Ответ написан
    2 комментария
  • Где chan_sip (Asterisk)?

    @dronmaxman
    VoIP Administrator
    Начиная с FreePBX 16 кажеться.
    Not recommended, but if you need to enable it, you can do so in Settings, Advanced Settings:
    Ответ написан
    Комментировать