On Mon 2008.03.31 at 10:06 -0400, Okan Demirmen wrote: > it seems an update to security/vpnc has been tossed around for a while > now. so, i chose the latest one (from Thomas Schoeller, with comments > from others) and have been running with it for about 2 months now. > confirmed it works on i386 and amd64; my sparc64 is not currently in a > net-location to test functionality, but it compiles. > > - update to 0.5.1 > - adds a sample split vpn script > > one thing i did take out was the work-around for amd64 (-O0). i'm > unsure why that was in there, for i have vpnc running on amd64 without > it. can someone provide the failure details? > > final comments, oks?
i've only gotten one response, that sparc64 works (thanks!). other vpnc users out there? > Index: Makefile > =================================================================== > RCS file: /cvs/ports/security/vpnc/Makefile,v > retrieving revision 1.12 > diff -u -p -r1.12 Makefile > --- Makefile 15 Sep 2007 23:30:01 -0000 1.12 > +++ Makefile 31 Mar 2008 13:58:49 -0000 > @@ -2,8 +2,7 @@ > > COMMENT= client for Cisco 3000 VPN concentrators > > -DISTNAME= vpnc-0.3.3 > -PKGNAME= ${DISTNAME}p1 > +DISTNAME= vpnc-0.5.1 > CATEGORIES= security net > > HOMEPAGE= http://www.unix-ag.uni-kl.de/~massar/vpnc/ > @@ -25,6 +24,7 @@ NO_REGRESS= Yes > do-configure: > @perl -pi -e "s,/etc,${SYSCONFDIR},g" ${WRKSRC}/{README,config.c} > @sed -e "s,%%PREFIX%%,${PREFIX},g" ${FILESDIR}/vpnc.sh > > ${WRKBUILD}/vpnc.sh > + @sed -e "s,%%PREFIX%%,${PREFIX},g" ${FILESDIR}/split.sh > > ${WRKBUILD}/split.sh > > do-install: > ${INSTALL_PROGRAM} ${WRKBUILD}/vpnc ${PREFIX}/sbin > @@ -33,6 +33,7 @@ do-install: > ${INSTALL_DATA_DIR} ${PREFIX}/share/examples/vpnc > ${INSTALL_DATA} ${WRKBUILD}/vpnc.conf ${PREFIX}/share/examples/vpnc > ${INSTALL_DATA} ${WRKBUILD}/vpnc-script ${PREFIX}/share/examples/vpnc > + ${INSTALL_DATA} ${WRKBUILD}/split.sh ${PREFIX}/share/examples/vpnc > ${INSTALL_DATA} ${WRKBUILD}/vpnc.sh ${PREFIX}/share/examples/vpnc > ${INSTALL_MAN} ${WRKBUILD}/vpnc.8 ${PREFIX}/man/man8 > > Index: distinfo > =================================================================== > RCS file: /cvs/ports/security/vpnc/distinfo,v > retrieving revision 1.6 > diff -u -p -r1.6 distinfo > --- distinfo 5 Apr 2007 17:26:10 -0000 1.6 > +++ distinfo 31 Mar 2008 13:58:49 -0000 > @@ -1,5 +1,5 @@ > -MD5 (vpnc-0.3.3.tar.gz) = 51GM/yEyb+frl5W2DCWuag== > -RMD160 (vpnc-0.3.3.tar.gz) = /8sin7jKwY+NbeoOZ/iM7EIPMdo= > -SHA1 (vpnc-0.3.3.tar.gz) = lVWeHFsfS8eNwaC5+V4aLWWoTAo= > -SHA256 (vpnc-0.3.3.tar.gz) = vkqOh7BEy5k0nnHmh5RGc53VN9veE+mexhgX7WdgW9c= > -SIZE (vpnc-0.3.3.tar.gz) = 59939 > +MD5 (vpnc-0.5.1.tar.gz) = eo6U2+lPOaT9ibcuASX2bw== > +RMD160 (vpnc-0.5.1.tar.gz) = dt1aOji9IQnPjh+62F4nYuhImDI= > +SHA1 (vpnc-0.5.1.tar.gz) = 78cdugOqQJRa815LB02Z+SL/f/0= > +SHA256 (vpnc-0.5.1.tar.gz) = 9jZgvQILvmo56OtnrWDFTXGQRsYZimg0Nx0JiUf5ou0= > +SIZE (vpnc-0.5.1.tar.gz) = 91496 > Index: files/split.sh > =================================================================== > RCS file: files/split.sh > diff -N files/split.sh > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ files/split.sh 31 Mar 2008 13:58:49 -0000 > @@ -0,0 +1,19 @@ > +#!/bin/sh > + > +# this effectively disables changes to /etc/resolv.conf > +INTERNAL_IP4_DNS= > + > +# This sets up split networking regardless > +# of the concentrators specifications. > +# You can add as many routes as you want, > +# but you must set the counter $CISCO_SPLIT_INC > +# accordingly > +CISCO_SPLIT_INC=1 > +CISCO_SPLIT_INC_0_ADDR=10.0.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 > + > +. /etc/vpnc/vpnc-script > Index: patches/patch-Makefile > =================================================================== > RCS file: /cvs/ports/security/vpnc/patches/patch-Makefile,v > retrieving revision 1.3 > diff -u -p -r1.3 patch-Makefile > --- patches/patch-Makefile 11 Nov 2005 19:38:07 -0000 1.3 > +++ patches/patch-Makefile 31 Mar 2008 13:58:49 -0000 > @@ -1,16 +1,18 @@ > $OpenBSD: patch-Makefile,v 1.3 2005/11/11 19:38:07 sturm Exp $ > ---- Makefile.orig Sun May 1 22:30:35 2005 > -+++ Makefile Fri Nov 4 00:03:54 2005 > -@@ -22,9 +22,9 @@ ETCDIR=/etc/vpnc > - SBINDIR=$(PREFIX)/sbin > - MANDIR=$(PREFIX)/share/man > +--- Makefile.orig Thu Sep 6 16:05:15 2007 > ++++ Makefile Wed Sep 19 06:05:20 2007 > +@@ -49,12 +49,9 @@ RELEASE_VERSION := $(shell cat VERSION) > + #OPENSSL_GPL_VIOLATION = -DOPENSSL_GPL_VIOLATION > + #OPENSSLLIBS = -lcrypto > > -CC=gcc > --CFLAGS=-W -Wall -O -g '-DVERSION="$(shell cat VERSION)"' $(shell > libgcrypt-config --cflags) > --LDFLAGS=-g $(shell libgcrypt-config --libs) > -+CC?=gcc > -+CFLAGS+=-W -Wall '-DVERSION="$(shell cat VERSION)"' $(shell > libgcrypt-config --cflags) > -+LDFLAGS+=$(shell libgcrypt-config --libs) > +-CFLAGS ?= -O3 -g > +-CFLAGS += -W -Wall -Wmissing-declarations -Wwrite-strings > +-CFLAGS += $(shell libgcrypt-config --cflags) > ++CC ?= gcc > ++CFLAGS += -W -Wall '-DVERSION="$(shell cat VERSION)"' $(shell > libgcrypt-config --cflags) > + CPPFLAGS += -DVERSION=\"$(VERSION)\" $(OPENSSL_GPL_VIOLATION) > +-LDFLAGS ?= -g > + LDFLAGS += $(shell libgcrypt-config --libs) $(OPENSSLLIBS) > > - ifeq ($(shell uname -s), Linux) > - SYSDEP=sysdep-linux.o > + ifeq ($(shell uname -s), SunOS) > Index: patches/patch-tunip_c > =================================================================== > RCS file: patches/patch-tunip_c > diff -N patches/patch-tunip_c > --- patches/patch-tunip_c 11 Nov 2005 19:38:07 -0000 1.3 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,21 +0,0 @@ > -$OpenBSD: patch-tunip_c,v 1.3 2005/11/11 19:38:07 sturm Exp $ > ---- tunip.c.orig Thu May 5 12:25:00 2005 > -+++ tunip.c Fri Nov 4 00:09:30 2005 > -@@ -436,7 +436,7 @@ int update_sa_addr(struct sa_desc *p) > - if (new_addr.sin_addr.s_addr != p->source.sin_addr.s_addr) { > - char addr1[16]; > - p->source.sin_addr = new_addr.sin_addr; > -- strcpy(addr1, inet_ntoa(p->dest.sin_addr)); > -+ strlcpy(addr1, inet_ntoa(p->dest.sin_addr), sizeof(addr1)); > - syslog(LOG_NOTICE, > - "local address for %s is %s", addr1, > inet_ntoa(p->source.sin_addr)); > - return 1; > -@@ -844,7 +844,7 @@ static void vpnc_main_loop(struct peer_d > - || from.sin_addr.s_addr != > peer->remote_sa->dest.sin_addr.s_addr) { > - /* remote end changed address */ > - char addr1[16]; > -- strcpy(addr1, > inet_ntoa(peer->remote_sa->dest.sin_addr)); > -+ strlcpy(addr1, > inet_ntoa(peer->remote_sa->dest.sin_addr), sizeof(addr1)); > - syslog(LOG_NOTICE, > - "spi %u: remote address changed from %s > to %s", > - peer->remote_sa->spi, addr1, > inet_ntoa(from.sin_addr)); > Index: patches/patch-vpnc-script > =================================================================== > RCS file: /cvs/ports/security/vpnc/patches/patch-vpnc-script,v > retrieving revision 1.1 > diff -u -p -r1.1 patch-vpnc-script > --- patches/patch-vpnc-script 11 Nov 2005 19:38:07 -0000 1.1 > +++ patches/patch-vpnc-script 31 Mar 2008 13:58:49 -0000 > @@ -1,64 +1,26 @@ > $OpenBSD: patch-vpnc-script,v 1.1 2005/11/11 19:38:07 sturm Exp $ > ---- vpnc-script.orig Thu Nov 3 23:39:23 2005 > -+++ vpnc-script Thu Nov 3 23:51:02 2005 > -@@ -70,7 +70,7 @@ do_ifconfig() { > - ifconfig "$TUNDEV" inet "$INTERNAL_IP4_ADDRESS" $ifconfig_syntax_ptp > "$INTERNAL_IP4_ADDRESS" netmask 255.255.255.255 mtu 1412 up > - } > +--- vpnc-script.orig Thu Sep 6 22:05:15 2007 > ++++ vpnc-script Thu Sep 13 21:53:21 2007 > +@@ -108,7 +108,7 @@ destroy_tun_device() { > + > + # =========== route handling ==================================== > > -if [ -n "$IPROUTE" ]; then > +if [ -x "$IPROUTE" ]; then > fix_ip_get_output () { > - sed 's/cache//;s/metric[0-9]\+ [0-9]\+//g' > - } > -@@ -117,7 +117,11 @@ if [ -n "$IPROUTE" ]; then > + sed 's/cache//;s/metric \?[0-9]\+ [0-9]\+//g;s/hoplimit > [0-9]\+//g' > } > - else > - get_default_gw() { > -- netstat -r -n | grep '^0.0.0.0' | awk '{print $2}' > -+ if [ "$OS" = "OpenBSD" ]; then > -+ netstat -r -n | grep '^default' | awk '{print $2}' > -+ else > -+ netstat -r -n | grep '^0.0.0.0' | awk '{print $2}' > -+ fi > - } > - > - set_vpngateway_route() { > -@@ -215,15 +219,21 @@ do_connect() { > - echo "$CISCO_BANNER" | while read LINE ; do echo "|" "$LINE" ; > done > - echo > - fi > -- > -+ > -+ if [ ! -d /var/run/vpnc ]; then > -+ mkdir /var/run/vpnc || exit $? > -+ fi > -+ > - do_ifconfig > - set_vpngateway_route > - if [ -n "$CISCO_SPLIT_INC" ]; then > -- for ((i = 0 ; i < CISCO_SPLIT_INC ; i++ )) ; do > -+ i=0 > -+ while [ $i -lt $CISCO_SPLIT_INC ]; do > - eval NETWORK="\${CISCO_SPLIT_INC_${i}_ADDR}" > - eval NETMASK="\${CISCO_SPLIT_INC_${i}_MASK}" > - eval NETMASKLEN="\${CISCO_SPLIT_INC_${i}_MASKLEN}" > - set_network_route "$NETWORK" "$NETMASK" "$NETMASKLEN" > -+ i=`expr $i + 1` > - done > - for i in $INTERNAL_IP4_DNS ; do > - set_network_route "$i" "255.255.255.255" "32" > -@@ -239,11 +249,13 @@ do_connect() { > - > - do_disconnect() { > - if [ -n "$CISCO_SPLIT_INC" ]; then > -- for ((i = 0 ; i < CISCO_SPLIT_INC ; i++ )) ; do > -+ i=0 > -+ while [ $i -lt $CISCO_SPLIT_INC ]; do > - eval NETWORK="\${CISCO_SPLIT_INC_${i}_ADDR}" > - eval NETMASK="\${CISCO_SPLIT_INC_${i}_MASK}" > - eval NETMASKLEN="\${CISCO_SPLIT_INC_${i}_MASKLEN}" > - del_network_route "$NETWORK" "$NETMASK" "$NETMASKLEN" > -+ i=`expr $i + 1` > - done > - for i in $INTERNAL_IP4_DNS ; do > - del_network_route "$i" "255.255.255.255" "32" > +@@ -195,6 +195,13 @@ else # use route command > + case "$OS" in > + Linux|NetBSD) # and probably others... > + # routes are deleted automatically on device shutdown > ++ return > ++ ;; > ++ OpenBSD) > ++ # delete only routes that are present > ++ if [ `route -n get $1|grep $2|wc -l` -ne 0 ]; then > ++ route $route_syntax_del -net "$NETWORK" > $route_syntax_netmask "$NETMASK" $route_syntax_gw "$INTERNAL_IP4_ADDRESS" > ++ fi > + return > + ;; > + esac > Index: patches/patch-vpnc_c > =================================================================== > RCS file: /cvs/ports/security/vpnc/patches/patch-vpnc_c,v > retrieving revision 1.2 > diff -u -p -r1.2 patch-vpnc_c > --- patches/patch-vpnc_c 11 Nov 2005 19:38:07 -0000 1.2 > +++ patches/patch-vpnc_c 31 Mar 2008 13:58:49 -0000 > @@ -1,7 +1,7 @@ > $OpenBSD: patch-vpnc_c,v 1.2 2005/11/11 19:38:07 sturm Exp $ > ---- vpnc.c.orig Fri Nov 4 00:09:49 2005 > -+++ vpnc.c Fri Nov 4 00:11:03 2005 > -@@ -196,10 +196,11 @@ static void addenv(const void *name, con > +--- vpnc.c.orig Mon Sep 10 15:39:48 2007 > ++++ vpnc.c Wed Sep 12 16:47:27 2007 > +@@ -159,10 +159,11 @@ static void addenv(const void *name, const char *value > > oldval = getenv(name); > if (oldval != NULL) { > Index: patches/patch-vpnc_conf > =================================================================== > RCS file: patches/patch-vpnc_conf > diff -N patches/patch-vpnc_conf > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-vpnc_conf 31 Mar 2008 13:58:49 -0000 > @@ -0,0 +1,10 @@ > +$OpenBSD$ > +--- vpnc.conf.orig Thu Sep 13 22:40:00 2007 > ++++ vpnc.conf Thu Sep 13 22:39:04 2007 > +@@ -4,3 +4,6 @@ IPSec secret <group-psk> > + IKE Authmode hybrid > + Xauth username <username> > + Xauth password <password> > ++ > ++# run script to manipulate dns and routing settings > ++#Script /etc/vpnc/split.sh > Index: pkg/PLIST > =================================================================== > RCS file: /cvs/ports/security/vpnc/pkg/PLIST,v > retrieving revision 1.5 > diff -u -p -r1.5 PLIST > --- pkg/PLIST 29 Jun 2006 17:26:15 -0000 1.5 > +++ pkg/PLIST 31 Mar 2008 13:58:49 -0000 > @@ -5,6 +5,10 @@ share/doc/vpnc/ > share/doc/vpnc/README > share/examples/vpnc/ > @sample ${SYSCONFDIR}/vpnc/ > +share/examples/vpnc/split.sh > [EMAIL PROTECTED] 0755 > [EMAIL PROTECTED] ${SYSCONFDIR}/vpnc/split.sh > [EMAIL PROTECTED] > share/examples/vpnc/vpnc-script > @mode 0755 > @sample ${SYSCONFDIR}/vpnc/vpnc-script >