6 February 2010

Replacement for NetScreen Remote VPN client

... или разделям ли се с 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 преди да го пусна в употреба в корпоративна среда.

2 comments:

  1. Здравейте,

    поздравления за добрата статия.
    имам следния проблем с този VPN клиент. След като се инсталира, IKE демона (iked.exe) стои постоянно на 50% CPU Load. Дали сте срещали подобен проблем и ако да има ли някакво решение.

    ReplyDelete
  2. ... в добавка:
    OS: Windows 7 32bit
    VPN Server: OpenSWAN

    ReplyDelete

Note: only a member of this blog may post a comment.