LinuxForum.Fans
Тема

VPN

Автор: MAS 17 сообщений 3218 просмотров
#239018

Здравствуйте,подскажите пожалуйста,как реализовать связку 2х серверов через VPN

Тобишь,у нас 2 сервера:
192.168.0.1
192.168.1.1

На 192.168.1.1 к примеру развернут apache2. Нужно что бы при переходе на 192.168.0.1 (в браузере,не важно в общем,как) открывался веб-сервер расположенный на 192.168.1.1.

Другими словами,выполнить некое туннелирование,что бы первый сервер работал как фильтр для второго.

#239039

Заплати людям и всё настроют.

#239044
Kettler написал:
Заплати людям и всё настроют.

"Заплати" - это не проблема.
Мне нужно самому понять,как такое организовать.

#239057

Читай про OpenSSH туннелирование. Если чисто 80 порт надо, то проброс порта через ssh:

Для примера:

http://www.freebsd.org/doc/ru/books/handbook/openssh.html там пункт14.11.8

Если честный туннель, то man ssh -w

#239060

курить цепочку PREROUTING (iptables)
-A PREROUTING -d 192.168.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
-A PREROUTING -d 192.168.0.1 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.1:8080

#239107
Kettler написал:
курить цепочку PREROUTING (iptables)
-A PREROUTING -d 192.168.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
-A PREROUTING -d 192.168.0.1 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.1:8080

Это я уже раскурил,и пыхчу уже как год)
Но проблема вся в том,что нужно что бы IP адреса,которые коннектяться к 192.168.0.1 корректно отображались на 192.168.1.1,а то через эти правила,все что приходит на 192.168.1.1 имеет IP адрес - 192.168.0.1.
В этом случае,если к примеру банить по IP на сервере 192.168.1.1,через iptables,то это напряг..

#239110

На 192.168.0.1 сделайте:
[console]ssh -2 -N -f -L 80:192.168.1.1:8080 user@192.168.1.1 [/console]
тогда, все что придет на 192.168.0.1:80 уйдет на 192.168.1.1:8080, а туда apache вешайте. Можно наверняка и просто на 80 пробросить.

#239114
MAS написал:
[quote=Kettler]курить цепочку PREROUTING (iptables)
-A PREROUTING -d 192.168.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:80
-A PREROUTING -d 192.168.0.1 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.1:8080

Это я уже раскурил,и пыхчу уже как год)
Но проблема вся в том,что нужно что бы IP адреса,которые коннектяться к 192.168.0.1 корректно отображались на 192.168.1.1,а то через эти правила,все что приходит на 192.168.1.1 имеет IP адрес - 192.168.0.1.
В этом случае,если к примеру банить по IP на сервере 192.168.1.1,через iptables,то это напряг..[/quote]
Плохо курим.
А зачем делать SNAT или Маскардинг на интерфейс? На скок я понял вы VPN интерфейс пропустили через SNAT отсюда у вас и весь гемор.
В моём случае radmin.



[console]iptables -t nat -A PREROUTING -p tcp --dport XXX -j DNAT --to-destination 192.168.4.100:XXX[/console]

#239116
NoXi0uZ написал:
На 192.168.0.1 сделайте:
[console]ssh -2 -N -f -L 80:192.168.1.1:8080 user@192.168.1.1 [/console]
тогда, все что придет на 192.168.0.1:80 уйдет на 192.168.1.1:8080, а туда apache вешайте. Можно наверняка и просто на 80 пробросить.

Всё рулиться через iptables и ssh совсем не нужен для таких задач.

#239134

SSH разобрался. И все кстати на ура работает.
Но вот теперь постал вопрос,что использовать лучше iptables или ssh туннелирование,если нагрузка на подобные вещи будет не малая (до 50 мбит/с пропускной как минимум).

#239135

MAS От себя советую объедини две сети нормально и убери ssh он лишен.
Покажи правила iptables с обеих серверов тогда помогу. А так явно где то лишний nat.

#239153

Вообще ssh узким местом не станет при хорошем cpu, а так да и NAT дорогостоящая операция.
Можно посмотреть в сторону такой технологии: пересылать пакеты на интерфейс с которого стучимся на 192.168.1.1, не подменяя Destination в пакете (пусть остается 192.168.0.1), но тогда на 192.168.1.1 надо поднять виртуальный сетевой интерфейс с ip 192.168.0.1,чтобы ядро неотбрасывало пакеты. Такая штука используется при балансировке нагрузки, но вообще это костыль =)

Что-то наподобие вот этого:
http://metalcandy.ru/how-to-forge-centos/465-efficient-high-available-loadbalanced-cluster-on-centos

Не претендую на безапелляционность мнения.

#239367

А можно ли как то,что бы конечный сервер,корректно видел IP подключающихся. А то на apache2 у всех - 192.168.1.1.
И получается что более 10000 подключений,от IP 192.168.1.1 к 192.168.1.1 (сам к себе) - это такое через SSH туннелирование.

#239391
MAS написал:
А можно ли как то,что бы конечный сервер,корректно видел IP подключающихся. А то на apache2 у всех - 192.168.1.1.
И получается что более 10000 подключений,от IP 192.168.1.1 к 192.168.1.1 (сам к себе) - это такое через SSH туннелирование.

Я уже писал где то лишний nat. Показывайте правила с обоих серверов.

#239406

То куда туннелируем:

Показать
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
NameServer:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

От куда туннелируем:
iptables -L

Показать
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- static.xxxxxxxxxxx.clients.your-server.de anywhere
ACCEPT all -- xxxxxxxxxxxxxxx.ptr.ihc.ru anywhere
DROP tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:www
DROP tcp -- anywhere anywhere tcp dpt:www #conn/32 > 50

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
root@xxxxx:~# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
#239408

Ах,да,может это более точно объяснит ситуацию,веб-сервер - nginx + apache2.

#239456

[console]iptables -L -n -v[/console] ещё [console]ifconfig[/console] с обоих серверов.

Или лучше сами скрипты.

Войдите или зарегистрируйтесь, чтобы ответить.