Разделы новостей
Последние новости:
Железо
Софт
Интернет
Наука и техника
Электронная коммерция

Разделы статей



Опыт внедрения OpenVPN

Опыт внедрения OpenVPN

Почему OpenVPN?

На ключевое слово vpn Google откликнулся 17 000 000 ссылок. Это приятно удивило. Немного сузив поиск наткнулся на сайт openvpn.sourceforge.net. Вводная статья обещала простоту инсталяции и конфигурирования,а главное,- возможность создания тунеля для большинства наиболее распрастранённых операционных систем, включая Linux,SUN Solaris,*BSD, Mac OS X, w2k, w2k3. Это то что мне нужно...








Разместить статью на этом сайте





 Внешний интерфейс		 Внешний интерфейс	
 100.100.100.1 101.101.101.1
 +--------------+ +-------------+
 | SuSE 8.2	 | Internet	 | FreeBSD 5.3 |
 | |<->-----------<->| |
 | NAT,FireWall | | NAT, ipfw |
 | | | |
 +-----+--------+ +-------+-----+
 ^ ^ ^ ^
 | | VPN | |
 | +---------------------+ |
 | 10.1.1.0 |
 +-----+---+				+--+------+
 |Локальная|				|Локальная|
 | сеть |				| сеть |
 +---------+				+---------+
 10.0.0.0				192.168.1.0
 Рис.1. Схема моей виртуальной частной сети.
Так как работать с VPN планируется "навсегда", пересобрал ядро SuSE с поддержкой tun/tap драйвера. В современные дистрибутивы FreeBSD поддержка tun/tap уже встроена в ядро.

Далее установил пакет. Для SuSE:

	#cp openvpn-1.6.0.tar.gz /usr/src
	#tar -xzvf openvpn-1.6.0.tar.gz. 
	#./configure
	#./make
	#./make install
Закапризничавшая во время конфигурированя SuSE потребовала установить предварительно библиотеку lzo.

Под FreeBSD всё прошло гладко:

	#cd /usr/ports/security/openvpn
	#./make 
	#./make install
OpenVPN имеет два режима защиты.Первый базируется на SSL/TLS защите с использованием сертификатов и ключей. Второй,- на использовании статических ключей.

Для создания сертификатов пришлось подредактировать в файле /etc/ssl/openssl.cnf несколько строк:

	#
	...
	dir		= /usr/local/etc/openvpn
	certificate	= $dir/my-ca.crt
	private_key	= $dir/private/my-ca.key
И для того чтобы не заниматься этой процедурой(созданием ключей и сертификатов) каждый год (наверняка забуду).
	default_days	= 3650 #(10 лет) до пенсии хватит...
	...
Далее генерирую ключи и сертификаты:
	openssl req -nodes -new -x509 -keyout my-ca.key -out my-ca.crt -day 3650
Данная команда создаст пару сертификат/ключ действующими 10 лет. Затем создаю пару сертифика/частный ключ для каждого офиса:
	openssl req -nodes -new -x509 -keyout office1.key -out office1.csr
	openssl req -nodes -new -x509 -keyout office2.key -out office2.csr
	openssl ca -out office1.crt -in office1.csr
	openssl ca -out office2.crt -in office2.csr
Я не особенно силён в защите,но раз требуют создать Диффи Хельман параметры для office2,создаём:
 
	openvpn dhparam -out dh1024.pem 1024
Не забываю перенести ключи и сертификаты на машину office2. С ключами всё.Перехожу к конфигурированию vpn. Собственно конфигурирование сводится к созданию конфигурационных файлов для офиса1 и офиса2. У меня офис1 выступает в качестве сервера и содержит:
	#office1
	dev tun
	port 5000
	ifconfig 10.1.1.1 10.1.1.2
	#Здесь маршрутизацию поднимаем
	up /etc/openvpn/office1.up
	#Здесь маршрутизацию удаляем
	down /etc/openvpn/office1.down
	tls-server
	dh dh1024.pem
	ca my-ca.crt
	cert office1.crt
	key office1.key
	verb3
	#end office1
А это клиент:
	#office2
	dev tun
	port 5000
	remote 100.100.100.1
	ifconfig 10.1.1.2 10.1.1.1
	#Здесь маршрутизацию поднимаем
	up /etc/openvpn/office2.up
	#Здесь маршрутизацию удаляем
	down /etc/openvpn/office2.down
	tls-client
	dh dh1024.pem
	ca my-ca.crt
	cert office2.crt
	key office2.key
	verb3
	#end office2
Чтобы сети могли видеть друг друга файл office1.up содержит:
	#up routing
	route add -net 192.168.10.0/24 10.1.1.2
Сценарий down должен удалить маршрут
office1.down
	#down
	route del -net 192.168.10.0/24
office2.up содержит:
	#up routing FreeBSD 
	route add -net 10.0.0.0/24 10.1.1.1 netmask 255.255.255.0
office2.down:
	#down FreeBSD
	route delete -net 10.0.0.0/24
Запускаем:
	openvpn --config office1 на серврере;
	openvpn --config office2 на машине-клиенте.
И проверяем.

