С Новым годом! Форум программистов, компьютерный форум, киберфорум
Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
61 / 51 / 25
Регистрация: 17.12.2013
Сообщений: 243
1

Объединить сеть офиса и удаленные компы в одну сеть через OpenVPN(+bridge)

26.02.2016, 10:05. Показов 2509. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задача:
Объединить сеть офиса и удаленные компы в одну сеть с единым адресным пространством.
Решил поднять на шлюзе OpenVPN сервер на Ethernet bridging.

Начал с моделирования под Hiper-V:
Создал виртуальный свич, изолированный от внешних адаптеров.
Создал виртуальный свич завязанный на реальный адаптер сервера с выходом во внешнюю сеть (сеть офиса).
Поднял тестовую машинку с одним сетевым адаптером и присоединил его к изолированному свичу.
Поднял виртуальный сервер на Ubuntu Server 14/04 LTS с 2мя сетевыми адаптерами.
Он исполняет роль тестового шлюза
eth0 соединил со свичем, имеющим выход в реальную сеть.
eth1 соединил с изолированным виртуальным свичем.
Настроил изолированную сеть на тестовой машинке и на eth1 шлюза (192.168.200.0/255.255.255.0, шлюз 192.168.200.1, тестовая машина 192.168.200.2).
Пакеты ходят прекрасно.
Настроил сеть на eth0 шлюза (указал основным шлюзом офисный шлюз и DNS на DNS офиса).
Со шлюза стало прекрасно видно все сетевые ресурсы офиса и интернета.

Далее на шлюз поствил OpenVPN и bridge-utils, сгенерировал ключи.
Сделал пару скриптов для моста (/etc/openvpn/hmp-up.sh и /etc/openvpn/hmp-down.sh).
Настроил конфиг сервера.
Настроил /etc/network/interfaces.
Настроил раздачу инета во внутрь сети.

Привожу содержимое конфигов:
/etc/network/interfaces

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.7.10
        netmask 255.255.255.0
        network 192.168.7.0
        broadcast 192.168.7.255
        gateway 192.168.7.2
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 192.168.7.2
 
auto br0
iface br0 inet static
        bridge_ports eth1
        bridge_fd 0
        address 192.168.200.1
        netmask 255.255.255.0
        network 192.168.200.0
        broadcast 192.168.200.255
 
pre-up iptables-restore < /etc/iptables.up.rules
 
up route add -net 192.168.200.0 netmask 255.255.255.0 dev br0
up route add -net 0.0.0.0 netmask 255.255.255.255 dev eth0

/etc/openvpn/server-hmp.conf

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
port 1794
proto udp
dev tap0
ca /etc/openvpn/rsa-hmp/keys/ca.crt
cert /etc/openvpn/rsa-hmp/keys/server-hmp.crt
key /etc/openvpn/rsa-hmp/keys/server-hmp.key
dh /etc/openvpn/rsa-hmp/keys/dh2048.pem
server-bridge 192.168.200.1 255.255.255.0 192.168.200.100 192.168.200.199
client-to-client
keepalive 10 60
comp-lzo
persist-key
persist-tun
status openvpn-status-hmp.log
log openvpn-hmp.log
verb 3
push "route 192.168.200.0 255.255.255.0"
up /etc/openvpn/hmp-up.sh
down /etc/openvpn/hmp-down.sh

/etc/openvpn/hmp-up.sh

Bash
1
2
3
4
#!/bin/sh
 
ifconfig tap0 up
brctl addif br0 tap0

/etc/openvpn/hmp-down.sh

Bash
1
2
3
4
#!/bin/sh
 
ifconfig tap0 down
brctl delif br0 tap0

/etc/iptables.up.rules

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Generated by iptables-save v1.4.21 on Fri Feb 26 15:28:35 2016
*nat
:PREROUTING ACCEPT [278:21526]
:INPUT ACCEPT [51:6450]
:OUTPUT ACCEPT [10:674]
:POSTROUTING ACCEPT [54:5475]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
# Completed on Fri Feb 26 15:28:35 2016
# Generated by iptables-save v1.4.21 on Fri Feb 26 15:28:35 2016
*filter
:INPUT ACCEPT [28:2069]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [15:2049]
-A INPUT -i tap0 -j ACCEPT
-A INPUT -i br0 -j ACCEPT
-A FORWARD -m physdev --physdev-is-bridged -j ACCEPT
-A FORWARD -i br0 -j ACCEPT
COMMIT
# Completed on Fri Feb 26 15:28:35 2016


