IPsec/IKEv2-based VPN software for Linux
# sudo ifconfig eth0 192.168.0.100 netmask 255.255.255.0
Setup a bridge interface for the Sales Department's subnet. # sudo brctl addbr br0 # sudo brctl addif eth1 # sudo ifconfig br0 192.168.100.100 netmask 255.255.255.0 Setup a bridge interface for the Development Department's subnet. # sudo brctl addbr br1 # sudo brctl addif eth2 # sudo ifconfig br1 192.168.101.100 netmask 255.255.255.0 # sudo route add default gw 192.168.0.10 |
# sudo ifconfig eth0 10.0.0.1 netmask 255.255.255.0
# sudo ifconfig eth1 192.168.0.10 netmask 255.255.255.0 Enable IPv4 routing. # sudo sysctl net.ipv4.ip_forward=1 Forward packets destinated to 10.0.0.1:500(Router1) to 192.168.0.100:500(VPN Gateway). # sudo iptables -t nat -A PREROUTING -p udp --dst 10.0.0.1 --dport 500 -j DNAT --to-destination 192.168.0.100:500 Forward packets destinated to 10.0.0.1:4500(Router1) to 192.168.0.100:4500(VPN Gateway). # sudo iptables -t nat -A PREROUTING -p udp --dst 10.0.0.1 --dport 4500 -j DNAT --to-destination 192.168.0.100:4500 |
Enable IPv4 routing. # sudo sysctl net.ipv4.ip_forward=1 Exec NAPT for packets from private network(192.168.2.0/24). # sudo iptables -t -nat -A POSTROUTING -o eth0 -j MASQUERADE --random |
# sudo ifconfig eth0 192.168.0.101 netmask 255.255.255.0
# sudo route add default gw 192.168.0.10 |
auto eth0
iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 gateway 192.168.0.10 auto eth1 iface eth1 inet manual up /sbin/ifconfig eth1 promisc auto eth2 iface eth2 inet manual up /sbin/ifconfig eth2 promisc auto br0 iface br0 inet static address 192.168.100.100 network 192.168.100.0 netmask 255.255.255.0 broadcast 192.168.100.255 bridge_ports eth1 bridge_stp off bridge_maxwait 10 auto br1 iface br1 inet static address 192.168.101.100 network 192.168.101.0 netmask 255.255.255.0 broadcast 192.168.101.255 bridge_ports eth2 bridge_stp off bridge_maxwait 10 |
- VPN Configuration[Tab]
> Edit VPN Realm(Save, Add, etc.)[Left-Tree]:
Click this tree node and show
Edit VPN Realm(Save, Add, Remove, or Load) pane.
- Click Add VPN Realm button.
- Add a VPN Realm[Dialog]: Enter the following, then click OK button.
Realm ID: 10
Realm Name: Sales Dep.
Description: Config for Example VPN.
Mode: Bridge
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 10:Sales Dep.(Bridge)[Left-Tree]
> VPN Interface[Left-Tree]:
Click this tree node and show VPN Tunnel/TAP Interface pane.
- Enter or select the following.
Internal Address Type: Unnumbered(for bridging)
Linked Bridge Name: br0
If VPN clients (Alice and Dave) communicate with hosts on other subnets like
Internal DNS Server1 on the DMZ or
Internal File/Web Server3 on the Development Department's subnet,
enter the Router1's address into
Internal Gateway's IPv4 Address.
VPN Gateway forwards decrypted packets destinated to
other subnets to the Router1's eth2
(192.168.100.10) interface,
and then the router filters and forwards the packets if the traffic is allowed.
For example, if Windows 8 VPN Client (IKEv2) 3 (Alice, the Sales Department)
sends a packet to Internal File / Web Server3 (the Development Department),
the packet travels like this:
Windows 8 VPN Client (IKEv2) 3 (Alice, the Sales Dep.)
==> Router1(eth0) ==> Router1(eth1)
==> VPN Gateway(eth0) =(decyrpted)=> VPN Gateway(rhpvif10) ==> VPN Gateway(br0) ==> VPN Gateway(eth1)
==> Router1(eth2) ==> Router1(eth3)
==> Internal File / Web Server3 (the Dev Dep.)
Though you can also enable routing service on VPN Gateway for a shorter path,
it may complicate network and security management.
Of course, you can setup additional firewall rules for this VPN Gateway's
bridge interfaces (br0 and br1) by using the iptables' physdev module.
Internal Gateway's IPv4 Address: 192.168.100.10
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 10:Sales Dep.(Bridge)[Left-Tree]
> Network Interface[Left-Tree]:
Click this tree node and show Network Interface pane.
- Uncheck Use default route and enter the followings.
Primary interface:
- Name: Select eth0 as a source interface.
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 10:Sales Dep.(Bridge)[Left-Tree]
> Service[Left-Tree]:
Click this tree node and show Service pane.
- Network Deployment: Select Hub(Concentrator) Node.
- Remote Configuration(IKEv2): Select Remote Configuration Server.
- Authentication Method for remote peers: Check RSA-Sig (RSA Signature) and EAP (Extensible Authentication Protocol) Clients. [Version 0.2.b1-021 -]
- EAP Server: Select EAP-MSCHAPv2.
- Default EAP Server: Check Enable.
This means that this realm's My Key Store is used
for all VPN realms which enable EAP-MSCHAPv2 EAP Server.
When the EAP-MSCHAPv2 is used to authenticate a Windows 7/8/10 VPN client, it doesn't send any useful ID
information in the first IKE_AUTH message.
Therefore, this realm's settings (My Key Store) are used as default at this time. After receiving a
user name in the following IKE_AUTH/EAP message, VPN Gateway maps
the client to an actual VPN realm by verifying the user name.
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 10:Sales Dep.(Bridge)[Left-Tree]
>Service[Left-Tree]
> Remote Config Server[Left-Tree]:
Click this tree node and show Remote Config Server(IKEv2) pane.
- Remote Config Server(IKEv2)[Pane]
> Internal Address Pool[Tab]:
Click Add Address Pool button.
- Add a New Address Pool[Dialog]:
Enter the following, then click OK button.
Address Type: Address Range
IPv4 Address Range: 192.168.100.20 - 192.168.100.30
- Remote Config Server(IKEv2)[Pane]
> Internal Route Map[Tab]:
Enter the following as an Internal router's address.
Gateway IPv4 Address: 192.168.100.10
- Click Add Destination IPv4 Network button.
Add a New Internal Route[Dialog]:
Enter the following route map to the DMZ, then click OK button.
Destination IPv4 Network: 192.168.0.0
Netmask: 255.255.255.0
Similarly, add the following route map (to the Development Dep.) if needed:
Destination IPv4 Network: 192.168.101.0
Netmask: 255.255.255.0
- Remote Config Server(IKEv2)[Pane]
> Internal DNS[Tab]:
Enter the following as an Internal DNS server's address.
DNS Server's IPv4 Address: 192.168.0.101
- Click Add DNS Suffix button.
Add a New DNS Suffix[Dialog]
for VPN remote host (Ubuntu, Dave):
Enter the following, then click OK button.
DNS Suffix: .example.com
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 10:Sales Dep.(Bridge)[Left-Tree]
> My Key Store[Left-Tree]:
Click this tree node and show My Key Store pane.
- Enter the following.
Authentication Method: RSA Signature(RSA-Sig)
My ID Type: auto
Imported Key Format: PKCS#12 - File
PKCS#12 file(*.p12): gateway1.example.com.p12
RSA Private Key's Password: himitsu
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 10:Sales Dep.(Bridge)[Left-Tree]
> Peers' Key Store[Left-Tree]:
Click this tree node and show Peers Key Store pane.
- Click Add Peer's Key/Password button.
- Add a New Peer's Key[Dialog]: Enter the following, then click "OK" button.
Peer ID Type: EAP-MSCHAPv2: User Name
Peer ID: alice.sales
- ".sales" is a common suffix for the Sales Department.
Pre-Shared Key(PSK)/Password: 1234567890
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 10:Sales Dep.(Bridge)[Left-Tree]
> VPN's Role[Left-Tree]:
Click this tree node and show VPN Role pane.
- Click Add Role Prefix / Suffix button.
- Add a New Role Prefix / Suffix[Dialog]: Enter the following, then click "OK" button.
(1)
Role Type: EAP-MSCHAPv2: User Name (Suffix-search)
Role Prefix/Suffix: .sales
- Similarly, add one more prefix and two more suffixes.
(2)
Role Type: subjectName(DN) (Prefix-search)
Role Prefix/Suffix: C=JP, ST=Tokyo, L=Minatoku, O=example, OU=sales
(3)
Role Type: subjectAltName: Host Name(FQDN) (Suffix-search)
Role Prefix/Suffix: .sales.example.com
(4)
Role Type: Host Name(FQDN) (Suffix-search)
Role Prefix/Suffix: .sales.example.com
- VPN Configuration[Tab]
> Edit VPN Realm(Save, Add, etc.)[Left-Tree]:
Click this tree node and show
Edit VPN Realm(Save, Add, Remove, or Load) pane.
- Click Add VPN Realm button.
- Add a VPN Realm[Dialog]: Enter the following, then click OK button.
Realm ID: 20
Realm Name: Dev Dep.
Description: Config for Example VPN.
Mode: Bridge
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 20:Dev Dep.(Bridge)[Left-Tree]
> VPN Interface[Left-Tree]:
Click this tree node and show VPN Tunnel/TAP Interface pane.
- Enter or select the following.
Internal Address Type: Unnumbered(for bridging)
Linked Bridge Name: br1
Internal Gateway's IPv4 Address: 192.168.101.10
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 20:Dev Dep.(Bridge)[Left-Tree]
> Network Interface[Left-Tree]:
Click this tree node and show Network Interface pane.
- Uncheck Use default route and enter the followings.
Primary interface:
- Name: Select eth0 as a source interface.
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 20:Dev Dep.(Bridge)[Left-Tree]
> Service[Left-Tree]:
Click this tree node and show Service pane.
- Network Deployment: Select Hub(Concentrator) Node.
- Remote Configuration(IKEv2): Select Remote Configuration Server.
- Authentication Method for remote peers: Check RSA-Sig (RSA Signature) and EAP (Extensible Authentication Protocol) Clients. [Version 0.2.b1-021 -]
- EAP Server: Select EAP-MSCHAPv2.
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 20:Dev Dep.(Bridge)[Left-Tree]
>Service[Left-Tree]
> Remote Config Server[Left-Tree]:
Click this tree node and show Remote Config Server(IKEv2) pane.
- Remote Config Server(IKEv2)[Pane]
> Internal Address Pool[Tab]:
Click Add Address Pool button.
- Add a New Address Pool[Dialog]:
Enter the following, then click OK button.
Address Type: Address Range
IPv4 Address Range: 192.168.101.20 - 192.168.101.30
- Remote Config Server(IKEv2)[Pane]
> Internal DNS[Tab]:
Enter the following as an Internal DNS server's address.
DNS Server's IPv4 Address: 192.168.0.101
If only the EAP-MSCHAPv2 is used as an authentication method for VPN clients, you don't need to setup this.
As mentioned above, a setting of the VPN realm 10 is used as default.
The following is the same setting as the VPN realm 10's. Also, the same PKCS#12 file for VPN Gateway can be specified.
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 20:Dev Dep.(Bridge)[Left-Tree]
> My Key Store[Left-Tree]:
Click this tree node and show My Key Store pane.
- Enter the following.
Authentication Method: RSA Signature(RSA-Sig)
My ID Type: auto
Imported Key Format: PKCS#12 - File
PKCS#12 file(*.p12): gateway1.example.com.p12
RSA Private Key's Password: himitsu
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 20:Dev Dep.(Bridge)[Left-Tree]
> Peers' Key Store[Left-Tree]:
Click this tree node and show Peers Key Store pane.
- Click Add Peer's Key/Password button.
- Add a New Peer's Key[Dialog]: Enter the following, then click "OK" button.
Peer ID Type: EAP-MSCHAPv2: User Name
Peer ID: bob.dev
- ".dev" is a common suffix for the Development Department.
Pre-Shared Key(PSK)/Password: abcdefghij
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 20:Dev Dep.(Bridge)[Left-Tree]
> VPN's Role[Left-Tree]:
Click this tree node and show VPN Role pane.
- Click Add Role Prefix / Suffix button.
- Add a New Role Prefix / Suffix[Dialog]: Enter the following, then click "OK" button.
(1)
Role Type: EAP-MSCHAPv2: User Name (Suffix-search)
Role Prefix/Suffix: .dev
- Similarly, add one more prefix and two more suffixes.
(2)
Role Type: subjectName(DN) (Prefix-search)
Role Prefix/Suffix: C=JP, ST=Tokyo, L=Minatoku, O=example, OU=dev
(3)
Role Type: subjectAltName: Host Name(FQDN) (Suffix-search)
Role Prefix/Suffix: .dev.example.com
(4)
Role Type: Host Name(FQDN) (Suffix-search)
Role Prefix/Suffix: .dev.example.com
- VPN Configuration[Tab]
> Edit VPN Realm(Save, Add, etc.)[Left-Tree]:
Click this tree node and show "Edit
VPN Realm(Save, Add, Remove, or Load)" pane.
- Click Save Configuration button.
SubjectName (DN) | C=JP, ST=Tokyo, L=Minatoku, O=example, OU=dev, CN=sue / emailAddress=sue@dev.example.com |
SubjectAltName (SAN) | sue.dev.example.com (DNS) |
10.0.0.1 gateway1.example.com # (Dev Dep.)
|
10.0.0.1 gateway1.example.com # (Dev Dep.)
|
SubjectName (DN) | C=JP, ST=Tokyo, L=Minatoku, O=example, OU=sales, CN=dave / emailAddress=dave@sales.example.com |
SubjectAltName (SAN) | dave.sales.example.com (DNS) |
- VPN Configuration[Tab] > Edit VPN Realm(Save, Add, etc.)[Left-Tree]: Click this tree node and show Edit VPN Realm(Save, Add, Remove, or Load) pane.
- Click Add VPN Realm button.
Add a VPN Realm[Dialog]:
Enter the following, then click OK button.
Realm ID: 10
Realm Name: "Sales Dep."
Description: "Config for Example VPN."
Mode: Remote Client
- VPN Configuration[Tab] > VPN Realms[Left-Tree] > 10:Example VPN(Remote Client)[Left-Tree] > Destination[Left-Tree]: Click this tree node and show Destination (Concentrator / Gateway) pane.
- Enter the following.
Destination Address: IPv4 and 10.0.0.1 (Router1's global address)
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 10:Sales Dep.(End Host)[Left-Tree]
> My Key Store[Left-Tree]:
Click this tree node and show My Key Store pane.
- Enter the following.
Authentication Method: RSA Signature(RSA-Sig)
My ID Type: auto
Imported Key Format: PKCS#12 - File
PKCS#12 file(*.p12): dave.sales.example.com.p12
RSA Private Key's Password: naisho
- VPN Configuration[Tab]
> Edit VPN Realm(Save, Add, etc.)[Left-Tree]:
Click this tree node and show Edit
VPN Realm(Save, Add, Remove, or Load) pane.
- Click Save Configuration button.
- VPN Configuration[Tab] > Edit VPN Realm(Save, Add, etc.)[Left-Tree]: Click this tree node and show Edit VPN Realm(Save, Add, Remove, or Load) pane.
- Click Add VPN Realm button.
Add a VPN Realm[Dialog]:
Enter the following, then click OK button.
Realm ID: 10
Realm Name: "Sales Dep."
Description: "Config for Example VPN."
Mode: Remote Client
- Check Advanced Settings. (Version: 0.2.b1-021 or later)
- VPN Configuration[Tab] > VPN Realms[Left-Tree] > 10:Sales Dep.(Remote Client)[Left-Tree] > VPN Interface[Left-Tree]: Click this tree node and show VPN Tunnel/TAP Interface pane.
- Enter the following.
Internal Address Type: Auto(IKEv2 Configuration)
- VPN Configuration[Tab] > VPN Realms[Left-Tree] > 10:Sales Dep.(Remote Client)[Left-Tree] > Network Interface[Left-Tree]: Click this tree node and show Network Interface pane.
- Check Use default route.
or
- Uncheck Use default route and enter the followings.
Primary interface:
- Name: Select eth0 as a source interface.
- VPN Configuration[Tab] > VPN Realms[Left-Tree] > 10:Sales Dep.(Remote Client)[Left-Tree] > Service[Left-Tree]: Click this tree node and show Service pane.
- Network Deployment: Select Spoke Node/Other.
- Remote Configuration(IKEv2): Select Remote Access Client.
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 10:Sales Dep.(End Host)[Left-Tree]
> My Key Store[Left-Tree]:
Click this tree node and show My Key Store pane.
- Enter the following.
Authentication Method: RSA Signature(RSA-Sig)
My ID Type: auto
Imported Key Format: PKCS#12 - File
PKCS#12 file(*.p12): dave.sales.example.com.p12
RSA Private Key's Password: naisho
- VPN Configuration[Tab] > VPN Realms[Left-Tree] > 10:Sales Dep.(Remote Client)[Left-Tree] > Peers[Left-Tree]: Click this tree node and show Peers pane.
- Click Add Peer button.
Add a New Peer[Dialog]:
Enter the following, then click OK button.
Peer ID Type: IKEv2: Host Name(FQDN)
Peer ID: gateway1.example.com
- VPN Configuration[Tab]
> VPN Realms[Left-Tree]
> 10:Sales Dep.(Remote Client)[Left-Tree]
> Peers[Left-Tree] >
gateway1.example.com(FQDN)[Left-Tree]:
Click this tree node and show Peer: gateway1.example.com(FQDN) pane.
- Enter the following.
Peer's IP Address: IPv4 and 10.0.0.1 (Router1's global address)
This peer's Network Deployment: Hub(Concentrator) Node
- VPN Configuration[Tab]
> Edit VPN Realm(Save, Add, etc.)[Left-Tree]:
Click this tree node and show Edit
VPN Realm(Save, Add, Remove, or Load) pane.
- Click Save Configuration button.