LINUX.ORG.RU

Сообщения rayg00n

 

2 провайдера + nat + проброс портов

Форум — Admin

Добрый день. Столкнулся с небольшой проблемой. Тема уже поднималась и неоднократно, однако я не вижу способа побороть проблему. Прочитал http://www.opennet.ru/docs/RUS/LARTC/ не помогло(( Имею шлюз со статическими ip-адресами от двух различных провайдеров и один интерфейс для локальной сети. Внутри локальной сети имеется сервер который надо опубликовать наружу через 2-х провайдеров. Написал скрипт для изменения маршрутов:

#!/bin/env bash

# Интерфейс внутренней сети 
IP_LOCAL="a.a.a.15"
IF_LOCAL="eth0"
NET_LOCAL="a.a.a.0/24"

# Интерфейс внешней сети от провайдера 1
IP_INET1="x.x.x.157"
IF_INET1="eth1"
NET_INET1="x.x.x.152/29"
GW1="x.x.x.153"

# Интерфейс внешней сети от провайдера 2
IP_INET2="y.y.y.180"
IF_INET2="eth3"
NET_INET2="y.y.y.176/28"
GW2="y.y.y.177"

ip route flush table P1 
ip route flush table P2
ip rule delete table P1
ip rule delete table P2

ip route add $NET_INET1 dev $IF_INET1 src $IP_INET1 table P1
ip route add $NET_LOCAL dev $IF_LOCAL table P1
ip route add $NET_INET2 dev $IF_INET2 table P1
ip route add 127.0.0.0/8 dev lo table P1
ip route add default via $GW1 table P1

ip route add $NET_INET2 dev $IF_INET2 src $IP_INET2 table P2
ip route add $NET_LOCAL dev $IF_LOCAL table P2
ip route add $NET_INET1 dev $IF_INET1 table P2
ip route add 127.0.0.0/8 dev lo table P2
ip route add default via $GW2 table P2

ip route del default
ip route add default via $GW2

ip rule add from $IP_INET1 table P1
ip rule add from $IP_INET2 table P2

ip route flush cache
В iptables: iptables -t nat -A PREROUTING -d $IP_INET1 -p tcp --dport 443 -j DNAT --to-destination a.a.a.5:443

iptables -t nat -A PREROUTING -d $IP_INET2 -p tcp --dport 443 -j DNAT --to-destination a.a.a.5:443

Внутренний ресурс доступен только с первого провайдера

rayg00n
()

Openswan + xl2tpd + multiple clients behind nat

Форум — Admin

Добрый день. Недавно столкнулся с проблемой. необходимо поднять сервер удаленного доступа в корпоративную сеть. В качестве решения были выбрана связка openswan + xl2tpd. Успешно настроена и работает авторизация как по ключу PSK так и по сертификатам. Так же работает доменная авторизация (AD на винде). Но небо безоблачным не бывает. Суть проблемы: Когда несколько клиентов сидящих за одним и тем же NAT'ом подключаются к серверу(к примеру с другого офиса), работать остается только последний подключившийся, остальных выбрасывает.

Кто настраивал сервера удаленного доступа, поделитесь пожалуйста секретным знанием =) Хочется чтобы клиенты могли работать с любой точки земного шара.

Исходные данные:

Linux 3.8.13-gentoo x86_64
net-misc/openswan-2.6.38  USE="extra-algorithms nocrypto-algorithms pam ssl weak-algorithms -caps -curl -ldap -ms-bad-proposal -nss"
net-dialup/xl2tpd-1.3.1-r2  USE="kernel -dnsretry" 
ipsec.conf
version	2.0

config setup
	plutostderrlog="/var/log/openswan.log"
	dumpdir=/var/run/pluto/
	nat_traversal=yes
	virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v6:fd00::/8,%v6:fe80::/10,%v4:!e.e.e.0/24
	oe=off
	protostack=auto
	
conn l2tp-X.509
	authby=rsasig
	pfs=no
	auto=start
	rekey=no
	dpddelay=10
	dpdtimeout=90
	dpdaction=clear
	ikelifetime=8h
	keylife=1h
	keyingtries=1
	type=tunnel
	left=x.x.x.x
	leftid=%defaultroute
	leftrsasigkey=%cert
	leftcert=/etc/ipsec.d/certs/strongswanCert.pem
	leftprotoport=17/1701
	leftnexthop=%defaultroute
	right=%any
	rightca=%same
	rightrsasigkey=%cert
	rightprotoport=17/%any
	rightsubnet=vhost:%priv,%no    
conn passthrough-for-non-l2tp
        type=passthrough
        left=x.x.x.x
        leftnexthop=y.y.y.y
        right=0.0.0.0
        rightsubnet=0.0.0.0/0
        auto=route
conn l2tp-psk-nat
        rightsubnet=vhost:%priv
        also=l2tp-psk-no-nat
conn l2tp-psk-no-nat
	authby=secret
        pfs=no
        auto=add
        keyingtries=3
	rekey=no
        dpddelay=10
        dpdtimeout=90
        dpdaction=clear
        ikelifetime=8h
        keylife=1h
        type=transport
        left=x.x.x.x
        leftprotoport=17/1701
        right=%any
        rightprotoport=17/%any

ipsec.secrets

: RSA strongswanKey.pem "pass1"
%any %any: PSK "pass2"

xl2tpd.conf

[global]
listen-addr = x.x.x.x
port = 1701	
[lns default]							
exclusive = no
ip range = e.e.e.25-e.e.e.27
local ip = e.e.e.241
length bit = yes
refuse pap = yes
refuse chap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
flow bit = yes	
options.xl2tpd
ipcp-accept-local
ipcp-accept-remote
require-mschap-v2
ms-dns e.e.e.3
ms-dns e.e.e.10
mtu 1280
mru 1280
nodefaultroute
debug
name l2tpd
lock
crtscts
logfile /var/log/xl2tpd.log
proxyarp
connect-delay 5000
auth
plugin winbind.so
ntlm_auth-helper '/usr/bin/ntlm_auth --helper-protocol=ntlm-server-1 --require-membership-of="DOMAIN/VPN_USERS"'

 , ,

rayg00n
()

RSS подписка на новые темы