LINUX.ORG.RU

Постоянный VPN

 ,


0

2

Уважаемые, подскажите конфиг iptables - смысл его предельно прост, мой компьютер выходит в интернет через роутер который автоматом цепляется к VPN сети, соответственно айпи адрес внешний у моего компьютера = айпи адресу впн. Пусть это будет 192.168.1.225

Как мне сделать так, что бы мой компьютер запрещал любой трафик отправленный или полученный не через ВПН, не через 192.168.1.225. т.е. как только роутер теряет соединение с впн, компьютер сбрасывал любые TCP\UDP пакеты если внешний айпи адрес не соответствует заданному! Спасибо.

(Если есть какая-то реализация не через iptables, тоже не прочь)

Проверяем внешний ip например так:

curl smart-ip.net/myip
Далее цикл (или расписание) проверяющий значение, если нужный ip, то
sudo iptables -F
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -j ACCEPT
Если нет:
sudo iptables -F
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -m string --string "smart-ip.net" -j ACCEPT
sudo iptables -A OUTPUT -j REJECT

Примерно так.

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

Да, но в случае если проверка показала неверный внешний адрес, тогда все соединения закрываются ДО какого момента? как проверка может быть проведена если все соединения закрыты, а сама проверка связана с внешним веб-адресом?

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

В таком случае можно сделать периодическую проверку раз в 10 сек (например) открывается доступ наружу с проверкой соединения, как проверка успешная - разрешить соединения и проверять дальше, если неудачная, то продолжать блокировать. Пара циклов и весь скрипт на страницу уложится. Короче чисто правилами iptables это не реализовать, писать скрипт по-любому.

Dimarius ()
Ответ на: комментарий от cheetah111v

Читайте внимательнее суть топика, VPN соединение создаётся роутером, а блокировать любые соединения надо на локальной машине в зависимости от статуса соединения VPN на роутере! Ваша Always-on-VPN к данной задаче отношения вообще не имеет )))

Dimarius ()

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

Как мне сделать так, что бы мой компьютер запрещал любой трафик отправленный или полученный не через ВПН

как ты это представляешь, если у тебя впн соединение поднято на роутере?

ving2 ()
Последнее исправление: ving2 (всего исправлений: 1)
*mangle
:PREROUTING ACCEPT [48147:27078318]
:INPUT ACCEPT [47737:27019906]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [28676:7191339]
:POSTROUTING ACCEPT [48606:10798886]
-A OUTPUT -o tun0 -m owner --uid-owner [UID пользователя] -j ACCEPT
-A OUTPUT -d [АДРЕС VPN] -o br0 -m owner --uid-owner [UID пользователя] -j ACCEPT
-A OUTPUT -d [АДРЕС ПОДСЕТИ] -o br0 -m owner --uid-owner [UID пользователя] -j ACCEPT
-A OUTPUT -o br0 -m owner --uid-owner [UID пользователя] -j DROP
COMMIT

Пример для OpenVPN с tun-интерфейсом и persist-tun. Разрешает конкретному пользователю использовать интерфес tun0, разрешает обращение к адресу VPN через основной интерфейс (в данном случае br0), разрешает доступ к вашей локальной сети через br0, дропает все остальное для br0. Записывать в *mangle.

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

Не заметил, что оно на роутере поднято. Впрочем, там уже ответили про маршруты.

Deleted ()
Ответ на: комментарий от ving2

как то так

Там правда forward запрещается, потому будет работать только для этого хоста, а не как рутер.

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

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

ving2 ()
Последнее исправление: ving2 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.