Sophie

Sophie

distrib > Mandriva > 2008.1 > i586 > by-pkgid > b18def347e26205d555aee0e81cb7333 > files > 76

howto-text-nl-2006-1mdv2008.1.noarch.rpm


Majordomo en MajorCool HOWTO

John Archie

   <[1]johnarchie@emeraldis.com>

Vertaald door:Ellen Bokhorst

   <[2]bokkie@nl.linux.org>

   15 November 2000

   Dit document is bedoeld om een gebruiker bij een installatie van
   Majordomo Mailing List Software en MajorCool te begeleiden. MajorCool
   is een utility voor het beheren van Majordomo lijsten via een
   CGI-script; veel mensen die niet bekend zijn met de tekstgeöriënteerde
   aard van Majordomo geven de voorkeur aan de wat gebruikersvriendelijke
   op het web gebaseerde interface van MajorCool.
     _________________________________________________________________

   Inhoudsopgave
   [3]Introductie
   [4]Sendmail
   [5]Majordomo
   [6]MajorCool
   [7]Veel gestelde vragen
   [8]Lijst met termen

Introductie

   Deze HOWTO is in verscheidene secties onderverdeeld. Het deel over
   Sendmail bestaat uit een algemene bespreking over Majordomo en hoe
   Majordomo aansluit op Sendmail, als ook de diverse manieren waarop
   Majordomo kan worden opgezet en de consequenties van dergelijke
   besluiten. Daarbij afgestoken bestaat de rest van de HOWTO uit een
   tutorial die een gebruiker door een gewoon installatieproces van
   Majordomo leidt. Ik raad je aan eerst het algemene installatieproces,
   beschreven in de secties na Sendmail, door te nemen, waarbij zonodig
   naar de passende delen van de Sendmail sectie wordt verwezen (de van
   toepassing zijnde secties worden vermeld op de van toepassing zijnde
   lokaties). Lees vervolgens het deel over Sendmail zorgvuldig door en
   besluit daarna hoe precies je systeem te configureren. Tenslotte, is
   in een lijst met termen voorzien voor de wat diepzinniger termen.

   Mochten de officiële sites voor het downloaden van de software vermeld
   in dit document down zijn, dan zijn de tarballs ook te vinden op
   [9]mijn website.
     _________________________________________________________________

Krediet

   Dank gaat uit naar een paar mensen (in alfabetische volgorde) voor hun
   hulp van onschatbare waarde.

     * Lee Archie voor het proeflezen
     * James Bruce en Bill Poston voor de kans om mijn eerste permanente
       machine met Majordomo op te zetten
     * Joseph D. Sloan voor het lezen van het deel dat gaat over Sendmail
       en het geven van behulpzame suggesties
     * Aanvulling van de vertaler: Met dank aan Reggy Ekkebus voor het
       vertalen van versie 1.10, dd 10 november 1999 van dit document
       naar het Nederlands. Dit document is opnieuw vertaald vanwege de
       omzetting van linuxdoc naar DocBook en de uitgave van een nieuwe
       versie.
     _________________________________________________________________

Referenties

   Alhoewel ik heb getracht deze HOWTO zo compleet mogelijk te maken, is
   het altijd een goed idee meer dan één bron te bekijken. Hieronder tref
   je een lijst aan met de bronnen die ik behulpzaam vond bij het voor de
   eerste keer proberen te configureren van Majordomo.

   Boeken:

     * Bryan Costales with Eric Allman, sendmail. Cambridge: O'Reilly,
       1997.
     * Alan Schwartz, Managing Mailing Lists. Cambridge: O'Reilly, 1998.

   Vrije bronnen:

     * de documentatie die met Sendmail wordt geleverd, vooral README.cf
     * de documentatie die met Majordomo wordt geleverd, met name INSTALL
       en NEWLIST
     * het [10]Majordomo-Users discussielijstarchief.
     * de documentatie die bij MajorCool wordt geleverd.
     _________________________________________________________________

Sendmail

   Aangezien Majordomo verantwoordelijk is voor het beheren van
   E-maillijsten, is het in belangrijke mate afhankelijk van een MTA
   zoals Sendmail. Er bestaan nog andere MTA's, zoals Smail en Qmail;
   echter Sendmail is de oudste en meest algemene. Deze sectie
   introduceert de lezer in die gebieden die bruikbaar of nodig zijn voor
   de configuratie bij het gebruik van Majordomo.
     _________________________________________________________________

Aliassen

   Het aliassenbestand van Sendmail (gewoonlijk /etc/aliases) wordt
   gebruikt voor het maken van aliassen voor E-mailadressen. Zodra
   Majordomo is geïnstalleerd bijvoorbeeld, komt er in het bestand
   aliases gewoonlijk een regel voor als:
   majordomo-owner:        jarchie

   Deze regel betekent dat alle mail geadresseerd aan
   majordomo-owner@host.com in werkelijkheid zal worden gestuurd naar
   jarchie@host.com. Het is niet nodig @host.com aan jarchie toe te
   voegen, omdat beide gebruikers zich op dezelfde host bevinden. Als het
   gewenst zou zijn om het bericht naar een andere gebruiker op een
   andere host door te sturen, dan zou men het deel @host.com moeten
   toevoegen.

   Een ander type regel in het bestand aliases staat toe dat E-mail naar
   meerdere adressen opgesomd in een bestand kan worden doorgestuurd:
   testlist:               :include:/usr/local/majordomo-1.94.5/lists/testlist

   Deze regel geeft aan dat elk bericht gestuurd naar testlist@host.com
   zal worden doorgestuurd naar alle adressen die zijn opgesomd in het
   bestand /usr/local/majordomo-1.94.5/lists/testlist. Het bestand
   testlist zou er zo uit kunnen zien:
johnarchie@emeraldis.com
srobirds@yahoo.com
acreswell@geocities.com

   Majordomo kan door gebruik te maken van deze feature adressen aan een
   lijst toevoegen of van een lijst verwijderen. Wanneer een subscribe
   verzoek wordt verwerkt, wordt het E-mailadres van de gebruiker
   toegevoegd aan het bestand testlist; wanneer een unsubscribe verzoek
   wordt verwerkt, wordt het E-mailadres van de gebruiker verwijderd uit
   het bestand testlist. Men kan tevens adressen handmatig toevoegen of
   verwijderen door simpelweg het bestand te bewerken met een teksteditor
   zoals vi.

   Aangezien Majordomo opdrachten moet kunnen verwerken die er via E-mail
   naartoe zijn gestuurd, moet Sendmail het Majordomo programma kunnen
   uitvoeren en er het bericht aan door kunnen geven. Dit wordt
   bewerkstelligd door een ander type regel toe te voegen aan het bestand
   aliases:
   majordomo:              "|/usr/local/majordomo-1.94.5/wrapper majordomo"

   Het programma /usr/local/majordomo-1.94.5/wrapper is een wrapper (SUID
   majordomo en SGID majordomo of daemon afhankelijk van de configuratie)
   dat het Majordomo programma uitvoert. De aanhalingstekens rondom het
   tweede deel van de alias worden gebruikt om Sendmail aan te geven dat
   dit deel van de regel uit één statement bestaat; de aanhalingstekens
   zouden niet nodig zijn als er geen spatie tussen wrapper en majordomo
   zou staan. Het |-teken staat bekend als een "pipe"; het wordt gebruikt
   om Sendmail aan te geven de E-mail aan de wrapper via de
   standaardinvoer naar de wrapper te sturen. (Aangezien het enige dat de
   wrapper hier doet het aanroepen van majordomo is, wordt de E-mail in
   feite doorgestuurd naar Majordomo.) De wrapper accepteert één
   parameter, namelijk de parameter van het programma dat het
   verondersteld wordt uit te voeren. (Parameters na de eerste zullen
   worden doorgegeven aan het programa dat de wrapper uitvoert.) Om
   beveiligingsredenen, voert de wrapper alleen programma's uit die zijn
   de vinden in de Majordomo directory, /usr/local/majordomo-1.94.5/.
   Deze beperking verhindert een programmeur de wrapper te gebruiken
   programma's uit te voeren die geen Majordomo privileges zouden moeten
   hebben. (Bijvoorbeeld, wrapper /bin/vi zou een gebruiker toestaan elk
   Majordomo configuratiebestand te bewerken.) Wanneer een bericht naar
   majordomo@host.com is gezonden, start Sendmail de wrapper, die op zijn
   beurt, majordomo opstart, en Sendmail stuurt het bericht naar het
   majordomo script via de standaardinvoer. Majordomo extraheert de
   opdrachten dan uit het bericht en reageert dienovereenkomstig.
     _________________________________________________________________

Bewerken van sendmail.cf

   Door zijn geheimzinnige syntax is sendmail.cf misschien wel het meest
   beangstigend van alle configuratiebestanden. Bij de installatie van
   majordomo, is het niet strict noodzakelijk om sendmail.cf te bewerken;
   echter een paar features zijn buitengewoon handig. Tenzij belangrijke
   wijzigingen moeten worden aangebracht aan sendmail.cf (wat Majordomo
   gelukkig niet vereist), is het bewerken van het bestand niet zo
   moeilijk. Het enige dat nodig is, is het toevoegen van extra regels
   aan het bestand.
     _________________________________________________________________

Een ander aliases bestand

   Vaak is het een goed idee om een apart bestand voor de Majordomo
   aliassen, zoals /usr/local/majordomo-1.94.5/majordomo.aliases, aan te
   maken. Dit kan nogal makkelijk worden gedaan door een regel toe te
   voegen aan het einde van het bestand sendmail.cf
   OA/usr/local/majordomo-1.94.5/majordomo.aliases

   Voor een /usr/local/majordomo-1.94.5/majordomo.aliases, moet Sendmail
   een database (/usr/local/majordomo-1.94.5/majordomo.aliases.db) kunnen
   genereren. De makkelijkste manier om dit te bewerkstelligen is een
   door Sendmail te overschrijven lege database aan te maken.
[root@kes majordomo-1.94.5]# touch majordomo.aliases.db
[root@kes majordomo-1.94.5]# chmod 644 majordomo.aliases.db

   Een andere methode hiervoor is het simpelweg aanmaken van het bestand
   majordomo.aliases in de directory /etc/, in plaats van in de
   homedirectory van Majordomo.
     _________________________________________________________________

Niet gewenste beveiligingsfeatures van Sendmail

   Voor bepaalde setups, kunnen een aantal beveiligingsmaatregels die
   Sendmail gebruikt, de juiste werking van Majordomo verhinderen.
   Uiteraard moeten deze beveiligingsfeatures worden uitgezet.
     _________________________________________________________________

Toevertrouwde gebruikers van sendmail

   Sendmail is zodanig geprogrammeerd dat het mensen moeilijk maakt om
   "perfecte" vervalsingen van E-mail te maken. Wanneer een gebruiker
   bijvoorbeeld een bericht via SMTP verzendt, wordt het IP bronadres
   kenmerkend gelogd, en wanneer een gebruiker een bericht verstuurt door
   het direct aan Sendmail te geven en de afzender specificeert middels
   de opdracht sendmail -f, plaatst sendmail een waarschuwingsmelding in
   de header waarin het de gebruiker aangeeft wie de melding echt
   verzond. Echter een aantal programma's moet gemaskerd als andere
   gebruikers berichten kunnen versturen en met deze extra
   beveiligingsregel toegevoegd aan de header is ergerlijk. Sendmail
   handelt dit probleem af door middel van toevertrouwde gebruikers. Voor
   de juiste werking van het script resend van Majordomo, moet majordomo
   een toevertrouwde gebruiker van sendmail worden, aangezien het mail
   van andere gebruikers moet herverzenden.

   Een manier om Majordomo een toevertrouwde gebruiker te maken is door
   het toevoegen van de regel
   Tmajordomo

   aan het bestand sendmail.cf.
     _________________________________________________________________

