У меня есть сервер Ubuntu 12.04, работающий на Amazon EC2, который запускает процесс сканирования Интернета. Мы сталкиваемся с проблемой, когда некоторые веб-серверы, на которых размещаются сайты, которые нам нужно сканировать, блокируют все IP-адреса EC2.
Моя блестящая идея заключалась в том, чтобы туннелировать исходящие HTTP-запросы через VPN. Мне удалось настроить VPN, но он направил ВЕСЬ трафик через VPN, что означало, что я не мог подключиться к машине по SSH, и она не отвечала ни на какие входящие HTTP-запросы. (На этом сервере также размещается веб-сервис, к которому мы должны иметь доступ)
На самом деле я просто хочу «проксировать» все исходящие HTTP-запросы через VPN, чтобы мы могли получить доступ к сайтам, у которых все IP-адреса EC2 заблокированы.
Очень возможно, что я поступлю неправильно, и я приветствую любые другие предложения, которые могут быть более простыми или надежными.
Вам нужно маршрутизация исходной политики для маршрутизации ответов на входящие соединения через шлюз 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 для выполнения этой части.