5. Configureren via SWAT

BTW: Ik heb nog een document uitsluitend geweid aan Swat

SWAT is een configuratie tool voor Samba, eigenlijk is het een http server die gestart wordt via inetd. Je maakt verbinding met SWAT door te browsen naar http://localhost:901, of vanaf een andere pc in je netwerk naar http://ip_nummer:901. Als Samba eenmaal draait kun je op een Windows machine zelfs browsen naar http://netbios_naam:901[1].

Met SWAT kun je:

SWAT hoeft niet separaat geinstalleerd te worden, het is namelijk een onderdeel van de Samba distributie. Het starten van SWAT kan het beste gebeuren via inetd, dit staat zeer goed omschreven in de man page van SWAT. De configuratie om dit voorelkaar te krijgen bestaat uit 3 stappen, Slackware 8.1 is er zelfs al op voorbereid.

SWAT heeft een aantal voordelen:

echter ook nadelen:

5.1. /etc/services

De eerste stap is het aanpassen van /etc/services. In dit bestand staan de TCP/IP poorten genoemd met de services die op die poort draaien. Voor SWAT wordt meestal poort 901 gebruikt:
accessbuilder	888/tcp
accessbuilder	888/udp
swat		901/tcp			# samba web configuration tool
ftps-data	989/tcp			# ftp protocol, data, over TLS/SSL
ftps-data	989/udp
    
De "accesbuilder" en "ftps-data" regels staan in dit voorbeeld uitsluitend ter illustratie. Voor SWAT doen ze er niet toe. Het "# samba web configuration tool" is uiteraard commentaar ter verduidelijking. Het is overigens niet noodzakelijk dat de poorten in numerieke volgorde staan, het is echter wel zo duidelijk. Beginnend met Slackware 8.1 staat deze regel al in /etc/services.

5.2. /etc/inetd.conf

De tweede stap is het aanpassen van het configuratie bestand van de inetd daemon. Dit is het bestand /etc/inetd. Aan dit bestand moet de volgende regel toegevoegd worden:
#Samba Web Administration Tool:
swat           stream  tcp     nowait.400 root /usr/sbin/swat  swat
      
De eerste regels is commentaar en doet er uiteraard niet echt toe. Het gaat om de tweede regel. Parameters op deze regel worden door wit-ruimte gescheden, spaties of tabs.

Er is eigenlijk maar 1 ding wat mis kan gaan. En dat is de lokatie van de SWAT executable. In dit geval "/usr/sbin/swat" moet overeenkomen met de feitelijke lokatie van de executable. Je kunt dit controleren met het commando `which swat` wat als uitvoer de eerste swat rapporteert die hij op het PATH vind:
root@lt_pkn:~# which swat
/usr/sbin/swat
root@lt_pkn:~#      
      
Je ziet dat mijn inetd.conf klopt. Beginnend met Slackware 8.1 staat deze regel als commentaar in /etc/inetd.conf en hoeft uitsluiten het "#" teken aan het begin van de regel verwijdert te worden.

5.3. Inetd herstarten

De derde en laaste stap is het herstarten van de inetd daemon. Dit omdat /etc/inetd.conf uitsluiten bij het (her)starten gelezen wordt. Door het herstarten van de daemon dwing je hem z'n configuratie bestand opnieuw te lezen.

Herstarten doe je door het process van de daemon het HUP signaal te geven. Klinkt erg moeilijk, maar valt best mee. Eerst gebruik je `ps -e|grep inetd` om uit te zoeken welk process inetd is:
root@lt_pkn:~# ps -e|grep inetd
   71 ?        00:00:00 inetd
root@lt_pkn:~#      
      
In dit geval is het process id (PID) voor inetd dus 71[2]Vervolgens stuur je met `kill -HUP 71` het gevonden process een signaal om opnieuw te starten.
root@lt_pkn:~# kill -HUP 71
root@lt_pkn:~#
      
Hierna is inetd opnieuw gestart. Controleer dit eventueel met nogmaals het commando `ps -e|grep inetd` (pijl omhoog/pijl omhoog/enter :D).[3]

Noten

[1]

Als je /etc/hosts aangepast hebt dan kun je op de Linux machine ook een host naam gebruiken ipv een ip nummer.

[2]

In feite "pipe" je de output van `ps -e` naar het filter programma `grep` die vervolgens filtert op "inetd". Door iets anders als "inetd" in te tikken kun je dus ook andere processen vinden. Probeer maar een met "getty", je vind dan de programma's die op een inlog staan te wachten.

[3]

Maak van deze check een gewoonte, niet elke daemon reageert hetzelfde op het HUP signaal. Sommigen stoppen er gewoon mee.