2

Я установил и успешно запустил клиент pptp vpn на сервере Ubuntu (aws ec2).

Я хочу иметь возможность доступа к определенным веб-сайтам через этот VPN. Тем не менее, все еще в состоянии SSH и подключиться к серверу.

$ route -n  #after connecting to vpn

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.31.0.1      0.0.0.0         UG    100    0        0 eth0
172.31.0.0      0.0.0.0         255.255.240.0   U     0      0        0 eth0
192.168.68.35   0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
209.99.22.18    172.31.0.1      255.255.255.255 UGH   0      0        0 eth0

Таблица маршрутизации такая же, как указано выше после подключения. Если я сделаю ppp0 в качестве шлюза по умолчанию, я не смогу снова подключиться к серверу ssh.

Итак, я хочу добавить некоторые правила, чтобы всякий раз, когда приложение / скрипт запрашивало определенный веб-адрес или запросы HTTP / HTTPS, оно перенаправляло трафик через ppp0 или соединение vpn, но не другие соединения.

Является ли это возможным?

Заранее спасибо!

1 ответ1

0


Вы можете пометить пакеты с помощью iptables и направить помеченные пакеты через iproute2.
Это описано в LARTC
В вашем случае сначала вам нужно создать правило iptables:

iptables -t mangle -A OUTPUT -p tcp -m tcp -d 1.2.3.4 --dport 80 -j MARK --set-mark 0x1

Где 1.2.3.4 - ip адрес целевого сайта.
Затем добавьте таблицу маршрутизации с iprule

echo 201 crawl >> /etc/iproute2/rt_tables
ip rule add fwmark 1 table crawl

Проверь это

ip rule ls
0:  from all lookup local 
32765:  from all fwmark 0x1 lookup crawl 
32766:  from all lookup main 
32767:  from all lookup default

Теперь добавьте маршрут по умолчанию для сканирования таблицы:

ip route add default via 192.168.68.35 dev ppp0 table crawl

Вот и все, пакеты с адресом назначения 1.2.3.4 и портом назначения 80 будут маршрутизироваться через интерфейс ppp0.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .