OpenSWAN — полноценная реализация IPsec для ядер Linux версий 2.0, 2.2, 2.4, 2.6 и выше.
OpenSWAN начал разрабатываться как форк прекратившего в настоящее своё существование проекта FreeS/WAN (Free Secure Wide-Area Networking), релизы продолжают выпускаться под свободной GNU General Public License. В отличие от проекта FreeS/WAN, OpenSWAN разрабатывается не только специально под операционную систему GNU/Linux.
Топология
Топология выглядит следующим образом:
host 1 ------------------- vpn-gw 1 <----------------------------> vpn-gw 2 ------------------ host 2 | | | | <--192.168.50.0/24--> 10.15.109.36 10.15.109.5 <--192.168.1.0/24-->
Установка и настройка
После настройки OpenSWAN хосты (host1) из подсети за шлюзом vpn-gw1 будут доступны хостам (host2) из подсети за шлюзом vpn-gw2 на другой стороне. Обратное обращение также работает, полностью работоспособное объединение двух сетей за двумя VPN-gateways.
Установка пакета
Устанавливаем пакет OpenSWAN
aptitude install openswan
Теперь, после установки OpenSWAN, у нас должно присутствовать в операционной системе два основных файла:
ls -la /etc/ | grep ipsec
- нас интересуют
nano /etc/ipsec.secrets
- и
nano /etc/ipsec.conf
- On both ends, check you have a raw RSA key using: ipsec showhostkey --left
- If not, run "ipsec newhostkey --output /etc/ipsec.secrets" on each host missing a key.
Edit ipsec.conf for vpn-gw 1 & vpn-gw 2 (same exact stuff):
conn vpn authby=rsasigkey left=10.15.109.36 leftsubnet=192.168.50.0/24 leftsourceip=192.168.50.X leftnexthop=10.15.109.5 leftid=@vpngw1 leftrsasigkey=0sAQNXXXXXX right=10.15.109.5 rightsubnet=192.168.1.0/24 rightsourceip=192.168.1.X rightnexthop=10.15.109.36 rightid=@vpngw2 rightrsasigkey=0sAQNXXXXX
- To get the proper rsasigkey values, use ipsec showhostkey. On left (vpgw1) run: ipsec showhostkey --left On right (vpngw2) run: ipsec showhostkey --right The left/rightsourceip are the local internal IP's of the vpngw's that are part of the subnet tunnel
- Restart ipsec:
/etc/init.d/ipsec restart
- Now you can ping from host 1 to host 2!