#!/bin/sh # PROG=`basename $0` # echo -n 'Naam> ' read NAAM date >>/var/tmp/$PROG echo $NAAM >>/var/tmp/$PROG
Vervolgens nemen we in /etc/services de volgende regel op:
askname 9999/tcp
Daarna kunnen we het shellscript via inetd aanroepen met:
Daarna werk
Ik heb diverse kleine programmatjes geschreven om dit onder de knie
te krijgen. Hier volgt een klein voorbeeld in perl.
Zodra dit programa loopt kun je naar poort 1111 connecten en zie je
de logging op het scherm waar je dit programma opgestart hebt. Een
van de problemen van deze oplossing is dat dit programma niet
multithreaded is. Het comuniceert slechts met een gebruiker tegelijk.
askname stream tcp nowait root /tmp/askname askname
De berkley r protocollen
Eigenlijk een triviale opgave. Zorg er voor dat het .rhosts file
met de goede permisies aanwezig is en dat de host goed geresolved kan worden.
Test dit met behulp van rsh <system> hostname
.
tar cf <system>:/tmp/test.tar /tmp
gewoon.
ssh
Als je weet dat telnet poort 23 gebruikt en je begrijpt de syntax van
ssh dan heb je de oplossing eigenlijk al. Dat is namelijk:
ssh -R 2023:localhost:23
Sniffers
Hier kan ik weinig meer zeggen dan de onderstaande screendump.
Daemons
Dit is een lastige opgave waarbij je eigenlijk een klein beetje moet
begrijpen wat de systemcalls met betrekking tot de netwerk laag doen.
#!/usr/bin/perl -w
#
# Marcel Nijenhof
# Peter Zuidhove 79
# 2717 TN Zoetermeer
# Tel: 079 3526046
# marceln@xirion.nl
#
# Beschrijving:
#
# $Header$
#
# $Log$
#
#################################################################################
use Socket;
use IO::Handle;
#
# Welke poort gebruiken we.
#
my ($proto) = 6;
my ($port) = 1111;
#
# main
#
socket(Server, PF_INET, SOCK_STREAM, $proto) or
die "Can't open socket: $!";
setsockopt(Server, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)) or
die "Can't set socket options: $!\n";
bind(Server, sockaddr_in($port, INADDR_ANY)) or
die "Can't bind socket: $!\n";
listen(Server,SOMAXCONN) or
die "Can't listen: $!\n";
Client->autoflush(1);
print "W-daemon: Waiting for connection\n";
while ($paddr = accept (Client, Server)) {
my ($port,$iaddr) = sockaddr_in($paddr);
my ($name) = gethostbyaddr($iaddr,AF_INET);
print "W-daemon: Conection from $name\:$port\n";
print Client "W-daemon?\r\n";
while (defined ($line = <Client>) & ! ($line =~ /^QUIT/)) {
print "W-deaemon: Read: $line";
print Client "W-daemon?\n";
}
close (Client);
}