Top Banner
OpenVPN съвременното сигурно решение за отдалечен достъп Петър Димитров MikroTik Net Camp 2016 Цигов Чарк
52

OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Feb 08, 2018

Download

Documents

hatuyen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPNсъвременното сигурно решение

за отдалечен достъп

Петър Димитров

MikroTik Net Camp 2016

ЦиговЧарк

Page 2: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

За мен:

OpenVPN, Петър Димитров2

Име: Петър Димитров

Опит в областта на компютърните мрежи: от 2002 г.

Опит с MikroTik: от 2005 г.

MikroTik Trainer: от 2013 г.

Предлагани MikroTik обучения:

MTCNA, MTCWE, MTCRE, MTCTCE, MTCUME, MTCINE

Page 3: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN

OpenVPN е SSL/TLS базиран VPN, предназначен за осигуряване на достъп на отдалечени клиенти или Site-to-Site VPN

Създаден през 2002 г., лиценз GNU General Public License (GPL)

Базиран на клиент-сървър архитектура

Има допълнителни клиенти за повечето съвременни ОС (Windows, Mac, Android, iOS)

OpenVPN, Петър Димитров3

Page 4: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN

Може да работи в Layer 2 (TAP, Ethernet) или Layer 3 (TUN, IP) режим

Може да ползва за пренос TCP или UDP (към момента RouterOS не поддържа за транспорт UDP)

Добре познати портове - UDP/TCP 1194

Няма проблем с преминаването през firewall и/или NAT

OpenVPN, Петър Димитров4

Page 5: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN

Може да осигури 3-те важни за VPN компонента

Автентикация - сертификати, потребител/парола

Интегритет - sha1/md5

Конфиденциалност - Blowfish, AES128, AES192, AES256

OpenVPN, Петър Димитров5

Page 6: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN

Можете да свалите OpenVPN от

https://openvpn.net/index.php/open-source/downloads.html

Можете да намерите полезна документация на

https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage

OpenVPN, Петър Димитров6

Page 7: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Сертификати

За сървъра сертификата е задължителен, клиента може да работи с или без сертификат

За разлика от SSTP, OVPN не е претенциозен към сертификатите

Можете да използвате всякакви сертификати, включително self signed генерирани с помощта на openSSL, easy-rsa и др.

С клиента като допълнителен компонент може да се инсталира easy-rsa с подходящи скриптове и добро описание на процедурата за използване

OpenVPN, Петър Димитров7

Page 8: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

easy-rsa

Нека подготвим сертификати за сървъра и за няколко клиента с помощта на easy-rsa

инсталация на easy-rsa

създаване на Certificate Authority

генериране на сървърен сертификат

генериране на клиентски сертификат

OpenVPN, Петър Димитров8

Page 9: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Инсталация на easy-rsa

OpenVPN, Петър Димитров9

Page 10: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Инсталация на easy-rsa

OpenVPN, Петър Димитров10

Page 11: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на easy-rsa

Обърнете внимание! Може да трябва да стартирате всичко с администраторски права, за да можете да правите промените в easy-rsa

Първоначално еднократно стартираме

init-config.bat

След това редактираме (по желание) vars.bat и създаваме папка за съхранение на ключовете

OpenVPN, Петър Димитров11

Page 12: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на easy-rsa

OpenVPN, Петър Димитров12

Page 13: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Създаване на Certificate Authority

Еднократно се създава базата данни за сертификатите

1. vars

2. clean-all

Еднократно се генерира Certificate Authority

1. vars

2. build-ca

OpenVPN, Петър Димитров13

Page 14: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Създаване на Certificate Authority

OpenVPN, Петър Димитров14

Page 15: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Създаване на сървърен сертификат

Генерираме сертификат за OpenVPN сървъра:

1. vars

2. build-key-server <machine-name>

OpenVPN, Петър Димитров15

Page 16: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Създаване на клиентски сертификат

Генерираме сертификати за клиентите (за всеки клиент по отделно):

1. vars

2. build-key <machine-name>

OpenVPN, Петър Димитров16

Page 17: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

easy-rsa готови сертификати

OpenVPN, Петър Димитров17

Page 18: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Сертификати в RouterOS

Сертификатите се управляват от System Certificates (в CLI само /certificate)

При import първо се внася сертификата, после частния ключ, ако ще е необходимо

Сертификатите, които бихте автентицирали, имат флаг T – trusted, а тези, за които имате частен ключ имат и флаг K - private-key

