LINUX-BG Адрес : http://www.linux-bg.org |
Инсталиране и конфигуриране на VPN на Fedora Core 2 |
От: spider Публикувана на: 12-07-2004 Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=363213740 |
Първо нека да уточним какво всъщност представлява понятието VPN ? VPN е абревиатура на Virtual Private Network (виртуална частна мрежа). Най-общо казано VPN е защитен тунел, използващ интернет за връзка между две мрежи и пренос на данни между тях. Ако вземем например дадена фирма с офиси в София и Варна, чрез VPN може да се обединят мрежите на двата офиса, така че да работят като една голяма мрежа и съответно служителите от офиса в София ще могат да обменят данни със служителите от офиса във Варна и обратно. Има много средства за конфигуриране на VPN : PoPToP ( http://www.poptop.org/ ), CIPE ( http://sites.inka.de/sites/bigred/devel/cipe.html ) IPSec - Openswan ( http://www.openswan.org/ ), Freeswan ( http://www.freeswan.org/ ) PPP over SSH OpenVPN ( http://openvpn.sourceforge.net/ ) ....... В настоящата статия ще използваме Openswan ( http://www.openswan.org/ ) като средство за конфигуриране на VPN. Ще попитате защо точно Openswan ? Отговорът е в четирите му основни характеристики : 1.Сигурност - Openswan използва IPSec (Internet Protocol SECurity), много мощен протокол,осигуряващ дълбоко криптиране на данните 2.Стабилност 3.Отворен код 4.Голяма платформена поддръжка - Openswan поддържа ядра 2.0.x, 2.2.x, 2.4.x и 2.6.x, както и платформи x86, ia64, mips и arm. Ще използваме по-горе посочения пример - фирма "X", която има офиси във София и Варна. Нашата задача е да конфигурираме VPN между двата офиса. В офиса в София имаме компютър с инсталиран Linux (Fedora Core 2 с ядро 2.6.6-1), който служи като firewall и router и съответно разпределя интернета към другите компютри от вътрешната мрежа. Външният IP адрес (адреса на мрежовата карта към интернет) е 1.1.1.2 със gateway 1.1.1.1 и hostname "x-sofia" . Вътрешният IP адрес (адреса на мрежовата карта към вътрешната мрежа) е 192.168.1.1 . Компютрите от вътрешната мрежа имат IP-та от 192.168.1.2 до 192.168.1.254, мрежова маска 255.255.255.0 и gateway и DNS 192.168.1.1 В офиса във Варна имаме компютър с инсталиран Linux (Fedora Core 2 с ядро 2.6.5-1), който служи като firewall и router и съответно разпределя интернета към другите компютри от вътрешната мрежа. Външният IP адрес (адреса на мрежовата карта към интернет) е 2.2.2.2 със gateway 2.2.2.1 и hostname "x-varna" . Вътрешният IP адрес (адреса на мрежовата карта към вътрешната мрежа) е 192.168.2.1 . Компютрите от вътрешната мрежа имат IP-та от 192.168.2.2 до 192.168.2.254, мрежова маска 255.255.255.0 и gateway и DNS 192.168.2.1 Приемаме, че работим в офиса в София и имаме директен достъп до linux машината, а до linux-a във Варна имаме достъп по ssh. Всички команди и настройки се изпълняват като потребител root. И така както се казва "let's the party begin" : 1. Сваляме необходимите пакети : wget http://www.openswan.org/code/openswan-2.1.4-1.fc2.i386.rpm wget http://www.openswan.org/code/openswan.signingkey.asc 2. Импортираме сигнатурата на пакета : rpm --import openswan.signingkey.asc 3. Проверяваме дигиталната сигнатура на пакета : rpm --checksig openswan-2.1.4-1.fc2.i386.rpm Ако всичко е наред трябва да получим : openswan-2.1.4-1.fc2.i386.rpm: sha1 md5 OK 4.Инсталираме Openswan : rpm -ivh openswan-2.1.4-1.fc2.i386.rpm 5.Създаваме RSA key, който ще бъде използван за идентификация : 5.1 За офиса в София изпълняваме : ipsec newhostkey --output /etc/ipsec.secrets --hostname x-sofia chmod 600 /etc/ipsec.secrets 5.2 За офиса във Варна изпълняваме : ipsec newhostkey --output /etc/ipsec.secrets --hostname x-varna chmod 600 /etc/ipsec.secrets 6.Стартираме ipsec : service ipsec start 7. Проверяваме дали всичко е наред : ipsec verify Ако всичко е наред трябва да получим : Checking your system to see if IPsec got installed and started correctly Version check and ipsec on-path [OK] Checking for KLIPS support in kernel [OK] Checking for RSA private key (/etc/ipsec.secrets) [OK] Checking that pluto is running [OK] 8.За да продължим по-нататък ще ни трябват ключовете създадени в стъпка 5 и на двете linux машини : 8.1 За офиса в София изпълняваме : ipsec showhostkey --left Ще получим нещо като : # RSA 2192 bits x-sofia Fri Jul 9 11:11:44 2004 leftrsasigkey=0sAQOnwiBPt... 8.2 За офиса във Варна изпълняваме : ipsec showhostkey --right Ще получим нещо като : # RSA 2192 bits x-varna Fri Jul 9 11:20:44 2004 leftrsasigkey=0sfhjvhhGFkj... Самите ключове са записани във файла /etc/ipsec.secrets, така че могат да се вземат и от там. 9.Най-важната част - настройка на файла /etc/ipsec.conf : Отваряме файла с накой текстов редактор и след реда # Add connections here добавяме : conn sofia-to-varna # Това е името на връзката left=1.1.1.2 # външният IP адрес на linux-a в София leftsubnet=192.168.1.0/24 # вътрешната мрежа на linux-a в София leftid=@x-sofia # hostname-a на linux-a в София leftrsasigkey=0sAQOnwiBPt... # RSA ключа на linux-a в София (стъпка 8.1) leftnexthop=1.1.1.1 # gateway-я на linux-a в София right=2.2.2.2 # външният IP адрес на linux-a във Варна rightsubnet=192.168.2.0/24 # вътрешната мрежа на linux-a във Варна rightid=@x-varna # hostname-a на linux-a във Варна rightrsasigkey=0sfhjvhhGFkj... # RSA ключа на linux-a във Варна (стъпка 8.2) rightnexthop=2.2.2.1 # gateway-я на linux-a във Варна auto=add # автоматично добавяне на връзката при стартиране на системата Забележка: файла /etc/ipsec.conf трябва да бъде абсолютно еднакъв и за двата linux-a, така че след като конфигурираме файлa на linux-а в София го копираме на linux-a във Варна, това може да стане с командата : scp /etc/ipsec.conf root@2.2.2.2:/etc/ipsec.conf 10.Рестартираме двата linux сървъра и тестваме връзката : ipsec auto --up sofia-to-varna Ако всичко е наред трябва да получим : 104 "sofia-to-varna" #10: STATE_MAIN_I1: initiate 106 "sofia-to-varna" #10: STATE_MAIN_I2: sent MI2, expecting MR2 108 "sofia-to-varna" #10: STATE_MAIN_I3: sent MI3, expecting MR3 004 "sofia-to-varna" #10: STATE_MAIN_I4: ISAKMP SA established 112 "sofia-to-varna" #11: STATE_QUICK_I1: initiate 004 "sofia-to-varna" #11: STATE_QUICK_I2: sent QI2, IPsec SA established Забележка: ако използвате firewall трябва да отворите UDP порт 500 (IKE) и протокол 50 (ESP), които се използват за осъществяване на IPSec връзка, за целта можете да добавите към вашия firewall следните редове : # IKE negotiations iptables -I INPUT -p udp --sport 500 --dport 500 -j ACCEPT iptables -I OUTPUT -p udp --sport 500 --dport 500 -j ACCEPT # ESP encryption and authentication iptables -I INPUT -p 50 -j ACCEPT iptables -I OUTPUT -p 50 -j ACCEPT 11.Довършване на настройките : Ако всичко е наред след стъпка 10, отново отваряме /etc/ipsec.conf и променяме : auto=add на auto=start Така VPN връзката ще се стартира автоматично при стартиране на linux сървърите. Забележка: както вече казахме файлът /etc/ipsec.conf трябва да бъде абсолютно еднакъв и на двата linux сървъра, така че посочените промени в тази стъпка трябва да бъдат направени и на двете места. 12.Допълнителни настройки : Ако използвате IP masquerade или Network Address Translation (NAT) при рутирането трябва да направите съответните промени. Например ако използвате : iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE трябва да го промените на: iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -d \! 192.168.2.0/24 -j MASQUERADE Това е всичко, вече трябва да имате VPN между двата офиса. Ако възникнат някакви проблеми ще се радвам да помогна с каквото мога. Препоръчвам да прочетете документацията на адрес : http://www.openswan.org/docs/ Връзки : http://fedora.redhat.com/ # официална страница на проекта Fedora http://openswan.org/ # официална страница на проекта Openswan http://www.netfilter.org/ # официална страница на проекта iptables http://www.tldp.org/HOWTO/VPN-HOWTO/ # VPN Howto http://www.vpnc.org/ # VPN Консорциум, полезна информация за VPN стандартите и IPSec протокола. << Инсталиране на SuSE Linux 9.1 | Пример за употреба на Access Control Lists с Линукс >> |
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|