LINUX.ORG.RU
ФорумAdmin

ограничение трафика в обход VPN. Как запретить доступ к сети во время обрыва впн?


0

0

Здравствуйте.
как отдельным программам [или всей системе] запретить доступ к сети во время обрыва впн соединения?

основная задача:
для определенных программ [Deluge, Vmware. Empathy, Opera, ...] нужно запретить доступ к сети при неработающем впн.
трафик должен идти только когда работает впн. если не работает впн то трафик не уходит.

Подскажите пожалуйста как это можно реализовать?

ОС: Ubuntu 9.10
доступ в интернет через ppp0
openvpn через tun0


отдельно для VMware пробовал так:
iptables -A FORWARD --in-interface tun0 --out-interface vmnet255 -j ACCEPT
iptables -A FORWARD --in-interface vmnet255 --out-interface tun0 -j ACCEPT

iptables -A FORWARD ! --in-interface tun0 --out-interface vmnet255 -j REJECT
iptables -A FORWARD --in-interface vmnet255 ! --out-interface tun0 -j REJECT

не помогает. трафик идет и без впн. хотя в настроках виртуальной машины указан интерфейс vmnet255


разрешить только порты впн не получается, порты все время разные (OpenVPN).


в WinXP делал так:
первая группа программ - разрешен полный доступ в сеть
вторая группа программ - разрешен доступ только через «виртуальный MAC адрес ВПН соединения»
самой программе openvpn (всем ее файлам) и некоторым системным файлам разрешен полный доступ в сеть, иначе сам впн не может установить соединение.

нужно найти решение для Убунту.

Спасибо за внимание.

новая идея, вроде должно работать, но не работает. непонятно почему. выводит команду текстом, не выполняя ее. в конфиг (у меня «vpn.conf») добавить строчки:

down «route del -net 0.0.0.0 netmask 0.0.0.0» down-pre

но уже ближе к одному из решений.

Описание команд и параметров OpenVPN - http://tuxnotes.ru/articles.php?a_id=26 «down < command > - выполнить команду когда интерфейс TUN/TAP выключится. Пример: down script-down.sh

down-pre - выполнить команду, указанную в down перед выключением интерфейса TUN/TAP»

anonymous17
() автор топика
Ответ на: комментарий от anonymous17

новая идея, вроде должно работать, но не работает. непонятно почему. выводит команду текстом, не выполняя ее.

в конфиг (у меня «vpn.conf») добавить строчки:

down «route del -net 0.0.0.0 netmask 0.0.0.0»
down-pre



Описание команд и параметров OpenVPN - http://tuxnotes.ru/articles.php?a_id=26
«down < command > - выполнить команду когда интерфейс TUN/TAP выключится. Пример: down script-down.sh

down-pre - выполнить команду, указанную в down перед выключением интерфейса TUN/TAP»


ошибка:
Код
Fri Dec 4 x:x:x 2009 Initialization Sequence Completed
^CFri Dec 4 x:x:x 2009 event_wait : Interrupted system call (code=4)
Fri Dec 4 x:x:x 2009 TCP/UDP: Closing socket
Fri Dec 4 x:x:x 2009 /sbin/route del -net 192.168.111.111 netmask 255.255.255.255
Fri Dec 4 x:x:x 2009 /sbin/route del -net 222.222.222.222 netmask 255.255.255.255
Fri Dec 4 x:x:x 2009 /sbin/route del -net 0.0.0.0 netmask 0.0.0.0
Fri Dec 4 x:x:x 2009 /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw 11.11.11.11
Fri Dec 4 x:x:x 2009 route del -net 0.0.0.0 netmask 0.0.0.0 tun0 1500 1542 192.168.111.111 192.168.111.112 init
Fri Dec 4 x:x:x 2009 openvpn_execve: external program may not be called unless '--script-security 2' or higher is enabled. Use '--script-security 3 system' for backward compatibility with 2.1_rc8 and earlier. See --help text or man page for detailed info.
Fri Dec 4 x:x:x 2009 script failed: external program fork failed
Fri Dec 4 x:x:x 2009 Exiting


вместо «Fri Dec 4 x:x:x 2009 route del -net 0.0.0.0 netmask 0.0.0.0» выводит «Fri Dec 4 x:x:x 2009 route del -net 0.0.0.0 netmask 0.0.0.0 tun0 1500 1542 192.168.111.111 192.168.111.112 init», может в этом ошибка?

anonymous17
() автор топика
Ответ на: комментарий от anonymous17

новая идея, вроде должно работать. (но не работает. непонятно почему. выводит команду текстом, не выполняя ее.)

в конфиг (у меня «vpn.conf») добавить строчки:

down «route del -net 0.0.0.0 netmask 0.0.0.0»
down-pre



взято из: «описание команд и параметров OpenVPN» - http://tuxnotes.ru/articles.php?a_id=26
«down < command > - выполнить команду когда интерфейс TUN/TAP выключится. Пример: down script-down.sh

down-pre - выполнить команду, указанную в down перед выключением интерфейса TUN/TAP»


ошибка:
Код
Fri Dec 4 x:x:x 2009 Initialization Sequence Completed
^CFri Dec 4 x:x:x 2009 event_wait : Interrupted system call (code=4)
Fri Dec 4 x:x:x 2009 TCP/UDP: Closing socket
Fri Dec 4 x:x:x 2009 /sbin/route del -net 192.168.111.111 netmask 255.255.255.255
Fri Dec 4 x:x:x 2009 /sbin/route del -net 222.222.222.222 netmask 255.255.255.255
Fri Dec 4 x:x:x 2009 /sbin/route del -net 0.0.0.0 netmask 0.0.0.0
Fri Dec 4 x:x:x 2009 /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw 11.11.11.11
Fri Dec 4 x:x:x 2009 route del -net 0.0.0.0 netmask 0.0.0.0 tun0 1500 1542 192.168.111.111 192.168.111.112 init
Fri Dec 4 x:x:x 2009 openvpn_execve: external program may not be called unless '--script-security 2' or higher is enabled. Use '--script-security 3 system' for backward compatibility with 2.1_rc8 and earlier. See --help text or man page for detailed info.
Fri Dec 4 x:x:x 2009 script failed: external program fork failed
Fri Dec 4 x:x:x 2009 Exiting


вместо «Fri Dec 4 x:x:x 2009 route del -net 0.0.0.0 netmask 0.0.0.0» выводит «Fri Dec 4 x:x:x 2009 route del -net 0.0.0.0 netmask 0.0.0.0 tun0 1500 1542 192.168.111.111 192.168.111.112 init», может в этом ошибка?

anonymous17
() автор топика

частично разобрался.
для того чтоб из конфига опенвпн(у меня «vpn.conf») выполнить скрипт нужно:
1. полность прописать путь к файлу. например:
up /home/namenamename/Desktop/script-up.sh (для запуска при старте tun/tap)
down /home/namenamename/Desktop/script-down.sh (для запуска при закрытиии tun/tap)
2. прописать права к скриптам. (я ставил «chmod 777 /home/namenamename/Desktop/script-up.sh», что именно надо пока не вникал)
3. опен впн запускать с аргументом "--script-security 3 system" (наверное можно и с 2, но тоже пока не изучал подробно). у меня запуск выглядит так: «sudo -s openvpn --config vpn.conf --script-security 3 system» (уже в папке с конфигом)


осталось в файле /home/namenamename/Desktop/script-down.sh прописать что-то типа: «/sbin/route del -net 0.0.0.0 netmask 0.0.0.0» (перенаправляет все соединения в «пустоту», после перезапуска соединений все проходит).

осталось придумать что точно прописывать в «script-down.sh». и, потом, найти другой, более простой, способ сделать все как мне надо.

anonymous17
() автор топика

да куча вариантов
торрент клиент может работать на заданном порту, может работать под заданным юзером - это всё обрабатывает iptables
Для целиком системы еще проще - явный доступ к VPN серверу, все остальные пакеты с LAN интерфейса - DROP.

af5 ★★★★★
()
Ответ на: комментарий от af5

Если вас не сильно затруднит, опишите пожалуйста подробнее один из способов. Вполне подойдет вариант: «Для целиком системы еще проще - явный доступ к VPN серверу, все остальные пакеты с LAN интерфейса - DROP.»

только недавно начал изучение Linux, пока сложно разобраться самому.

anonymous17
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.