Sendmail Restricted Shell

   Als Sendmail gebruik maakt van smrsh, dan zijn de enige programma's
   die kunnen worden uitgevoerd, die onder de directory /etc/smrsh/.
   Misschien de beste oplossing om de wrapper vanuit het bestand aliases
   uit te voeren is het aanmaken van een symbolische link vanuit
   /etc/smrsh/wrapper naar /usr/local/majordomo-1.94.5/wrapper.
   [root@kes smrsh]# ln -s /usr/local/majordomo-1.94.5/wrapper wrapper

   Een tweede oplossing is het daadwerkelijk verplaatsen van de wrapper
   naar de directory /etc/smrsh/.
   [root@kes smrsh]# mv /usr/local/majordomo-1.94.5/wrapper ./

   Als de beveiliging niet zo van belang is, dan kan de secure shell
   worden gedeactiveerd. Een tamelijk grove methode is het verwijderen
   van /usr/sbin/smrsh en daarvoor in de plaats kopiëren of linken van
   /bin/sh.
[root@kes sbin]# rm -f smrsh
[root@kes sbin]# ln -s /bin/sh smrsh

   Een betere (maar moeilijkere) methode is het bewerken van sendmail.cf.
   Wijzig de verwijzing van /usr/sbin/smrsh
Mprog,          P=/usr/sbin/smrsh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/,
                T=X-Unix,
                A=sh -c $u

   naar /bin/sh
Mprog,          P=/bin/sh, F=lsDFMoqeu9, S=10/30, R=20/40, D=$z:/,
                T=X-Unix,
                A=sh -c $u
     _________________________________________________________________

Schrijfpermissies van de groep

   Als je van plan bent een niet-root gebruiker discussielijsten te laten
   toevoegen en beheren, dan zul je het bestand majordomo.aliases voor de
   groep schrijfbaar moeten maken. Om beveiligingsredenen staat Sendmail
   deze configuratie echter niet toe (zie [11]paragraaf Sendmail
   beveiligingskwesties). Voeg de regel
   O DontBlameSendmail=GroupWritableAliasFile

   toe aan het bestand sendmail.cf om deze beveiligingsfeature te
   deactiveren. Ook moet de directory lists schrijfbaar zijn voor de
   groep om een lijst toe te kunnen voegen, maar Sendmail zal ook deze
   setup om vergelijkbare beveiligingsredenen niet toelaten. Voor het
   deactiveren van deze beveiligingsfeature is de regel
   O DontBlameSendmail=IncludeFileInGroupWritableDirPath

   nodig in het configuratiebestand sendmail.cf.
     _________________________________________________________________

Configureren van sendmail.cf met behulp van de M4 configuratie

   Voor beheerders die het bestand sendmail.cf niet direct willen
   bewerken, is het mogelijk gebruik te maken van M4 om het bestand aan
   te maken; in deze sectie wordt beschreven hoe de besproken wijzigingen
   in de vorige sectie te maken aan het mc bestand in plaats van het cf
   bestand.

   Het doel van de M4 configuratie is te voorzien in een makkelijke
   manier om het bestand sendmail.cf aan te maken. Het idee erachter is
   dat het aangemaakte mc bestand makkelijker is te begrijpen dan het
   bestand sendmail.cf. Door uitvoering van de preprocessor m4, wordt een
   sendmail.cf bestand gegenereerd:
   [root@kes etc]# m4 /etc/sendmail.mc > /etc/sendmail.cf
     _________________________________________________________________

Een ander aliases bestand aanmaken

   Voeg de regel
