IPsec/IKEv2-based VPN software for Linux
 
        | # sudo brctl addbr br0 # sudo brctl addif eth0 # sudo ifconfig br0 192.168.0.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 | 
| # sudo ifconfig eth0 10.0.0.10 netmask 255.255.255.0 # sudo ifconfig eth1 192.168.2.1 netmask 255.255.255.0 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 | 
| auto eth0 iface eth0 inet manual up /sbin/ifconfig eth0 promisc auto br0 iface br0 inet static address 192.168.0.100 network 192.168.0.0 netmask 255.255.255.0 gateway 192.168.0.10 broadcast 192.168.0.255 bridge_ports eth0 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: Example VPN
              
              Description: Config for Example VPN.
              
              Mode: Bridge
            
              - VPN Configuration[Tab]
              > VPN Realms[Left-Tree]
              > 10:Example VPN(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 the strongSwan client communicates with hosts on other subnets like 192.168.1.0/24, please enter the following router's address. VPN Gateway will forward decrypted packets destinated to other subnets to the router(192.168.0.1).
Internal Gateway's IPv4 Address (optional): 192.168.0.1
              - VPN Configuration[Tab]
              > VPN Realms[Left-Tree]
              > 10:Example VPN(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 br0 as a source interface. 
              
            
              - VPN Configuration[Tab]
              > VPN Realms[Left-Tree]
              > 10:Example VPN(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.
              - VPN Configuration[Tab]
              > VPN Realms[Left-Tree]
              > 10:Example VPN(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.0.20 - 192.168.0.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
              
            
              - VPN Configuration[Tab]
              > VPN Realms[Left-Tree]
              > 10:Example VPN(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:Example VPN(End Host)[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: Any 
              
            
              - VPN Configuration[Tab]
              > VPN Realms[Left-Tree]
              > 10:Example VPN(End Host)[Left-Tree]
              > Peers[Left-Tree] > 
              any[Left-Tree]: 
              Click this tree node and show Peer: any pane.
            
- Click Add Traffic Selector button on My Traffic Selector tab.
- Add My New Traffic Selector[Dialog]: Enter the followings, then click OK button.
              Priority: 10
              
              Address Type: Network
              
              IPv4 Network: 192.168.0.0 / Netmask : 255.255.255.0
              
            
- Similarly, add the following traffic selector if needed.
              Priority: 10
              
              Address Type: Network
              
              IPv4 Network: 192.168.1.0 / Netmask : 255.255.255.0
              
            
- 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.
| # sudo cp remotehost1.example.com.key.pem /etc/ipsec.d/private/ # sudo cp remotehost1.example.com.cert.pem /etc/ipsec.d/certs/ # sudo cp TestCa-cacert.pem /etc/ipsec.d/cacerts/ | 
| /etc/ipsec.conf | 
| # ipsec.conf - strongSwan IPsec configuration file config setup nat_traversal=yes charonstart=yes plutostart=no # Add connections here. # Example VPN connections conn strongSwan-client keyexchange=ikev2 auto=add authby=rsasig left=%defaultroute leftcert=remotehost1.example.com.cert.pem right=10.0.0.1 rightid=@gateway1.example.com leftsourceip=%config rightsubnet=0.0.0.0/0 #leftdns=%config4 (if needed) | 
| /etc/ipsec.secrets | 
| # /etc/ipsec.secrets - strongSwan IPsec secrets file : RSA remotehost1.example.com.key.pem "naisho" | 
| # sudo ipsec restart # sudo ipsec up strongSwan-client |