Do niedawna na moim telefonie VPN’ami były: PPTP lub L2TP - oba niespecjalnie mi się podobały. Ale od wersji 4-tej pojawiły się dwa nowe tryby: IPSec Xauth PSK i IPSec Xauth RSA. W pierwszym autoryzacja wykorzystuje login i hasło, w drugim certyfikaty.
Tryb IPSec Xauth PSK jest bardzo wygodny bo łatwo można połączyć go z zewnętrznymi mechanizmami uwierzytelniającymi np. LDAP, Active Directory, itp.
Pokażę jak skonfigurować swojego Fortigate’a by umożliwić połączenie z telefonów i tabletów na Androidzie 4.x do “Intranetu”. Większość konfiguracji można przeprowadzić tylko w trybie CLI - zakładam że wiesz jak to zrobić. To co wygodniej można zrobić w trybie WWW to głównie tworzenie reguł dostępu na zaporze.
P.S. Teoretycznie powinno to też zadziałać na IPhone’ach/IPad’ach itp., przy czym udało mi się to zestawić na 4GS ale na 5-ce już nie - nie miałem tych aparatów na tyle długo by dokładniej to zbadać.
Na początek konfigurujemy fazę pierwszą - ja lubię interface mode ale oczywiście będzie to działać również w trybie policy (trzeba będzie nieco polecenia zmienić).
config vpn ipsec phase1-interface
edit "vpn-android"
set type dynamic
set interface "port1"
set dhgrp 2
set peertype one
set xauthtype auto
set mode aggressive
set mode-cfg enable
set proposal aes128-sha1 aes128-md5 3des-sha1
set negotiate-timeout 15
set peerid "jakis-mobilny-identyfikator"
set authusrgrp "grupa-ludzikow"
set psksecret haslo
set unity-support enable
set ipv4-start-ip 172.16.0.5
set ipv4-end-ip 172.16.0.100
set ipv4-netmastk 255.255.255.0
set ipv4-dns-server1 172.16.0.1
set ipv4-dns-server2 8.8.8.8
next
end
Jedna ciekawostka - opcja unity-support domyślnie jest ustawiana na enable i proponuję ją tak zostawić - dzięki temu ta sama konfiguracja będzie działać na urządzeniach z iOS’e i OS X, wystarczy skonfigurować VPN jako Cisco 😃
No to faza druga:
config vpn ipsec phase2-interface
edit "mobile-vpn-p2"
set keepalive enable
set pfs disable
set phase1name "vpn-android"
set proposal aes128-sha1 aes128-md5 3des-sha1
set keylifeseconds 3600
next
end
Kilka ustawień na interfejsie:
config system interface
edit "vpn-android"
set ip 172.16.0.1 255.255.255.255
set allowaccess ping
set type tunnel
set remote-ip 139.x.x.10
set interface "port1"
next
end
Włączymy sobie serwer DNS na interfejsie VPN:
config system dns-server
edit "vpn-android"
next
end
No to teraz trzeba utworzyć co najmniej jedną regułę na zaporze zezwalającą na dostęp z interfejsu vpn-android (z adresów tej sieci) do jakiejś sieci intranetowej (np. wewnętrznego serwera WWW), na odpowiednich portach.
Ponadto jeśli chcemy móc korzystać z cache DNS’a na interfejsie vpn-android to musimy umożliwić do niego dostęp tworząc regułę z interfejsu vpn-android (z adresów przydzielanych przez mode-cfg) do vpn-android (przynajmniej do DNS’a - 172.16.0.1).
Jeżeli chcemy by urządzenia mobilne mogły łączyć się do zewnętrznych usług przez tunel VPN (co w niektórych przypadkach może być bardzo cenne) to musimy też utworzyć regułę z interfejsu vpn-android do któregoś z interfejsów WAN’owskich.
http://kb.fortinet.com/kb/viewContent.do?externalId=FD31619&sliceId=1