Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Проблемы с openVPN  (Прочитано 2552 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gufin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Проблемы с openVPN
« : 23 Ноября 2009, 22:50:30 »
Всем доброго времени суток. Столкнулся со следующей проблемой. Подключение проходит успешно с клиента пингую адрес сервера (192.168.100.1) и наоборот, но не пингую сеть за сервером (192.168.116.0/24). Насколько я понимаю, косяк где-то в настройках маршрутизации и iptables, но не врубаюсь где именно. И все это происходит при следующих параметрах :

192.168.100.0/24 - VPN сеть
192.168.116.0/24 - сеть за сервером
192.168.116.32 - адрес сервера 1
192.168.100.1 - адрес сервера vpn
xx.yy.zz.203 - внешний адрес сервера

Интерфейсы
eth0
ip  192.168.116.32
mask 255.255.255.0
-
-

eth1
IP xx.yy.zz.203  
Маска 255.255.255.240  
Шлюз xx.yy.zz.193

tun0

ip 192.168.100.1
mask 255.255.255.0


Команда route на сервере:
Таблица маршрутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.2   *               255.255.255.255 UH    0      0        0 tun0
xx.yy.zz.192    *               255.255.255.240 U     1      0        0 eth1
192.168.116.0   *               255.255.255.0   U     1      0        0 eth0
192.168.100.0   192.168.100.2   255.255.255.0   UG    0      0        0 tun0
link-local      *               255.255.0.0     U     1000   0        0 eth1
default         xx.yy.zz.193    0.0.0.0         UG    0      0        0 eth1



Команда route на подключенном клиенте:

Активные сетевые маршруты:
Сетевой адрес           Маска сети      Адрес шлюза        Интерфейс  Метрика
          0.0.0.0          0.0.0.0      192.168.0.1   192.168.0.100  20
        127.0.0.0        255.0.0.0        127.0.0.1       127.0.0.1  1
      192.168.0.0    255.255.255.0    192.168.0.100   192.168.0.100  20
    192.168.0.100  255.255.255.255        127.0.0.1       127.0.0.1  20
    192.168.0.255  255.255.255.255    192.168.0.100   192.168.0.100  20
    192.168.100.0    255.255.255.0    192.168.100.5   192.168.100.6  1
    192.168.100.4  255.255.255.252    192.168.100.6   192.168.100.6  30
    192.168.100.6  255.255.255.255        127.0.0.1       127.0.0.1  30
  192.168.100.255  255.255.255.255    192.168.100.6   192.168.100.6  30
        224.0.0.0        240.0.0.0    192.168.0.100   192.168.0.100  20
        224.0.0.0        240.0.0.0    192.168.100.6   192.168.100.6  30
  255.255.255.255  255.255.255.255    192.168.0.100   192.168.0.100  1
  255.255.255.255  255.255.255.255    192.168.100.6           10005  1
  255.255.255.255  255.255.255.255    192.168.100.6   192.168.100.6  1
  255.255.255.255  255.255.255.255    192.168.100.6               3  1
Основной шлюз:         192.168.0.1


конфиг сервера

port 1194
proto udp
dev tun
;dev-node tap0
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key # This file should be kept secret
dh /etc/openvpn/keys/dh1024.pem
server 192.168.100.0  255.255.255.0 # vpn subnet
ifconfig-pool-persist "/etc/openvpn/config/ipp.txt"
push "route 192.168.100.0 255.255.255.0"
push "route 192.168.116.0 255.255.255.0"
;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 /etc/openvpn/log/openvpn-status.log
log /etc/openvpn/log/openvpn.log
log-append /etc/openvpn/log/openvpn.log
verb 3
mute 20
client-to-client
client-config-dir /etc/openvpn/ccd

В папке /etc/openvpn/ccd лежит файл client1 (имя сертификата под которым подключается клиент) с содержимым:
iroute 192.168.116.0 255.255.255.0

Конфиг клиента

client
dev tun
proto udp
remote xx.yy.zz.203 1194
resolv-retry infinite
nobind
user nobody
group nobody
persist-key
persist-tun
ca geo\\ca.crt
cert geo\\client1.crt
key geo\\client1.key
comp-lzo
verb 3
mute 20


В iptables пробовал следующие варианты:

Вариант1
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT

Вариант2. Запускал такой скрипт.
# маски используемых сетей
IP_LAN="192.168.116.1/24" # моя домашняя сеть


# интерфейсы

IF_LAN="eth0" # сюда подключена локальная сеть
IF_INET="eth1" # сюда "подключен" интернет
IF_VPN="tun0" # это интерфейс нашего vpn

IPT="iptables"

# cleaning:
$IPT --flush
$IPT -t nat --flush
$IPT -t mangle --flush
$IPT -X

# тут по желанию и степени паранои
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

# allow loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

###
# local host:

# allow outgoing connections:
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

# разрешаем подключения к vpn
$IPT -A INPUT -p udp --dport 1194 -j ACCEPT

# разрешаем NAT из локальной сети и VPN:

$IPT -t nat -A POSTROUTING -o $IF_INET -j MASQUERADE


$IPT -A FORWARD -i $IF_LAN -o $IF_INET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_INET -o $IF_LAN -m state --state ESTABLISHED,RELATED -j ACCEPT


$IPT -A FORWARD -i $IF_VPN -o $IF_INET -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_INET -o $IF_VPN -m state --state ESTABLISHED,RELATED -j ACCEPT

Вариант3.

iptables -A FORWARD -i eth1 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o eth1 -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

Еще я не очень понимаю как опередлит какой набор правил в iptables работает в данный момент. между каждым вариантами правил делал очистку
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
iptables -X


Форвардинг тоже включен. Т.е в /etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv4.ip_dynaddr = 1

Подскажите, что я делаю не так. Спасибо )
« Последнее редактирование: 23 Ноября 2009, 22:57:04 от gufin »

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Re: Проблемы с openVPN
« Ответ #1 : 23 Ноября 2009, 23:13:59 »
Комментарий: если мне склероз не изменяет, то адрес выдаваемый Пчелайн абоненту GPRS как раз из сети 192.168.100.0/24, что сильно затруднит VPN с такими настройками через этого провайдера.

