LINUX.ORG.RU
ФорумAdmin

маршрутизация в openvpn


0

1

имеется 2 хоста, разделенных глобальной сетю - сервер и клиент. на сервере крутится виртуальная машина, сбриджованная на интерфейс, смотрящий в локальную сеть.

IP виртуалки: 192.168.1.7
IP сервера: 192.168.1.6
подсеть IP адресов за сервером соответственно 192.168.1.0
OpenVPN на сервере имеет подсеть 10.10.10.0
Задача: получить клиенту доступ к виртуальной машине (но, только к ней! к осталным IP адресам подсети 192.168.1.0 не должен быть доступ) и соответственно наоборот - все клиенты из локальной сети должны подключаться к серверу по VPN и иметь доступ только к виртуальной машине. (желание заказчика). VPN настроен, все хорошо, однако я немного не понимаю, какой маршрут надо прописать, чтобы была из-за VPN подсети доступна виртуальная машина.

cat server.conf

port 30003
;proto udp
;tls-server
proto tcp
dev tun
;dev-node tap0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key # This file should be kept secret
dh /etc/openvpn/dh1024.pem
server 10.10.10.0 255.255.255.0 # vpn subnet

# содержит информацию о ip адресах клиентов
# файл необходимо создать вручную
ifconfig-pool-persist ipp.txt

# передача клиенту информацию о домашней сети, то что за сервером
push "route 192.168.1.0 255.255.255.0" # home subnet

;duplicate-cn
keepalive 10 120
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
;status openvpn-status.log
;log-append  openvpn.log
verb 4
mute 20
client-to-client
client-config-dir /etc/openvpn
#route 192.168.1.0 255.255.255.0
log /etc/openvpn/openvpn.log
status /etc/openvpn/status.log

в итоге маршруты на сервере имеют вид: (подсеть 2 - другая сетевуха, br0 - соответственно моя подсеть 192.168.1.0)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.2.253   0.0.0.0         UG    100    0        0 eth1
10.10.10.0      10.10.10.2      255.255.255.0   UG    0      0        0 tun0
10.10.10.2      0.0.0.0         255.255.255.255 UH    0      0        0 tun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 br0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
однако, если
ping -I tun0 192.168.1.1
PING 192.168.1.1 (192.168.1.1) from 10.10.10.1 tun0: 56(84) bytes of data.
^C
--- 192.168.1.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1006ms


решил проблему доступности подсети 192.168.1.0 строкой в IPtables

/sbin/iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -j SNAT --to-source 192.168.1.6

теперь бы разобраться с тем, чтобы конкретному клиенту сервера openvpn был бы доступен только сервер терминалов (192.168.1.7)

bykva
() автор топика
Ответ на: комментарий от fjfalcon

да нет, я ж косяк сам по себе. у меня не работала сама маршрутизация от впн сети до локальной сети =)

bykva
() автор топика
Ответ на: комментарий от fjfalcon

а еще не подскажешь ли, какой командой сохранить iptables чтобы при перезагрузке iptables-restore выполнялось?

bykva
() автор топика
Ответ на: комментарий от bykva

Смотря какая ось. Для centos можно сделать iptables-save > /etc/sysconfig/iptables, у дебиана вроде нет говотой штуки для хранения правил, я там обычно ferm firewall ставлю - те же самые iptables, но немного лучше (=

anonymous
()
Ответ на: комментарий от Turbid

да, я уже как раз отыскал этот способ и использовал. всем спасибо

bykva
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.