... или разделям ли се с Juniper NetScreenRemote VPN client?
От скоро преминах към Windows 7 Ultimate 64-bit и останах разочарован като установих, че
Juniper няма да разработват своя IPSec VPN клиент - NetScreenRemote (всъщност е на
SafeNet) за 64-bit платформи и изцяло за Windows 7. Продажбата на 32-bit версии също е преустановена. За повече информация
тук.
Освен разочарован се чувствам и частично прецакан, защото като добросъвестен клиент имам закупен пакетен лиценз за 100 потребители (разбира се по-стара версия, когато перспективите за 64-bit OS на клиентски машини бяха далечни, но все пак таях скрити надежди за безплатен или неболезнен ъпгрейд към по-нови версии). Но с големите не може да се бориш и затова реших да намеря алтернативно, безплатно и работещо решение на проблема.
Shrew VPN е безплатен IPSec VPN клиент за отдалечен достъп. В зародиш е бил проектиран за осигуряване на IPSec tunnel между windows хост и opensource vpn gateway - OpenSWAN, FreeSWAN или StrongSWAN. Впоследствие поддръжката му е разширена за Linux и BSD, както и за 64-bit. Предлага доста екстри характерни за комерсиалните продукти, което го прави много подходящ и съвместим с продукти на: Cisco, Juniper, Checkpoint, Fortinet, Netgear, Linksys и много други.
Ще разгледам в детайли инсталация върху Windows 7 Ultimate 64-bit и необходимата конфигурация при настройка на ShrewVPN Client v.2.1.5 към Juniper SSG140 firmware 6.2.0r2.0 (тестван и с SSG5 firmware 5.4.0r6)
Juniper SSG140 конфигурация - само CLI config, че не ми се занимава със скриин шотове на WebUI, а и за заинтересуваните от проблема предполагам не е проблем.
1. Създаваме vpn gateway
- тъй като използвам XAuth - първо създавам универсален IKE потребител за пробата - shrew
set user SHREW
set user SHREW type ike
set user SHREW ike-id fqdn shrew.domain.bg
set user SHREW share-limit 10
set user SHREW enable
- създавам Local Key Group и дабавям SHREW user, която после ще закачим към vpn-a
set user-group SHREW_GROUP
set user-group SHREW_GROUP user SHREW
- създавам Auto Key Advanced Gateway
set ike gateway SHREW dialup SHREW_GROUP Aggr local-id shrewvpn.domain.bg outgoing-interface eth0/2 preshare my_password proposal pre-g2-aes128-sha pre-g2-aes128-md5 pre-g2-3des-sha pre-g2-3des-md5
set ike gateway SHREW dpd-liveness interval 30
set ike gateway SHREW nat-traversal keepalive-frequency 5
NOTE: Shared IKE ID dial-up group configurated. Please note XAUTH server must be turned on as well.
set ike gateway SHREW xauth
- създавамe vpn-a:
set vpn SHREW-VPN gateway SHREW no-replay tunnel idletime 0 proposal nopfs-esp-3des-sha nopfs-esp-3des-md5 nopfs-esp-aes128-sha nopfs-esp-aes128-md5
- създавамe XAuth IP Pool, ако не е създаден по-рано, аз използвам съществуващия:
set ippool Dialup_users 192.168.200.xxx 192.168.200.xxx
set xauth default ippool Dialup_users
set xauth default dns1 192.168.xxx.xxx
set xauth default dns2 192.168.xxx.xxx
set xauth default wins1 192.168.xxx.xxx
- създавам IPSec Policy
set policy name SHREW-VPN from Untrust to Trust Dial-Up VPN 192.168.xxx.0/24 ANY tunnel vpn SHREW-VPN
- създавам XAuth user:
set user shrew.test
set user shrew.test type xauth
set user shrew.test remote ippool Dialup_users
set user shrew.test password my_strong_pass
Инсталация и настройка на клиента:
1. Изтегляме продукта от тук - съответно последната ver.2.1.5 (2.57 MB)
2. Инсталираме с последователността - Next > Next > INSTALL ,като за целта е нужно да сме потребител с административни права. За последващо използване на клиента от други потребители това не е нужно.
3. Стартираме ShrewSoft VPN - Access Manager
4. Създаваме нов профил чрез Add.
5. Client - Firewall Options
NAT Traversal е ясно защо конфигурираме, но интересния момент е поддръжката на IKE Fragmentation конкретно в ShrewSoft VPN client. Използвайки IPSec, знаем че пакета се енкапсулира с нов хедър и така MTU може да набъбне, особено използвайки Cerificate Authentication и пиърите обменят сертификати. Тогава именно чрез IKE fragmentation става възможно пренасянето на пакети през NAT-ващи рутери или през такива конфигурирани да режектват по-големи пакети. Затова в по-горната картинка MTU e сетнато на 1380!
6. Name resolution - WINS/DNS
7. Authentication - Local Identity
8. Authentication - Remote Identity
9. Authentication - Credentials
10. Phase 1
11. Phase 2
12. Policy - указваме отсрещната мрежа, която ще достъпваме, така както е зададена в политиката на VPN-a в SSG140.
13. Connect - Въвеждаме име и парола
14. Резултатът / Connection Status
и виждаме виртуалния адаптер с очакваните настройки:
15. Бележки
На пръв поглед прави приятно впечатление ресурсите на паметта, които използва за разлика от NSR.
Много удобна е възможността за import / export на конфигурационния файл. Това улеснява дистрибутиране на настройките на VPN клиента към крайни потребители без излишно усложняване на живота им.
Липсва опция, конфигурацията да бъде заключвана, правейки аналогия с NetScreenRemote, което беше допълнителна екстра за сигурността.
Функция AutoConnect се постига, чрез шорткът на ipsecc.exe със следните command line параметри:
ipsecc -r "name" [-u ][-p ][-a]
-r - Connection name с разширението .vpn в кавички
-u connection user name
-p connection user password
-a auto connect
или в моя случай имам следното в Target line на шорткъта:
"C:\Program Files\ShrewSoft\VPN Client\ipsecc.exe" -r "shrew_test.vpn" -u shrew.test -p shrew.test -a
След което шорткъта отива в StartUp.
Дали създава проблеми при съжителство с други VPN клиенти и по-конкретно с NSR е рано да ви кажа. В последствие ще направя тестове с други версии на Windows преди да го пусна в употреба в корпоративна среда.