aboutsummaryrefslogtreecommitdiff
path: root/network
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2024-09-08 17:01:47 +0700
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2024-09-09 06:18:33 +0700
commitc6ceb80611cefa43b96223f9ce0dbc4ec894d8f5 (patch)
tree6e29bd54b1febdb3fa6dcf0315213f55fab6714d /network
parentf63274a5c807dac1c7ff180b76d8c22d85052131 (diff)
network/nullidentd: Added (small, fast identd daemon).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'network')
-rw-r--r--network/nullidentd/01_random_usernames.diff106
-rw-r--r--network/nullidentd/02_makefile.diff29
-rw-r--r--network/nullidentd/README17
-rw-r--r--network/nullidentd/doinst.sh3
-rw-r--r--network/nullidentd/douninst.sh3
-rw-r--r--network/nullidentd/nullidentd.844
-rw-r--r--network/nullidentd/nullidentd.SlackBuild87
-rw-r--r--network/nullidentd/nullidentd.info10
-rw-r--r--network/nullidentd/slack-desc19
9 files changed, 318 insertions, 0 deletions
diff --git a/network/nullidentd/01_random_usernames.diff b/network/nullidentd/01_random_usernames.diff
new file mode 100644
index 0000000000000..ba267c3e81c76
--- /dev/null
+++ b/network/nullidentd/01_random_usernames.diff
@@ -0,0 +1,106 @@
+From: Jason Thomas <jason@topic.com.au>
+Subject: Add support for returning random usernames
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=115204
+--- nullidentd-1.0.orig/nullidentd.c
++++ nullidentd-1.0/nullidentd.c
+@@ -7,9 +7,11 @@
+ */
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+ #include <signal.h>
++#include <time.h>
+
+ #include "version.h"
+
+@@ -18,6 +20,7 @@
+ #define MAX_RESPONSE 200
+ #define MAX_REQUEST 100
+ #define MAX_USERID 50
++#define MAX_RANDOMID 8
+
+ void usage()
+ {
+@@ -46,7 +49,6 @@ int write_response( int fd, char *respon
+
+ int read_request( int fd, char *request, int maxlen )
+ {
+- int retval;
+ char c;
+ int bytesread = 0;
+
+@@ -76,6 +78,22 @@ int read_request( int fd, char *request,
+ return 1;
+ }
+
++char *random_userid( void )
++{
++ static char buf[MAX_RANDOMID+1];
++ size_t i;
++ static const char valid[] =
++ "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
++
++ for (i = 0 ; i < MAX_RANDOMID ; i++)
++ buf[i] = valid[rand() % (sizeof(valid) - 1)];
++
++ buf[i] = '\0';
++
++ return buf;
++}
++
++
+ void session_timeout( int foo )
+ {
+ exit( 0 );
+@@ -84,12 +102,12 @@ void session_timeout( int foo )
+ int main( int argc, const char *argv[] )
+ {
+ const char * userid = "foobar";
+- char c;
+ int infd;
+ int outfd;
+ int response_len;
+ char response[MAX_RESPONSE];
+ char request[MAX_REQUEST];
++ int gen_random = 0;
+
+ if( getgid() == 0 ) {
+ fprintf( stderr, "Group id is root, exitting.\n" );
+@@ -114,6 +132,10 @@ int main( int argc, const char *argv[] )
+ }
+ }
+
++ if (strcmp(userid, "RANDOM") == 0) {
++ gen_random = 1;
++ }
++
+ infd = fileno( stdin );
+ outfd = fileno( stdout );
+
+@@ -121,6 +143,8 @@ int main( int argc, const char *argv[] )
+ signal( SIGALRM, session_timeout );
+ alarm( SESSION_TIMEOUT );
+
++ srand(getpid() ^ time(NULL));
++
+ for( ;; ) {
+ /* read the request */
+ if( !read_request( infd, request, MAX_REQUEST ) ) {
+@@ -128,6 +152,10 @@ int main( int argc, const char *argv[] )
+ goto done;
+ }
+
++ if (gen_random) {
++ userid = random_userid();
++ }
++
+ /* format the response */
+ response_len = snprintf( response, sizeof( response ), "%.20s : USERID : UNIX : %.20s\r\n", request, userid );
+
+@@ -140,4 +168,3 @@ int main( int argc, const char *argv[] )
+ done:
+ return 0;
+ }
+-
diff --git a/network/nullidentd/02_makefile.diff b/network/nullidentd/02_makefile.diff
new file mode 100644
index 0000000000000..22513b60fbc6e
--- /dev/null
+++ b/network/nullidentd/02_makefile.diff
@@ -0,0 +1,29 @@
+From: John H. Robinson, IV <jaqque@debian.org>
+Subject: Modified toplevel Makefile to support $(DESTDIR)
+--- nullidentd-1.0.orig/Makefile
++++ nullidentd-1.0/Makefile
+@@ -1,5 +1,9 @@
+
+-INSTALL=/usr/local/sbin
++# Edited for Debian GNU/Linux.
++DESTDIR=
++
++INSTALL=$(DESTDIR)/usr/sbin
++
+
+ nullidentd: nullidentd.c version.h
+ gcc -O2 -o nullidentd nullidentd.c
+@@ -21,9 +25,10 @@ clean:
+ rm -f .version version.h nullidentd
+
+ install: nullidentd
+- rm -f $(INSTALL)/nullidentd
++ #rm -f $(INSTALL)/nullidentd
+ cp nullidentd $(INSTALL)/nullidentd
+ chown root.root $(INSTALL)/nullidentd
+- chmod a-rw $(INSTALL)/nullidentd
+- chmod a+x $(INSTALL)/nullidentd
++ #chmod a-rw $(INSTALL)/nullidentd
++ #chmod a+x $(INSTALL)/nullidentd
++ chmod 0755 $(INSTALL)/nullidentd
+
diff --git a/network/nullidentd/README b/network/nullidentd/README
new file mode 100644
index 0000000000000..02b9fd585b35c
--- /dev/null
+++ b/network/nullidentd/README
@@ -0,0 +1,17 @@
+nullidentd (bare minimum identd server)
+
+nullidentd is intended to be a bare minimum identd server. It
+implements the auth protocol from RFC 1413. This protocol
+is used to identify active TCP connections. It depends on the
+trustworthiness of the server and as such is completely useless as
+a method of identification.
+
+Unfortunately, some applications still require that an identd
+server is available to query about incoming connections. nullidentd
+implements the absolute minimum server to allow these applications to
+function. It returns a fake response for any request.
+
+nullidentd is typically invoked from inetd. The following is a typical
+/etc/inetd.conf example:
+
+auth stream tcp nowait nobody /usr/sbin/nullidentd nullidentd
diff --git a/network/nullidentd/doinst.sh b/network/nullidentd/doinst.sh
new file mode 100644
index 0000000000000..80fdb6e549706
--- /dev/null
+++ b/network/nullidentd/doinst.sh
@@ -0,0 +1,3 @@
+if [ -x usr/bin/mandb ]; then
+ chroot . /usr/bin/mandb -f /usr/man/man8/nullidentd.8.gz &> /dev/null
+fi
diff --git a/network/nullidentd/douninst.sh b/network/nullidentd/douninst.sh
new file mode 100644
index 0000000000000..985b4536489ee
--- /dev/null
+++ b/network/nullidentd/douninst.sh
@@ -0,0 +1,3 @@
+if [ -x usr/bin/mandb ]; then
+ chroot . /usr/bin/mandb &> /dev/null
+fi
diff --git a/network/nullidentd/nullidentd.8 b/network/nullidentd/nullidentd.8
new file mode 100644
index 0000000000000..5ae0d6dce1789
--- /dev/null
+++ b/network/nullidentd/nullidentd.8
@@ -0,0 +1,44 @@
+.\"
+.TH "nullidentd" "8" "January 24, 2001" "" ""
+.SH "NAME"
+nullidentd \- a bare minimum identd server
+
+.SH "SYNOPSIS"
+.B nullidentd
+.RI [uid]
+.br
+
+.SH "DESCRIPTION"
+This manual page documents briefly the
+.B nullidentd
+command. This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+.PP
+.B Nullidentd
+is intended to be a bare minimum identd server, suitable for a firewall or IP
+Masq/NAT gateway.
+
+.SH "OPTIONS"
+.B nullidentd
+takes only one optional argument, the username to answer with.
+If this is omitted,
+.B nullidentd
+will reply with the username \*(lqfoobar\*(rq.
+If the username is RANDOM, a random string is generated.
+
+.SH "USAGE"
+.B nullidentd
+is typically invoked from inetd. The following
+is a typical inetd.conf example:
+.br
+.nh
+auth stream tcp nowait nobody /usr/sbin/nullidentd nullidentd
+.hy
+
+.SH "AUTHOR"
+.B
+nullidentd
+is written by Brian Young <bayoung@acm.org>
+.PP
+This manual page was written by John H. Robinson, IV <jaqque@debian.org>,
+for the Debian GNU/Linux system (but may be used by others).
diff --git a/network/nullidentd/nullidentd.SlackBuild b/network/nullidentd/nullidentd.SlackBuild
new file mode 100644
index 0000000000000..423cff77ea6ac
--- /dev/null
+++ b/network/nullidentd/nullidentd.SlackBuild
@@ -0,0 +1,87 @@
+#!/bin/bash
+
+# Slackware build script for nullidentd
+
+# Written by B. Watson (urchlay@slackware.uk)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# This is "mature" software. It's feature-complete, and hasn't been
+# updated since last century. I'm effectively repackaging the Debian
+# package, which is maintained and would receive security updates, if
+# any were needed. The _5 in VERSION matches the -5 Debian patchlevel.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=nullidentd
+VERSION=${VERSION:-1.0_5}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
+fi
+
+set -e
+
+SRCVER="$( echo $VERSION | cut -d_ -f1 )"
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$SRCVER
+tar xvf $CWD/${PRGNAM}_$SRCVER.orig.tar.gz
+cd $PRGNAM-$SRCVER
+chown -R root:root .
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} +
+
+# 20240907 bkw: patches came from Debian's -5 build.
+patch -p1 < $CWD/01_random_usernames.diff
+patch -p1 < $CWD/02_makefile.diff
+
+# 20240907 bkw: use our flags, build stripped binary, fix a warning.
+sed -i "s/-O2/$SLKCFLAGS -Wl,-s/" Makefile
+sed -i '1i#include <string.h>' $PRGNAM.c
+
+mkdir -p $PKG/usr/{sbin,man/man8}
+make install DESTDIR=$PKG
+
+gzip -9 < $CWD/$PRGNAM.8 > $PKG/usr/man/man8/$PRGNAM.8.gz
+
+PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p $PKGDOC
+cp -a CHANGELOG COPYING README $PKGDOC
+cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+cat $CWD/douninst.sh > $PKG/install/douninst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/network/nullidentd/nullidentd.info b/network/nullidentd/nullidentd.info
new file mode 100644
index 0000000000000..1d802b63c82f0
--- /dev/null
+++ b/network/nullidentd/nullidentd.info
@@ -0,0 +1,10 @@
+PRGNAM="nullidentd"
+VERSION="1.0_5"
+HOMEPAGE="https://packages.debian.org/sid/nullidentd"
+DOWNLOAD="http://deb.debian.org/debian/pool/main/n/nullidentd/nullidentd_1.0.orig.tar.gz"
+MD5SUM="80afbac3c40e12a1ee7a0b55922bf439"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="B. Watson"
+EMAIL="urchlay@slackware.uk"
diff --git a/network/nullidentd/slack-desc b/network/nullidentd/slack-desc
new file mode 100644
index 0000000000000..ae3ac5655ba79
--- /dev/null
+++ b/network/nullidentd/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+nullidentd: nullidentd (bare minimum identd server)
+nullidentd:
+nullidentd: nullidentd is intended to be a bare minimum identd server. It
+nullidentd: implements the auth protocol from RFC 1413. This protocol
+nullidentd: is used to identify active TCP connections. It depends on the
+nullidentd: trustworthiness of the server and as such is completely useless as
+nullidentd: a method of identification.
+nullidentd:
+nullidentd:
+nullidentd:
+nullidentd: