# FoxT BoKS ServerControl

FoxT BoKS ServerControl is propriëtaire software uit de categorie informatiebeveiliging, bedoeld voor het centrale beheer van gebruikersauthenticatie en -autorisatie (Role-based access control). De originele naam BoKS is een afkorting voor het Zweedse "Behörighet- och KontrollSystem", wat zich laat vertalen als "Legitimatie en controle systeem". De volledige naam van het product is "ServerControl Access Control for Servers". ServerControl is origineel ontworpen voor het gebruik op Unix systemen, maar is recent ook vertaald naar Windows.

## Functies

Belangrijke features van het pakket zijn onder andere:
* Centraal gedefinieerde toegangsregels voor gebruikerstoegang op Unix-, Linux- en Windows-servers.
* Real-time aanpassingen van toegangsregels vanuit een web interface of vanaf de command line.
* Flexibele configuratiemogelijkheden, met verschillende beveiligingsniveaus voor (groepen van) servers.
* Een eigen versie van OpenSSH die het mogelijk maakt om toegangscontrole toe te passen op subsysteem (SFTP, SCP, enz) niveau.
* Ook toepasbaar op andere protocollen dan de basisset door het gebruik van Pluggable Authentication Modules.
* Kan samenwerken met directory services als NIS+ en LDAP.

## Werking

De ServerControl-infrastructuur bestaat op zijn minst uit een masterserver, een of meer replicaservers en elk gewenst aantal clientsystemen. De communicatie tussen deze elementen is versleuteld en vindt plaats over een eigen set TCP/IP-poorten.
* De masterserver bevat de database met gebruikersaccounts, toegangsregels en client-informatie. Wijzigingen aan deze informatie kunnen alleen op de master server worden doorgevoerd.
* Replicaservers bevatten een kopie van de ServerControl-database die asynchroon wordt geüpdatet. Replicaservers handelen authenticatie en autorisatie verzoeken af en kunnen in geval van nood worden "gepromoveerd" naar de status van master server.
Op clientsystemen is geen aanpassing aan het besturingssysteem zelf nodig, in tegenstelling tot sommige andere beveiligingsproducten. De koppeling naar ServerControl vindt plaats door bepaalde componenten die op de server aanwezig zijn te vervangen met een ServerControl-eigen versie. Bijvoorbeeld: op Solaris en Linux wordt de koppeling naar ServerControl gemaakt door het gebruik van een aparte PAM-module. Op AIX kiest men er doorgaans voor om de daemons van login processen (zoals OpenSSH, telnet en FTP) te vervangen met de door FoxT vervaardigde daemons.
Wanneer een gebruiker probeert in te loggen zal de daemon in kwestie contact maken met ServerControl om de ingegeven gebruikersnaam en wachtwoord te controleren. Wanneer beide goed zijn bevonden zal ServerControl een tweede controle uitvoeren om vast te stellen of de gebruiker toestemming heeft om in te loggen. Toegangsregels in ServerControl definiëren wie, wanneer, waarvandaan, waarnaartoe mag inloggen.
De ServerControl configuratie kan op een aantal manieren worden gewijzigd:
* Gebruikmakend van de ServerControl web interface.
* Vanaf de Unix command line.
* Door een database dump handmatig te bewerken en die te restoren..
* Vroege versies van ServerControl konden worden geconfigureerd met behulp van een Tivoli/Plus module.

## Terminologie

De volgende termen keren regelmatig terug bij het werken met ServerControl.
| Term | Verklaring |
| host | Een willekeurig systeem in het netwerk, zij het masterserver, replica, client of non-ServerControl host. |
| host group | Een logische groepering van hosts. |
| user account | Een combinatie van een gebruikersnaam met de bijbehorende host of host group. |
| access route | Een specifieke toegangsregel, toegepast op een user account of een user class. |
| user class | Een rolbeschrijving die een set access routes toekent aan een of meerdere user accounts. |
| access method | Een communicatie- of loginprotocol zoals telnet, ftp en SSH. Omvat ook su en suexec. |
| program group | Een logische groepering van commando's die met suexec uitgevoerd worden. Wordt gebruikt in access routes. |
Voetnoten:
* Een uniek user account wordt geïdentificeerd door de combinatie van zijn usernaam en de host of host group waar zij voor is gedefinieerd. Het is mogelijk dat een usernaam meerdere malen in ServerControl voor komt, zolang er geen overlapping bestaat tussen de desbetreffende hosts en host groups. Een vaak voor komend voorbeeld is de Unix Root user, die op host-niveau wordt gedefinieerd. Voorbeelden van user accounts: server1:root, SOLARIS:peter, ORACLE:patrick.
* Een user account heeft een of meerdere user classes, afhankelijk van de rol die het account vervult in het netwerk. Zo wordt een zekere mate van flexibiliteit in de functiescheiding mogelijk gemaakt. Bijvoorbeeld, SOLARIS:peter mag lid zijn van user classes "SolarisThirdLine" en "BackupManagement".
* Een host kan lid zijn van een willekeurig aantal host groups, waardoor men op zeer gedetailleerd niveau user accounts over het netwerk kan verspreiden. Bijvoorbeeld, server1 kan lid zijn van de host groups SOLARIS, ORACLE en BACKUPEXEC, zodat alle user accounts die bij deze groepen horen automatisch worden uitgerold.
* Access routes kunnen worden toegepast op user classes en op individuele gebruikers. Op deze manier kan men server1:root toestaan om alleen op zijn eigen console in te loggen, terwijl iedereen uit de groep "SolarisThirdLine" mag SSHen naar de servers uit host group SOLARIS.

## Ondersteunde protocollen

ServerControl ondersteunt authenticatie en autorisatie controle voor de volgende protocollen: login, su, telnet, secure telnet (SSL), rlogin, XDM, PC-NFS, rsh, rexec, ftp, rex, plogin, suexec (vergelijkbaar met sudo) en SSH. Het SSH protocol kan verder worden opgesplitst in ssh_sh (shell), ssh_exec (remote command execution), ssh_scp (SCP), ssh_sftp (SFTP), ssh_x11 (X11 forwarding), ssh_rfwd (remote port forwarding), ssh_fwd (local port forwarding) en ssh* (alle voorgenoemde subsystemen).
Het is mogelijk om ook andere software te combineren met ServerControl, hoewel dit enige aanpassingen vereist aan zowel ServerControl als het andere product. Een combinatie maakt men het gemakkelijkst met software die gebruik kan maken van Pluggable Authentication Modules, omdat FoxT een PAM-module levert voor ServerControl.

## Belangrijke aandachtspunten

Bij het beheren van ServerControl zijn er een aantal onvolkomenheden in de software waarmee men rekening moet houden.
* Er is geen bescherming tegen het dubbele uitgeven van UIDs of GIDs.
* Er is geen bescherming tegen het gebruik van verschillende UIDs voor dezelfde user name.
* Er is geen bescherming tegen het gebruik van verschillende GIDs voor dezelfde group name.
* Er is geen bescherming tegen handmatige wijzigingen aan lokale passwd en group files.
* Er wordt geen waarschuwing gegeven in het geval van overlap tussen gebruikersnamen uit verschillende host groups.

## Geschiedenis

Sinds de jaren negentig is ServerControl vele naamsveranderingen ondergaan en is daarbij even vaak van handen gewisseld. Origineel is het product op de markt gebracht als BoKS, door de Zweedse firma Dynasoft. Daarna is het product overgedragen aan Security Dynamics (RSA Security), en weer aan TFS Tech. TFS Tech is hernoemd naar FoxT (eigendom van Parallax Capital Partners).
De software is een paar keer van naam veranderd en stond in het verleden ook bekend als BoKS, Keon en UnixControl.
Op 13 december 2017 kondigde FoxT via een persbericht aan dat het is overgenomen door HelpSystems, een van de grootste onafhankelijke IBM i-software resellers ter wereld.