Tunnelblick Mac Сценарии

Я хотел бы запустить скрипт на моем Mac всякий раз, когда OpenVPN подключается. Я проверил конфигурацию на своем Mac, и я нигде не вижу места для сценариев. Я использую самый последний Tunnelblick (3.7.0).

Где я могу установить скрипты на Tunnelblick для Mac?

1 ответ

This answer is a little late, but there are actually hooks within Tunnelblick that you can use simply by putting properly named scripts in certain directories.

The documentation for this is not all that much fun to read (or put into practice), so here's a summary*:

  1. Создайте pre-connect.sh, post-tun-tap-load.sh, connected.sh, reconnecting.sh и / или post-disconnect.sh как вам нужно.
  2. От имени пользователя root поместите эти файлы в /Library/Application Support/Tunnelblick/Shared/<gateway>.tblk/Contents/Resources, где <gateway>.tblk каталог, названный в честь конфигурации OpenVPN, которую вы импортировали ранее в Tunnelblick.
  3. Смена владельца и ACL:

    bash$ sudo chown root:wheel reconnecting.sh bash$ sudo chmod 700 reconnecting.sh

* Обратите внимание, что каталоги, на которые я ссылаюсь, могут отличаться в вашей установке - я использую macOS 10.12.6, и эти шаги предполагают, что вы уже импортировали конфигурации OpenVPN в Tunnelblick.

Основываясь на другом (отличном) ответе на этот вопрос, я написал это на основе Tunnelblick 3.8.1 build 5400 а также macOS Mojave 10.14.6 с простым примером.

  1. Откройте терминал.

  2. sudo -s
    
  3. cd /Users/<user>/Library/Application Support/Tunnelblick/Configurations/<profile>.tblk/Contents/Resources
    

    где <user> ваше имя пользователя на Mac и <profile> это конфигурация профиля VPN, которую вы импортировали в Tunnelblick

    Полный путь это что-то вроде

    /Users/andrea/Library/Application Support/Tunnelblick/Configurations/vpncorporate.tblk/Contents/Resources
    


  1. connected.sh

    nano connected.sh
    

    Вставьте следующие строки, например, если вы хотите добавить правило маршрутизации при подключении

    #!/bin/sh
    
    route add -host 172.16.10.7/32 -gateway 192.168.0.244
    

    Ссылка: маршрутная страница справочника


  1. post-disconnect.sh

    nano post-disconnect.sh
    

    Вставьте следующие строки, например, если вы хотите удалить предыдущее добавленное правило

    #!/bin/sh
    
    route delete -host 172.16.10.7/32 -gateway 192.168.0.244
    

    Ссылка: маршрутная страница справочника


  1. Установите правильное разрешение

    chmod 700 connected.sh
    chmod 700 post-disconnect.sh
    

    В моем случае

    -rwx------  1 root            admin    63 23 Ott 11:47 connected.sh
    -rwx------  1 root            admin    66 23 Ott 13:43 post-disconnect.sh
    


Более полезный и сложный пример о connected.sh и post-disconnect.sh может быть следующим

Идея состоит в том, чтобы получить шлюз по умолчанию и маршрутизировать его для определенного IP.

  1. connected.sh

    #!/bin/sh
    
    DEFAULTGATEWAY="$(netstat -nar | sed -n -e '/^default/p' | head -1 | awk '{print $2}')"
    
    route add -host 172.16.10.7/32 -gateway $DEFAULTGATEWAY
    
  2. post-disconnect.sh

    #!/bin/sh
    
    route delete -host 172.16.10.7/32 
    
Другие вопросы по тегам