Jump to content
  • 0

OVPN server


emc1000

Въпрос

Няма такава мъка. Няма подкарване.

Настройките са като оттук: http://wiki.mikrotik.com/wiki/OpenVPN_Configuration_Step_by_Step

с разликата, че адресите за раздаване от бъдещия сървър са 10,193,12,0/29 и сертификатати ги правя с помощта на openssl, понеже като ги направя в конзолата на тика, не иска да инпортира ключа. Дава:

Sat Nov 02 15:10:24 2013 OpenVPN 2.2.2 Win32-MSVC++ [SSL] [LZO2] [PKCS11] built on Dec 15 2011
Sat Nov 02 15:10:24 2013 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Sat Nov 02 15:10:24 2013 Cannot load private key file private-key.key: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch
Sat Nov 02 15:10:24 2013 Error: private key password verification failed
Sat Nov 02 15:10:24 2013 Exiting

След като инпортирам сертификата и ключа, в създадения профил за локален адрес пиша 10,193,10,9.

 

 

При свързване клииентския лог връща:

Sat Nov 02 10:16:23 2013 OpenVPN 2.3.2 i686-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [eurephia] [IPv6] built on Aug 22 2013
Enter Management Password:
Sat Nov 02 10:16:23 2013 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Sat Nov 02 10:16:23 2013 Need hold release from management interface, waiting...
Sat Nov 02 10:16:23 2013 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Sat Nov 02 10:16:23 2013 MANAGEMENT: CMD 'state on'
Sat Nov 02 10:16:23 2013 MANAGEMENT: CMD 'log all on'
Sat Nov 02 10:16:23 2013 MANAGEMENT: CMD 'hold off'
Sat Nov 02 10:16:23 2013 MANAGEMENT: CMD 'hold release'
Sat Nov 02 10:16:23 2013 Socket Buffers: R=[8192->8192] S=[8192->8192]
Sat Nov 02 10:16:23 2013 MANAGEMENT: >STATE:1383380183,RESOLVE,,,
Sat Nov 02 10:16:23 2013 Attempting to establish TCP connection with [AF_INET]212.36.1.214:1194
Sat Nov 02 10:16:23 2013 MANAGEMENT: >STATE:1383380183,TCP_CONNECT,,,
Sat Nov 02 10:16:23 2013 TCP connection established with [AF_INET]212.36.1.214:1194
Sat Nov 02 10:16:23 2013 TCPv4_CLIENT link local: [undef]
Sat Nov 02 10:16:23 2013 TCPv4_CLIENT link remote: [AF_INET]212.36.1.214:1194
Sat Nov 02 10:16:23 2013 MANAGEMENT: >STATE:1383380183,WAIT,,,
Sat Nov 02 10:16:23 2013 MANAGEMENT: >STATE:1383380183,AUTH,,,
Sat Nov 02 10:16:23 2013 TLS: Initial packet from [AF_INET]212.36.1.214:1194, sid=6e4db6b2 88661fa3
Sat Nov 02 10:16:25 2013 VERIFY ERROR: depth=0, error=unable to get local issuer certificate: CN=msts-bg.net
Sat Nov 02 10:16:25 2013 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Sat Nov 02 10:16:25 2013 TLS Error: TLS object -> incoming plaintext read error
Sat Nov 02 10:16:25 2013 TLS Error: TLS handshake failed
Sat Nov 02 10:16:25 2013 Fatal TLS error (check_tls_errors_co), restarting
Sat Nov 02 10:16:25 2013 SIGUSR1[soft,tls-error] received, process restarting
Sat Nov 02 10:16:25 2013 MANAGEMENT: >STATE:1383380185,RECONNECTING,tls-error,,
Sat Nov 02 10:16:25 2013 Restart pause, 5 second(s)

И така до безкрай ...

Рестартирах, няма подобрение.

 

П.С. Пробвах с друга версия клиент 2.2.2

Sat Nov 02 15:45:24 2013 OpenVPN 2.2.2 Win32-MSVC++ [SSL] [LZO2] [PKCS11] built on Dec 15 2011
Sat Nov 02 15:45:24 2013 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Sat Nov 02 15:45:24 2013 LZO compression initialized
Sat Nov 02 15:45:24 2013 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
Sat Nov 02 15:45:24 2013 Socket Buffers: R=[8192->8192] S=[8192->8192]
Sat Nov 02 15:45:24 2013 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
Sat Nov 02 15:45:24 2013 Local Options hash (VER=V4): '69109d17'
Sat Nov 02 15:45:24 2013 Expected Remote Options hash (VER=V4): 'c0103fa8'
Sat Nov 02 15:45:24 2013 Attempting to establish TCP connection with 212.36.1.214:1194
Sat Nov 02 15:45:24 2013 TCP connection established with 212.36.1.214:1194
Sat Nov 02 15:45:24 2013 TCPv4_CLIENT link local: [undef]
Sat Nov 02 15:45:24 2013 TCPv4_CLIENT link remote: 212.36.1.214:1194
Sat Nov 02 15:45:24 2013 TLS: Initial packet from 212.36.1.214:1194, sid=b7ce6897 b06bcf34
Sat Nov 02 15:45:25 2013 VERIFY ERROR: depth=0, error=unable to get local issuer certificate: /CN=global-serverbg.net
Sat Nov 02 15:45:25 2013 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Sat Nov 02 15:45:25 2013 TLS Error: TLS object -> incoming plaintext read error
Sat Nov 02 15:45:25 2013 TLS Error: TLS handshake failed
Sat Nov 02 15:45:25 2013 Fatal TLS error (check_tls_errors_co), restarting
Sat Nov 02 15:45:25 2013 TCP/UDP: Closing socket
Sat Nov 02 15:45:25 2013 SIGUSR1[soft,tls-error] received, process restarting
Sat Nov 02 15:45:25 2013 Restart pause, 5 second(s)
Редактирано от emc1000

banner-468-60.jpg

Адрес на коментара
Сподели в други сайтове

Recommended Posts

  • 0

 

 

Много добре си работи даже............... Тунелите работят изключително стабилно с години.

Толкова стабилно работят, че един win хост го угасих преди празниците, а в Микротика го намерих активен вчера. Първосигнално реших, че някой ми е превзел сертификата още на втория ден.

 

 

м/у др. Openvpn ,дори и миктотишкия може да работи само с user/pass auth.

 

микротика раздава от pool-ове, но нищо общо с dhcp

 

Може, но задължително работи със certificate authority и при всички положения трябва да си направиш поне това и клиента ти да има ca.crt при него. Другия тънък момент е че не може да работи БЕЗ user/pass auth, което мен ме подразни в началото.

Относно DHCP - искаше ми се да си подкарам DHCP в началото, но OVPN работи по съвсем друг начин.

 

Не е ли целия смисъл на OPENVPN да имаш отделни сертификати за отделните потребители?

 

Някой има ли преки наблюдения колко товари трафика едно такова решение? 

 

Поздрави

Обещания степ-бай-степ гайд:

1. Download na OpenVPN (в случая версия 2.3.2) от тук.

2. Install на изтегления OpenVPN КАТО АДМИН

Аз в случая си генерирам сертификатите и certificate authority с easy-rsa, който е вграден в OpenVPN. Има и други варианти надлежно описани в разни други ръководства.

3. Генериране на сертификатите:

a. стартиране на cmd.exe КАТО АДМИН

b. cd до ..OpenVPNeasy-rsa

c. в cmd "init-config"

d. edit на vars.bat.

Няма нищо особено в случая. Важен е KEY_CN, с който си идентифицирате certificate authority-то. KEY_SIZE при мен е 1024, но по други работещи конфигурации съм виждал и 2048.

е. В cmd се стартират последователно:

"vars" - за задаване на параметрите

"clean-all" - за изчистване на директорията с ключовете

"build-ca" - за генериране на certificate authority. Ако са направени всички настройки във vars.bat, само ги потвърждавате.

"build-key-server server" - за създаване на сертификат за сървъра. Въвежда се KEY_CN, който да отговаря на сървъра. Въвеждате си парола, която след това ще послужи при импорт на сертификатите.

На въпросите свързани със подписване и commit-ване на сертификатите отговаряте с yes.

"build-key client1" - за създаване на сертификат за клиента. Важи същото като за създаване на сертификат за сървъра.

"build-dh" - за създаване на Deffie Hellman параметрите.

Сертификатите са готови. За повече инфо по процедурата тук.

Тази таблица на мен ми беше полезна:

Filename Needed By Purpose Secret ca.crt server + all clients Root CA certificate NO ca.key key signing machine only Root CA key YES dh{n}.pem server only Diffie Hellman parameters NO server.crt server only Server Certificate NO server.key server only Server Key YES client1.crt client1 only Client1 Certificate NO client1.key client1 only Client1 Key YES client2.crt client2 only Client2 Certificate NO client2.key client2 only Client2 Key YES client3.crt client3 only Client3 Certificate NO client3.key client3 only Client3 Key YES

 

4. Настройки на клиента (в случая Win XP, SP3):

От генерираните в директория ..OpenVPNeasy-rsakeys файлове се копират "ca.crt", "client1.crt", "client1.key" в директория ..OpenVPNconfig.

В същата тази ..OpenVPNconfig се поставя и файлът със конфигурацията на клиента. При мен това е client.ovpn със следното съдържание:

##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server.     #
#                                            #
# This configuration can be used by multiple #
# clients, however each client should have   #
# its own cert and key files.                #
#                                            #
# On Windows, you might want to rename this  #
# file so it has a .ovpn extension           #
##############################################

# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client

# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap0
dev tun

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one.  On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

# Are we connecting to a TCP or
# UDP server?  Use the same setting as
# on the server.
proto tcp-client
;proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote ............. 1194
;remote my-server-2 1194

# Choose a random host from the remote
# list for load-balancing.  Otherwise
# try hosts in the order specified.
;remote-random

# Keep trying indefinitely to resolve the
# host name of the OpenVPN server.  Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite

# Most clients don't need to bind to
# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nobody

# Try to preserve some state across restarts.
persist-key
persist-tun

# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here.  See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# Wireless networks often produce a lot
# of duplicate packets.  Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca ca.crt
cert client1.crt
key client1.key

# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server".  This is an
# important precaution to protect against
# a potential attack discussed here:
#  http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server".  The build-key-server
# script in the easy-rsa folder will do this.
ns-cert-type server

# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1
;tls-client
;tls-remote Server

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
cipher AES-256-CBC
auth SHA1

# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
#comp-lzo

# Set log file verbosity.
verb 3

# Silence repeating messages
;mute 20
auth-user-pass userpass.conf
pull
route 192.168.101.0 255.255.255.0
auth-nocache

Тъй като Микротик не иска да работи без user/pass auth използвам файл "userpass.conf", в който на първи ред е потребителското име, а на втори ред е паролата. Всичко това в plain text :)

 

5. Конфигурация на сървъра (в случая Микротик)

a.На Микротика се ъплоудват файлове "ca.crt", "server.crt", "server.key", "01.pem", "dh1024.pem"

Пак от Микротика System->Certificates->Import се импортират качените файлове. Аз лично импортирам всеки един файл, В ГОРНАТА ПОСЛЕДОВАТЕЛНОСТ по отделно като му въвеждам паролата, която съм задал за сървъра.

Не знам дали така е правилно или не, но при мен работи. Резултата е че в System->Certificates ми изкарва cert1 и cert2, като cert1 е без индекси, а cert2 има индекс KR. Индекса KR означава, че сертификата е импортиран успешно.

b. Създаване на OVPN свързани pool-ове за Windows клиенти. 

В случая Windows клиентите могат да работят само със с /32 субнети - 4 адреса в субнет. Тоест 1 адрес за network, 1 адрес за broadcast и един адрес за Микротика, един адрес за клиента с Win.

В cmd с командата "openvpn --show-valid-subnets" лесно може да се види кои адреси са валидни IP адреси за Микротика и за потребителя. Аз лично си правя pool-ове от по два адреса и като next pool задавам следващи два адреса т.е. "свързани pool-ове".

Tt3bvg3.jpg

c. Създаване на профил за OVPN клиенти:

PPP->Profiles

8KNqZ4P.jpg

d. Създаване на OpenVPN Server:

PPP->OpenVPN Server

eX8k7wo.jpg

e. Създаване на име/парола:

PPP->Secrets

hz0OxMw.jpg

f. Създаване на правило във Firewall-а:

IP->Firewall->Add New

tnitnbA.jpg

 

6. Старт на OpenVPNbinopenvpn-gui.exe.

Десен бутон на иконата в tray, избира се предварително направения клиентски конфиг и се избира "connect"

 

С Микротик се заигравам от скоро и не претендирам за професионализъм. Надявам се на някой да е полезен моят опит. Енжой. 

 

 

Тук искам да вметна няколко неща, които съм срещал като трудности:

Първоначално бях подкарал същото решение в TAP. Бях си импортирал първо 01.pem файлът и след това ca.crt, dh1024.pem. Пак сертификата ми стоеше с индекс KR и тунела работеше.

При опит обаче да премина на TUN срещнах много трудности, рестарти на рутера и т.н. Накрая премахнах всички сертификати и когато ги качих и импортирах в последователността от точка 5 всичко заспа без НИКАКВИ други настройки.

Без user/pass auth не може да се работи с Микротик. Ако тунела на всеки час прави "синхронизация" иска наново име и парола. Тоест едно такова решение ако трябва да се пусне да работи постоянно налага използването на user/pass file.

MicroTik не може да прави push route и следователно пътищата трябва да се зададат в клиентския конфиг. Това за мен е пълно недомислие.

Не на последно място когато е импортиран сертификата проверете колко е срока му. Незнайно защо при предишни експерименти ми беше генерирало сертификат със срок 1 ден. Срокът се определя преди генериране на сертификатите във файлът OpenVPNeasy-rsaopenssl-1.0.0.

Рутера е идейно да е постоянно синхронизиран с NTP сървър, за да не си ресетва датата и съответно да се окаже, че даден сертификат не е валиден към служебната дата.

Редактирано от duudah
Адрес на коментара
Сподели в други сайтове

Създайте нов акаунт или се впишете, за да коментирате

За да коментирате, трябва да имате регистрация

Създайте акаунт

Присъединете се към нашата общност. Регистрацията става бързо!

Регистрация на нов акаунт

Вход

Имате акаунт? Впишете се оттук.

Вписване
  • Потребители разглеждащи страницата   0 потребители

    • No registered users viewing this page.
×
×
  • Създай нов...

Important Information

By using this site, you agree to our Terms of Use.