ipsec openswan sonicwall

Posted in Новости on 5 февраля, 2016 by admin

Топология сети :

| 1.1.1.1 | —— | 2.2.2.2 | —- | 192.168.1.0/24 |

1.1.1.1 — Debian машина без NAT
2.2.2.2 — внешний адрес sonicwall
192.168.1.0/24 — nat за sonicwall, к которому требуется получить доступ из 1.1.1.1

Debian :
1. Ставим openswan :

apt-get update
apt-get upgrade
apt-get install openswan

2. Авторизация будет через PSK ( pre shared key )

cat /etc/ipsec.secret


1.1.1.1 2.2.2.2: PSK "mysecretkey"

3. Далее отключаем правила редиректа трафика и включаем forwarding :

root@xxx:/# sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0

4. Вносим правила в iptables :

iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p esp -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 500 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 4500 -j ACCEPT
iptables -A PREROUTING -s 192.168.1.0/24 -j ACCEPT
iptables -A OUTPUT -p esp -j ACCEPT
iptables -A OUTPUT -p udp -m udp --dport 500 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --sport 4500 -j ACCEPT
iptables -t nat -A POSTROUTING -d 192.168.1.0/24 -j SNAT --to-source 1.1.1.1
iptables -t nat -A POSTROUTING -d 192.168.1.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -j ACCEPT --destination 192.168.1.0/255.255.255.0
iptables -t nat -A PREROUTING -j ACCEPT --source 192.168.1.0/255.255.255.0

