Попытка перенаправить исходящие http-запросы через VPN на Ubuntu Server 12.04.
У меня есть сервер Ubuntu 12.04, работающий на Amazon EC2, который выполняет процесс сканирования в Интернете. Мы сталкиваемся с проблемой, когда некоторые веб-серверы, на которых размещаются сайты, которые нам нужно сканировать, блокируют все IP-адреса EC2.
Моей блестящей идеей было туннелирование исходящих HTTP-запросов через VPN. Мне удалось настроить VPN, но он маршрутизировал ВСЕ трафик через VPN, что означало, что я не мог подключиться к машине по SSH и не отвечал на входящие запросы http. (На этом сервере также размещается веб-служба, к которой мы должны иметь доступ)
На самом деле я просто хочу "прокси" все исходящие HTTP-запросы через VPN, чтобы мы могли получить доступ к сайтам, на которых заблокированы все IP-адреса EC2.
Вполне возможно, что я поступаю неправильно, и я приветствую любые другие предложения, которые могут быть проще или надежнее.
1 ответ
Что вам нужно, так это маршрутизация исходной политики для маршрутизации ответов на входящие соединения через шлюз EC2 вместо VPN. Предполагая, что внутренний IP-адрес вашего экземпляра равен 1.0.0.20, шлюз по умолчанию - 1.0.0.1, а IP-адрес VPN - 10.8.0.20:
Создать именованные таблицы маршрутизации (нужно сделать только один раз)
echo 10 ec2 >> /etc/iproute2/rt_tables echo 11 vpn >> /etc/iproute2/rt_tables
Сконфигурируйте новые таблицы маршрутизации с маршрутом по умолчанию через их соответствующие шлюзы
ip route add 1.0.0.0/24 dev eth0 table ec2 ip route add default via 1.0.0.1 table ec2 ip route add 10.8.0.0/24 dev tun0 table vpn ip route add default via 1.0.0.1 table vpn
Добавьте правила маршрутизации, чтобы выбрать правильную таблицу маршрутизации на основе адреса источника
ip rule add from 1.0.0.20 lookup ec2 ip rule add from 10.8.0.20 lookup vpn
Это должно позволить вам установить шлюз по умолчанию в качестве VPN и при этом работать входящие соединения.
Однако вместо этого вы можете настроить приложение для явной привязки к IP-адресу VPN (10.8.0.20) при создании исходящих подключений, что приведет к тому, что все подключения из этого приложения будут проходить через VPN, но все остальные исходящие подключения будут выходить напрямую., Если вы не можете настроить приложение для привязки к IP-адресу VPN, вы можете добавить прокси-сервер HTTP, чтобы выполнить эту часть.