Выберите исходящий IP для openvpn - PullRequest
0 голосов
/ 31 января 2019

Мне нужно выбрать исходящий IP для сервера OpenVPN.Я пытаюсь изменить "локальный" конфиг, но он не работает.

У меня несколько статических IP-адресов на одном и том же интерфейсе (eth0)

, например, мои IP-адреса 1.1.1.1, 1.1.1.2, 1.1.1.3.Я установил 3 сервера OpenVPN и изменил локальные настройки на 1.11.1 для сервера1, 1.1.1.2 для сервера2 и 1.1.1.3 для сервера3

После этого я попытался подключиться к серверу1 и сделал запрос на ipinfo.io, ответ такой: «ваш IP 1.1.1.1» и те же ответы для server2 и server3

Существует какая-либо опция, например, опция curl --interface?

Ожидаемый сценарийэто так:

  • подключить OpenVPN с клиентом1 к серверу1
  • запрос ipinfo.io
  • IP-адрес сервера ответа *

  • подключить OpenVPN с клиентом2 к серверу2
  • запрос ipinfo.io
  • ответ сервера IP2

...

Я попробовал маршрутизацию SNAT с IpTables, но не смог.Я попробовал Docker, я добавил свои попытки ниже, но он не работает.

iptables:

iptables -t nat -A POSTROUTING -s 10.1.2.1/32 -j SNAT --to 100.36.204.7


Docker:

docker network create -d bridge --subnet 255.255.255.255/32 --gateway=100.217.73.254  $NETWORK_NAME

docker volume create --name $OVPN_DATA
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_genconfig -e 'local 100.217.192.63' -u udp://100.217.192.63
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn ovpn_initpki

docker run -v $OVPN_DATA:/etc/openvpn -d -p 100.217.192.63:1195:1194/udp --net $NETWORK_NAME --ip 100.217.192.63 --cap-add=NET_ADMIN kylemanna/openvpn
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm -it kylemanna/openvpn easyrsa build-client-full $CLIENT_NAME nopass
docker run -v $OVPN_DATA:/etc/openvpn --log-driver=none --rm kylemanna/openvpn ovpn_getclient $CLIENT_NAME > /root/clients/$CLIENT_NAME.ovpn
iptables -A INPUT -p udp --dport 1194 --jump ACCEPT
...