mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
RSA-Keys page was blank, so added the steps to generate and add the keys to the VPN IPSec config. Also corrected the IPSec/GRE page where authentication parameter was missing before remote-id.
89 lines
3.7 KiB
ReStructuredText
89 lines
3.7 KiB
ReStructuredText
|
|
########
|
|
RSA-Keys
|
|
########
|
|
RSA can be used for services such as key exchanges and for encryption purposes.
|
|
To make IPSec work with dynamic address on one/both sides, we will have to use
|
|
RSA keys for authentication. They are very fast and easy to setup.
|
|
|
|
First, on both routers run the operational command “generate vpn rsa-key
|
|
bits 2048”. You may choose different length than 2048 of course.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@left# run generate vpn rsa-key bits 2048
|
|
Generating rsa-key to /config/ipsec.d/rsa-keys/localhost.key
|
|
|
|
Your new local RSA key has been generated
|
|
The public portion of the key is:
|
|
|
|
0sAQO2335[long string here]
|
|
|
|
Please note down this public key, as you have to add this RSA key in the opposite router.
|
|
|
|
.. code-block:: none
|
|
|
|
set vpn rsa-keys rsa-key-name LEFT rsa-key KEYGOESHERE
|
|
|
|
Now you are ready to setup IPsec. The key points:
|
|
|
|
1. Since both routers do not know their effective public addresses, we set the local-address of the peer to "any".
|
|
2. On the initiator, we set the peer address to its public address, but on the responder we only set the id.
|
|
3. On the initiator, we need to set the remote-id option so that it can identify IKE traffic from the responder correctly.
|
|
4. On the responder, we need to set the local id so that initiator can know who's talking to it for the point #3 to work.
|
|
5. Don't forget to enable NAT traversal on both sides, "set vpn ipsec nat-traversal enable".
|
|
|
|
LEFT SIDE:
|
|
|
|
.. code-block:: none
|
|
|
|
set vpn rsa-keys rsa-key-name RIGHT rsa-key <PUBLIC KEY FROM THE RIGHT>
|
|
|
|
set vpn ipsec ipsec-interfaces interface eth0
|
|
set vpn ipsec nat-traversal 'enable'
|
|
|
|
set vpn ipsec esp-group MyESPGroup proposal 1 encryption aes128
|
|
set vpn ipsec esp-group MyESPGroup proposal 1 hash sha1
|
|
|
|
set vpn ipsec ike-group MyIKEGroup proposal 1 dh-group 2
|
|
set vpn ipsec ike-group MyIKEGroup proposal 1 encryption aes128
|
|
set vpn ipsec ike-group MyIKEGroup proposal 1 hash sha1
|
|
|
|
set vpn ipsec site-to-site peer 192.0.2.60 authentication mode rsa
|
|
set vpn ipsec site-to-site peer 192.0.2.60 authentication id @LEFT
|
|
set vpn ipsec site-to-site peer 192.0.2.60 authentication rsa-key-name RIGHT
|
|
set vpn ipsec site-to-site peer 192.0.2.60 authentication remote-id RIGHT
|
|
set vpn ipsec site-to-site peer 192.0.2.60 default-esp-group MyESPGroup
|
|
set vpn ipsec site-to-site peer 192.0.2.60 ike-group MyIKEGroup
|
|
set vpn ipsec site-to-site peer 192.0.2.60 local-address any
|
|
set vpn ipsec site-to-site peer 192.0.2.60 connection-type initiate
|
|
set vpn ipsec site-to-site peer 192.0.2.60 tunnel 1 local prefix 192.168.99.1/32
|
|
set vpn ipsec site-to-site peer 192.0.2.60 tunnel 1 remote prefix 192.168.99.2/32
|
|
|
|
RIGHT SIDE:
|
|
|
|
.. code-block:: none
|
|
|
|
set vpn rsa-keys rsa-key-name LEFT rsa-key <PUBLIC KEY FROM THE LEFT>
|
|
|
|
set vpn ipsec ipsec-interfaces interface eth0
|
|
set vpn ipsec nat-traversal 'enable'
|
|
|
|
set vpn ipsec esp-group MyESPGroup proposal 1 encryption aes128
|
|
set vpn ipsec esp-group MyESPGroup proposal 1 hash sha1
|
|
|
|
set vpn ipsec ike-group MyIKEGroup proposal 1 dh-group 2
|
|
set vpn ipsec ike-group MyIKEGroup proposal 1 encryption aes128
|
|
set vpn ipsec ike-group MyIKEGroup proposal 1 hash sha1
|
|
|
|
set vpn ipsec site-to-site peer @LEFT authentication id @RIGHT
|
|
set vpn ipsec site-to-site peer @LEFT authentication mode rsa
|
|
set vpn ipsec site-to-site peer @LEFT authentication rsa-key-name LEFT
|
|
set vpn ipsec site-to-site peer @LEFT connection-type respond
|
|
set vpn ipsec site-to-site peer @LEFT default-esp-group MyESPGroup
|
|
set vpn ipsec site-to-site peer @LEFT ike-group MyIKEGroup
|
|
set vpn ipsec site-to-site peer @LEFT local-address any
|
|
set vpn ipsec site-to-site peer @LEFT tunnel 1 local prefix 192.168.99.2/32
|
|
set vpn ipsec site-to-site peer @LEFT tunnel 1 remote prefix 192.168.99.1/32
|
|
|