define(`ALIAS_FILE',`/etc/aliases,/usr/local/majordomo-1.94.5/majordomo.aliases
')

   toe aan het bestand sendmail.mc.
     _________________________________________________________________

Van Majordomo een toevertrouwde gebruiker maken

   Voeg de regel
   define(`confTRUSTED_USERS',`majordomo')

   toe aan het bestand sendmail.mc.
     _________________________________________________________________

Deactiveer de Sendmail Secure Shell

   Verwijder de regel
   FEATURE(smrsh)

   uit het bestand sendmail.mc.
     _________________________________________________________________

Deactiveren van beveiligingsfeatures

   Voeg voor het deactiveren van de beveiligingscontrole op de
   schrijfpermissie van de groep op het aliases bestand de regel
   define(`confDONT_BLAME_SENDMAIL',`GroupWritableAliasFile')

   toe aan het bestand sendmail.mc.

   Voeg voor het deactiveren van de beveligingscontrole op de
   schrijfpermissie van het pad op de include bestanden de regel
   define(`confDONT_BLAME_SENDMAIL',`IncludeFileInGroupWritableDirPath')

   toe. Gebruik voor het deactiveren van beide opties
define(`confDONT_BLAME_SENDMAIL',`GroupWritableAliasFile,IncludeFileInGroupWrit
ableDirPath')

   Het toevoegen van het laatste statement is gelijk aan het schrijven
   van
   O DontBlameSendmail=GroupWritableAliasFile,IncludeFileInGroupWritableDirPath

   in sendmail.cf, en deze regel is gelijk aan het schrijven van deze
   regels op aparte regels:
O DontBlameSendmail=GroupWritableAliasFile
O DontBlameSendmail=IncludeFileInGroupWritableDirPath
     _________________________________________________________________

Sendmail beveiligingskwesties

   Beveiliging is omgekeerd evenredig proportioneel met gemak; de enige
   veilige machine is die door niemand kan worden benaderd. Wanneer een
   aantal van de beveiligingsfeatures zijn gedeactiveerd, zal een machine
   onvermijdelijk minder veilig worden. Het is echter van belang de
   basisbeveiligingsrisico's te begrijpen om vast te stellen of het gemak
   zwaarder weegt dan mogelijke beveiligingslekken.
     _________________________________________________________________

Consequenties van onveilige te beschrijven groepen

   Als een gebruiker schrijfpermissies heeft om een aliases bestand te
   benaderen, dan zou het een toevertrouwde gebruiker moeten zijn. Door
   het plaatsen van een regel in het aliases bestand (zoals die wordt
   gebruikt om wrapper uit te voeren) kan een gebruiker elk programma
   uitvoeren met de privileges van Sendmail (daemon of, in oudere
   versies, root). Deze ongepaste daad zou mensen toestaan de permissies
   van bestanden te verwijderen of wijzigen die toebehoren aan daemon
   (met behulp van de opdrachten rm of chmod in het aliases bestand). Tot
   op zekere hoogte wordt deze mogelijkheid vermeden door gebruik te
   maken van smrsh; men moet echter nog steeds zorgvuldig te werk gaan
   betreffende de bestanden die aanwezig zijn in de directory
   /etc/smrsh/.

   Een andere belangrijke beveiligingskwestie is dat de gebruiker die het
   bestand aliases kan benaderen, bestanden kan toevoegen of beschrijven
   die toebehoren aan daemon door gebruik te maken van bestandsomleiding
   (een >> of > in plaats van een |). Evenzo kan ook dit lek worden
   weerlegd door een regel toe te voegen aan het bestand sendmail.cf een
   beperking opleggend welke bestanden kunnen worden beschreven via het
   aliases ebstand. Voeg de regel
   O SaveFileEnvironment=/pad/naar/veilige/bestanden

   toe aan het bestand sendmail.cf of voeg
   define(`confSAFE_FILE_ENV',`/pad/naar/veilige/bestanden')

   toe aan het bestand sendmail.mc. Echter deze manoevre laat slechts een
   dunne beveiligingslaag tussen de gebruiker en daemon achter. Een veel
   beter idee zou zijn om het bestand aliases alleen schrijfbaar te maken
   voor root en een SUID root programma aan te maken om de aan Majordomo
   gerelateerde aliassen toe te voegen of te verwijderen.

   In het geval van include of .forward bestanden, worden opdrachten of
   omleidingen uitgevoerd als de gebruiker die eigenaar is van het
   bestand. Als daarom een bestand schrijfbaar is voor de groep, dan kan
   een deelnemer van de groep opdrachten uitvoeren als de gebruiker die
   eigenaar is van het bestand. Met andere woorden, elke gebruiker in de
   groep majordomo zou opdrachten als Majordomo uit kunnen voeren. Echter
   gezien de majordomo gebruiker zonder een shell wordt aangemaakt,
   zullen opdrachten of omleidingen niet worden verwerkt in include
   bestanden met als eigenaar majordomo.
     _________________________________________________________________

Consequenties van onveilige voor de groep schrijfbare directorypaden

   Als een gebruiker voor de groep schrijfpermissies heeft op een
   directory, bijvoorbeeld /etc/, dan zou de gebruiker simpelweg elk
   bestand kunnen verplaatsen en daarvoor in de plaats een nieuwe
   aanmaken. Een aanval zou als volgt kunnen verlopen
[mallory@kes etc]$ mv aliases ...
[mallory@kes etc]$ vi aliases

   De gebruiker kan dan zijn eigen aliassen aanmaken! Deze aanval zou
   echter kunnen worden verhinderd door de beveiligingscontrole van
   Sendmail van onveilige voor de groep schrijfbare paden. Een dergelijke
   aanval zou ook zo werken bij include en .forward bestanden met
   onveilige paden.

   In het geval van Majordomo, heeft de gebruiker in de groep majordomo
   reeds toegang tot de include bestanden, dus dit comprimitteert niet
   echt de beveiliging. Echter een beheerder zou zorgvuldig moeten zien
   te verhinderen deze onwenselijke onveilige groep schrijfbare
   directorypaden in de toekomst plaats te laten vinden, omdat Sendmail
   hier niet op zal controleren.
     _________________________________________________________________

De privacy van deelnemers beschermen

   Helaas kunnen geraffineerde spammers discussielijsten uitbreiden met
   behulp van de SMTP-opdracht EXPN. Om deze reden zouden beheerders deze
   feature moeten deactiveren wanneer discusselijsten worden verleend.
   Voeg de regel
   O PrivacyOptions=noexpn

   toe aan het bestand sendmail.cf of
   define(`confPRIVACY_FLAGS',`noexpn')

   aan het bestand sendmail.mc.
     _________________________________________________________________

Majordomo

   Majordomo is natuurlijk het stuk code waar het in dit document om
   draait; het bestaat uit een verzameling Perl-scripts met als enige
   doel het beheren van discussielijsten.
     _________________________________________________________________

Voorbereiden van de installatie

   Download de met gzip gecomprimeerde broncodedistributie van de laatste
   versie van Majordomo vanaf [12]Great Circle Associates en decomprimeer
   het
   [jarchie@kes jarchie]$ tar zxvf majordomo-1.94.5.tar.gz

   Hiermee zal een subdirectory worden aangemaakt met alle bestanden die
   nodig zijn om Majordomo te installeren; deze directory kan niet
   dezelfde directory zijn waarin Majordomo moet worden geïnstalleerd.

   Majordomo moet zodanig worden uitgevoerd onder een specifieke UID en
   GID dat wanneer een van de scripts wordt uitgevoerd, het zal draaien
   onder Majordomo's UID. Dus is het nodig een besluit te nemen over
   onder welke UID en GID Majordomo zal draaien. Ook moet Majordomo een
   toevertrouwde gebruiker van Sendmail zijn (zie [13]paragraaf
   Toevertrouwde gebruikers van sendmail).

   Kijk in de bestanden /etc/passwd en /etc/group om een nog niet in
   gebruik genomen UID en GID te achterhalen. Voor dit voorbeeld werd
   gekozen voor UID 16 en GID 16. Je moet een beslissing nemen over de
   lokatie waar de Majordomo-scripts zullen voorkomen; in deze HOWTO werd
   gekozen voor de directory /usr/local/majordomo-1.94.5/. Voeg regels
   vergelijkbaar met
   majordomo:x:16:16:Majordomo List Manager:/usr/local/majordomo-1.94.5:

   toe aan /etc/passwd als je gebruik maakt van een shadow password
   bestand en voeg een van toepassing zijnde regel toe aan /etc/shadow.
   majordomo:*:10883:0:88888:7:::

   Gebruik de andere regels in deze bestanden als een richtlijn voor wat
   er precies zou moeten worden toegevoegd. Dit zijn slechts de waarden
   op mijn systeem. Als je geen gebruik maakt van shadow-passwords, dan
   is alleen een regel nodig in het bestand /etc/passwd.

   Voeg voor de aanmaak van een Majordomo groep een regel toe
   vergelijkbaar met
   majordomo:x:16:jarchie

   aan het bestand /etc/group. Je gebruikersnaam toevoegen aan het einde
   van de regel geeft je toegang tot de Majordomo bestanden die
   schrijfbaar zijn voor de groep.
     _________________________________________________________________

Bewerken van de installatiebestanden

   De Makefile bevat alle informatie nodig om Majordomo te installeren;
   gewoonlijk moeten regels in de Makefile worden bewerkt die verwijzen
   naar systeemspecifieke instellingen zodat Majordomo zuiver op je
   systeem kan worden geïnstalleerd. De meeste standaardinstellingen zijn
   correct; echter de volgende instellingen, vrijwel onveranderlijk,
   moeten per systeem worden gewijzigd.
   [jarchie@kes majordomo-1.94.5]$ vi Makefile

   De instellingen
PERL = /bin/perl
CC = cc
W_HOME = /usr/test/majordomo-$(VERSION)
MAN = $(W_HOME)/man
W_USER = 123
W_GROUP = 45

   zouden moeten worden gewijzigd in iets meer geschikt voor je systeem.
   In mijn setup bijvoorbeeld zijn de waarden gewijzigd in
PERL = /usr/bin/perl
CC = gcc
W_HOME = /usr/local/majordomo-1.94.5
MAN = /usr/man
W_USER = 16
W_GROUP = 16

   Ook moet het bestand majordomo.cf worden aangemaakt. Een makkelijke
   manier om dit bestand aan te maken is door het aangeleverde bestand
   sample.cf te kopiëren naar majordomo.cf en het te bewerken.
[jarchie@kes majordomo-1.94.5]$ cp sample.cf majordomo.cf
[jarchie@kes majordomo-1.94.5]$ vi majordomo.cf

   Nogmaals, de meeste standaardinstellingen zijn correct, maar de
   volgende regels moeten wellicht voor je systeem worden aangepast van
$whereami = "example.com";
$whoami = "Majordomo\@$whereami";
$whoami_owner = "Majordomo-Owner\@$whereami";
     $homedir = "/usr/test/majordomo";
$digest_work_dir = "/usr/local/mail/digest";
$sendmail_command = "/usr/lib/sendmail";

   in iets meer passend zoals
$whereami = "kes.emeraldis.com";
$whoami = "majordomo\@$whereami";
$whoami_owner = "majordomo-owner\@$whereami";
     $homedir = "/usr/local/majordomo-1.94.5";
$digest_work_dir = "/usr/local/majordomo-1.94.5/digest";
$sendmail_command = "/usr/sbin/sendmail";

   $whoami en $whoami_owner hoeven voor de werking van Majordomo niet te
   worden gewijzigd; ik wijzigde ze omdat ik het intikken van
   hoofdletters graag wil voorkomen. $digest_work_dir is een tijdelijke
   directory waarin de digest bestanden zouden moeten worden geplaatst;
   aan deze directory zou moeten worden toegekend de directory waarin je
   wilt dat de digests worden opgeslagen. Maak je niet druk om deze optie
   als je niet van plan bent om digest lijsten te gebruiken. $whereami,
   $homedir, en $sendmail_command zouden moeten worden gewijzigd in de
   van toepassing zijnde waarden voor je systeem. In tegenstelling tot de
   Makefile, kunnen deze opties altijd worden gewijzigd nadat Majordomo
   is geïnstalleerd door het bewerken van majordomo.cf in de directory
   waarin Majordomo werd geïnstalleerd. (Het configuratiebestand wordt
   simpelweg gekopieerd tijdens de setup.)
     _________________________________________________________________

Majordomo installeren

   De volgende stap bestaat uit het compileren van de Majordomo wrapper.
   De wrapper is de enige Majordomo component die moet worden
   gecompileerd, omdat al het andere bestaat uit een verzameling
   perl-scripts en daarom niet wordt gecompileerd.
   [jarchie@kes majordomo-1.94.5]$ make wrapper

   Geef voor de installatie van de Majordomo bestanden de opdrachten:
[root@kes majordomo-1.94.5]# make install
[root@kes majordomo-1.94.5]# make install-wrapper

   De eerste opdracht kan als de Majordomo gebruiker (in de
   veronderstelling dat majordomo $home_dir kan aanmaken of hier toegang
   toe heeft), maar de tweede opdracht moet worden gegeven als root zodat
   het installatiescript kan SUID root de Majordomo wrapper. (Aangezien,
   majordomo werd aangemaakt zonder loginshell of wachtwoord, zul je als
   root de opdracht su majordomo moeten geven om majordomo te worden als
   je de eerste opdracht als majordomo uit wilt voeren.)
     _________________________________________________________________

Aanmaken van de Majordomo aliassen

   Sendmail aliassen moeten voor Majordomo worden aangemaakt zodat
   opdrachten verzonden naar Majordomo kunnen worden verwerkt door
   majordomo, en een alias voor de eigenaar van Majordomo moet worden
   aangemaakt, zodat mensen je kunnen mailen via het standaardadres
   owner-majordomo. Voeg de volgende regels toe aan het bestand aliases
   (zie [14]paragraaf Aliassen).
majordomo:       "|/usr/local/majordomo-1.94.5/wrapper majordomo"
owner-majordomo: jarchie
majordomo-owner: jarchie
     _________________________________________________________________

Testen van de configuratie

   Start als reguliere gebruiker (niet als majordomo of als root)
   [jarchie@kes jarchie]$ /usr/local/majordomo-1.94.5/wrapper config-test

   Dit programma kan de meeste problemen in de Majordomo installatie
   detecteren.
     _________________________________________________________________

Lijsten aanmaken

   Voor het aanmaken van een lijst, maak je een bestand aan met de naam
   van de lijst in de Majordomo-directory lists. Voor bijvoorbeeld het
   aanmaken van een lijst met de naam test, maak je als Majordomo een
   bestand test aan
[root@kes /]# su majordomo
[majordomo@kes /]$ touch /usr/local/majordomo-1.94.5/lists/test

   en voeg de gerelateerde aliassen toe
test:          :include:/usr/local/majordomo-1.94.5/lists/test
owner-test:    jarchie
test-request:  "|/usr/local/majordomo-1.94.5/wrapper request-answer test"
test-approval: jarchie
     _________________________________________________________________

Verder testen van de configuratie

   Test nu de werking van de lijst door een lists opdracht aan Majordomo
   uit te voeren.
   [jarchie@kes jarchie]$ echo lists | mail majordomo

   Het zou slechts een seconde moeten duren eer majordomo antwoordt met
   een bericht waarin alle lijsten die thans zijn opgesteld zijn
   opgesomd. Probeer vervolgens de opdracht help uit te voeren.
   [jarchie@kes jarchie]$ echo help | mail majordomo

   Majordomo zou moeten reageren met een lijst met alle opdrachten die
   Majordomo accepteert. Het is wellicht een goed idee om het bericht
   voor toekomstige referenties te bewaren.

   Probeer jezelf in- en uit te schrijven op de lijst om te achterhalen
   of de aliassen correct werken.
   [jarchie@kes jarchie]$ echo subscribe test | mail majordomo

   Je zult een E-mailbericht ontvangen met instructies hoe je de
   aanmelding kunt bevestigen als ook een melding bevestigend dat je
   opdracht succesvol was. Na het terugsturen van je bevestiging, zou
   Majordomo twee meldingen terug moeten sturen, één melding waarin staat
   dat je aanmeldingsverzoek succesvol was en een andere melding die je
   welkom heet op de lijst test. Aan de eigenaar van de lijst zal ook een
   bericht worden gezonden waarin staat aangegeven dat je je hebt
   aangemeld op de lijst.

   Stuur de opdracht unsubscribe om je uit te schrijven van een lijst
   [jarchie@kes jarchie]$ echo unsubscribe test | mail majordomo

   Je zou een melding terug moeten krijgen waarin staat dat je opdracht
   succesvol was.
     _________________________________________________________________

Betere aliassen aanmaken

   Bij een aantal lijsten kan het wenselijk zijn om Majordomo de
   berichten te laten verwerken, voordat ze de lijst bereiken. Majordomo
   heeft bijvoorbeeld een resend script om berichten gebaseerd op inhoud
   (zoals woorden die taboe zijn) automatisch te filteren om te voorkomen
   dat mensen Majordomo opdrachten naar de lijst sturen, en nog andere
   features. Voor het gebruik van deze opties is het nodig een betere set
   aliassen te gebruiken, zoals
test:        "|/usr/local/majordomo-1.94.5/wrapper resend -l test test-list"
test-list:   :include:/usr/local/majordomo-1.94.5/lists/test
owner-test:  jarchie
test-owner:  jarchie
test-request:  "|/usr/local/majordomo-1.94.5/wrapper majordomo -l test"

   De laatste regel maakt het iemand mogelijk om simpelweg een bericht te
   sturen naar test-request@kes.emeraldis.com met de tekst subscribe in
   plaats van het versturen van een bericht naar
   majordomo@kes.emeraldis.com met de tekst subscribe test. Als sendmail
   gebruik maakt van smrsh, dan zou de bovenstaande aliases verwijzen
   naar de kopie van de wrapper in het veilige pad, gewoonlijk
   /etc/smrsh/wrapper.
     _________________________________________________________________

Fouten opsporen

   Het gebeurt regelmatig dat de permissies van Majordomo niet correct
   worden ingesteld wat veroorzaakt dat Majordomo niet naar behoren
   werkt. Gelukkig geven Sendmail en Majordomo kenmerkend fatsoenlijke
   foutmeldingen die een probleem aanduiden. De directory lists
   bijvoorbeeld moet uitvoerbaar zijn voor de gebruiker sendmail setuids
   naar, typisch mail of daemon. Als sendmail lists niet kan uitvoeren,
   dan moeten de permissies wat minder strict zijn.
   [root@kes root]# chmod +x /usr/local/majordomo-1.94.5/lists

   Een ander gebruikelijk probleem wordt veroorzaakt doordat de directory
   lists schrijfbaar is door de groep. Als oplossing van dit probleem kan
   men de schrijfbare bit van de groep verwijderen of de sendmailoptie
   IncludeFileInGroupWritableDirPath gebruiken (zie [15]paragraaf
   Schrijfpermissies van de groep en [16]paragraaf Consequenties van
   onveilige te beschrijven groepen voor meer details).
     _________________________________________________________________

Majordomo beveiligingskwesties

   Majordomo is bedoeld te worden uitgevoerd op een geïsoleerd systeem;
   er bestaan een paar welbekende beveiligingslekken in de scripts
   waarmee elke lokale gebruiker wrapper kan draaien om code als de
   gebruiker majordomo uit te voeren. Als Majordomo op een systeem moet
   worden uitgevoerd die voorziet in gebruikers met toegang tot een
   shell, dan is het aan te raden de permissies op de wrapper te
   verscherpen. Dit kan worden bewerkstelligd door de uitvoerbare bit
   voor alle overige gebruikers te verwijderen en de groep van de wrapper
   met chgrp te wijzigen in de gebruiker die de Majordomo-scripts moet
   uitvoeren. Als bijvoorbeeld Sendmail en MajorCool beiden worden
   gebruikt om de wrapper uit te voeren, gebruik dan de opdrachten
[root@kes root]# cp /usr/local/majordomo-1.94.5/wrapper /etc/smrsh/wrapper
[root@kes root]# chmod 4750 /usr/local/majordomo-1.94.5/wrapper
[root@kes root]# chown root:nobody /usr/local/majordomo-1.94.5/wrapper
[root@kes root]# chmod 4750 /etc/smrsh/wrapper
[root@kes root]# chown root:mail /etc/smrsh/wrapper

   om het systeem te beveiligen. Dit laat toe dat sendmail (onderwijl
   onder mail draaiend) /etc/smrsh/wrapper uit te voeren terwijl het
   toestaat dat de webserver's MajorCool (draaiend onder nobody)
   /usr/local/majordomo-1.94.5/wrapper uitvoert. Deze oplossing zal
   echter toestaan dat iedereen met het UID of GID mail of nobody ook
   toegang tot het majordomo account kan verkrijgen. Ter bescherming van
   het nobody account, is het van belang normale gebruikers niet toe te
   staan gebruik te laten maken van serversite includes of cgi-scripts,
   tenzij die services niet onder nobody draaien.
     _________________________________________________________________

MajorCool

   MajorCool is een web-gebaseerde interface naar Majordomo waarmee
   gebruikers zichzelf kunnen toevoegen aan lijsten en kunnen verwijderen
   van lijsten en lijsten kunnen beheren waarvan ze eigenaar zijn. De
   installatie is tamelijk recht-door-zee; het enige dat hoeft te worden
   gedaan is het uitpakken van de bestanden, het bewerken van een regel
   in het Configure script, en het uitvoeren van het script.
     _________________________________________________________________

MajorCool extraheren

   De laatste bestanden kunnen worden gedownload van [17]Conveyance
   Digital.
[jarchie@kes jarchie]$ mkdir majorcool
[jarchie@kes jarchie]$ mv majorcool.tar.gz ./majorcool/
[jarchie@kes jarchie]$ cd majorcool/
[jarchie@kes majorcool]$ tar zxvf majorcool.tar.gz
     _________________________________________________________________

Bewerk het Configure Script

   Open Configure en
   [jarchie@kes majorcool]$ vi Configure

   wijzig de regel
   PERLBIN="/usr/local/bin/perl"   # Hoe een perlscript te starten

   in de juiste lokatie van perl
   PERLBIN="/usr/bin/perl"         # Hoe een perlscript te starten

   anders zal MajorCool niet juist worden geïnstalleerd.
     _________________________________________________________________

MajorCool installeren

   Tijdens de uitvoering van het Configure script, zal het simpelweg
   indrukken van de Enter-toets de standaardwaarde accepteren als de
   standaardkeuze voor een optie akkoord is.
   [root@kes majorcool]# ./Configure

   Het Configure script zal je vragen een paar maal op de Enter-toets te
   drukken, en dan zal het vragen om de lokatie van Majordomo en nog wat
   vragen stellen over de setup van je Webserver.
What is the installation directory of Majordomo?
        []: /usr/local/majordomo-1.94.5
Will place the MajorCool programs in /usr/local/majordomo-1.94.5.

What is the path to your Majordomo configuration file?
        [/usr/local/majordomo-1.94.5/majordomo.cf]:
Using configuration file name '/usr/local/majordomo-1.94.5/majordomo.cf'

Where would you like temp files created when MajorCool runs?
        [/tmp]:

MajorCool needs to install CGI programs, support files, and icons in
your Web server directories.

What is the root directory for your Web server?
        []: /var/www

Where is the cgi-bin directory for your Web server?
        [/var/www/cgi-bin]:
Will place the programs in /var/www/cgi-bin.

What is your server's URL for '/var/www/cgi-bin'?
        [/cgi-bin]:

Where is the image directory for your Web server?
        [/var/www/icons]:
Will place the icons in /var/www/icons.

What is your server's URL for '/var/www/icons'?
        [/images]: /icons

Where is the root directory for documents on your Web server?
        []: /var/www/html

   Het Configure script zal nog andere vragen stellen die minder kritiek
   zijn. (De standaardwaarden zijn prima, maar wellicht dat je een paar
   instellingen naar eigen voorkeuren wilt wijzigen. In tegenstelling tot
   een aantal Webserver vragen, zou de betekenis moeten blijken uit de
   context.) Wanneer het configuratiebestand dat het script genereerde
   uit je antwoorden wordt weergegeven, zou je de nieuwe versie moeten
   accepteren.
   Accept the new version? [yes|no|list|edit|diff]? y

   Het installatiescript zal de MajorCool bestanden installeren en het
   majordomo cgi-script uitvoeren die als uitvoer het html-bestand naar
   de console geeft. Bekijk het cgi-script majordomo vanaf het web ter
   controle of de installatie werkte.
   [jarchie@kes jarchie]$ lynx http://localhost/cgi-bin/majordomo
     _________________________________________________________________

Veel gestelde vragen

   Twee vragen die vaak worden gesteld.

   1. [18]Waarom geeft sendmail de foutmelding, sh: wrapper not available
          for sendmail programs?

   2. [19]Waarom zal RedHat mijn mc bestand niet verwerken?

   1. Waarom geeft sendmail de foutmelding, sh: wrapper not available for
   sendmail programs?

   smrsh zal alleen bepaalde bestanden uit laten voeren door sendmail.
   Zie [20]paragraaf Sendmail Restricted Shell.

   2. Waarom zal RedHat mijn mc bestand niet verwerken?

   Om de een of andere reden neemt RedHat de benodigde bestanden om mc
   bestanden te verwerken niet op. Overeenkomstig /etc/mail/sendmail.mc,
   zouden deze bestanden in het package sendmail-cf moeten zitten; ik
   slaagde er echter niet in dit package op de CD te vinden. Installeer
   ter correctie van dit probleem RedHat's sendmail SRPM, decomprimeer de
   sendmail tarball en kopieer de benodigde macrobestanden.
[root@kes root]# rpm -i sendmail-8.11.0-8.src.rpm
[root@kes root]# cd /usr/src/redhat/SOURCES/
[root@kes SOURCES]# tar zxvf sendmail-8.11.0.tar.gz
[root@kes SOURCES]# cd sendmail-8.11.0
[root@kes sendmail-8.11.0]# cp -R cf /usr/lib/sendmail-cf
[root@kes sendmail-8.11.0]# cd ..
[root@kes SOURCES]# rm -rf sendmail-8.11.0

   Bovendien bestaat in het standaardbestand /etc/mail/sendmail.mc, een
   kleine syntaxfout. (Het beginnende enkele aanhalingstekens op een
   regel staat andersom.) De regel
   define('ALIAS_FILE','/etc/aliases')dnl

   zou moeten worden gewijzigd in
   define(`ALIAS_FILE',`/etc/aliases')dnl

   Na deze wijzigingen zou het nieuwe sendmail.cf moeten worden
   gegenereerd.

Lijst met termen

   digest
          een verzameling nieuwe berichten als één bericht gemaild naar
          de deelnemers van een archieflijst. Een lijst wordt `digested'
          genoemd, wanneer het wordt gearchiveerd en periodiek een digest
          wordt uitgezonden.

   Group ID (GID)
          een identificatienummer toegekend aan bestanden, directory's en
          verwerkt om de toegang te beperken, vergelijkbaar met UID,
          behalve dat meerdere mensen deelnemer kunnen zijn van een
          groep. Op Unix type systemen, kunnen groepen worden opgezet
          (gedefinieerd in het bestand /etc/group). Wanneer een
          gebruikersnaam deelnemer is van een groep, kan zij bestanden
          benaderen aangemaakt met dat GID (in de veronderstelling dat de
          permissies 't toelaten).

   Mail Transfer Agent (MTA)
          een programma zoals Sendmail, verantwoordelijk voor het
          doorgeven van mail van de ene naar de andere lokatie.

   Set Group ID (SGID)
          een bestandskenmerk die een programma toestaat het uit te
          voeren met specifieke groepsprivileges ongeacht wie het
          uitvoert.

   smrsh
          (SendMail Restricted SHell) de shell die Sendmail gebruikt om
          programma's uit te voeren. smrsh plaatst beperkingen op de
          programma's die kunnen worden uitgevoerd om het veiliger te
          maken dan een reguliere shell, zoals de Bourne Shell.

   Set User ID (SUID)
          een bestandskenmerk die een programma toelaat het als een
          specifieke gebruiker uit te voeren ongeacht wie het uitvoert.

   User ID (UID)
          een identificatienummer toegekend aan bestanden, directory's en
          processen, vergelijkbaar met GID behalve dat elke gebruiker een
          uniek UID heeft. Elk proces moet onder een UID worden
          uitgevoerd (de één-op-één relatie tussen de UID en de
          gebruikersnaam is gedefinieerd in /etc/passwd). Het UID van het
          proces bepaalt wat het proces kan benaderen. Over het algemeen
          kan een reguliere gebruiker de permissies op bestanden wijzigen
          waarvan ze eigenaar is, tenzij de UID gelijk is aan 0 (de root
          gebruiker). In dat geval kan alleen root bestanden op het
          systeem aanpassen.

   wrapper
          een programma dat wordt gebruikt om een ander programma op te
          starten; gewoonlijk is een wrapper SUID of SGID zodat het
          privileges kan schenken aan een ander programma die het andere
          programma normaal gesproken niet zou hebben.

References

   1. mailto:johnarchie@emeraldis.com
   2. mailto:bokkie@nl.linux.org
   3. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#AEN20
   4. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#AEN63
   5. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#AEN262
   6. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#AEN433
   7. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#AEN487
   8. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#AEN525
   9. http://philosophy.lander.edu/~jarchie/majordomo/
  10. http://www.hpc.uh.edu/majordomo-users/
  11. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#SENDMAIL-SECURITY
  12. http://www.greatcircle.com/majordomo/
  13. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#SEC-SENDTRUST
  14. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#SEC-ALIASES
  15. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#GROUP-PERM
  16. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#GROUP-SECURITY
  17. http://www.conveyanced.com/MajorCool/
  18. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#AEN492
  19. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#AEN500
  20. file://localhost/tmp/Majordomo-MajorCool-HOWTO-NL/Majordomo-MajorCool-HOWTO-NL.html#SMRSH