SuSE:

	$ ifconfig
	tun0 Link encap:Point-to-Point Protocol
 inet addr:10.1.1.1 P-t-P:10.1.1.2 Mask:255.255.255.255
 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1259 Metric:1
 RX packets:79017 errors:0 dropped:0 overruns:0 frame:0
 TX packets:85421 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:10
 RX bytes:11237151 (10.7 Mb) TX bytes:34079868 (32.5 Mb)
	$ ping 10.1.1.2
	PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
	64 bytes from 10.1.1.2: icmp_seq=1 ttl=64 time=271 ms
	64 bytes from 10.1.1.2: icmp_seq=2 ttl=64 time=419 ms
	64 bytes from 10.1.1.2: icmp_seq=3 ttl=64 time=277 ms
	64 bytes from 10.1.1.2: icmp_seq=4 ttl=64 time=184 ms
	64 bytes from 10.1.1.2: icmp_seq=5 ttl=64 time=137 ms
	--- 10.1.1.2 ping statistics ---
	6 packets transmitted, 5 received, 16% packet loss, time 5039ms
	rtt min/avg/max/mdev = 137.763/258.168/419.546/96.461 ms
FreeBSD:
	$ ifconfig
	tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1259
	 inet6 fe80::202:44ff:fe92:7ac6%tun0 prefixlen 64 scopeid 0x5
	 inet 10.1.1.2 --> 10.1.1.1 netmask 0xffffffff
	 Opened by PID 429
	$ ping 10.1.1.1
	PING 10.1.1.1 (10.1.1.1): 56 data bytes
	64 bytes from 10.1.1.1: icmp_seq=0 ttl=64 time=159.315 ms
	64 bytes from 10.1.1.1: icmp_seq=1 ttl=64 time=426.403 ms
	64 bytes from 10.1.1.1: icmp_seq=2 ttl=64 time=352.940 ms
	64 bytes from 10.1.1.1: icmp_seq=3 ttl=64 time=394.593 ms
	64 bytes from 10.1.1.1: icmp_seq=4 ttl=64 time=249.855 ms
	64 bytes from 10.1.1.1: icmp_seq=5 ttl=64 time=203.441 ms
	^C
	--- 10.1.1.1 ping statistics ---
	6 packets transmitted, 6 packets received, 0% packet loss
	round-trip min/avg/max/stddev = 159.315/297.758/426.403/99.439 ms
	$
Разработчики OpenVPN любезно предоставили настройку файервола для Linux,которая подключается в сценарии автозапуска OpenVPN.
	#!/bin/sh
	dir=/etc/openvpn
	$dir/firewall.sh
	openvpn --cd $dir --daemon --config office1
Для FreeBSD,как всегда всё гораздо проще:
/usr/local/etc/rc.d/openvpn.sh
	#!/bin/sh
	dir=/etc/openvpn
	case $1 in
	 start) openvpn --cd $dir --daemon --config office1;;
	 stop) killall -TERM openvpn;;
	 *)	echo "Use: {start|stop}"
	esac
rc.firewall
	#
	vpn="tun0"
	#vpn
	${fwcmd} add allow ip from any to any via ${vpn}
	#nat
	${fwcmd} add divert natd all from any to any via ${oif}
	#
Всё. Огромное спасибо разработчикам OpenVPN!

Статья взята с сайта OpenNet.



www.linuxcenter.ru

Строим сеть грамотно 24-03-2008
Мини-HOWTO: Корневой NFS 24-03-2008 Строим сеть грамотно
Мини-HOWTO: Корневой NFSAndreas Kostyrkaandreas@ag.or.at Перевод: Станислав Рогин, ASPLinux АннотацияВ этом документе дается объяснение того, как настроить "бездисковую" рабочуюстанцию на Linux, корневая файловая система которой подключена через NFS.Новую версия этого Мини-Howto можно найти по адресуftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/NFS-Root или на любом егозеркале РЯДО...


LINUX PLIP MINI-HOWTO 24-03-2008 Строим сеть грамотно
LINUX PLIP MINI-HOWTOAndrea Controzzicontrozz@cli.di.unipi.it Перевод: Денис Дементьев, ASPLinux АннотацияИспользование информации этого HOWTO позволит вам настроить и использовать протокол параллельного интерфейса (Parallel Line Interface Protocol).СодержаниеВступление: что такое PLIP, и для чего он нужен?Аппаратное обе...


Как бороться со сменой IP адресов клиентами локальной сети? 24-03-2008 Строим сеть грамотно
Keywords: arp mac ethernet ifconfig freebsd limit securityFrom: Alexander V. NaumochkinNewsgroups: http://www.unixfaq.ruDate: Mon, 17 May 2004 18:21:07 +0000 (UTC)Subject: Как бороться со сменой IP адресов клиентами локальной сетиОригинал: http://www.unixfaq.ru/index.pl?req=qs&id=169 Как бороться со сменой IP адресов клиентами локальной сети? Оглавление Статический ARPСтатический ARP + NOARPPort SecurityТуннелировани...


Использование бездисковых Linux-станций с загрузкой по сети 24-03-2008 Строим сеть грамотно
Использование бездисковых Linux-станций с загрузкой по сетиВпервые опубликованно в журнале "Системный администратор" N11/2004Постановка задачиРабота сотрудника отдела автоматизации – это постоянная борьба спроблемами и решение задач, которые попеременно подкидываютпользователи, разработчики эксплуатируемого программного обеспечения ируководство организации. И если два первых направления работы – этопросто «борьба за живучесть кора...
 

 
Copyright by www.scripts.net.ua.
Rambler's Top100 Рейтинг@Mail.ru