OpenVPN, Петър Димитров18

Page 19: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Сертификати в RouterOS

Трябва да осигурим сертификата на Authority-то, за да можем да автентицираме клиентските сертификати

/certificate import file-name=ca.crt

Трябва да осигурим сертификата и частния ключ за самия OpenVPN сървър

/certificate import file-name=ovpn-srv1.crt

/certificate import file-name=ovpn-srv1.key

OpenVPN, Петър Димитров19

Page 20: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Сертификати в RouterOS

OpenVPN, Петър Димитров20

Page 21: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на OpenVPN сървър

Конфигурирането на OpenVPN сървър в RouterOS е подобно на конфигурирането на другите VPN сървъри:

необходим е профил

необходим е потребител/парола

може да бъде създаван статичен интерфейс за определен потребител

OpenVPN, Петър Димитров21

Page 22: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Предварителна подготовка

Да създадем адресно пространство за VPN клиентите, профил за използване от сървъра и потребител:

/ip pool add name=ovpn-pool ranges=10.20.30.2-10.20.30.200

/ppp profile add local-address=10.20.30.1 name="ovpn-profile" remote-address=ovpn-pool

/ppp secret add profile=ovpn-profile service=ovpnname=test password=test

OpenVPN, Петър Димитров22

Page 23: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Специфични настройки на OpenVPN сървъра

mode - определя дали ще бъдат изграждани Layer2(ethernet) или Layer3(ip) тунели

netmask - определя каква мрежова маска ще получи клиента

require-client-certificate - дали да се изисква и проверява сертификат за клиентите

OpenVPN, Петър Димитров23

Page 24: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на OpenVPN сървър

Нека конфигурираме OpenVPN сървъра:

в режим ethernet

с sha1 автентикация и aes256 криптиране

използвайки подготвените сертификат и профил

с проверка на клиентски сертификат

OpenVPN, Петър Димитров24

/interface ovpn-server serverset auth=sha1 certificate=ovpn-srv1.crt_0 cipher=aes256 default-profile=ovpn-profile enabled=yes mode=ethernet netmask=24 require-client-certificate=yes

Page 25: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на OpenVPN сървър

OpenVPN, Петър Димитров25

Page 26: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Допълнително

При необходимост ethernet режима може да бъде добавян в Bridge, като в този случай вместо local address се вдига IP адрес на Bridge-а

Автоматично като се укаже Bridge в профила

Ръчно като порт на Bridge ако се създаде статичен интерфейс

В зависимост от конфигурацията във firewall може да са необходими допълнителни правила

OpenVPN, Петър Димитров26

Page 27: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на клиент

OpenVPN клиентите обикновено използват конфигурационен файл, който съдържа параметри за връзка към OpenVPN сървър

Конфигурационния файл е еднакъв, независимо от операционната система, на която е инсталиран клиента

Можете да имате различни конфигурационни файлове за различни VPN връзки

Запазването на потребител и парола е възможно в отделен текстов файл

OpenVPN, Петър Димитров27

Page 28: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент - параметри

--client указва работа като клиент. Използва настройките, които сървъра изпраща (включително маршрути). Включва и опция tls-client

--dev <tun или tap> указва кой интерфейс да се използва

--remote <адрес или име на сървър> [порт] [протокол] указва към кой VPN сървър да се осъществи връзка. Може да се укажат повече от един сървър, клиента се опитва да се свърже последователно до успешно осъществяване на връзка.

OpenVPN, Петър Димитров28

Page 29: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент - параметри

--auth-user-pass [файл с потребител и парола] указва автентикация с потребител и парола. Ако не се укаже файл, пита за потребител и парола. Файла е текстов файл в UTF8, съдържащ на отделни редове потребител и парола. Ако не съдържа парола, при свързване клиента пита за парола.

--auth <alg> указва алгоритъм за автентикация на данните

--cipher <alg> указва алгоритъм за криптиране на данните

OpenVPN, Петър Димитров29

Page 30: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент - параметри

--tls-client Разрешава TLS и задава клиентска роля. Не е необходимо изричното задаване на този параметър, ако се използва --client

--ca <file> указва файл със сертификата на Authority-то, подписало сертификатите на клиента и на сървъра

--cert <file> указва файл с клиентския сертификат

--key <file> указва файл с частния ключ на клиента

--ns-cert-type <client или server> изисква сертификата на отсрещната страна да бъде издаден с предназначение съответно клиент или сървър

OpenVPN, Петър Димитров30

Page 31: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент - параметри

--route-method <method> указва начина, по който във Windows да се добавят маршрути

--route-delay [n] указва време за изчакване след осъществяване на връзката преди да бъдат добавени маршрутите

--redirect-gateway [flags] прави необходимата конфигурация на маршрути така, че целия трафик с изключение на връзката към VPN сървъра да бъде маршрутизиран през тунела, при разкачане конфигурацията се връща в първоначалното състояние

OpenVPN, Петър Димитров31

Page 32: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент - параметри

--route <network/IP> [netmask] [gateway] [metric] Добавя маршрут към маршрутната след осъществяване на връзка. При разкачанемаршрутите се премахват.

--dhcp-option <type> [parm] указва различни параметри (като DNS, WINS, NTP) при използване на Windows TAP интерфейс

За други опции можете да проверите

https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage

OpenVPN, Петър Димитров32

Page 33: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на OpenVPN клиент

Да създадем конфигурационен файл за клиент, който да се свързва с нашия VPN сървър

използвайки съответните настройки за VPN

използвайки вече генерираните сертификати

добавящ някакъв специфичен маршрут

или

насочващ целия трафик през тунела и използващ VPN сървъра за DNS

OpenVPN, Петър Димитров33

Page 34: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на OpenVPN клиент

client

dev tap

remote 10.0.0.234 1194 tcp

auth-user-pass

auth SHA1

cipher AES-256-CBC

OpenVPN, Петър Димитров34

Page 35: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на OpenVPN клиент

ca ca.crt

cert user1.crt

key user1.key

ns-cert-type server

OpenVPN, Петър Димитров35

Page 36: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на OpenVPN клиент

route 192.168.9.0 255.255.255.0 10.20.30.1

или

route-method exe

route-delay 2

redirect-gateway autolocal

dhcp-option DNS 10.20.30.1

OpenVPN, Петър Димитров36

Page 37: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на OpenVPN клиент

OpenVPN, Петър Димитров37

Page 38: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент

OpenVPN, Петър Димитров38

Page 39: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент

OpenVPN, Петър Димитров39

Page 40: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент

OpenVPN, Петър Димитров40

Page 41: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент

OpenVPN, Петър Димитров41

Page 42: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на OpenVPN клиент

Да направим файл с потребител и парола:

OpenVPN, Петър Димитров42

Page 43: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Конфигурация на OpenVPN клиент

OpenVPN, Петър Димитров43

Page 44: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

Допълнително

OpenVPN клиента може да изпълнява команди или скриптове преди свързване, след свързване, след разкачане

Автоматично изпълним скрипт преди свързване може да бъде удобен за извършване на port knock без никаква намеса от страна на потребителя точно преди осъществяване на връзката

OpenVPN, Петър Димитров44

Page 45: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент на Android

Има различни клиенти, ще разгледаме OpenVPN connect

Тъй като OpenVPN connect към момента не поддържа tap интерфейси, ще сменим режима на tun (ip)

След подготовка на конфигурационния файл, цялата папка със сертификати, конфигурация, файл с потребител/парола прехвърляме в SD картата на Android устройството

OpenVPN, Петър Димитров45

Page 46: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент на Android

OpenVPN, Петър Димитров46

Page 47: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент на Android

OpenVPN, Петър Димитров47

Page 48: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент на Android

OpenVPN, Петър Димитров48

Page 49: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент на Android

OpenVPN, Петър Димитров49

Page 50: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN клиент

Някой разполага ли с друга ОС, например

Linux

MacOS

iOS

Искате ли да конфигурираме клиент при някой от вас?

OpenVPN, Петър Димитров50

Page 51: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN

OpenVPN предоставя огромно количество възможности

Гъвкавостта при маршрутизиране на трафика дава възможност само чувствителната информация да бъде транспортирана през тунела, а целия обичаен интернет трафик да не товари излишно VPN-а

Вече е време да пенсионираме PPTP :)

OpenVPN, Петър Димитров51

Page 52: OpenVPN - MikroTik обучения и ... · PDF fileMikroTik Net Camp 2016 ... изключение на връзката към VPN сървъра да бъде маршрутизиран

OpenVPN, Петър Димитров52

Благодаря за вниманието!