Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программное обеспечение Linux и FreeBSD (http://forum.oszone.net/forumdisplay.php?f=11)
-   -   OpenVPN не видит внешку (http://forum.oszone.net/showthread.php?t=214913)

ganselo 06-09-2011 00:36 1746969

OpenVPN не видит внешку
 
Привет, ситуация такая
Есть Linux сервер (CentOS 6), поставил на нём OpenVPN, с клиента коннект происходит нормально, а в инет не выходит.
На сервере iptables отключён. Все конфиги и ключи в целях теста взял с другого сервера (ос та же). Там всё работает.
Привожу конфиг
openvpn.cfg
Код:

port 1194
proto tcp
dev tun
tls-server
server 192.168.100.0 255.255.255.0
keepalive 10 120
persist-key
persist-tun
status openvpn-status.log
client-config-dir /etc/openvpn/ccd
;push "route 192.168.100.0 255.255.255.0"
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
duplicate-cn
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/vpnserver.crt
key /etc/openvpn/keys/vpnserver.key
dh /etc/openvpn/keys/dh1024.pem

route
Код:

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface
192.168.100.2  *              255.255.255.255 UH    0      0        0 tun0
65.138.170.112  *              255.255.255.240 U    0      0        0 eth0
192.168.100.0  192.168.100.2  255.255.255.0  UG    0      0        0 tun0
45.254.0.0    *              255.255.0.0    U    0      0        0 eth0
default        node46.nqhost.c 0.0.0.0        UG    0      0        0 eth0

в /etc/sysctl.conf
Код:

net.ipv4.ip_forward = 1
help!

ganselo 06-09-2011 10:08 1747119

Проблема решена, нужно было включить и настроить iptables.

Silver23 08-09-2011 10:55 1748615

Цитата:

Цитата ganselo
Проблема решена, нужно было включить и настроить iptables. »

Не хотелось бы создавать новую тему - но скажите после того как установилось соединение клиента с сервером - что я должен увидеть - какие изменения - в сетевом окружении должен появится компьютер? У меня просто сервер на Ubuntu, а клиент на Windows, только в конфиге сервера нет строк как у вас
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
duplicate-cn

Спасибо

Сервер OpenVPN стоит на простом Ubuntu Desktop, пингую и сервер с клиента и клиента с сервера по сетки 10.8.0.0/24 и локальные адреса 192.168.1.0/24 и 192.168.0.0/24, iptables на Desktop отключён?

Silver23 09-09-2011 07:55 1749363

а вот и команда iptables --list показал что разрешёно по всем направлениям

ganselo 09-09-2011 11:41 1749481

Цитата:

Цитата Silver23
скажите после того как установилось соединение клиента с сервером - что я должен увидеть - какие изменения - в сетевом окружении должен появится компьютер? »

На клиенте у вас программа OpenVPN (client) GUI? если так, то у вас появляется значек в трее. По цвету значка определяете установлено ли соединение. Ну и в OpenVPN GUI есть лог.

Цитата:

Цитата Silver23
а вот и команда iptables --list показал что разрешёно по всем направлениям »

В iptables вам нужно из eth0 в tun0 перенаправлять трафик.
Код:

#!/bin/sh

# Имена сетевых интерфейсов:
# Внешний, на котором "висят" белые адреса нашего сервера:
IF_EXT="eth0"
# Виртуальный интерфейс, на котором будут все пользователи VPN:
IF_VPN="tun0"

# IP-Адреса:
# Внешний (используется для исходящих соединений:
IP_OUT="внешний ip"
# Второй внешний адрес, к нему будут подключаться клиенты:
IP_IN="внешний ip"
                                               
# Сеть, в которой будут находиться клиенты нашего VPN-сервера:
NET_VPN="192.168.100.0/255.255.255.0"
                                               
# Сбрасываем все правила:
iptables -F
iptables -F -t nat

# Устанавливаем политики по умолчанию:
# Запрещаем весь входящий трафик:
iptables -P INPUT DROP
# Разрешаем исходящий трафик:
iptables -P OUTPUT ACCEPT
# Запрещаем пересылку трафика:
iptables -P FORWARD DROP

# Разрешаем входящий трафик в рамках установленных соединений:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Разрешаем весь трафик внутри сервера:
iptables -A INPUT -i lo -j ACCEPT

# Разрешаем ICMP-трафик для всех:
iptables -A INPUT -p icmp -j ACCEPT

# Разрешаем SSH на IP-адресе для входящих подключеий:
iptables -A INPUT -m tcp -p tcp --dport 22 -d ${IP_IN} -j ACCEPT

# Разрешаем HTTP на IP-адресе для входящих подключеий:
iptables -A INPUT -m tcp -p tcp --dport 80 -d ${IP_IN} -j ACCEPT

# Разрешаем FTP на IP-адресе для входящих подключеий:
iptables -A INPUT -m tcp -p tcp --dport 20 -d ${IP_IN} -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 21 -d ${IP_IN} -j ACCEPT
iptables -A INPUT -p tcp -mmultiport --destination-ports 49152:65534 -j ACCEPT

# Разрешаем OpenVPN на IP-адресе для входящих подключений::
iptables -A INPUT -m tcp -p tcp --dport 1194 -d ${IP_IN} -j ACCEPT

# Разрешаем использование DNS-сервера клиентами VPN-сервера
iptables -A INPUT -m udp -p udp --dport 53 -s ${NET_VPN} -i ${IF_VPN} -j ACCEPT

# NAT для сети VPN:
iptables -t nat -A POSTROUTING -s ${NET_VPN} -j SNAT -o ${IF_EXT} --to-source ${IP_OUT}
iptables -A FORWARD -i ${IF_VPN} -o ${IF_EXT} -s ${NET_VPN} -j ACCEPT                                                       
iptables -A FORWARD -i ${IF_EXT} -o ${IF_VPN} -d ${NET_VPN} -m state --state RELATED,ESTABLISHED -j ACCEPT


Silver23 10-09-2011 05:49 1750091

Цитата:

Цитата ganselo
В iptables вам нужно из eth0 в tun0 перенаправлять трафик. »

Большое спасибо за полезную информацию, а можно вопрос что обозначает ${IP_IN} ${IF_EXT} ${NET_VPN} ${IP_OUT} - их так и нужно оставлять или заменять, я в принципе понимаю что за аббревиатура (ip входящие, ip исходящие)

ganselo 10-09-2011 13:59 1750248

Вам нужно сменить в начале скрипта:
Код:

IP_OUT="внешний ip"
IP_IN="внешний ip"

И если интерфейсы отличаются:
Код:

IF_EXT="eth0"
IF_VPN="tun0"

Т.е. создаёте в начале переменные и дальше используете их.


Время: 23:24.

Время: 23:24.
© OSzone.net 2001-