Налаштування L2TP - клієнта для Linux
Додаткове завдання.
L2TP клієнт запускається за допомогою пакета xl2tpd. Спочатку необхідно перевірити, чи встановлений пакет xl2tp :
xl2tpd -v.
Якщо не отримана відповідь (версія програми), то необхідно встановити пакет xl2tp.
1. $ sudo apt - get install xl2tpd
2. Редагуємо файл /etc/xl2tpd/xl2tpd.conf:
$ sudo gedit /etc/xl2tpd/xl2tpd.conf
Необхідно прописати в нього наступні параметри, якщо відсутні:
[global]
access control = yes
[lac ]
lns = 192.168.0.122
redial = yes
redial timeout = 1
require chap = yes
require authentication = no
name =<s111>
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
require pap = no
autodial = yes
де <s111> - ваше ім'я користувача в chap-secrets.
3. Редагуємо /etc/ppp/options.xl2tpd:
$ sudo gedit /etc/ppp/options.xl2tpd
Прописуємо в нього:
unit 0
name <s111>
remotename l2tp
ipparam 192.168.0.122
connect /bin/true
mru 1460
mtu 1460
nodeflate
nobsdcomp
persist
maxfail 0
nopcomp
noaccomp
defaultroute
replacedefaultroute
4. У /etc/ppp/chap-secrets додаємо рядок (якщо його ще там немає):
s111 * 123 *
5. Вносимо зміни в /etc/init.d/xl2tpd:
$ sudo gedit /etc/init.d/xl2tpd
Необхідно поміняти секцію start таким чином:
start)
if !([ - f /var/run/xl2tpd/l2tp - control ]) ; then
mkdir - p /var/run/xl2tpd
touch /var/run/xl2tpd/l2tp - control
fi
echo - n "Starting $DESC : "
start - stop - daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME".
Захоплення пакетів з допомогою Tcpdump
Простий приклад запуску Tcpdump c перенаправленням даних у файл lab10.txt:
tcpdump - i eth0 - n - nn - ttt > lab10.txt
Вивчення з’єднання за транспортного режиму IPSec тунелю. Налаштування сервера OpenVPN з операційною системою Linux.
Організація з’єднання OpenVPN сервера за операційною системою Linux з клієнтом на базі операційній системі Windows
OpenVPN
OpenVPN – це система, що дозволяє створювати шифровані тунелі між комп'ютерами за технологією VPN (Virtual Private Network, віртуальна приватна мережа) [1].
Основні плюси цієї системи :
– просте налаштування займає менше години і не вимагає спеціальних знань;
– економія трафіка за допомогою бібліотеки компресії lzo (Lempel - Ziv - Oberhumer);
– безпечне шифрування трафіка ключами завдовжки 1024 біта і вище, а клієнти розділені між собою в окремі підмережі.
Для забезпечення безпеки каналу, що управляє, і потоку даних, OpenVPN використовує бібліотеку OpenSSL. Завдяки цьому задіюється увесь набір шифрів, доступних в цій бібліотеці. Також може використовуватися пакетна авторизація HMAC, для забезпечення більшої безпеки, і апаратне прискорення для поліпшення продуктивності шифрування. Ця бібліотека використовує OpenSSL з протоколами SSLv3/TLSv1. OpenVPN можливо використовувати на базі операційних системах Solaris, OpenBSD, FreeBSD, NetBSD, GNU/Linux, Apple Mac OS X, QNX, Microsoft Windows та декількіх інших.
OpenSSL – криптографічний пакет з відкритим початковим кодом для роботи з SSL/TLS. Дозволяє створювати ключі RSA (Rivest, Shamir і Adleman), DH, DSA (Digital Signature Algorithm) і сертифікати X.509, підписувати їх, формувати CSR і CRT. Також є можливість шифрування даних і тестування SSL/TLS з'єднань.
RSA (буквена абревіатура від прізвищ Rivest, Shamir і Adleman) – криптографічний алгоритм з відкритим ключем.
RSA став першим алгоритмом такого типу, придатним і для шифрування, і для цифрового підпису. Алгоритм використовується у великому числі криптографічних застосувань.
На 2009 рік система шифрування на основі RSA вважається надійною, починаючи з розміру в 1024 біта.
Групі учених зі Швейцарії, Японії, Франції, Нідерландів, Німеччини і США вдалося успішно обчислюти дані, зашифровані за допомогою криптографічного ключа стандарту RSA завдовжки 768 біт. За словами дослідників, після їх роботи в якості надійної системи шифрування можна розглядати тільки RSA -ключі довжиною 1024 біта і більше. Причому, від шифрування ключем завдовжки в 1024 біт варто відмовитися в найближчі три-чотири роки.
Система RSA використовується для захисту програмного забезпечення і в схемах цифрового підпису.
DSA (Digital Signature Algorithm) – алгоритм з використанням відкритого ключа для створення електронного підпису, але не для шифрування (на відміну від RSA і схеми Эль-Гамаля). Підпис створюється таємно, але може бути публічно перевірений. Це означає, що тільки один суб'єкт може створити підпис повідомлення, але будь-хто може перевірити його коректність. Алгоритм, заснований на обчислювальній складності узяття логарифмів у кінцевих полях.
Алгоритм був запропонований Національним інститутом стандартів і технологій (США) в серпні 1991 і є запатентованим U.S. Patent 5231668 (англ.), але НИСТ зробив цей патент доступним для використання без ліцензійних відрахувань. Алгоритм разом з криптографічною хеш-функцией SHA – 1 є частиною DSS (Digital Signature Standard), уперше опублікованого в 1994 (документ FIPS – 186 (Federal Information Processing Standards)). Пізніше були опубліковані 2 оновлених версії стандарту: FIPS 186-2 (27 січня 2000 року) і FIPS 186-3(червень 2009).
Стандарт X.509 визначає формати даних і процедури розподілу загальних ключів за допомогою сертифікатів з цифровими підписами, які надаються сертифікаційними органами (CA). RFC 1422 створює основу для PKI на базі X.509.
У діючих стандартах визначений сертифікат X.509 версія 3 і список відгуку сертифікатів (CRL) версія 2.
Шифрований зв'язок досягається цифровим підписом довіреного CA під кожним сертифікатом. Сертифікат має обмежений термін дії, вказаний в його підписаному змісті. Оскільки користувач сертифікату може самостійно перевірити його підпис і термін дії, сертифікати можуть поширюватися через незахищені канали зв'язку і серверні системи, а також зберігатися в кеш-пам'яті незахищених призначених для користувача систем. Зміст сертифікату має бути однаковим в межах усього PKI. Нині в цій області пропонується загальний стандарт для Інтернет з використанням формату X.509 v3: номер версії, серійний номер, емітент, суб'єкт, публічний ключ суб'єкта (алгоритм, ключ), період дії, додаткові (необов'язкові) значення, алгоритм підпису сертифікату, значення підпису сертифікату.
SSL (англ. Secure Sockets Layer – рівень захищених сокетів) – криптографічний протокол, який забезпечує встановлення безпечного з'єднання між клієнтом і сервером. SSL спочатку розроблений компанією Netscape Communications. Згодом, на підставі протоколу SSL 3.0 був розроблений і прийнятий стандарт RFC, що отримав ім'я TLS.
Протокол забезпечує конфіденційність обміну даними між клієнтом і сервером, які використовують TCP/IP, причому, для шифрування використовується асиметричний алгоритм з відкритим ключем. При шифруванні з відкритим ключем використовується два ключі, причому будь-який з них може використовуватися для шифрування повідомлення. Тим самим, якщо використовується один ключ для шифрування, то відповідно для розшифровки треба використовувати інший ключ. У такій ситуації можна отримувати захищені повідомлення, публікуючи відкритий ключ, і зберігаючи в таємниці секретний ключ.
TLS (англ. Transport Layer Security) – криптографічний протокол, що забезпечує захищену передачу даних між вузлами в мережі Інтернет.
TLS - протокол заснований на протоколі Netscape SSL версії 3.0 і складається з двох частин – TLS Record Protocol і TLS Handshake Protocol. Відмінності між SSL 3.0 і TLS 1.0 незначні, тому далі в тексті ті
TLS надає можливості автентифікації і безпечної передачі даних через інтернет з використанням криптографічних засобів. Часто відбувається лише автентифікація сервера, тоді як клієнт залишається не автентифікованим. Для взаємної автентифікації кожна із сторін повинна підтримувати інфраструктуру відкритого ключа (PKI), яка дозволяє захистити клієнт-серверні застосування від перехоплення повідомлень, редагування існуючих повідомлень і створення підробних.
SSL включає три основні фази:
Діалог між сторонами, метою якого є вибір алгоритму шифрування.
Обмін ключами на основі криптосистем з відкритим ключем або автентифікація на основі сертифікатів.
Хід роботи
2.1. Налаштування ядра cервера на ОС Linux
Зазначимо, на цьому етапі треба бути украй обережним і уважним. Ядро повинне містити опції подані нижче. На клієнтові потрібні тільки TUN і ipv4.
У ядрі нам знадобиться наступний функціонал, витяги з конфігурації:
CONFIG_NF_NAT=m
CONFIG_NF_NAT_PPTP=m
CONFIG_NETFILTER=y
CONFIG_TUN=m
Ну і розуміється підтримка ipv4, мережевої карти.
Якщо ці опції встановлені, то пропускаємо пункт конфігурація ядра ОС Linux і переходимо до конфігурації OpenVpn.
Збираємо і встановлюємо ядро. Можна скористатися make, make modules, make modules_install. Перезавантажуємося.
Після перезавантаження, перейдемо до установки ПО OpenVpn.
cd /usr/local/src/openvpn – перехід в настановну директорію
configure – задаємо конфігурацію
make – збираємо – створюємо бінарні файли
make install – встановлюємо ПО
2.2. Генерація ключів
Перейдемо в /еtс/openvpn/easy - rsa/. Відкриємо файл vars і перевіримо нижчеподані параметри, якщо їх немає, то впишемо:
export EASY_RSA="/etc/openvpn/easy - rsa/" #Шлях до easy - rsa.
export KEY_CONFIG='$EASY_RSA/whichopensslcnf $EASY_RSA' #Конфиг OpenSSL
export KEY_DIR="$EASY_RSA/keys" #Каталог, в якому ми триматимемо ключі.
export KEY_SIZE=1024 # Розмір ключа
export CA_EXPIRE=3650 # Термін дії CA
export KEY_EXPIRE=3650 # Термін дії ключа
export KEY_COUNTRY="UA"
export KEY_PROVINCE="UA"
export KEY_CITY="ODAC"
export KEY_ORG="ODAC"
export KEY_EMAIL="me@admin.odac"
Якщо були зміни, то імпортуємо зміни: source ./vars
Тепер створимо ключі, якщо вони створені і не були змінені, то цей пункт пропускаємо.
./clean - all - Очищаємо старі ключі, якщо вони були.
openvpn --genkey --secret ta.key - ключ TLS - auth
./build - dh - ключ Діффі-Хеллмана.
./pkitool --initca – сертифікат автентифікації для сервера.
./pkitool --server vpsrv - сертифікат сервера.
./pkitool vpclient - сертифікат клієнта.
Усе, ключі готові.
2.3. Налаштування сервера Оpenvpn
Переходимо в /etc/openvpn/, відкриваємо openvpn.conf і перевіряємо наступні параметри, якщо якісь параметри відсутні, то змінюємо [2]:
mode server # задаємо режим – сервер;
port 1194 # задаємо порт;
proto tcp # задаємо транспортний протокол;
dev tun # задаємо тип пристрою;
tls - server # задаємо тип сервера;
local 192.168.0.122 # задаємо локальну адресу сервера;
server 192.168.21.0 255.255.255.0 # задаємо діапазон, що виділяється клієнтам під мережу;
keepalive 10 120 # встановлюємо час життя з'єднання;
persist - key # використовуємо постійні ключі;
persist - tun # використовуємо постійне тунель-з'єднання;
status openvpn - status.log # задаємо log файл;
client - config - dir /etc/openvpn/ccd # вказуємо директорію для клієнтських сертифікатів;
push "route 192.168.21.0 255.255.255.0" # задаємо маршрут за замовчуванням;
duplicate - cn # дублюємо cn;
ca /etc/openvpn/keys/ca.crt # кореневий сертифікат
verb 3 # рівень деталізації
cert /etc/openvpn/keys/vpnserver.crt # сертифікат сервера
key /etc/openvpn/keys/vpnserver.key # ключ сервера
dh /etc/openvpn/keys/1.pem # ключ за Діффі-Хеллмана
Клієнтові необхідно передати файли:
ca.crt
vpclient.crt
vpclient.key
І їх також записати на сервері в директорії /etc/openvpn/ccd.
Після того, як усі файли перевірені і внесені зміни, необхідно запустити openvpn в режимі сервера.
Можливі варіанти запуску:
openvpn --config /etc/openvpn.conf
openvpn --config /etc/openvpn.conf --dev tunX.
Детальніше можна подивитися за допомогою команди довідки - man openvpn або підказки параметрів - openvpn - h.
Після запуску сервера openvpn потрібно активувати захоплення пакетів за допомогою tcpdump.
Здійснити підключення клієнта openvpn з ОС Windows.
Запустити команду ping на адресу сервера.
Від'єднати підключення.
Зупинити захоплення пакетів.
Дата добавления: 2016-05-11; просмотров: 907;