Сразу скажу, что очевидно много полезной информации вы найдёте в 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)
Результат: быстро, удобно, гибко, занимательно.
Комментариев нет:
Отправить комментарий