|
|
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!
|
Проблема решена, нужно было включить и настроить iptables.
|
Цитата:
Цитата 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 отключён?
|
а вот и команда iptables --list показал что разрешёно по всем направлениям
|
Цитата:
Цитата 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
|
Цитата:
Цитата ganselo
В iptables вам нужно из eth0 в tun0 перенаправлять трафик. »
|
Большое спасибо за полезную информацию, а можно вопрос что обозначает ${IP_IN} ${IF_EXT} ${NET_VPN} ${IP_OUT} - их так и нужно оставлять или заменять, я в принципе понимаю что за аббревиатура (ip входящие, ip исходящие)
|
Вам нужно сменить в начале скрипта:
Код:
IP_OUT="внешний ip"
IP_IN="внешний ip"
И если интерфейсы отличаются:
Код:
IF_EXT="eth0"
IF_VPN="tun0"
Т.е. создаёте в начале переменные и дальше используете их.
|
Время: 23:24.
© OSzone.net 2001-