среда, 31 декабря 2014 г.

Скриптование для NetworkManager

Возник интерес автоматизировать добавление правила SNAT при подключении VPN-соединения, т.к. известно, что лень - двигатель прогресса. Задачу пришлось решать на свежеустановленнной Fedora 21. Для VPN подключения используется NetworkManager, т.к. это десктоп и использование чистой консоли будет просто неудобно.

Сразу скажу, что очевидно много полезной информации вы найдёте в man networkmanager
По найденной информации создадим скрипт /etc/NetworkManager/dispatcher.d/99firewall
#!/bin/sh
if [[ "$CONNECTION_UUID" == "9bb97e30-2997-4175-b96d-337c2e1205ef" ]]
then
        case $2 in
                vpn-up)
                        iptables -t nat -A POSTROUTING -o $1 -j SNAT --to-source 192.168.0.2
                ;;
                vpn-down)
                        iptables -t nat -D POSTROUTING -o $1 -j SNAT --to-source 192.168.0.2
                ;;
        esac
fi

Не забудьте сделать его исполняемым!
Значение параметра CONNECTION_UUID следует брать из /etc/NetworkManager/system-connections/имя_соединения. Он требуется для однозначной идентификации события, дабы не напортачить в случае существования других соединений.
Параметры вызова скрипта:
1 - имя поднимаемого интерфейса
2 - событие (см. man)

Результат: быстро, удобно, гибко, занимательно.

Комментариев нет:

Отправить комментарий