5. Проверяем корректность настроек ( для OpenVZ также со стороны ноды делаем — https://openvz.org/IPsec )

root@xxx:/# ipsec verify
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan U2.6.38/K2.6.32-042stab108.8 (netkey)
Checking for IPsec support in kernel [OK]
SAref kernel support [N/A]
NETKEY: Testing XFRM related proc values [OK]
[OK]
[OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for NAT-T on udp 4500 [OK]
Two or more interfaces found, checking IP forwarding [FAILED]
Checking NAT and MASQUERADEing [OK]
Checking for 'ip' command [OK]
Checking /bin/sh is not /bin/dash [WARNING]
Checking for 'iptables' command [OK]
Opportunistic Encryption Support [DISABLED]

6. Приводим конфиг /etc/ipsec.conf к виду :

config setup
nat_traversal=yes
oe=off
nhelpers=0
virtual_private=%v4:192.168.1.0/24
plutostderrlog=/var/log/pluto.log
conn sonicwall
type=tunnel
left=1.1.1.1
leftsubnet=1.1.1.1/32
rightxauthserver=yes
leftid=1.1.1.1
right=2.2.2.2
rightid=2.2.2.2
keyingtries=0
pfs=no
aggrmode=no
auth=esp
esp=3des-sha1
ike=3des-sha1
authby=secret
keyexchange=ike
rightsubnet=192.168.1.0/24
# This allows the VPN to come up automatically when openswan starts
auto=start
ikelifetime=8h
keylife=1h
compress=no

7. Перезагружаем :

/etc/init.d/ipsec restart

Sonicwall :
1. Создаем новое VPN подключение
2. General :

Policy Type - Site-to-Site
Authenication Method - IKE using Preshared Secret
Name - любое имя
IPSEC Primary Gateway Name or Address - 1.1.1.1
IPSEC Secondary Gateway Name or Address - 2.2.2.2
Shared secret - указываем пароль из /etc/ipsec.secret
Local IKE ID - IP Address - 2.2.2.2
Peer IKE ID - IP Address - 1.1.1.1

3. Network :

Local Networks
Choose local network from host - выбираем группу, в которой состоит 192.168.1.0/24 подсеть

Remote Networks
Choose destination network from list - выбираем или создаем группу 1.1.1.1/32

4. Proposals :

IKE Phase 1
Exchange - Main
DH Group - 5
Encryption - 3DES
Authentication - SHA1
Life Time ( seconds ) - 28800

IKE Phase 2
Protocol - ESP
Encryption - 3DES
Authentication - SHA1
Enable Perfect Forward Secrecy - Disable
Life Time ( seconds ) - 28800

5. Advanced :

Enable Keep Alive - enable
All other disable
Default LAN Gateway - 0.0.0.0

6. Применяем изменения и на странице VPN в Sonicwall должен напротив нашего соединения загореться зеленый кружок.

Tags: , ,

Поднимаем VPN на OpenVZ на l2tp + IPsec ( openswan + xl2tpd )

Posted in Новости on 21 ноября, 2013 by admin

Схема подключения клиента к серверу :

[ local client ( 192.168.1.2 ) ] — NAT — [ local router (192.168.1.1 ) ] —— internet —— [ l2tp server ( for example — 11.11.11.11 ) ] — NAT — 10.0.0.1

Так как клиент за натом, то будем использовать NAT T

Обновляем ядро на HN — https://openvz.org/IPsec

Задаем для контейнера права на работу с ipsec и ppp и перезагружаем для применения изменений :


vzctl set CTID --capability net_admin:on --save
vzctl restart CTID

С ноды грузим необходимые для работы модули :

ppp_async
pppol2tp
xfrm4_mode_transport
xfrm4_mode_tunnel
xfrm_ipcomp
esp4

Устанавливаем внутри контейнера ПО

apt-get install openswan xl2tpd

Отключаем внутри контейнера send и accept редиректы :
for each in /proc/sys/net/ipv4/conf/*; do echo 0 > $each/accept_redirects; echo 0 > $each/send_redirects; done

Проверяем корректность прогрузки ipsec внутри контейнера :
ipsec verify
Вывод корректной настройки :

root@ldap:~# ipsec verify
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan U2.6.37-g955aaafb-dirty/K2.6.32-042stab084.10 (netkey)
Checking for IPsec support in kernel [OK]
SAref kernel support [N/A]
NETKEY: Testing XFRM related proc values [OK]
[OK]
[OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for NAT-T on udp 4500 [OK]
Checking for 'ip' command [OK]
Checking /bin/sh is not /bin/dash [WARNING]
Checking for 'iptables' command [OK]
Opportunistic Encryption Support [DISABLED]

Настраиваем IPsec :

nano /etc/ipsec.conf

config setup
protostack=netkey
nat_traversal=yes # Enables NAT traversal
virtual_private=%v4:192.168.1.0/8 # with this option you can add your local IP in NAT
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret # Auth with PSK ( preshared key )
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
salifetime=10m
type=tunnel # type of l2tp connection ( tunnel / transport )
left=11.11.11.11 # left - is internet IP of l2tp server
leftprotoport=17/1701
right=%any # right - is IP of client ( if client NATed , that IP of client is IP in NAT
rightprotoport=17/1701

Задаем PSK :
nano /etc/ipsec.secrets

11.11.11.11 %any: PSK "mykey"

Конфигурируем xl2tpd :

nano /etc/xl2tpd/xl2tpd.conf

[global]
port = 1701
auth file = /etc/xl2tpd/l2tp-secrets # auth file with pars login/password for l2tp auth
[lns default]
ip range = 10.0.0.2-10.0.0.200 # range of IP's , that give to clients when auth is good
local ip = 10.0.0.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd # this is ppp options config file
length bit = yes
exclusive = no
assign ip = yes
name = VPN-Server

nano /etc/xl2tpd/l2tp-secrets
# Secrets for authenticating l2tp tunnels
# us them secret
# * marko blah2
# zeus marko blah
# * * interop
* * * # let all , because we use auth with chap

nano /etc/ppp/options.xl2tpd
refuse-mschap-v2
refuse-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
idle 1800
mtu 1200
mru 1200
lock
hide-password
local
#debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

Создаем аккаунты для авторизации :

nano /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
test2 l2tpd test *

логин - test2
пароль - test

Далее разрешаем NAT клиентам ходить в интернет

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source


iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT
iptables -A FORWARD -d 10.0.0.0/24 -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Ребутим сервисы :

/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart

Создаем VPN подключение нативными средствами Windows 7 :

Центр управления сетями и общим доступом — Настройка нового подключения или сети — Подключение к рабочему месту — Использовать мое подключение к интернету ( VPN ) — Интернет адрес ( IP или FQDN для сервера l2tp )
l2tp1
Вписываем логин и пароль от l2tp
l2tp2
Не подключаемся и закрываем
l2tp3
Переходим в сетевые подключения — изменение параметров адаптера — открываем контекстное меню — свойства
Вкладка «Общие» — Проверяем корректность IP или FQDN сервера
l2tp4
Вкладка «Безопасность» — выставляем тип VPN , разрешаем нужные протоколы. Нажимаем — дополнительные параметры. Выбираем предварительный ключ и вводим ключ
l2tp5
l2tp6
Подключаемся к впн и радуемся =)

Tags: , , , ,

Отключение IPsec для L2tp подключения Windows 7

Posted in Новости on 10 ноября, 2012 by admin

При подключении к l2tp ( например к поднятому на linux — xl2tpd ) Windows 7 зависает на операции проверки пароля хотя в логах сервера нет даже намека на подключение. Затык происходит на стадии подключения IPsec, собственно с отключенным IPsec на стороне сервера этим все и заканчивается. Мы можем отключить IPsec для l2tp внеся в реестр директиву, либо гораздо удобнее создать reg файл и его импортировать :

REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters]
«ProhibitIpSec»=dword:00000001

Tags: , , , , ,