В маршрутах клиента совсем нет хоть чего-нибудь про адреса из 192.168.116.0/24 и сеть не видна. Логично.

Под рукой нет инфы, имеет смысл покопать какая именно директива нужна в ccd файле. Если директива правильна, но есть облом с этой директивой, то это видно в логах OpenVPN, на стороне клиента. В консоли или в /var/log/messages или где-там настроено через реестр или файл конфига. Вроде как для Вин только в реестре для службы имя файла лога и консоль - два места и нет других.
Уровень лога можно приподнять от 3 до 5, если не видно.

P.S. iptables не смотрел.
« Последнее редактирование: 23 Ноября 2009, 23:17:44 от Somewhere there out there »
StarDict и Mueller помогут против английского мануала.

Оффлайн gufin

  • Автор темы
  • Новичок
  • *
  • Сообщений: 4
    • Просмотр профиля
Re: Проблемы с openVPN
« Ответ #2 : 23 Ноября 2009, 23:50:58 »
У меня не пчелайн, с диапазоном сетей конфликта точно нет.
А по поводу маршрута это странно. И в логах действительно ошибка:
Mon Nov 23 23:48:40 2009 us=104299 PUSH: Received control message: 'PUSH_REPLY,route 192.168.100.0 255.255.255.0,route 192.168.100.0 255.255.255.0,topology net30,ping 10,ping-restart 120,ifconfig 192.168.100.6 192.168.100.5'
Mon Nov 23 23:48:40 2009 us=104355 Options error: Unrecognized option or missing parameter(s) in [PUSH-OPTIONS]:3: topology (2.0.9)
Но я не понимаю в чем косяк


Пользователь решил продолжить мысль 24 Ноября 2009, 22:51:13:
Решение проблемы здесь:
http://www.linux.org.ru/view-message.jsp?msgid=4266950&lastmod=1259090877143
« Последнее редактирование: 24 Ноября 2009, 22:51:13 от gufin »

Оффлайн lius

  • Новичок
  • *
  • Сообщений: 41
    • Просмотр профиля
Re: Проблемы с openVPN
« Ответ #3 : 18 Января 2010, 12:08:15 »
Исходные данные: Ubuntu server 9.04 с одной сетевухой подключенный к инет и косп WinXP на другом конце города тоже с подключением к инет. Пробросил OpenVPN.
Конфиг VPN на сервере:
(Нажмите, чтобы показать/скрыть)


Обращаю внимание, что использовано tap устройство и соответственно tcp протокол.
проблема в следующем с клиента виден сервер, причем как по внутреВПН ip так и по ip внутри его локальной сети, но не один комп в локальной сети не пингуется.
Собственно вопрос что не так, почему не проходит форвардинг?

на всяк случай настройки iptables:
(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль 18 Января 2010, 22:41:16:
И вдогонку, объясните популярно, когда лучше использовать tun устройства, а когда tap?
« Последнее редактирование: 18 Января 2010, 22:41:17 от lius »

 

Страница сгенерирована за 0.052 секунд. Запросов: 23.