Използване на IPSEC на Linux при конфигуриране на VPN връзки от сайт към сайт и от точка до точка

Много организации по света използват различни методи за физическа връзка, за да свържат отделните си офиси. Това могат да бъдат както специализирани цифрови линии, така и VPN - виртуални частни мрежи, които са много по-евтини от физическите си аналогове. Използвайки като цяло същите подходи като наетите линии, VPN мрежите могат да комбинират няколко локални мрежи в една и да криптират трафика, за да скрият предаваната информация. Когато се използва криптиране във VPN технологията, обикновено се прилагат отворени стандарти. В този случай трафикът се предава по IP и използва дейтаграми като транспортен слой.
Технически организацията на VPN може да се извърши както софтуерно, така и хардуерно. В Linux, по-специално, технологията FreeS / Wan намери приложение, използвайки стандартната реализация на протокола за сигурност IPSEC (Secure IP - Internet Protocol Security). Тези решения, внедрени както в софтуер, така и в хардуер, функционират като рутери в края на VPN връзките. Когато клиент предава пакет, той го препраща към този специализиран рутер, който добавя заглавка за удостоверяване (AH) към пакета. След кодиране на тези данни и добавяне на инструкции за декодиране и обработка към тях, те се предават на друг терминален специализиран рутер, който получава тези пакети. При получаване на пакета, крайният рутер го декодира, изхвърляйки заглавката и препраща пакета към крайния потребител на местоназначението му.
Ако се използва криптиране между мрежите, тогава възелът в локалната мрежа получава вече декриптирания пакет и преминава към нормалната си обработка на информацията. По този начин, когато се използва криптиране между мрежи, целият процес на кодиране и декодиранестава прозрачен за крайния възел на мрежата.
VPN използват множество нива на удостоверяване и криптиране, така че са достатъчно сигурни и ефективни, за да свържат много отдалечени хостове в една виртуална мрежа.
Една реализация на VPN стандарта е Internet Protocol SECurity, IPsec, който доста надеждно задоволява нуждите на различни клиенти да свързват своите клонове или отдалечени потребители към техните мрежи.
Разбиране на IPSEC
IPSEC, като цяло, служи за поддържане на сигурни връзки между възли и мрежи в глобалния интернет. Може да работи в конфигурация от хост към хост (един компютър се свързва с друг) или мрежа към мрежа (един LAN/WAN се свързва с друг). Внедряването на IPsec използва протокола Internet Key Exchange (IKE), разработен от Internet Engineering Task Force (IETF) за взаимно удостоверяване и съпоставяне на сигурността между свързващи системи или мрежи.
Процесът на IPsec свързване е разделен на две логически стъпки. В първата стъпка IPsec хост установява връзка с отдалечен хост или мрежа. Отдалеченият хост/мрежата проверява идентификационните данни на искащия хост и двете страни се съгласяват относно метода за удостоверяване, който да се използва при връзката. Обикновено IPSec удостоверяването на хоста използва алгоритъм с предварително споделен ключ. В случай на IPsec връзка, използваща предварително споделен ключ, и двата възела трябва да използват един и същ ключ и след това могат да продължат към втория етап от настройката на връзката.
Вторият етап на IPsec връзка между IPSec партньори се създава от условна асоциация за сигурност (SA).В същото време информацията за конфигурацията се въвежда в базата данни на SA - методът на криптиране, методите за обмен на секретни сесийни ключове и някои други параметри. Този етап също управлява IPsec връзката между възли и мрежи, които са разделени в WAN пространството.
Помислете за прилагането на протокола IPSEC на примера на дистрибуцията на CentOS Linux. За да разположите IPSEC на всички мрежови машини (в случай на конфигурация от хост към хост) или рутери (в случай на конфигурация от хост към сайт), трябва да инсталирате подходящите пакети, които управляват конфигурацията на IPSEC. Тези пакети трябва да включват основните библиотеки, демони и конфигурационни файлове, за да помогнат при настройването на IPsec връзка, включително - /lib/libipsec.so - библиотека, която съдържа доверен интерфейс за управление на ключове PF_KEY между ядрото на Linux и изпълнението на IPsec, използвано от CentOS Linux. при което:
- /sbin/setkey - Задава управление на ключове и IPsec атрибути за сигурност в ядрото. Тази програма докладва на миещия демон, който управлява ключовете. Повече информация за setkey можете да намерите в man setkey(8).
- /sbin/racoon - IKE демон за управление на ключове, управлява обмена на ключове и асоциацията за сигурност между компютри, прилагащи IPsec. Можете да конфигурирате този демон, като редактирате файла /etc/racoon/racoon.conf. За повече информация относно racoon вижте man страницата на racoon(8).
- /etc/racoon/racoon.conf - Конфигурационният файл на racoon, който конфигурира различни опции за IPsec връзка, включително методи за удостоверяване и алгоритми за криптиране. Отново, изчерпателна информация по този въпрос може да бъде получена чрез изследване на изхода на man racoon.conf (5).
IPSEC конфигурация в конфигурация от хост към хост
С IPsec можете да обвържетеедна работна станция с друга чрез организиране на връзка от възел до възел. Този тип връзка използва мрежа, към която са свързани и двата възела, за да създаде защитен тунел. За да създадат IPsec връзка, хостовете се нуждаят само от постоянна връзка с интернет или друга мрежа, която винаги е онлайн.
Връзката от възел до възел изисква следните данни:
Помислете за случая, когато два хоста установяват връзка помежду си. При това те ще използват споделен ключ на име my_key и демона racoon за автоматично генериране и обмен на ключ за удостоверяване. Името на връзката ще бъде ipsec0.
Следното е ifcfg файл за работна станция, която установява IPsec връзка между хост и друга работна станция. Тогава файлът /etc/sysconfig/network-scripts/ifcfg-ipsec0 ще изглежда така:
По-долу има файл със споделен ключ ( /etc/sysconfig/network-scripts/keys-ipsec0 ), от който и двата компютъра се нуждаят за взаимна проверка. Съдържанието на този файл трябва да съвпада и на двата компютъра и само root потребителят трябва да има достъп до него. IKE_PSK=my_key
За да ограничите достъпа до файла keys-ipsec0, можете да изпълните командата:
Ключът за удостоверяване може да бъде променен по всяко време чрез редактиране на файла keys-ipsec0 на двата компютъра. За да установите връзка, двата ключа трябва да съвпадат!
отдалечена директива X.X.X.X:
IPsec конфигурацията по подразбиране на CentOS Linux използва режим на удостоверяване, за да позволи различни IPsec връзки към множество хостове;
дефинира алгоритъма за криптиране, използван за удостоверяване. По подразбиране се използва Triple Data Encryption Standard (3DES);
показваалгоритъм за изчисляване на хеш, използван на първия етап от комуникацията;
дефинира метода за удостоверяване, използван при преговаряне на партньори.
указва номера на групата Diffie-Hellman за избиране на динамично генерирани сесийни ключове. По подразбиране е група от 1024 бита.
Файловете /etc/racoon/racoon.conf също трябва да са еднакви на всички IPsec възли, с изключение на командата за включване "/etc/racoon/X.X.X.X.conf" . Този оператор (и файл също) се създава, когато IPsec тунелът е активиран. По-долу е типичен файл racoon.conf за установена IPsec връзка.
Описанието на всички параметри на конфигурационните файлове е извън обхвата на тази статия и може да бъде извлечено от съответните уроци.
Можете да установите връзка или като рестартирате компютъра, или като изпълните следната команда на всеки възел като root: /sbin/ifup ipsec0.
Можете да стартирате помощната програма tcpdump, за да тествате IPsec връзката. Пакетът трябва да съдържа AH хедър и ESP данни. ESP означава, че криптирането работи. Например:
Настройка на IPSEC в конфигурация мрежа към мрежа
С помощта на IPsec цели мрежи се свързват с други мрежови сегменти, организирайки интернет работа. За да направите това, трябва да инсталирате IPsec рутери във всяка мрежа, така че трафикът от хост в една мрежа да се обработва прозрачно и да достига до хост в друга мрежа. Тези мрежи трябва да работят с IPsec рутери, които удостоверяват и свързват тези мрежи през защитен тунел с трафик, преминаващ през интернет или друга мрежа. Ако пакетите бъдат прихванати по време на предаване, ще бъде необходим метод на груба сила за разбиване на шифъра, който ги защитава, което е доста дълго във времето и може вече да не е от значение до края на процедурата.
За да настроите шлюзова връзкаще ви трябва следната информация:
IPSEC връзката между мрежите използва предварително споделения ключ r3dh4tl1nux Следното е съдържанието на файла ifcfg, създаден за IPSEC интернет връзката в първата мрежа. В примера тази връзка има уникалното име ipsec1.
Връзката се установява при зареждане ( ONBOOT=yes ) и използва метода за удостоверяване с предварително споделен ключ ( IKE_METHOD=PSK ).
Следното е съдържанието на файла с предварително споделен ключ (с име /etc/sysconfig/network-scripts/keys-ipsecX, където X е 0 за първата мрежа и 1 за втората).
Ключът за удостоверяване може да бъде променен по всяко време чрез редактиране на файла keys-ipsecX на IPsec рутери. Ключовете трябва да съвпадат!
Съдържанието на конфигурационния файл /etc/racoon/racoon.conf:
Преди стартиране на IPSEC връзка, IP маршрутизирането в ядрото трябва да бъде активирано. За да направите това, можете да редактирате файла /etc/sysctl.conf и да зададете net.ipv4.ip_forward на 1.
За да влезе в сила промяната, трябва да изпълните командата: sysctl -p /etc/sysctl.conf.
Можете да установите връзка или чрез рестартиране на рутерите, или като изпълните следната команда на рутерите като root: /sbin/ifup ipsec0.
Маршрутите се генерират автоматично от инициализиращ скрипт, извикан от командата ifup, когато има IPsec връзка.
Можете да проверите IPsec връзката, като стартирате помощната програма tcpdump, така: tcpdump -n -i eth0 host my_net1.com.
Статията разглежда подробно принципите на изграждане и основите на използване на VPN, концепцията на протокола IPSEC, дава общи характеристики и описание на IPSEC, както и механизмите за неговото внедряване.
Разгледана е организацията на методите за изграждане на защитени връзки с помощта на протокола IPSEC. Подробности иреални примери описват такива реализации по отношение на две схеми на свързване - "точка до точка" и "мрежа-мрежа".