Задать вопрос
  • Как организовать выделенную Wi-Fi AP для VPN на Mikrotik?

    @madsaint7
    Схема настройки:

    1. Создать виртуальный Wi-Fi интерфейс:

    В терминале:

    /interface wireless
    add master-interface=wlan1 name=vpn-wifi ssid="Wi-Fi VPN" disabled=no

    Или в Winbox:
    Wireless → WiFi Interfaces → "+" → Virtual → выбрать wlan1 как master, SSID задать "Wi-Fi VPN".

    ---

    2. Создать отдельный bridge для VPN Wi-Fi:

    /interface bridge add name=bridge-vpn
    /interface bridge port add interface=vpn-wifi bridge=bridge-vpn

    ---

    3. Создать отдельный DHCP-сервер для этого интерфейса:

    /ip pool add name=pool-vpn ranges=192.168.88.10-192.168.88.100
    /ip dhcp-server add name=dhcp-vpn interface=bridge-vpn lease-time=1h address-pool=pool-vpn
    /ip dhcp-server network add address=192.168.88.0/24 gateway=192.168.88.1 dns-server=8.8.8.8
    /ip address add address=192.168.88.1/24 interface=bridge-vpn

    ---

    4. Настроить VPN-клиент на MikroTik:

    Пример для WireGuard (рекомендуется, он быстрее и надёжнее):

    /interface wireguard add name=wg-vpn
    /interface wireguard peers add interface=wg-vpn public-key="XXX" endpoint-address=1.2.3.4 endpoint-port=51820 allowed-address=0.0.0.0/0 persistent-keepalive=25
    /ip address add address=10.0.0.2/32 interface=wg-vpn
    /ip route add dst-address=0.0.0.0/0 gateway=10.0.0.1 routing-table=via-vpn

    ---

    5. Создать Policy-Based Routing (PBR) для Wi-Fi VPN:

    /ip route add dst-address=0.0.0.0/0 gateway=10.0.0.1 routing-table=via-vpn
    /routing table add name=via-vpn fib
    /routing rule add src-address=192.168.88.0/24 action=lookup table=via-vpn

    ---

    6. Защитить от утечки трафика (Kill Switch):

    Добавить правило firewall, чтобы устройства из VPN Wi-Fi не могли выйти напрямую в интернет, если VPN упал:

    /ip firewall filter
    add chain=forward src-address=192.168.88.0/24 out-interface=!wg-vpn action=drop comment="Block traffic if VPN is down"

    ---

    7. Готово! Проверка:

    Подключитесь к обычной Wi-Fi — интернет как обычно.

    Подключитесь к Wi-Fi VPN — проверьте IP через ipleak.net — должен быть IP вашего VPN.

    Отключите VPN вручную — убедитесь, что интернет по VPN-сети перестаёт работать при падении VPN.
    Ответ написан
    Комментировать
  • Как сделать очередь из нескольких таймеров, каждый из которых должен исполнять свой собственный файл на Python?

    @madsaint7
    import threading
    import time
    
    def task1():
        print("Выполнение задачи 1")
        # Вместо print() можно вызвать свой скрипт:
        # subprocess.run(["python", "script1.py"])
    
    def task2():
        print("Выполнение задачи 2")
        # subprocess.run(["python", "script2.py"])
    
    def task3():
        print("Выполнение задачи 3")
        # subprocess.run(["python", "script3.py"])
    
    def timer_task(interval, task_func):
        while True:
            task_func()
            time.sleep(interval)
    
    # Создание и запуск потоков для каждой задачи
    thread1 = threading.Thread(target=timer_task, args=(10, task1))  # Задача 1 каждые 10 секунд
    thread2 = threading.Thread(target=timer_task, args=(20, task2))  # Задача 2 каждые 20 секунд
    thread3 = threading.Thread(target=timer_task, args=(30, task3))  # Задача 3 каждые 30 секунд
    
    # Запуск потоков
    thread1.start()
    thread2.start()
    thread3.start()
    
    # Ожидание завершения потоков (если нужно)
    thread1.join()
    thread2.join()
    thread3.join()
    Ответ написан
    Комментировать
  • Как выделить область экрана и получить координаты начала и конца python?

    @madsaint7
    import pyautogui
    import keyboard
    
    def select_area():
        print("Выберите область на экране.")
        print("Нажмите F5, чтобы начать выделение.")
        print("Нажмите F6, чтобы закончить выделение.")
    
        start_x, start_y = None, None
        end_x, end_y = None, None
    
        # Ожидание нажатия клавиши F5 для начала выделения
        keyboard.wait("F5")
    
        # Начало выделения: получение координат начальной точки
        start_x, start_y = pyautogui.position()
        end_x, end_y = start_x, start_y
    
        # Ожидание нажатия клавиши F6 для завершения выделения
        keyboard.wait("F6")
    
        # Завершение выделения: получение координат конечной точки
        end_x, end_y = pyautogui.position()
    
        # Вычисление координат и размеров прямоугольной области
        left = min(start_x, end_x)
        top = min(start_y, end_y)
        width = abs(end_x - start_x)
        height = abs(end_y - start_y)
    
        return left, top, width, height
    
    if __name__ == '__main__':
        selected_area = select_area()
        print("Координаты выделенной области:", selected_area)


    ставиш на верхний левый угол мшыку нажимаеш F5
    ставиш курсор мышки на правый нижний угол нажимаешь F6
    выведет координаты и размеров прямоугольной области
    Ответ написан
    Комментировать
  • Создание Debian Live есть рабочий мануал?

    @madsaint7
    https://mirivlad.ru/2017/09/vosem-utilit-dlya-sozd...

    Знакомый админ делал одним из этих способов.
    Флешку потом запускал на моём ноуте.
    Ответ написан
    Комментировать