Jump to content
Калькуляторы

OPENVPN доступ к локалке из вне

Добрый день !

 

Коллеги просьба помочь разобраться с вопросом по OPENVPN.

Задача на первый взгляд не сложная, требуется создать доступ удаленным пользователям (OPENVPN client) доступ в локальную сеть к своим компам или сетевым ресурсам. Подключение происходит но вот хождения пакетов в локальную сеть не наблюдается.

Сервер с двумя сетевками

eth0 смотрит в мир

eth1 смотрит в локалку

При запуске OPENVP server создается интерфейс tun0

конфиги сервера и фаервола привожу ниже

 

server.conf

 

local 192.168.10.1

 

#change with your port

port 5555

 

#You can use udp or tcp

proto udp

 

# "dev tun" will create a routed IP tunnel.

dev tun

 

#Certificate Configuration

 

#ca certificate

ca /etc/openvpn/ca.crt

 

#Server Certificate

cert /etc/openvpn/server.crt

 

#Server Key and keep this is secret

key /etc/openvpn/server.key

 

#See the size a dh key in /etc/openvpn/

dh /etc/openvpn/dh2048.pem

 

#user nobody

#group nogroup

 

# указываем внутренний DNS и WINS серверы

push "dhcp-option DNS 192.168.5.3"

push "dhcp-option DNS 8.8.8.8"

 

 

push "route 192.168.5.0 255.255.255.0"

#

client-config-dir ccd

 

route 192.168.0.0 255.255.255.0

 

#Internal IP will get when already connect

server 172.16.20.0 255.255.255.0

 

#this line will redirect all traffic through our OpenVPN

#push "redirect-gateway def1"

#push "redirect-gateway local"

#Provide DNS servers to the client, you can use goolge DNS

 

#push "route 192.168.5.0 255.255.255.0"

 

client-config-dir ccd

#route 192.168.0.0 255.255.255.0

 

client-to-client

 

#Enable multiple client to connect with same key

duplicate-cn

cipher DES-EDE3-CBC

keepalive 20 60

comp-lzo

persist-key

persist-tun

daemon

 

#enable log

log-append /var/log/openvpn.log

 

#Log Level

verb 5

 

#!/bin/sh

 

IPT="/usr/sbin/iptables"

 

# Интерфейс который смотрит в интернет

WAN="eth0"

WAN_IP="192.168.10.1"

 

# Интерфейс который смотрит в локальную сеть

LAN="eth1"

LAN_IP="192.168.5.3"

 

# Очистка всех цепочек iptables

$IPT -F

$IPT -F -t nat

$IPT -F -t mangle

$IPT -X

$IPT -t nat -X

$IPT -t mangle -X

 

# Установим политики по умолчанию для трафика, не соответствующего ни одному из правил

$IPT -P INPUT DROP

$IPT -P OUTPUT DROP

$IPT -P FORWARD DROP

 

# разрешаем локальный траффик для и loopback

$IPT -A INPUT -i lo -j ACCEPT

$IPT -A OUTPUT -o lo -j ACCEPT

$IPT -A INPUT -i $LAN -s 192.168.5.0/24 -j ACCEPT

$IPT -A OUTPUT -o $LAN -s 192.168.5.0/24 -j ACCEPT

$IPT -A INPUT -s 192.168.5.0/24 -p icmp --icmp-type echo-request -j ACCEPT

###########################################################################

# Состояние ESTABLISHED говорит о том, что это не первый пакет в соединении.

# Пропускать все уже инициированные соединения, а также дочерние от них

$IPT -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

# Пропускать новые, а так же уже инициированные и их дочерние соединения

$IPT -A OUTPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

###########################################################################

# Разрешаем исходящие соединения самого сервера

$IPT -A OUTPUT -o $WAN -j ACCEPT

#$IPT -A INPUT -i $WAN -j ACCEPT

# Открываем порт для ssh

#$IPT -A INPUT -i $WAN -p tcp --dport 3989 -j ACCEPT

$IPT -A INPUT -i $WAN -p tcp --dport 22 -j ACCEPT

$IPT -A INPUT -i $LAN -p tcp --dport 22 -j ACCEPT

# Открываем порт для DNS

$IPT -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT

$IPT -A INPUT -i $LAN_IP -p udp --dport 53 -j ACCEPT

# Открываем порт для NTP

$IPT -A INPUT -p tcp -m tcp --sport 123 -j ACCEPT

$IPT -A OUTPUT -p tcp -m tcp --dport 123 -j ACCEPT

$IPT -A INPUT -p udp -m udp --dport 5555 -j ACCEPT

$IPT -A OUTPUT -p udp --sport 5555 -j ACCEPT

# Включаем фрагментацию пакетов. Необходимо из за разных значений MTU

$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

$IPT -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

$IPT -A FORWARD -m conntrack --ctstate NEW -i $LAN -s 192.168.5.0/24 -j ACCEPT

#$IPT -P FORWARD DROP

##########################################################################

##NAT

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

###############################################################################

 

#$IPT-A FORWARD -s 172.16.20.0/24 -d 192.168.5.0/24 -j ACCEPT

$IPT -A FORWARD -i $WAN -o tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -A FORWARD -s 172.16.20.0/24 -j ACCEPT

$IPT -A FORWARD -d 172.16.20.0/24 -m state --state ESTABLISHED,RELATED -j ACCEPT

$IPT -t nat -A POSTROUTING -s 172.16.20.0/24 -j SNAT --to-source 192.168.10.1

/sbin/iptables-save > /etc/sysconfig/iptables

 

Коннект есть к серверу и есть выход в интернет через него, но задача стоит доступ в локальную сеть!

 

Заранее благодарю за ответы.

Share this post


Link to post
Share on other sites

Всем спасибо , разобрался сам. Дело было в объявлении маршрутов которые прописываются в server.conf а точнее директива client-config-dir ccd там необходимо прописать сетку клиента который допустим сидит из дому.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.