I’ve compiled VPNC and the requisite TUN/TAP driver for OpenSolaris so that I can access my work network from home. Kazuyoshi’s driver adds TAP functionality to the original TUN driver which hasn’t been updated in nine years. It’s a real testament to the stability of the OpenSolaris kernel ABI that the module still compiles, loads, and works properly.
All of the software can be installed from my repository onto build 111 or higher:
$ pfexec pkg set-publisher -O http://pkg.thestaticvoid.com/ thestaticvoid $ pfexec pkg install vpnc
The tun driver should load automatically and create /dev/tun. Now create a VPN profile configuration in /etc/vpnc/. The configuration contains a lot of private information so I’m not going to share mine here, but /etc/vpnc/default.conf is a good start.
One thing I do like to do is make sure only certain subnets are tunneled through the VPN. That way connecting to the VPN doesn’t interrupt any connections that are already established (for example, AIM). To do that I create a script /etc/vpnc/gwu-networks-script containing
# Only tunnel GWU networks through VPN
CISCO_SPLIT_INC=2
CISCO_SPLIT_INC_0_ADDR=161.253.0.0
CISCO_SPLIT_INC_0_MASK=255.255.0.0
CISCO_SPLIT_INC_0_MASKLEN=16
CISCO_SPLIT_INC_0_PROTOCOL=0
CISCO_SPLIT_INC_0_SPORT=0
CISCO_SPLIT_INC_0_DPORT=0
CISCO_SPLIT_INC_1_ADDR=128.164.0.0
CISCO_SPLIT_INC_1_MASK=255.255.0.0
CISCO_SPLIT_INC_1_MASKLEN=16
CISCO_SPLIT_INC_1_PROTOCOL=0
CISCO_SPLIT_INC_1_SPORT=0
CISCO_SPLIT_INC_1_DPORT=0
. /etc/vpnc/vpnc-script
then add Script /etc/vpnc/gwu-networks-script to the end of my VPN profile configuration.
Connecting to the VPN you should see messages like:
$ pfexec vpnc gwu Enter password for jameslee@<no>: which: no ip in (/sbin:/usr/sbin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin) which: no ip in (/sbin:/usr/sbin:/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin) add net 128.164.<no>: gateway 128.164.<no> add host 128.164.<no>: gateway 161.253.<no> add net 161.253.0.0: gateway 128.164.<no> add net 128.164.0.0: gateway 128.164.<no> add net 128.164.<no>: gateway 128.164.<no> add net 128.164.<no>: gateway 128.164.<no> VPNC started in background (pid: 594)...
The vpnc-script will modify your /etc/resolv.conf and routing tables so be sure to run vpnc-disconnect when you are done with the connection to restore the original configuration.
Thanks to the good folks at OpenConnect for a well-maintained vpnc-script which works on Solaris. Spec files for these packages are available from my GitHub repository if you want to roll your own.
Thanks so much! I had already compiled and installed vpnc but I couldn’t find a vpnc-script that actually worked until I came here.
Thanks 🙂
I tried to install vpnc (and tun/tap) on my laptop running Oracle Solaris 11 11/11 but I encountered some problems related to ownership, can you modify the packages?
Many many thanks in advance …..
Preparing…
Gathering package information
Error:
The requested change to the system attempts to install multiple actions
for dir ‘usr/share/man/man8’ with conflicting attributes:
1 package delivers ‘dir group=sys mode=0755 owner=root path=usr/share/man/man8’:
pkg://thestaticvoid/vpnc@0.5.3.457,5.11-0.134:20110411T232255Z
10 packages deliver ‘dir group=bin mode=0755 owner=root path=usr/share/man/man8’, including:
pkg://solaris/data/sgml-common@0.6.3,5.11-0.175.0.5.0.4.0:20120306T221345Z
pkg://solaris/desktop/administration/gparted@0.4.5,5.11-0.175.0.0.0.0.0:20110927T082039Z
pkg://solaris/library/security/trousers@0.3.6,5.11-0.175.0.0.0.2.537:20111019T105635Z
pkg://solaris/media/cdrtools@3.0,5.11-0.175.0.0.0.2.537:20111019T110020Z
pkg://solaris/print/cups@1.4.5,5.11-0.175.0.0.0.2.537:20111019T110834Z
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.
The requested change to the system attempts to install multiple actions
for dir ‘usr/share/man/man1’ with conflicting attributes:
1 package delivers ‘dir group=sys mode=0755 owner=root path=usr/share/man/man1’:
pkg://thestaticvoid/vpnc@0.5.3.457,5.11-0.134:20110411T232255Z
192 packages deliver ‘dir group=bin mode=0755 owner=root path=usr/share/man/man1’, including:
pkg://solaris/archiver/gnu-tar@1.26,5.11-0.175.0.0.0.2.537:20111019T091116Z
pkg://solaris/audio/audio-utilities@0.5.11,5.11-0.175.0.0.0.2.1:20111019T052755Z
pkg://solaris/codec/flac@1.2.1,5.11-0.175.0.0.0.0.0:20110927T080937Z
pkg://solaris/codec/speex@1.2,5.11-0.175.0.0.0.0.0:20110927T081129Z
pkg://solaris/communication/im/pidgin@2.10.0,5.11-0.175.0.0.0.0.0:20110927T081624Z
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.
The requested change to the system attempts to install multiple actions
for dir ‘usr/bin’ with conflicting attributes:
1 package delivers ‘dir group=sys mode=0755 owner=root path=usr/bin’:
pkg://thestaticvoid/vpnc@0.5.3.457,5.11-0.134:20110411T232255Z
233 packages deliver ‘dir group=bin mode=0755 owner=root path=usr/bin’, including:
pkg://solaris/archiver/gnu-tar@1.26,5.11-0.175.0.0.0.2.537:20111019T091116Z
pkg://solaris/audio/audio-utilities@0.5.11,5.11-0.175.0.0.0.2.1:20111019T052755Z
pkg://solaris/codec/flac@1.2.1,5.11-0.175.0.0.0.0.0:20110927T080937Z
pkg://solaris/codec/speex@1.2,5.11-0.175.0.0.0.0.0:20110927T081129Z
pkg://solaris/communication/im/pidgin@2.10.0,5.11-0.175.0.0.0.0.0:20110927T081624Z
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.
The requested change to the system attempts to install multiple actions
for dir ‘usr/share/man’ with conflicting attributes:
1 package delivers ‘dir group=sys mode=0755 owner=root path=usr/share/man’:
pkg://thestaticvoid/vpnc@0.5.3.457,5.11-0.134:20110411T232255Z
207 packages deliver ‘dir group=bin mode=0755 owner=root path=usr/share/man’, including:
pkg://solaris/archiver/gnu-tar@1.26,5.11-0.175.0.0.0.2.537:20111019T091116Z
pkg://solaris/codec/flac@1.2.1,5.11-0.175.0.0.0.0.0:20110927T080937Z
pkg://solaris/codec/libtheora@1.1.1,5.11-0.175.0.0.0.0.0:20110927T081013Z
pkg://solaris/codec/ogg-vorbis@2.30.0,5.11-0.175.0.0.0.0.0:20110927T081051Z
pkg://solaris/codec/speex@1.2,5.11-0.175.0.0.0.0.0:20110927T081129Z
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.
The requested change to the system attempts to install multiple actions
for dir ‘usr/sbin’ with conflicting attributes:
1 package delivers ‘dir group=sys mode=0755 owner=root path=usr/sbin’:
pkg://thestaticvoid/vpnc@0.5.3.457,5.11-0.134:20110411T232255Z
63 packages deliver ‘dir group=bin mode=0755 owner=root path=usr/sbin’, including:
pkg://solaris/crypto/gnupg@2.0.17,5.11-0.175.0.0.0.2.537:20111019T091450Z
pkg://solaris/desktop/administration/gparted@0.4.5,5.11-0.175.0.0.0.0.0:20110927T082039Z
pkg://solaris/diagnostic/cpu-counters@0.5.11,5.11-0.175.0.3.0.1.1:20111208T161340Z
pkg://solaris/diagnostic/snoop@0.5.11,5.11-0.175.0.5.0.2.1:20120224T171524Z
pkg://solaris/diagnostic/spray@0.5.11,5.11-0.175.0.0.0.2.1:20111019T054309Z
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.
It is exactly the same as Massimiliano,
Can you help me with this …
root@laptop-jb:~# pkg install vpnc
Creating Plan |
pkg install: The requested change to the system attempts to install multiple actions
for dir ‘usr/share/man/man8’ with conflicting attributes:
1 package delivers ‘dir group=sys mode=0755 owner=root path=usr/share/man/man8’:
pkg://thestaticvoid/vpnc@0.5.3.457,5.11-0.134:20110411T232255Z
11 packages deliver ‘dir group=bin mode=0755 owner=root path=usr/share/man/man8’, including:
pkg://solaris/data/sgml-common@0.6.3,5.11-0.175.0.5.0.4.0:20120306T221345Z
pkg://solaris/desktop/administration/gparted@0.4.5,5.11-0.175.0.0.0.0.0:20110927T082039Z
pkg://solaris/library/security/trousers@0.3.6,5.11-0.175.0.0.0.2.537:20111019T105635Z
pkg://solaris/media/cdrtools@3.0,5.11-0.175.0.0.0.2.537:20111019T110020Z
pkg://solaris/print/cups@1.4.5,5.11-0.175.0.0.0.2.537:20111019T110834Z
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.
The requested change to the system attempts to install multiple actions
for dir ‘usr/share/man/man1’ with conflicting attributes:
1 package delivers ‘dir group=sys mode=0755 owner=root path=usr/share/man/man1’:
pkg://thestaticvoid/vpnc@0.5.3.457,5.11-0.134:20110411T232255Z
199 packages deliver ‘dir group=bin mode=0755 owner=root path=usr/share/man/man1’, including:
pkg://solaris/archiver/gnu-tar@1.26,5.11-0.175.0.0.0.2.537:20111019T091116Z
pkg://solaris/audio/audio-utilities@0.5.11,5.11-0.175.0.0.0.2.1:20111019T052755Z
pkg://solaris/codec/flac@1.2.1,5.11-0.175.0.0.0.0.0:20110927T080937Z
pkg://solaris/codec/speex@1.2,5.11-0.175.0.0.0.0.0:20110927T081129Z
pkg://solaris/communication/im/pidgin@2.10.0,5.11-0.175.0.0.0.0.0:20110927T081624Z
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.
The requested change to the system attempts to install multiple actions
for dir ‘usr/bin’ with conflicting attributes:
1 package delivers ‘dir group=sys mode=0755 owner=root path=usr/bin’:
pkg://thestaticvoid/vpnc@0.5.3.457,5.11-0.134:20110411T232255Z
238 packages deliver ‘dir group=bin mode=0755 owner=root path=usr/bin’, including:
pkg://solaris/archiver/gnu-tar@1.26,5.11-0.175.0.0.0.2.537:20111019T091116Z
pkg://solaris/audio/audio-utilities@0.5.11,5.11-0.175.0.0.0.2.1:20111019T052755Z
pkg://solaris/codec/flac@1.2.1,5.11-0.175.0.0.0.0.0:20110927T080937Z
pkg://solaris/codec/speex@1.2,5.11-0.175.0.0.0.0.0:20110927T081129Z
pkg://solaris/communication/im/pidgin@2.10.0,5.11-0.175.0.0.0.0.0:20110927T081624Z
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.
The requested change to the system attempts to install multiple actions
for dir ‘usr/share/man’ with conflicting attributes:
1 package delivers ‘dir group=sys mode=0755 owner=root path=usr/share/man’:
pkg://thestaticvoid/vpnc@0.5.3.457,5.11-0.134:20110411T232255Z
214 packages deliver ‘dir group=bin mode=0755 owner=root path=usr/share/man’, including:
pkg://solaris/archiver/gnu-tar@1.26,5.11-0.175.0.0.0.2.537:20111019T091116Z
pkg://solaris/codec/flac@1.2.1,5.11-0.175.0.0.0.0.0:20110927T080937Z
pkg://solaris/codec/libtheora@1.1.1,5.11-0.175.0.0.0.0.0:20110927T081013Z
pkg://solaris/codec/ogg-vorbis@2.30.0,5.11-0.175.0.8.0.2.0:20120519T001723Z
pkg://solaris/codec/speex@1.2,5.11-0.175.0.0.0.0.0:20110927T081129Z
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.
The requested change to the system attempts to install multiple actions
for dir ‘usr/sbin’ with conflicting attributes:
1 package delivers ‘dir group=sys mode=0755 owner=root path=usr/sbin’:
pkg://thestaticvoid/vpnc@0.5.3.457,5.11-0.134:20110411T232255Z
66 packages deliver ‘dir group=bin mode=0755 owner=root path=usr/sbin’, including:
pkg://solaris/crypto/gnupg@2.0.17,5.11-0.175.0.0.0.2.537:20111019T091450Z
pkg://solaris/desktop/administration/gparted@0.4.5,5.11-0.175.0.0.0.0.0:20110927T082039Z
pkg://solaris/diagnostic/cpu-counters@0.5.11,5.11-0.175.0.9.0.5.1:20120705T180853Z
pkg://solaris/diagnostic/snoop@0.5.11,5.11-0.175.0.5.0.2.1:20120224T171524Z
pkg://solaris/diagnostic/spray@0.5.11,5.11-0.175.0.0.0.2.1:20111019T054309Z
These packages may not be installed together. Any non-conflicting set may
be, or the packages must be corrected before they can be installed.