LINUX.ORG.RU

Сообщения bwwebm

 

Подключение клиента должно использовать соединение только для подсети внутри VPN

Форум — Admin

Помогите, пожалуйста, правильно настроить VPN маршрутизацию. Задачу, можно описать так: есть несколько клиентов, каждый из которых подключается к VPN серверу. На этих клиентах работают «блондинки», они ничего настроить в своих маршрутах не смогут. Нужно сделать так, что бы в рамках VPN сети, эти клиенты могли «видеть» друг друга, а весь остальной трафик (не относящийся к подсети VPN) продолжал ходить без изменений.

VPN сервер настроил на StrongSWAN. Его внешний ip адрес *.*.*.ip

Настройки ipsec VPN сервера nano /etc/ipsec.conf

config setup
    charondebug="ike 1, knl 1, cfg 0"
    uniqueids=no

conn ikev2-vpn
    auto=add
    compress=no
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes
    ike=aes256-sha1-modp1024,3des-sha1-modp1024!
    esp=aes256-sha1,3des-sha1!
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    leftid=*.*.*.ip
    leftcert=/etc/ipsec.d/certs/vpn-server-cert.pem
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    rightdns=8.8.8.8,8.8.4.4
    rightsourceip=10.10.10.0/24
    rightsendcert=never
    eap_identity=%identity

Настроил пароли nano /etc/ipsec.secrets

*.*.*.ip : RSA "/etc/ipsec.d/private/vpn-server-key.pem"
your_username1 %any% : EAP "your_password1"
your_username2 %any% : EAP "your_password2"

Выдал (спасибо гуглу) такую команду:

iptables -A INPUT -p udp --dport 500 --j ACCEPT
iptables -A INPUT -p udp --dport 4500 --j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -t nat -A POSTROUTING -j SNAT --to-source *.*.*.ip -o eth+
echo "net.ipv4.ip_forward = 1" |  tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.accept_redirects = 0" |  tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.send_redirects = 0" |  tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.rp_filter = 0" |  tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.accept_source_route = 0" |  tee -a /etc/sysctl.conf
echo "net.ipv4.conf.default.send_redirects = 0" |  tee -a /etc/sysctl.conf
echo "net.ipv4.icmp_ignore_bogus_error_responses = 1" |  tee -a /etc/sysctl.conf
for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
sysctl -p

Установил на тестовых клиентах CA сертификаты и подключился по логину и паролю. Клиенты получили ip адреса в подсети 10.10.10.0. Между ними проходит пинг, но и весь трафик пошел через VPN. Я понимаю, что POSTROUTING отправил весь трафик на интерфейс где задан внешний ip адрес vpn сервера. Но, что я должен сделать, что бы интернет клиентов оставался на своем месте, я не понимаю.

iptables -L -t nat

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  anywhere             anywhere             to:*.*.*.ip

 , ,

bwwebm
()

OpenVPN настройка

Форум — Admin

Здравствуйте, уважаемые форумчане!

Столкнулся с проблемой при настройке OpenVPN и похоже не смогу ее решить сам.

Цель следующая: имеется сервер с белым IP под Debian 9. На нем, я установил OpenVPN и планирую настроить его как сервер. Есть три территориально разделенных сети, которые выходят через роутер в интернет, в них будут клиенты. У клиентов подсеть 192.168.1.0. Мне бы хотелось, настроить так, что бы:

  • все клиенты одной подсети подключались по одному сертификату;
  • клиенты не должны видеть клиентов других сетей;
  • клиенты должны ходить в интернет через vpn сервер;
  • сервер, должен иметь возможность попадать на клиента (мне кажется, что нормально попадать на клиента через сеть которую создает сервер на tun0).

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

Сначала, настраивал по этой статье: https://1cloud.ru/help/linux/openvpnserver_debian7_ubuntu12

Признаюсь, не уверен точно, что клиент хотя бы выходит в интернет, т.к. теряю к нему доступ, а с сервера, он по выданному ip не доступен.

( Клиент при подключении к vpn до обрыва соединения выдает )

Затем, настраивал вот так: Не работает iroute в ccd openvpn (комментарий)

Здесь, клиент подключился, «прямая» связь с ним не оборвалась сервер его стал видеть по внутренней сети, но клиент в интернет продолжал ходить без vpn.

Что делать?

UPD 1: нашел причину, по которой сервер не попадал на клиента. Конфигурация по умолчанию из примера в дистрибутиве OpenVPN идет с активным ключом comp-lzo, в примере для сервера он выключен.

UPD 2: включение маршрутов и NAT на сервере командами:

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
пробросило для клиента интернет траффик через сервер.

Но, на сервере что то стало не так, он перестал пинговать, например yandex.ru. Что то я не так прописываю в маршрутах.

 

bwwebm
()

RSS подписка на новые темы