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 |