Настроил клиента и кинул ключики (реальная машинка в офисе).
Подключение происходит без ошибок.
Получаю IP 192.168.200.100
Прекрасно пингую шлюз по внутреннему адресу (192.168.200.1), шлюз пингует меня.
Та же история между тестовой машинкой и шлюзом (192.168.200.2 <--> 192.168.200.1).

Но вот связи между мной и тестовой машиной нет.
Как и нет связи по OpenVPN от тестовой машины до меня.
Т.Е.
1) Нет пинга на тестовой машине до 192.168.200.100
2) Нет пинга на моей машине до 192.168.200.2
В обоих случаях говорит узел не доступен
Сетевые экраны выключены.

Подскажите куда копать?

Добавлено через 21 минуту
Во еще конфиг клиента:
C:\Program Files\OpenVPN\config\client.ovpn

Bash
1
2
3
4
5
6
7
8
9
10
11
client
dev tap0
proto udp
remote 192.168.7.10 1794
persist-key
persist-tun
ca "C:\\Program Files\\OpenVPN\\config\\keys_hmp\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\keys_hmp\\client.crt"
key "C:\\Program Files\\OpenVPN\\config\\keys_hmp\\client.key"
comp-lzo
verb 3


Добавлено через 2 минуты
P.S.
На клиенте Windows.
Сетевой адаптер OVPN переименован в tap0
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2016, 10:05
Ответы с готовыми решениями:

Получилось объединить удаленные сети через openvpn
Имеем. 4 удаленных друг от друга офиса организации от 10 до 20 компьютеров объединенных в...

2 Офиса в одну сеть
Есть 2 офиса: 1 офис находится в городе А. 1 сервер и 6 компьютеров. Основная работа в 1С...

Удалённые предприятия соединить в одну сеть
На работе дали задание, соединить в одну сеть для отправки электронной почты. Расстояние между...

Как объединить компы в локальную сеть в такой ситуации? (adsl модем и интернет центр zyxel)
На 2 компах есть только интернет, можно ли объединить их в 1 локальную сеть?

1
0 / 0 / 1
Регистрация: 23.01.2015
Сообщений: 8
10.03.2016, 11:19 2
Форвардинг не забыл?
Цитата Сообщение от http://itblog.su/vklyuchaem-ip-forwarding-v-linux.html
Проверить включен ли IP Forwarding можно так:
Bash
1
2
sysctl net.ipv4.ip_forward
cat /proc/sys/net/ipv4/ip_forward
Включить можно так (действовать будет до перезагрузки):
Bash
1
sysctl -w net.ipv4.ip_forward=1
или
Bash
1
echo 1 > /proc/sys/net/ipv4/ip_forward
Или жётско включить (действовать будет и после перезагрузки):
Bash
1
2
# grep forward /etc/sysctl.conf
net.ipv4.ip_forward = 1
В RedHat подобных:
Bash
1
2
# grep -i forward /etc/sysconfig/network
FORWARD_IPV4=true
в Debian (Ubuntu):
Bash
1
2
# grep -i forward /etc/network/options
ip_forward=yes
После правки конфигов (перманентное включение) необходимо перезапустить сеть. например,
Bash
1
/etc/init.d/network restart
Note that: В OpenVPN используется первый способ (изменение на лету), это прописано в стартап
0
10.03.2016, 11:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2016, 11:19
Помогаю со студенческими работами здесь

Сеть и IPTV (bridge) через 1 кабель (VLAN?)
Добрый день! Нарисовалась задачка: В доме есть серверная, куда приходить кабель от *провайдера...

Объединить Mikrotik и TP-Link в одну сеть
Доброго времени суток всем. В общем имеется Mikrotik RB951 и TP-Link 4300. Интернет приходит в...

Как объединить LAN и wi-fi в одну сеть?
Врем доброго дня. Возникла проблема прошу вашей помощи. Есть модем (DSL_2640NRU v1.0.10) к...

Объединить все сервера филиалов в одну сеть
Интересует такой вопрос, как можно объединить 7 филиалов в одну сеть, филиалы по разным городам, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru