SITE-TO-SITE as PEER TO PEER (SSL/TLS)
-
I've setup a site-to-site as Peer to Peer (shared Key) and everything work like a charm, but reading about it, it isn't the best solution.
I'm trying to setup a Peer to Peer ( SSL /TLS) as this:
SERVER
protocol: UDP
service mode: tun
interface: WAN
localport: 1111
TLS auth: flag on both enable auth and generate key
Server CA: generated by this server in CAs Tab (certificate Autority Manager)
Server Certificate: generated in System: Certificate Manager tab
( Server Certificate CA: No, Server: Yes)
lenght: 2048 bits
auth digest alg: AES-256-CBC
no hardware crypto acceleration
certificate depth: one(client+Server)advanced configuration:
mode server
tls-serverCLIENT
server mode: peer to peer (ssl/tls)
protocol: udp
device mode: tun
interface: WAN
server host: mystaticIP
server port: 1111user auth settings: empty
Crypto:
TLS: pasted key generated by server
Peer certificate autority: the imported Server CA: generated by this server in CAs Tab (certificate Autority Manager)
Client Certificate: the imported Server Certificate: generated in System: Certificate Manager tab
( Server Certificate CA: No, Server: Yes)encryption algoritm: AES-256-CBC
auth: SHA1
hw crypto: no hwAdvanced configuration: tls-client
then save and run fail because I keep getting this error:
SERVER
openvpn[92480]: TLS Error: incoming packet authentication failed from [AF_INET]
authenticate/Decrypt packet error: packet HMAC authentication failedJun 17 14:23:57 openvpn[92480]: Authenticate/Decrypt packet error: packet HMAC authentication failed
Jun 17 14:23:47 openvpn[92480]: Initialization Sequence Completed
Jun 17 14:23:47 openvpn[92480]: UDPv4 link remote: [undef]
Jun 17 14:23:47 openvpn[92480]: UDPv4 link local (bound): [AF_INET]172.111.0.3:1197
Jun 17 14:23:47 openvpn[92480]: /usr/local/sbin/ovpn-linkup ovpns4 1500 1557 192.111.0.1 192.111.0.2 init
Jun 17 14:23:47 openvpn[92480]: /sbin/ifconfig ovpns4 192.111.0.1 192.111.0.2 mtu 1500 netmask 255.255.255.255 up
Jun 17 14:23:47 openvpn[92480]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Jun 17 14:23:47 openvpn[92480]: TUN/TAP device /dev/tun4 opened
Jun 17 14:23:47 openvpn[92480]: TUN/TAP device ovpns4 exists previously, keep at program end
Jun 17 14:23:47 openvpn[92480]: Control Channel Authentication: using '/var/etc/openvpn/server4.tls-auth' as a OpenVPN static key file
Jun 17 14:23:46 openvpn[92480]: NOTE: the current –script-security setting may allow this configuration to call user-defined scripts
Jun 17 14:23:46 openvpn[92167]: library versions: OpenSSL 1.0.1l-freebsd 15 Jan 2015, LZO 2.09
Jun 17 14:23:46 openvpn[92167]: OpenVPN 2.3.6 i386-portbld-freebsd10.1 [SSL (OpenSSL)] [LZO] [MH] [IPv6] built on Apr 8 2015CLIENT
Jun 17 14:23:55 openvpn[20608]: SIGUSR1[soft,ping-restart] received, process restarting
Jun 17 14:23:55 openvpn[20608]: [UNDEF] Inactivity timeout (–ping-restart), restarting
Jun 17 14:22:55 openvpn[20608]: UDPv4 link remote: [AF_INET]MYREMOTEIP:1111
Jun 17 14:22:55 openvpn[20608]: UDPv4 link local (bound): [AF_INET]WANIP
Jun 17 14:22:55 openvpn[20608]: NOTE: the current –script-security setting may allow this configuration to call user-defined scripts
Jun 17 14:22:55 openvpn[20608]: WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Jun 17 14:22:53 openvpn[20608]: SIGUSR1[soft,ping-restart] received, process restarting
Jun 17 14:22:53 openvpn[20608]: [UNDEF] Inactivity timeout (–ping-restart), restarting
Jun 17 14:21:53 openvpn[20608]: UDPv4 link remote: [AF_INET]MYREMOTEIP:1111
Jun 17 14:21:53 openvpn[20608]: UDPv4 link local (bound): [AF_INET]WANIP
Jun 17 14:21:53 openvpn[20608]: NOTE: the current –script-security setting may allow this configuration to call user-defined scripts
Jun 17 14:21:53 openvpn[20608]: WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Jun 17 14:21:51 openvpn[20608]: SIGUSR1[soft,ping-restart] received, process restarting
Jun 17 14:21:51 openvpn[20608]: [UNDEF] Inactivity timeout (–ping-restart), restarting
Jun 17 14:20:51 openvpn[20608]: UDPv4 link remote: [AF_INET]MYREMOTEIP:1111
Jun 17 14:20:51 openvpn[20608]: UDPv4 link local (bound): [AF_INET]WANIP
Jun 17 14:20:51 openvpn[20608]: NOTE: the current –script-security setting may allow this configuration to call user-defined scripts
Jun 17 14:20:51 openvpn[20608]: WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Jun 17 14:20:49 openvpn[20608]: SIGUSR1[soft,ping-restart] received, process restarting
Jun 17 14:20:49 openvpn[20608]: [UNDEF] Inactivity timeout (–ping-restart), restarting
Jun 17 14:19:49 openvpn[20608]: UDPv4 link remote: [AF_INET]MYREMOTEIP:1111
Jun 17 14:19:49 openvpn[20608]: UDPv4 link local (bound): [AF_INET]WANIP
Jun 17 14:19:49 openvpn[20608]: NOTE: the current –script-security setting may allow this configuration to call user-defined scripts
Jun 17 14:19:49 openvpn[20608]: WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Jun 17 14:19:47 openvpn[20608]: SIGUSR1[soft,ping-restart] received, process restarting
Jun 17 14:19:47 openvpn[20608]: [UNDEF] Inactivity timeout (–ping-restart), restarting
Jun 17 14:19:45 openvpn[8919]: MANAGEMENT: Client disconnected
Jun 17 14:19:45 openvpn[8919]: MANAGEMENT: CMD 'status 2'
Jun 17 14:19:45 openvpn[8919]: MANAGEMENT: CMD 'state 1'
Jun 17 14:19:45 openvpn[8919]: MANAGEMENT: Client connected from /var/etc/openvpn/client1.sock
Jun 17 14:19:28 openvpn[8919]: MANAGEMENT: Client disconnected
Jun 17 14:19:28 openvpn[8919]: MANAGEMENT: CMD 'status 2'
Jun 17 14:19:28 openvpn[8919]: MANAGEMENT: CMD 'state 1'
Jun 17 14:19:28 openvpn[8919]: MANAGEMENT: Client connected from /var/etc/openvpn/client1.sock
Jun 17 14:18:56 openvpn[8919]: MANAGEMENT: Client disconnected
Jun 17 14:18:56 openvpn[8919]: MANAGEMENT: CMD 'status 2'
Jun 17 14:18:56 openvpn[8919]: MANAGEMENT: CMD 'state 1'
Jun 17 14:18:56 openvpn[8919]: MANAGEMENT: Client connected from /var/etc/openvpn/client1.sock
Jun 17 14:18:47 openvpn[20608]: UDPv4 link remote: [AF_INET]MYREMOTEIP:1111
Jun 17 14:18:47 openvpn[20608]: UDPv4 link local (bound): [AF_INET]WANIP
Jun 17 14:18:47 openvpn[20608]: Control Channel Authentication: using '/var/etc/openvpn/client3.tls-auth' as a OpenVPN static key file
Jun 17 14:18:47 openvpn[20608]: NOTE: the current –script-security setting may allow this configuration to call user-defined scripts
Jun 17 14:18:47 openvpn[20608]: WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Jun 17 14:18:47 openvpn[20608]: WARNING: using –pull/--client and --ifconfig together is probably not what you want
Jun 17 14:18:47 openvpn[20475]: library versions: OpenSSL 1.0.1l-freebsd 15 Jan 2015, LZO 2.09what am I missing? Thanks in advance
-
Adding SSL/TLS to a shared key setup should be relatively straightforward.
I would suggest taking it in two steps, SSL first then add TLS.SSL:
You need the following in System->CertManager on the OpenVPN Server system:- CA - A Certificate of Authority for all the Certificates (simply create one)
Create an Internal Certificate Authority
Descriptive Name - anything you like
Key length 2048 (or greater)
Digest, Lifetime - SHA256, 3650 defaults are fine.
Distinguished Name - fill in everything, Common Name - must be unique
Certificates-
2) A Certificate for the OpenVPN Server
Create Internal Certificate
Use CA created in 1)
Key length 2048 (or greater) same as in 1)
Certificate Type - Server Certificate
Distinguished Name info comes from CA, except Common Name - use a unique identifier for the Server- A Certificate for the OpenVPN Client
Create Internal Certificate
Use CA created in 1)
Key length 2048 (or greater) same as in 1)
Certificate Type - User Certificate
Distinguished Name info comes from CA, except Common Name - use a unique identifier for the Client
On the Server VPN->OpenVPN:Server
Cryptographic Settings
TLS Authentication - Leave unchecked for now (easier to add later)
Peer Certfificate Revocation List - None
Peer Certificate Authority - CA from 1)
Server Certificate - Cert from 2)
DH Parameters list - 2048 (or greater)
Encryption Algorithm - as needed and hardware allows (I prefer AES-256-CBC)
Auth Digest Algorithm - SHA-1
Hardware Crypto - enable if available
Certificate Depth - leave at One (Client+Server)Everything else as before on the working OpenVPN Server
You need the following in System->CertManager on the OpenVPN Client system:
-
CA - The Certificate of Authority from 1)
Import an existing Certificate Authority
Paste in only the Certificate Data from 1) (NOT the Certificate Private Key). -
Certificates The Certificate from 3)
Import an existing Certificate Authority
Paste in only the Certificate data and the Private Key data from 3).
On the Client VPN->OpenVPN:Client
Cryptographic Settings
TLS Authentication - Leave unchecked for now (easier to add later)
Peer Certificate Authority - CA from 1)
Client Certificate - Cert from 3)
Encryption Algorithm - Same as used for the OpenVPN Server
Auth Digest Algorithm - Same as used for the OpenVPN Server
Hardware Crypto - enable if availableEverything else as before on the working OpenVPN Client
If everything is setup properly, the client and server should connect and give you an active tunnel as before.
One issue I've run into before when changing certificates with OpenVPN is the server (and sometimes the client) don't want to release previous running copies of themselves without an explicit "kill" of their process (or a reboot of pfSense). The other thing to watch out for is that the clocks on both pfSense boxes must be reasonably close to correct or the handshake may not work properly.Once you have SSL working right, you can go back and enable TLS on the Server and use the automatic key generated to paste into the client.
I find it easier to troubleshoot one step at a time.Once you've seen the general layout of a working SSL OpenVPN setup, it's really not very hard to get up and running.
It's just the first time that's a bear ;)Edit:=- Fixed improper reference for Client certificate
- CA - A Certificate of Authority for all the Certificates (simply create one)
-
it works like a charm now, THANKS A LOT!
Just one thing:
On the Client VPN->OpenVPN:Client
Cryptographic Settings
TLS Authentication - Leave unchecked for now (easier to add later)
Peer Certificate Authority - CA from 1)
Client Certificate - Cert from 2)should be
Client Certificate - Cert from 3)Hope you can add this to wiki, it really is a good explanation, thanks!
-
Glad we could help.
Thanks for noticing my oooops (and being kind about it) I typed that up in a hurry.
I fixed that for posterity.I'm not a dev, just lending a hand when I can so I don't know if this will make it anywhere else.
I'm definitely not opposed to anyone making the best use of it they can :)
It may be helpful to update the title of this thread with a (SOLVED) for future reference.
-
@divsys hello
I have a similar topic I hope you can read it and help me
https://forum.netgate.com/topic/139648/openvpn-site-to-site-routing/2
Thank you
-
@xlameee Please don't post to ancient, crusty threads. Please start a new one. Locking this.