Назад | Перейти на главную страницу

Попытка маршрутизировать исходящие HTTP-запросы через VPN на Ubuntu Server 12.04

У меня есть сервер 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:

  1. Создать именованные таблицы маршрутизации (нужно сделать только один раз)

    echo 10 ec2 >> /etc/iproute2/rt_tables
    echo 11 vpn >> /etc/iproute2/rt_tables
    
  2. Настройте новые таблицы маршрутизации с маршрутом по умолчанию через соответствующие шлюзы.

    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
    
  3. Добавьте правила маршрутизации, чтобы выбрать правильную таблицу маршрутизации на основе исходного адреса

    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 для выполнения этой части.