Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Хитрый killswitch на OpenVPN

    Russian
    1
    1
    576
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • X
      xl
      last edited by

      Всем привет, на англоязычном форуме тишина, попробую спросить тут:

      Дано ТЗ: Когда к OpenVPN серверу подключен клиент, компьютеры из LAN имеют доступ в интернет (через основной шлюз, не через VPN), когда клиент отключается LAN остается без интернета.

      В Custom options на сервере прописано:

      script-security 3 system;
      client-connect /usr/local/sbin/up.sh;
      client-disconnect /usr/local/sbin/down.sh;
      

      up.sh:

      #!/bin/sh
      
      /usr/local/bin/easyrule unblock lan 192.168.56.0/24
      /sbin/pfctl -k 192.168.56.0/24
      

      down.sh:

      #!/bin/sh
      
      /usr/local/bin/easyrule block lan 192.168.56.0/24
      /sbin/pfctl -k 0.0.0.0/0
      /sbin/pfctl -k 192.168.56.0/24
      

      Все работает, но скрипт down.sh не закрывает активные стейты если его запускает openvpn. Т.е., например, с машины из LAN идет пинг на 8.8.8.8, отсоеденяем клиент, пинг продолжает идти (хотя новые соеденения открыть нельзя). Т.е. стейт не убился. НО, если тот же скрипт down.sh запустить из консоли пинг мгновенно прерывается, т.е. стейты умирают. Такое ощущение что pfctl в случае запуска через openvpn работает не так как надо, он работает (это видно по тому как отваливается SSH, например) но не убивает все стейты. OpenVPN работает под рутом, т.е. проблем с правами быть не должно. В чем может быть прикол? :)
      Версия: 2.3.4-RELEASE (amd64)

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.