Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 May 1999 04:59:59 -0700 (PDT)
From:      shipley@dis.org
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/11557: slush - SSL remote shell
Message-ID:  <199905071159.EAA04935@dipshit.dis.org>

next in thread | raw e-mail | index | archive | help

>Number:         11557
>Category:       ports
>Synopsis:       port of slush 0.1.0
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri May  7 05:10:01 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Peter Shipley
>Release:        FreeBSD 3.1-RELEASE i386
>Organization:
Dis.Org
>Environment:

	FreeBSD :-)

>Description:
	
    slush                  SSL remote shell

    slush is a simple telnet-like application which communicates over a 
    secure SSL channel. It uses X509 certificates for authentication and
    can be compiled with tcp wrappers support (service name "slushd").

    slush is *alpha* software. Use it at your own risk.

>How-To-Repeat:

	NA

>Fix:
	



# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	slush
#	slush/CVS
#	slush/CVS/Root
#	slush/CVS/Repository
#	slush/CVS/Entries
#	slush/files
#	slush/files/CVS
#	slush/files/CVS/Root
#	slush/files/CVS/Repository
#	slush/files/CVS/Entries
#	slush/files/md5
#	slush/pkg
#	slush/pkg/CVS
#	slush/pkg/CVS/Root
#	slush/pkg/CVS/Repository
#	slush/pkg/CVS/Entries
#	slush/pkg/COMMENT
#	slush/pkg/DESCR
#	slush/pkg/PLIST
#	slush/Makefile
#	slush/patches
#	slush/patches/patch-aa
#	slush/patches/patch-ab
#	slush/patches/patch-ac
#
echo c - slush
mkdir -p slush > /dev/null 2>&1
echo c - slush/CVS
mkdir -p slush/CVS > /dev/null 2>&1
echo x - slush/CVS/Root
sed 's/^X//' >slush/CVS/Root << 'END-of-slush/CVS/Root'
X/home/ncvs
END-of-slush/CVS/Root
echo x - slush/CVS/Repository
sed 's/^X//' >slush/CVS/Repository << 'END-of-slush/CVS/Repository'
X/home/ncvs/ports/net/libnet
END-of-slush/CVS/Repository
echo x - slush/CVS/Entries
sed 's/^X//' >slush/CVS/Entries << 'END-of-slush/CVS/Entries'
X/Makefile/1.4/Sat Oct 10 03:23:40 1998//
XD/files////
XD/patches////
XD/pkg////
END-of-slush/CVS/Entries
echo c - slush/files
mkdir -p slush/files > /dev/null 2>&1
echo c - slush/files/CVS
mkdir -p slush/files/CVS > /dev/null 2>&1
echo x - slush/files/CVS/Root
sed 's/^X//' >slush/files/CVS/Root << 'END-of-slush/files/CVS/Root'
X/home/ncvs
END-of-slush/files/CVS/Root
echo x - slush/files/CVS/Repository
sed 's/^X//' >slush/files/CVS/Repository << 'END-of-slush/files/CVS/Repository'
X/home/ncvs/ports/net/libnet/files
END-of-slush/files/CVS/Repository
echo x - slush/files/CVS/Entries
sed 's/^X//' >slush/files/CVS/Entries << 'END-of-slush/files/CVS/Entries'
X/md5/1.1.1.1/Fri Feb  7 23:54:06 1997//
XD
END-of-slush/files/CVS/Entries
echo x - slush/files/md5
sed 's/^X//' >slush/files/md5 << 'END-of-slush/files/md5'
XMD5 (slush-0_1_0_tar.gz) = a2a83e760632e2a0c12a7fdb29603ec3
END-of-slush/files/md5
echo c - slush/pkg
mkdir -p slush/pkg > /dev/null 2>&1
echo c - slush/pkg/CVS
mkdir -p slush/pkg/CVS > /dev/null 2>&1
echo x - slush/pkg/CVS/Root
sed 's/^X//' >slush/pkg/CVS/Root << 'END-of-slush/pkg/CVS/Root'
X/home/ncvs
END-of-slush/pkg/CVS/Root
echo x - slush/pkg/CVS/Repository
sed 's/^X//' >slush/pkg/CVS/Repository << 'END-of-slush/pkg/CVS/Repository'
X/home/ncvs/ports/net/libsocket++/pkg
END-of-slush/pkg/CVS/Repository
echo x - slush/pkg/CVS/Entries
sed 's/^X//' >slush/pkg/CVS/Entries << 'END-of-slush/pkg/CVS/Entries'
X/COMMENT/1.1.1.1/Fri Feb  7 23:54:07 1997//
X/DESCR/1.1.1.1/Fri Feb  7 23:54:07 1997//
X/PLIST/1.3/Sat Oct 10 03:23:44 1998//
XD
END-of-slush/pkg/CVS/Entries
echo x - slush/pkg/COMMENT
sed 's/^X//' >slush/pkg/COMMENT << 'END-of-slush/pkg/COMMENT'
Xslush is a telnet-like application which uses a secure SSL channel
END-of-slush/pkg/COMMENT
echo x - slush/pkg/DESCR
sed 's/^X//' >slush/pkg/DESCR << 'END-of-slush/pkg/DESCR'
Xslush                  SSL remote shell
X
Xslush is a simple telnet-like application which communicates over a 
Xsecure SSL channel. It uses X509 certificates for authentication and
Xcan be compiled with tcp wrappers support (service name "slushd").
X
Xslush is *alpha* software. Use it at your own risk.
END-of-slush/pkg/DESCR
echo x - slush/pkg/PLIST
sed 's/^X//' >slush/pkg/PLIST << 'END-of-slush/pkg/PLIST'
Xshare/doc/slush/control.txt
Xshare/doc/slush/INSTALL
Xshare/doc/slush/HISTORY
Xshare/doc/slush/README
Xshare/doc/slush/COPYING
Xbin/slush
Xsbin/slushd
X
X@dirrm share/doc/slush
X
END-of-slush/pkg/PLIST
echo x - slush/Makefile
sed 's/^X//' >slush/Makefile << 'END-of-slush/Makefile'
X# Ports collection makefile for:  slush
X# Version required:     	  0.1.0
X# Date created:			  Sun May 3, 1999
X# Whom:                 	shipley@dis.org
X#
X# $Id$
X#
X#DISTDIR=	/var/tmp/	# for debuging
X
XDISTNAME=	slush-0_1_0_tar
XPKGNAME=	slush-0.1.0
XCATEGORIES=     net security
XMASTER_SITES=	ftp://www.dis.org/pub/Security/
XEXTRACT_SUFX=	.gz
X
XMAINTAINER=	shipley@dis.org
X
XBUILD_DEPENDS=  ssleay:${PORTSDIR}/security/openssl
X
X#MAN=		slush.1
X
XGNU_CONFIGURE=	yes
X
X#NOPROFILE=	true
X
XOSVERSION!=     sysctl -n kern.osreldate
X.if ${OSVERSION} <= 300000
XBROKEN=         does not build
X.endif
X
XWRKSRC=         ${WRKDIR}/slush-0.1.0
X
Xdo-install:
X.if !defined(NOPORTDOCS)
X	@${MKDIR} ${PREFIX}/share/doc/slush
X	${INSTALL_MAN} ${WRKSRC}/control.txt ${PREFIX}/share/doc/slush
X	${INSTALL_MAN} ${WRKSRC}/INSTALL ${PREFIX}/share/doc/slush
X	${INSTALL_MAN} ${WRKSRC}/HISTORY ${PREFIX}/share/doc/slush
X	${INSTALL_MAN} ${WRKSRC}/README ${PREFIX}/share/doc/slush
X	${INSTALL_MAN} ${WRKSRC}/COPYING ${PREFIX}/share/doc/slush
X.endif
X
X	${INSTALL_PROGRAM} ${WRKSRC}/slush ${PREFIX}/bin/slush
X	${INSTALL_PROGRAM} ${WRKSRC}/slushd ${PREFIX}/sbin/slushd
X
X.include <bsd.port.mk>
END-of-slush/Makefile
echo c - slush/patches
mkdir -p slush/patches > /dev/null 2>&1
echo x - slush/patches/patch-aa
sed 's/^X//' >slush/patches/patch-aa << 'END-of-slush/patches/patch-aa'
X*** Makefile.in-	Fri May  7 02:00:37 1999
X--- Makefile.in	Fri May  7 02:01:05 1999
X***************
X*** 9,16 ****
X  
X  CC=@CC@
X  INSTALL=@INSTALL@
X! CFLAGS=@CFLAGS@ -Wall -DVERSION=\"$(VERSION)\" -I/usr/local/ssl/include -I/usr/include/ssl
X! LIBS=@LIBS@ -L/usr/local/ssl/lib -lssl -lcrypto
X  
X  all: slush slushd
X  
X--- 9,16 ----
X  
X  CC=@CC@
X  INSTALL=@INSTALL@
X! CFLAGS=@CFLAGS@ -Wall -DVERSION=\"$(VERSION)\" -I/usr/local/include
X! LIBS=@LIBS@ -L/usr/local/lib -lssl -lcrypto -lRSAglue -lrsaref -lutil
X  
X  all: slush slushd
X  
END-of-slush/patches/patch-aa
echo x - slush/patches/patch-ab
sed 's/^X//' >slush/patches/patch-ab << 'END-of-slush/patches/patch-ab'
X*** slush.c-	Fri May  7 03:31:04 1999
X--- slush.c	Fri May  7 03:31:14 1999
X***************
X*** 34,40 ****
X  #include <signal.h>
X  #include <string.h>
X  #include <stdlib.h>
X! #include <getopt.h>
X  #include <termios.h>
X  #include <pwd.h>
X  #include <sys/ioctl.h>
X--- 34,40 ----
X  #include <signal.h>
X  #include <string.h>
X  #include <stdlib.h>
X! /* #include <getopt.h> */
X  #include <termios.h>
X  #include <pwd.h>
X  #include <sys/ioctl.h>
END-of-slush/patches/patch-ab
echo x - slush/patches/patch-ac
sed 's/^X//' >slush/patches/patch-ac << 'END-of-slush/patches/patch-ac'
X*** slushd.c-	Fri May  7 04:04:35 1999
X--- slushd.c	Fri May  7 04:06:11 1999
X***************
X*** 40,46 ****
X  #include <ctype.h>
X  #include <stdlib.h>
X  #include <netdb.h>
X! #include <getopt.h>
X  #include <pwd.h>
X  #include <grp.h>
X  #include <fcntl.h>
X--- 40,46 ----
X  #include <ctype.h>
X  #include <stdlib.h>
X  #include <netdb.h>
X! #include <libutil.h>
X  #include <pwd.h>
X  #include <grp.h>
X  #include <fcntl.h>
X***************
X*** 51,56 ****
X--- 51,57 ----
X  #include <sys/stat.h>
X  #include <sys/ioctl.h>
X  #include <sys/file.h>
X+ 
X  #ifdef HAVE_UNISTD_H
X  #include <unistd.h>	  /* fork, execvp, exit */
X  #endif
X***************
X*** 199,205 ****
X  	if (!hosts_access(&request)) 
X  	{
X  		syslog(LOG_ERR, "Connection refused from %s:%d",
X! 			inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));
X  		exit(2);
X  	}
X  #endif
X--- 200,206 ----
X  	if (!hosts_access(&request)) 
X  	{
X  		syslog(LOG_ERR, "Connection refused from %s:%d",
X! 			inen_ntoa(addr.sin_addr), ntohs(addr.sin_port));
X  		exit(2);
X  	}
X  #endif
X***************
X*** 654,711 ****
X  void log_uwtmp(struct passwd *pw, struct in_addr *i, char *tty, int is_logout)
X  {
X  	struct utmp ut;
X- 	int wtmp;
X- 	int lock;
X  	
X  	tty = strrchr(tty, '/');
X  	if (tty == NULL)
X  	{
X  		syslog(LOG_ERR, "Can't determine basename of tty");
X! 		exit(3);
X  	}
X  	tty++;
X  	
X- 	utmpname(_PATH_UTMP);
X- 	setutent();
X- 	memset(&ut, 0, sizeof(ut));
X  
X! 	if (ut.ut_id[0] == 0)
X! 		strncpy(ut.ut_id, tty + 3, sizeof(ut.ut_id));
X  
X- 	if (!is_logout)
X- 		strncpy(ut.ut_user, pw->pw_name, sizeof(ut.ut_user));
X- 	
X  	strncpy(ut.ut_line, tty, sizeof(ut.ut_line) - 1);
X! 	ut.ut_line[sizeof(ut.ut_line) - 1] = 0;
X! 	
X! 	ut.ut_time = time(NULL);
X! 	ut.ut_type = is_logout?DEAD_PROCESS:USER_PROCESS;
X! 	ut.ut_pid = getpid();
X  
X- 	strncpy(ut.ut_host, hostname, sizeof(ut.ut_host) - 1);
X- 	ut.ut_host[sizeof(ut.ut_host) - 1] = 0;
X  	
X! 	memcpy(&ut.ut_addr, i, sizeof(ut.ut_addr));
X! 
X! 	pututline(&ut);
X! 	endutent();
X! 
X! 	lock = open(_PATH_WTMPLOCK, O_CREAT|O_WRONLY, 0660);
X! 	if (lock == -1)
X! 		ioerror("open");
X! 		
X! 	if (flock(lock, LOCK_EX) == -1)
X! 		ioerror("flock");
X! 		
X! 	wtmp = open(_PATH_WTMP, O_APPEND|O_WRONLY);
X! 	if (wtmp == -1)
X! 		ioerror("open");
X! 		
X! 	write(wtmp, (char *)&ut, sizeof(ut));
X! 	close(wtmp);
X! 
X! 	flock(lock, LOCK_UN);
X! 	close(lock);
X  }
X  
X  /* Retrieve client X509 certificate and test authentication */
X--- 655,684 ----
X  void log_uwtmp(struct passwd *pw, struct in_addr *i, char *tty, int is_logout)
X  {
X  	struct utmp ut;
X  	
X  	tty = strrchr(tty, '/');
X  	if (tty == NULL)
X  	{
X  		syslog(LOG_ERR, "Can't determine basename of tty");
X! 		return;
X  	}
X  	tty++;
X+ 
X  	
X  
X! 	if(is_logout) {
X! 		logout(tty);
X! 		return;
X! 	}
X  
X  	strncpy(ut.ut_line, tty, sizeof(ut.ut_line) - 1);
X! 	strncpy(ut.ut_name, pw->pw_name, sizeof(ut.ut_name)-1);
X! 	strncpy(ut.ut_host, inet_ntoa(*i), sizeof(ut.ut_host) - 1);
X! 	ut.ut_time = time(0);
X! 	login(&ut);
X  
X  	
X! 	return;
X  }
X  
X  /* Retrieve client X509 certificate and test authentication */
END-of-slush/patches/patch-ac
exit


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199905071159.EAA04935>