Записи с метками «IPSec»

Построение VPN с помощью IPSec между D-Link DIR-130 и сервером OpenSWAN

Мы с друзьями активно используем технологии построения частных сетей VPN IPSec. Особенностью IPSec является возможность объединить несколько распределённых локальных сетей в единое целое адресное пространство.

В настоящий момент на рынке имеется бюджетная модель маршрутизатора SOHO класса с поддержкой IPSec — это D-Link DIR-130. Стоимость такой штуки в Новосибирске колеблется в районе 4000 рублей.

Допустим, у нас имеется две точки.

В точке «A» установлен компьютер под управлением Linux, компьютер имеет IP-адрес 178.49.6.146 и является шлюзом для локальной сети 192.168.0.0/25.

В точке «Б» установлен маршрутизатор D-Link DIR-130, имеющий IP-адрес 178.49.6.151, и являющийся шлюзом для локальной сети 192.168.0.128/25.

Ниже я привожу инструкцию, которая позволит построить зашифрованный VPN IPSec туннель и установить прямую маршрутизацию между точками «A» и «Б».

Во-первых, на сервере под управлением Linux нам следует установить пакет OpenSWAN:

sudo apt-get install openswan

…и изменить значения параметров в файле /etc/sysctl.conf в соответствии с /etc/ipsec.d/examples/sysctl.conf:

# example entries for /etc/sysctl.conf
# forwarding is needed for subnet or l2tp connections
net.ipv4.ip_forward = 1

# rp_filter is stupid and cannot deal decrypted packets "appearing out of
# nowhere"
net.ipv4.conf.default.rp_filter = 0

# when using 1 interface for two networks, and in some other cases with
# NETKEY, the kernel thinks it can be clever but breaks things.
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.default.log_martians = 0
# these are non-ipsec specific security policies you should use
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

Затем определить основные настройки и конфигурацию VPN-подключения в файле /etc/ipsec.conf. Ниже привожу пример конфигурации для нашего случая:

# /etc/ipsec.conf - Openswan IPsec configuration file
# RCSID $Id: ipsec.conf.in,v 1.15.2.6 2006-10-19 03:49:46 paul Exp $

# This file:  /usr/share/doc/openswan/ipsec.conf-sample
#
# Manual:     ipsec.conf.5

version	2.0	# conforms to second version of ipsec.conf specification

# basic configuration
config setup
	# plutodebug / klipsdebug = "all", "none" or a combation from below:
	# "raw crypt parsing emitting control klips pfkey natt x509 private"
	# eg: plutodebug="control parsing"
	#
	# !!!
	plutodebug=none
	klipsdebug=none
	strictcrlpolicy=no
	interfaces=%defaultroute
	protostack=netkey
	#
	# ONLY enable plutodebug=all or klipsdebug=all if you are a developer !!
	#
	# NAT-TRAVERSAL support, see README.NAT-Traversal
	nat_traversal=no
	#virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
	#
	# enable this if you see "failed to find any available worker"
	nhelpers=0
	# Close down old connection when new one using same ID shows up.
	uniqueids=yes

# Add connections here

conn %default
	keyingtries=0
	disablearrivalcheck=no
	#authby=rsasig
	leftrsasigkey=%dns
	rightrsasigkey=%dns
	# Add connections here

conn MyConnection1
	type=tunnel
	left=178.49.6.146
	leftsubnet=192.168.0.0/25
	right=178.49.6.151
	rightsubnet=192.168.0.128/25
	keylife=3600s
	keyexchange=ike
	ike=3des-md5-modp1024
	ikelifetime=28800s
	esp=3des-md5
	pfs=yes
	authby=secret
	auto=start
	#DPD
	dpddelay=30
	dpdtimeout=120
	dpdaction=hold
include /etc/ipsec.d/examples/no_oe.conf

Следующим шагом будет задание пароля в файле /etc/ipsec.secrets:

178.49.6.151 178.49.6.146: PSK "mypassword"

На этом настройка OpenSWAN на сервере закончена, сервис следует перезапустить:

sudo ipsec setup restart

Для того, чтобы пакеты из локальной сети уходили в VPN-туннель, нам следует переопределить правило маскирования адресов для локальной сети 192.168.0.0/25 на сервере под управлением Linux (там, где у нас стоит OpenSWAN):

iptables -t mangle -A PREROUTING -d 192.168.0.128/25 -j MARK --set-mark 1
iptables -t nat -A POSTROUTING -s 192.168.0.0/25 -m mark ! --mark 1 -o eth1 -j SNAT --to-source 178.49.6.146

Переходим к настройке D-Link DIR-130. Во вкладке SETUP / VPN Settings создаём VPN профиль «IPSec — Internet Protocol Seecurity» со следующими параметрами:

IPSEC SETTING:
Enable: да;
Name : MyIPSec1;
Local Net /Mask: 192.168.0.128/25;
Выбрать: Site to Site;
Remote IP: 178.49.6.146;
Remote Local LAN Net /Mask : 192.168.0.0/25;
Authentication: Pre-shared Key: mypassword;
Local ID : IP address: 178.49.6.151;
Remote ID : IP address: 178.49.6.146;
#
PHASE 1:
Выбрать: Main mode;
NAT-T Enable: нет;
Keep Alive / DPD: DPD (Dead Peer Detection);
DH Group : 2 - modp 1024 bit;
IKE Proposal List :
#1: Chiper: 3DES, Hash: MD5;
#2: Chiper: 3DES, Hash: MD5;
#3: Chiper: 3DES, Hash: MD5;
#4: Chiper: 3DES, Hash: MD5;
#5: Chiper: 3DES, Hash: MD5;
IKE Lifetime : 28800 Seconds;
#
PHASE 2:
PFS Enable: да Perfect Forward Secrecy PFS;
PFS DH Group: 2 - modp 1024 bit;
IPSec Proposal List :
#1: Chiper: 3DES, Hash: MD5;
#2: Chiper: 3DES, Hash: MD5;
#3: Chiper: 3DES, Hash: MD5;
#4: Chiper: 3DES, Hash: MD5;
#5: Chiper: 3DES, Hash: MD5;
IPSec Lifetime : 3600 Seconds;

Сохраняем, на этом настройка закончена.

Hurricane Electric Free IPv6 Tunnel Broker

Интересного зверя сегодня увидел на одном из сайтов в рекламе Google: Hurricane Electric Free IPv6 Tunnel Broker.

Welcome to the Hurricane Electric IPv6 Tunnel Broker! Our free tunnel broker service enables you to reach the IPv6 Internet by tunneling over existing IPv4 connections from your IPv6 enabled host or router to one of our IPv6 routers. To use this service you need to have an IPv6 capable host (IPv6 support is available for most platforms) or router which also has IPv4 (existing Internet) connectivity. Our tunnel service is oriented towards developers and experimenters that want a stable tunnel platform.

На сколько я понял, сервис позволяет получить свою подсеть IPv6 адресов и иметь доступ к хостам, имеющим IPv6 адреса. Сервис ориентирован на девелоперов.

В сервисе уже зарегистрировался, сегодня вечером буду эксперементировать.

IPv6 Certification Badge for ksn

IPv6 Certification Badge for ksn

P.S. за прошедшую неделю я почти не писал в блог — времени не хватало. Занимался вопросами работы Openswan и оборудования D-Link. Linux, DIR–130 и DFL–210 нужно было соединить между собой по IPSec, при этом используя аунтификацию на основе x509 сертификатов. В рамках компании Телеком-Проект будет написана PDF брошюрка с рабочими настройками оборудования и конфигурацией Openswan.