Majordomo en MajorCool HOWTO John Archie, johnarchie@emeraldis.com Vertaler: Reggy Ekkebus, reggy@zeelandnet.nl v1.0, 10 November 1999 De document is bedoeld om een gebruiker te gidsen door een installatie van de Majordomo Mailing List Software en MajorCool. MajorCool is een applicatie voor het onderhouden van Majordomo lijsten via een CGI script; veel mensen die vreemd zijn met de text gebaseerde natuur van Majordomo geven de voorkeur aan het meer vriendelijke web-interface van MajorCool. ______________________________________________________________________ Inhoudsopgave 1. Introductie 1.1 Credits 1.2 Opmerkingen 2. Sendmail 2.1 Aliases 2.2 (TT 2.2.1 Een andere Aliases File 2.2.2 Ongewenste Sendmail Security Eigenschappen 2.2.3 Sendmail Vertrouwde Gebruikers 2.2.4 Sendmail Beperkte Shell 2.2.5 Groep schrijf Rechten 2.3 (TT 2.3.1 Een andere Aliases File aanmaken 2.3.2 Majordomo een vertrouwde gebruiker maken 2.3.3 Sendmail Secure Shell uitschakelen 2.3.4 Security eigenschappen uitschakelen 2.4 Sendmail Security bezorgd heden 2.4.1 Gevolgen van Onveilig Groep Schrijven 2.4.2 Gevolgen van Majordomo een vertrouwde gebruiker maken 2.4.3 Gevolgen van Onveilige Groep schrijf bare Directorie Paths 2.4.4 Inschrijvers Privacy beschermen 3. Majordomo 3.1 De installatie voorbereiden 3.2 De installatie files aanpassen 3.3 Majordomo Installeren 3.4 De Majordomo Aliases maken 3.5 De configuratie testen 3.6 Lijsten aanmaken 3.7 Verder testen van de configuratie 3.8 Beter Aliases maken 4. MajorCool 4.1 MajorCool Uitpakken 4.2 Het 4.3 MajorCool Installeren 5. Lijst van Termen ______________________________________________________________________ 1. Introductie Deze HOWTO is verdeeld in verschillende secties. Het Sendmail deel van deze HOWTO is een algemene discussie over Majordomo en hoe het werkt met Sendmail en ook de verschillende manieren om Majordomo op te zetten en de consequenties van zulke besluiten. In tegenstelling tot de rest van de HOWTO die is op gezet als een tutorial om een gebruiker te gidsen door het algemene installatie proces van Majordomo. Ik raad aan om door te gaan naar het algemene installatie proces dat is beschreven achter de Sendmail sectie, je kan altijd nog een deel van de Sendmail sectie nalezen als dat nodig is (de bedoelde secties worden op de plaatsen verwezen). Dan, lees de Sendmail sectie nauwkeurig en beslis dan hoe je je systeem exact moet configureren. Tot slot, een lijst met Termen geeft de definities van sommige moeilijke termen. Ook, als je enkele van de software in dit document download, als de officiële sites down zijn kun je de tarballs van mijn site downloaden--http://philosophy.lander.edu/~jarchie/majordomo/. 1.1. Credits Dank gaat naar (in alfabetische volgorde) een paar mensen die me erg hebben geholpen. · Lee Archie voor het proef-lezen · James Bruce en Bill Poston voor de gelegenheid om mijn eerste permanente machine te maken die Majordomo draait. · Joseph D. Sloan voor het lezen van het Sendmail deel en door de goede suggesties. 1.2. Opmerkingen Ik heb steeds geprobeerd deze HOWTO zo compleet mogelijk te maken, het is altijd goed om naar meer dan een bron te kijken. Hieronder is een lijst van bronnen die ik hulp vol vond toen ik Majordomo voor het eerst configureerde. Boeken: 1. Bryan Costales en Eric Allman, sendmail. Cambridge: O'Reilly, 1997. 2. Alan Schwartz, Managing Mailing Lists. Cambridge: O'Reilly, 1998. Gratis bronnen: 1. de documentatie die bij Sendmail zit, vooral README.cf 2. de documentatie die bij Majordomo zit, vooral INSTALL en NEWLIST 3. het Majordomo-Users Mailing List Archief (http://www.hpc.uh.edu/majordomo-users/) 4. de documentatie bij MajorCool 2. Sendmail Sinds Majordomo verantwoordelijk is voor het bijhouden van Email lijsten steunt Majordomo op een zware MTA zoals Sendmail. Er zijn andere MTA's zoals Smail en Qmail; hoe dan ook, Sendmail is de oudste en meest algemene. Deze sectie introduceert de lezer aan de gebieden van Sendmail die bruikbaar of nodig zijn om te configureren als je Majordomo gebruikt. 2.1. Aliases De Sendmail aliases file (gewoonlijk /etc/aliases) wordt gebruikt voor het maken van verwijzingen voor E-mail adressen. Bijvoorbeeld, wanneer Majordomo is geinstalleerd, komt er meest een regel als deze: majordomo-owner: jarchie Deze invoer betekend dat alle mail geadresseerd aan majordomo- owner@host.com eigenlijk naar jarchie@host.com wordt gezonden. Onthoud het is niet nodig om @host.com achter jarchie te zetten omdat beide gebruikers op de zelfde computer zitten. Als het moet worden door ges tuurd naar een andere gebruiker op een andere computer dan moet je wel @host.com erachter zetten. Een ander type van invoer in de aliases file geeft je de mogelijkheid om E-mail door te sturen naar meerdere personen aangegeven in een file: testlist: :include:/usr/local/majordomo-1.94.4/lists/testlist Deze invoer zegt dat alle berichten gezonden naar testlist@host.com worden doorgestuurd naar alle adressen in de file /usr/local/major domo-1.94.4/lists/testlist. De testlist file ziet er ongeveer zo uit: johnarchie@emeraldis.com srobirds@yahoo.com acreswell@geocities.com Majordomo kan hierdoor adressen toevoegen en verwijderen van een lijst door het voordeel van dit kenmerk. Als er een subscribe aanvraag wordt verwerkt wordt het E-mail adres van de gebruiker toegevoegd aan de testlist file; Als er een unsubscribe aanvraag wordt verwerkt wordt het E-mail adres van de gebruiker verwijderd uit de testlist file; Een kan ook simpel adressen toevoegen en verwijderen door simpel de file te editten met bijvoorbeeld vi. Sinds Majordomo commando's moet verwerken die met E-mail zijn gezonden, moet Sendmail het Majordomo programma kunnen starten en bericht kunnen doorgeven. Dit wordt gedaan door nog een ander type toe te-voegen aan de aliases file: majordomo: "|/usr/local/majordomo-1.94.4/wrapper majordomo" Het programma /usr/local/majordomo-1.94.4/wrapper is een wrapper (SUID majordomo en SGID majordomo of deamon afhankelijk van de configuratie) die het Majordomo programma uitvoert. De aanhalingstekens rond het tweede deel van de alias invoer vertelt sendmail dat het allemaal een deel is; De aanhalingstekens zouden niet nodig zijn als er geen spatie tussen wrapper en majordomo had gestaan. De | is bekend als een "pipe"; het wordt gebruikt om Sendmail te vertellen dat hij de e-mail via de standaard input moet zenden. (Sinds het enige wat de wrapper doet is majordomo aanroepen, de E-mail wordt eigenlijk gezonden door Majordomo.) De wrapper accepteert een parameter--het programma dat hij moet uitvoeren. (Elk parameter achter de eerst wordt gezonden naar het programma dat hij uitvoert.) Voor veiligheid redenen, voert de wrapper alleen programma's in de Majordomo directorie uit, /usr/local/major domo-1.94.4/. Deze beperking weerhoud een programmeur om de wrapper een programma te laten draaien dat niet Majordomo rechten moet hebben. (Bijvoorbeeld, wrapper /bin/vi zou de gebruiker in staat stellen om elke Majordomo configuratie file aan te passen.) Als een bericht wordt gezonden naar majordomo@host.com, start Sendmail de wrapper op die op zijn beurt majordomo start, en Sendmail geeft het bericht via de stan daard invoer door aan het majordomo script. Majordomo haalt dan gelijk het commando uit het bericht en antwoordt passend. 2.2. Sendmail.cf aanpassen Door zijn geheimzinnige zinsbouw is sendmail.cf de meest gevreesde van alle configuratie files. In de installatie van majordomo, is het niet echt nodig om sendmail.cf aan te passen; echter, een paar eigenschappen zijn extreem bruikbaar. Tenzij er grote veranderingen moeten worden gemaakt aan de sendmail.cf (die, gelukkig, voor Majordomo niet nodig zijn), de file aanpassen is niet zo moeilijk. Het enige dat we moeten doen is een paar extra regels toevoegen. 2.2.1. Een andere Aliases File Een aparte file voor de Majordomo aliases aanmaken, zoals /usr/local/majordomo-1.94.4/majordomo.aliases, is vaak een goed idee. Dit kan gemakkelijk gedaan worden door een regel aan het eind van de sendmail.cf file te plaatsen: OA/usr/local/majordomo-1.94.4/majordomo.aliases Om een /usr/local/majordomo-1.94.4/majordomo.aliases te hebben moet Sendmail een database kunnen genereren (/usr/local/major domo-1.94.4/majordomo.aliases.db). De makkelijkste manier om dit voor elkaar te krijgen is door gewoon een lege database aan te maken en die voor Sendmail overschrijf baar maken. ______________________________________________________________________ [root@kes majordomo-1.94.4]# touch majordomo.aliases.db [root@kes majordomo-1.94.4]# chmod 644 majordomo.aliases.db ______________________________________________________________________ Een andere methode om rond dit probleem te komen is door een majordomo.aliases file in de /etc/ directory te zetten i.p.v in de Majordomo home directory. 2.2.2. Ongewenste Sendmail Security Eigenschappen Voor vele set ups, kunnen sommige security middelen die Sendmail gebruikt Majordomo tegen houden om goed te werken. Vanzelfsprekend, moet deze security eigenschappen uitgezet worden. 2.2.3. Sendmail Vertrouwde Gebruikers Sendmail is een programma om het moeilijk te maken voor mensen om de "perfecte" vervalsing van E-mail te maken. Bijvoorbeeld, wanneer een gebruiker een bericht zend via SMTP, wordt het bron IP adres meestal gelogd, en als een gebruiker een bericht zend direct via Sendmail en de zender instelt via sendmail -f, geeft sendmail een waarschuwing met de gebruiker wie het bericht echt heeft gezonden. Hoewel, sommige programma's een bericht moet zenden met vermomt als een andere gebruiker, en deze extra security regel in de header is vervelend. Sendmail behandeld dit probleem door het hebben van vertrouwde gebruikers. Majordomo moet draaien als een Sendmail vertrouwde gebruiker sinds het programma mail moet zenden als een andere gebruiker. Deze eigenschap kan ingesteld worden op twee manieren. De makkelijkste is gewoon door Majordomo aan de daemon groep toe te voegen. Om de majordomo gebruiker toe te voegen aan de deamon groep moet je een regel aanpassen in de /etc/group file er verschijnt iets als dit. daemon::2:root,bin,daemon en het wordt daemon::2:root,bin,daemon,majordomo Een andere manier om Majordomo een vertrouwde gebruiker te maken is door de regel Tmajordomo toe te voegen aan de sendmail.cf file. 2.2.4. Sendmail Beperkte Shell Als Sendmail smrsh gebruikt, zijn de enige programma's die mogen worden uitgevoerd programma's in de /etc/smrsh/ directory. Misschien is de beste manier om de wrapper uit de aliases file te laten draaien door een symbolische link te creëren van /usr/local/majordomo-1.94.4/wrapper naar /etc/smrsh/wrapper. ______________________________________________________________________ [root@kes smrsh]# ln -s /usr/local/majordomo-1.94.4/wrapper wrapper ______________________________________________________________________ Een tweede oplossing is door de wrapper naar de /etc/smrsh directory te kopieëren. ______________________________________________________________________ [root@kes smrsh]# mv /usr/local/majordomo/wrapper ./ ______________________________________________________________________ Als veiligheid niet echt belangrijk is kun je de secure shell uitzetten. Een ruwe manier is gewoon door /usr/sbin/smrsh te verwi jderen en een kopie of een link van /bin/sh er terug zetten. ______________________________________________________________________ [root@kes sbin]# rm -f smrsh [root@kes sbin]# ln -s /bin/sh smrsh ______________________________________________________________________ Een beter (maar moeilijkere manier) is door sendmail.cf aan te passen. verander de aanmerking 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 2.2.5. Groep schrijf Rechten Als je plant om een niet-root gebruiker mailing list laat toevoegen en beheren, moet je een majordomo.aliases file hebben die groep schrijf baar is. Hoewel, Sendmail dit niet toestaat voor veiligheids redenen ( zie sectie over ``Sendmail Security Eigenschappen''). Om deze security eigenschap uit te schakelen, moet je de regel. O DontBlameSendmail=GroupWritableAliasFile toevoegen aan de sendmail.cf file. Ook, de lijst directory moet groep schrijf baar zijn om een lijst te kunnen toevoegen, maar sendmail staat deze setup om enkele redenen niet toe. Om dit uit te schakelen voeg dan de volgende regel toe O DontBlameSendmail=IncludeFileInGroupWritableDirPath aan je sendmail.cf configuratie file als dat nodig is. 2.3. sendmail.cf configureren met M4 Configuratie Voor administrators die niet de sendmail.cf file direct willen aanpassen, is het mogelijk om M4 te gebruiken om de file te creëren; de sectie beschrijft hoe je de veranderingen moet doen met een mc file i.p.v in de cf file. De bedoeling van een M4 configuratie is om een makkelijke manier aan te bieden om de sendmail.cf file aan te passen. Het is idee is dat de gecreeërde mc file makkelijker te snappen is dan de sendmail.cf file. Door het draaien van de m4 processor, wordt een sendmail.cf file gegenereerd: ______________________________________________________________________ [root@kes etc]# m4 /etc/sendmail.mc > /etc/sendmail.cf ______________________________________________________________________ 2.3.1. Een andere Aliases File aanmaken Voeg de regel define(`ALIAS_FILE',`/etc/aliases,/usr/local/majordomo/majordomo.aliases') toe aan de sendmail.mc file. 2.3.2. Majordomo een vertrouwde gebruiker maken Voeg de regel define(`confTRUSTED_USERS',`majordomo') toe aan de sendmail.mc file. 2.3.3. Sendmail Secure Shell uitschakelen Verwijder de regel FEATURE(smrsh) in uit sendmail.mc file. 2.3.4. Security eigenschappen uitschakelen Om de groep schrijf recht security check op de aliases file uit te schakelen voeg de regel define(`confDONT_BLAME_SENDMAIL',`GroupWritableAliasFile') toe aan de sendmail.mc file. Om de path schrijf recht security check voor de include files uit te schakelen, voeg de regel define(`confDONT_BLAME_SENDMAIL',`IncludeFileInGroupWritableDirPath') toe aan de sendmail.mc file. Om beide opties te gebruiken, gebruik dan define(`confDONT_BLAME_SENDMAIL',`GroupWritableAliasFile,IncludeFileInGroupWritableDirPath') De laatste regel toevoegen is gelijk aan schrijven O DontBlameSendmail=GroupWritableAliasFile,IncludeFileInGroupWritableDirPath in de sendmail.cf, en deze entry is het zelfde als beide op een aparte regel staan: O DontBlameSendmail=GroupWritableAliasFile O DontBlameSendmail=IncludeFileInGroupWritableDirPath 2.4. Sendmail Security bezorgd heden Security is verhoudings gewijs het tegenover gestelde van gemak; de enige veilige machine is een die geen toegang bied voor wie dan ook. Door het uitschakelen van enkele sendmail security eigenschappen wordt een machine onvoorkombaar minder veilig. Hoewel, het is belangrijk om de basis security risico's te snappen om zo vast te stellen of het gemak het waard is om je computer minder veilig te maken. 2.4.1. Gevolgen van Onveilig Groep Schrijven Als een gebruiker schrijf rechten heeft om toegang te krijgen tot een aliases file, moet ze een vertrouwde gebruiker zijn. Door het steken van een invoegsel in de aliases file ( zoals die gebruikt wordt om wrapper uit te-voeren) kan een gebruiker programma's uitvoeren met de rechten van Sendmail (daemon of, in oude versies, root). De grote blunder van dit zou zijn dat je mensen in staat stelt om permissies te veranderen of zelfs te verwijderen van files die toebehoren aan daemon (door gebruik van rm of chmod commands in de aliases file). Dit is misschien vermeden door het gebruik van smrsh; hoewel, er moet nog steeds voorzichtigheid zijn met welke files er in de /etc/smrsh/ directory staan. Een ander onderwerp dat boven water komt is dat de gebruiker die toegang hebben tot de aliases file kunnen veranderen in files die toebehoren aan daemon door het gebruik van file verwijzing (a >> or > i.p.v |). En zo kan deze inbreuk ook worden opgelost door het toevoegen van een regel aan de sendmail.cf die limiteerd welke files kunnen worden geschreven door de aliases file. Voeg de regel O SaveFileEnvironment=/path/to/safe/files toe aan de sendmail.cf of voeg define(`confSAFE_FILE_ENV',`/path/to/safe/files') toe aan de sendmail.mc file. Hoewel, dit alleen een kleine laag van security tussen gebruiker en deamon achterlaat. Een veel beter idee zou zijn dat je een aliases file had die alleen schrijf baar is voor root en om een SUID root programma te maken dat automatisch toevoegt en verwijderd aan de Majordomo gerelateerde aliases. In het geval van include of .forward files, worden commando gedraaid als de gebruiker van wie ze zijn. Daarom, als een file groep schrijf baar is, kan een lid van de groep commando's uitvoeren als de gebruiker van wie de file is. Met andere woorden, elke gebruiker in de majordomo groep kan commando's uitvoeren als Majordomo. Hoewel als de majordomo gebruiker is aangemaakt zonder een shell, commando's of verwijzingen worden niet verwerkt in include files toe behorend tot majordomo. 2.4.2. Gevolgen van Majordomo een vertrouwde gebruiker maken Als majordomo een vertrouwde gebruiker is, dan zijn gebruikers die in de majordomo groep ook vertrouwd. Als majordomo lid is van de deamon groep, zijn leden van de majodomo groep niet vertrouwd. Het is een goed idee om majordomo een lid te maken van de daemon groep, en maak een aparte groep aan genaamd majordomo voor mensen die de Majordomo lijsten onderhouden om te vermeiden dat majordomo een vertrouwde gebruiker is. Ook, als je majordomo lid maakt van de deamon groep hoeft de wrapper niet wereld uitvoerbaar te zijn. (De wrapper kan worden uitgevoerd door de groep daemon, en door Sendmail via de aliases file sinds deze files uitvoert als daemon.) Deze toegevoegde security houdt gebruikers tegen om Majordomo te "voeden" door valse berichten door de wrapper aan Majordomo te geven. 2.4.3. Gevolgen van Onveilige Groep schrijf bare Directorie Paths Als een gebruiker groep schijf rechten heeft op een directory, bijvoorbeeld /etc, kan een gebruiker simpel elke file verplaatsen en er een nieuwe terug zetten. Een aanval kan ongeveer gaan zoals dit ______________________________________________________________________ [mallory@kes etc]$ mv aliases ... [mallory@kes etc]$ vi aliases ______________________________________________________________________ De gebruiker kan nu zijn eigen aliases maken! Deze aanval, kan worden tegengehouden door Sendmail's security checking voor onveilige groep schrijf bare paths. Deze aanval zou ook kunnen werken met een include en .forward file dat een onveilig path heeft. In het geval van Majordomo, heeft de gebruiker in de majordomo groep al toegang tot de include files, dus dit breekt de veiligheid niet. Hoewel, een administrator moet voorzichtig zijn en moet deze ongewenste onveilige groepen en hun schrijf bare directorie paths, in de toekomst, omdat Sendmail er niet naar kijkt. 2.4.4. Inschrijvers Privacy beschermen Helaas, zeer ervaren spammers kunnen een mailing list openen door het EXPN SMTP commando. Daarom zouden administrators dit moeten uitzetten als ze mailing lijsten hebben. Voeg de regel O PrivacyOptions=noexpn toe aan de sendmail.cf file of define(`confPRIVACY_FLAGS',`noexpn') toe aan de sendmail.mc file. 3. Majordomo Majordomo is, natuurlijk, het stukje code waar dit document om draait; het bestaat uit een aantal Perl scripts met als enig doel het onderhouden van mailing lists. 3.1. De installatie voorbereiden Download de gegzipte bron distributie van de laatste versie van Majordomo van http://www.greatcircle.com/majordomo/ en pak het uit ______________________________________________________________________ [jarchie@kes jarchie]$ zcat majordomo-1.94.4.tar.Z | tar xvf - ______________________________________________________________________ Dit maakt een subdirectory aan met alle files die nodig zijn om Major domo te installeren; deze directory kan niet dezelfde zijn als de directory waar Majordomo wordt geinstalleerd. Majordomo moet draaien onder een bepaald UID en GID dus als je een van de scripts draait, draaien ze onder Majordomo's UID Dus, is het nodig om te beslissen onder welk UID of GID Majordomo gaat draaien. Ook moet Majordomo een Sendmail vertrouwde gebruiker zijn. (Zie ``Gevolgen van Majordomo een vertrouwde gebruiker maken'') Check de /etc/passwd en /etc/group files om een UID en GID te vinden dat nog niet is ingenomen. Bijvoorbeeld, een UID van 16 en een GID van 16 is gekozen. Je hebt de lokatie van de Majordomo script beslist; in deze HOWTO de directory /usr/local/majordomo-1.94.4/. Als je shadow passwords gebruik moet je deze regel toevoegen aan /etc/passwd. majordomo:x:16:16:Majordomo List Manager:/usr/local/majordomo-1.9.4: En zo'n soort regel aan je /etc/shadow. majordomo:*:10883:0:88888:7::: Gebruik de andere entries in deze files als een gids van wat je exact moet invullen. Dit zijn alleen de waarden voor mijn systeem. Als je geen shadow passwords gebruikt is alleen een entry in de /etc/passwd file nodig. Om de Majordomo groep toe te voegen, voeg de volgende regel majordomo:x:16:jarchie,majordomo toe aan je /etc/group file. Dit geeft je toegang tot de Majordomo files die groep schrijf baar zijn. Ook, kun je majordomo aan de dea mon groep toevoegen om het een vertrouwde gebruiker te maken (Zie ``Sendmail Vertrouwde gebruikers'') Om dit te doen verander de regel die er zo uitziet daemon:x:2:root,bin,daemon naar daemon:x:2:root,bin,daemon,majordomo 3.2. De installatie files aanpassen De Makefile houdt alle informatie in die nodig is om Majordomo te installeren; het is meestal onnodig om regels aan te passen in Makefile die te maken hebben met systeem specifieke instellingen zodat Majordomo goed op je systeem installeert. De meest standaard instellingen zijn goed; Hoewel, de volgende instellingen, moeten worden veranderd. ______________________________________________________________________ [jarchie@kes majordomo-1.94.4]$ 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 moeten worden veranderd naar iets meer geschikt voor je systeem. Bijvoorbeeld, in mijn instellingen, zijn de waarden veranderd naar PERL = /usr/bin/perl CC = gcc W_HOME = /usr/local/majordomo-1.94.4 MAN = /usr/man W_USER = 16 W_GROUP = 16 Ook de majordomo.cf file moet worden aangemaakt. Een makkelijke manier om dit te doen is door de meegeleverde sample.cf te copieëren naar majordomo.cf en deze editten. ______________________________________________________________________ [jarchie@kes majordomo-1.94.4]$ cp sample.cf majordomo.cf [jarchie@kes majordomo-1.94.4]$ vi majordomo.cf ______________________________________________________________________ Weer, de meeste instellingen zijn standaard goed, maar de volgende regels moet worden veranderd voor je systeem 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"; naar iets als dit $whereami = "kes.emeraldis.com"; $whoami = "majordomo\@$whereami"; $whoami_owner = "majordomo-owner\@$whereami"; $homedir = "/usr/local/majordomo-1.94.4"; $digest_work_dir = "/usr/local/majordomo-1.94.4/digest"; $sendmail_command = "/usr/sbin/sendmail"; $whoami en $whoami_owner moeten niet worden veranderd om Majordomo te laten werken, ik heb ze veranderd omdat ik het niet leuk vindt om hoofdletters te typen. $digest_work_dir is een tijdelijke directory waar files moet worden geplaatst. Als je niet van plan ven verkorte lijsten te gebruiken, moet je je niet druk maken over deze optie. $whereami, $homedir, and $sendmail_command moet worden veranderd naar de werkelijke waarden van je systeem. Anders dan de Makefile, deze opties kunnen altijd worden veranderd nadat Majordomo is geinstalleerd door majordomo.cf aan te passen in de directory waar Majordomo is geinstalleerd. (De configuratie file is simpel gecopieeerd tijdens het installeren.) 3.3. Majordomo Installeren De volgende stap is de Majordomo wrapper compileren. De wrapper is het enige Majordomo component dat moet worden gecompileerd omdat de rest alleen een collectie van perl scripts zin en moeten daarom niet worden compileerd. [jarchie@kes majordomo-1.94.4]$ make wrapper Om de Majordomo files te installeren, voer je de volgende commando's uit [jarchie@kes majordomo-1.94.4]# make install [jarchie@kes majordomo-1.94.4]# make install-wrapper Het eerste commando kan worden gedaan als de Majordomo gebruiker, maar de twee moet gedaan worden als root zodat het installatie script de wrapper SUID kan maken. (Sinds, majordomo is gecreerd zonder login shell of paswoord en je wilt het eerste commando als majordomo doen moet je eerst inloggen en dan su majordomo als root doen om majordomo te worden.) 3.4. De Majordomo Aliases maken Sendmial aliases moet worden aan gemaakt voor Majordomo zodat commando's gezonden naar Majordomo kunnen worden verwerkt door Majordomo en de majordomo eigenaar, zodat de mensen je kunnen E-mail met het standaard adres owner-majordomo. Voeg de volgende regels toe aan je aliases file. (Zie ``Aliases'') majordomo: "|/usr/local/majordomo-1.94.4/wrapper majordomo" owner-majordomo: jarchie majordomo-owner: jarchie 3.5. De configuratie testen Als een gewone gebruiker (niet als majordomo of als root), doe je ______________________________________________________________________ [jarchie@kes jarchie]$ /usr/local/majordomo-1.94.4/wrapper config-test ______________________________________________________________________ Dit detecteert de meeste problemen in de Majordomo installatie. 3.6. Lijsten aanmaken Om een lijst te maken, moet je een file maken met de naam van de lijst in de Majordomo lijst directory. Bijvoorbeeld, om een lijst te maken genoemd test, moet je een file test maken als gebruiker Majordomo ______________________________________________________________________ [root@kes /]# su majordomo [majordomo@kes /]$ touch /usr/local/majordomo-1.94.4/lists/test ______________________________________________________________________ en voeg de gerelateerd alias toe test: :include:/usr/local/majordomo-1.94.4/lists/test owner-test: jarchie test-request: "|/usr/local/majordomo-1.94.4/wrapper request-answer test" test-approval: jarchie 3.7. Verder testen van de configuratie Nu testen we de operatie van de lijst door het lists commando aan majordomo te geven. ______________________________________________________________________ [jarchie@kes jarchie]$ echo lists | mail majordomo ______________________________________________________________________ Het zou maar een seconde voor majordomo moeten duren om antwoord te geven met een bericht dat alle lijsten weergeeft die nu ingesteld zijn. Daarna probeer je het help commando. ______________________________________________________________________ [jarchie@kes jarchie]$ echo help | mail majordomo ______________________________________________________________________ Majordomo zou moeten antwoorden met een lijst van alle commando's die Majordomo accepteert. Het zou een goed idee zijn als je dit bericht bewaard voor later. Om te zien of de aliases goed werken, probeer je zelf intescrijven en weer uitte schrijven bij een lijst. ______________________________________________________________________ [jarchie@kes jarchie]$ echo subscribe test | mail majordomo ______________________________________________________________________ Je ontvangt een E-mail message met instructies hoe je je echt moet inschrijven en een brief dat je commando is gelukt. Nadat je je goed keuring het opgestuurd, moet Majordomo twee brieven terug zenden-- een dat je inschrijf aanvraag is geaccepteerd en een welkoms brief. De eigenaar van de lijst krijgt ook een e-mail met daarin dat jij je hebt ingeschreven. Om je inschrijving op te heffen, zendt een unsubscribe commando ______________________________________________________________________ [jarchie@kes jarchie]$ echo unsubscribe test | mail majordomo ______________________________________________________________________ Je krijgt een brief terug met daarin dat je commando succesvol was. 3.8. Beter Aliases maken Voor sommige lijsten, is het misschien goed dat Majordomo ze eerst nakijkt voordat ze de echte lijst bereiken. Bijvoorbeeld, Majordomo heeft een optie om je berichten automatisch te filteren op inhoud (zoals taboo woorden), of Majordomo kan mensen pakken die commando's naar de lijsten proberen te zenden. Voor deze opties, is het nodig om een betere set van aliases te gebruiken zoals test: "|/usr/local/majordomo-1.94.4/wrapper resend -l test test-list" test-list: :include:/usr/local/majordomo-1.94.4/lists/test owner-test: jarchie test-owner: jarchie test-request: "|/usr/local/majordomo-1.94.4/wrapper majordomo -l test" De laatste invoer staat toe dat iemand simpel een bericht naar test- request@kes.emeraldis.com zend met de text subscribe dan een bericht zenden naar majordomo@kes.emeraldis.com met de text subscribe test. 4. MajorCool MajorCool is een web gebaseerd interface voor Majordomo die gebruikers instaat stelt om zichzelf toe te voegen en te verwijderen van een lijst en om die van hun zijn te onderhouden. De installatie is zeer gemakkelijk; alles wat je moet doen is de file's unzippen, 1 regel in het Configure script veranderen en dit uitvoeren. 4.1. MajorCool Uitpakken De laatste files kan je download-en van http://ncrinfo.ncr.com/pub/contrib/unix/MajorCool/majorcool.tar.gz. ______________________________________________________________________ [jarchie@kes jarchie]$ mkdir majorcool [jarchie@kes jarchie]$ mv majorcool.tar.gz ./majorcool/ [jarchie@kes majorcool]$ zcat majorcool.tar.gz | tar xvf - ______________________________________________________________________ 4.2. Het Configure script aanpassen Open Configure ______________________________________________________________________ [jarchie@kes majorcool]$ vi Configure ______________________________________________________________________ en verander de regel PERLBIN="/usr/local/bin/perl" # How to start a perl script naar het goede perl path PERLBIN="/usr/bin/perl" # How to start a perl script anders zal, Majorcool niet goed installeren. 4.3. MajorCool Installeren Als je het Configure script draait, als de standaard keuze voor een optie ok is, is simpel Enter drukken genoeg om de standaard waarde te accepteren. ______________________________________________________________________ [root@kes majorcool]# ./Configure ______________________________________________________________________ Het Configure script vraagt je om een paar keer Enter te drukken en dan vraagt het naar de locatie van Majordomo en enkele andere vragen over de setup van je web server. ______________________________________________________________________ What is the installation directory of Majordomo? []: /usr/local/majordomo-1.94.4 Will place the MajorCool programs in /usr/local/majordomo-1.94.4. What is the path to your Majordomo configuration file? [/usr/local/majordomo-1.94.4/majordomo.cf]: Using configuration file name '/usr/local/majordomo-1.94.4/majordomo.cf' Where would you like temp files created when MajorCool runs? [/tmp]: MajorCool moet CGI programma's, support files, en icoontjes installeren in je Web server directories. What is the root directory for your Web server? []: /home/httpd Where is the cgi-bin directory for your Web server? [/home/httpd/cgi-bin]: Will place the programs in /home/httpd/cgi-bin. What is your server's URL for '/home/httpd/cgi-bin'? [/cgi-bin]: Where is the image directory for your Web server? [/home/httpd/icons]: Will place the icons in /home/httpd/icons. What is your server's URL for '/home/httpd/icons'? [/images]: /icons Where is the root directory for documents on your Web server? []: /home/httpd/html ______________________________________________________________________ Het Configure script vraagt je andere vragen die niet echt belangrijk zijn. (De standaard instellingen zijn goed, maar je kan een paar instellingen veranderen om aan jouw wensen te voldoen. Anders dan de vragen van de web-server, de bedoel wordt duidelijk vanuit de con text.) Als de configuratie file dat het script genereert van je vragen is weergegeven, moet je de nieuwe versie accepteer. ______________________________________________________________________ Accept the new version? [yes|no|list|edit|diff]? y ______________________________________________________________________ Het installatie script installeert de MajorCool files en draait het majordomo cgi script die de html file weergeeft op het console. Con troleer om te zien of de installatie goed heeft gewerkt door het majordomo cgi script te bekijken op het web. ______________________________________________________________________ [jarchie@kes jarchie]$ lynx http://localhost/cgi-bin/majordomo ______________________________________________________________________ 5. Lijst van Termen digest een collectie nieuwe berichten gemailed naar de leden van een lijst als een bericht. Een lijst wordt digested genoemd wanneer deze wordt opgeslagen, en periodiek wordt gezonden. GID (Group ID) een identificatie nummer toegekend aan files, directories en processen om rechten te beperken-- Het zelfde als UID behalve dat meerdere mensen lid kunnen zijn van een groep. Op Unix type systemen, kunnen groepen worden ingesteld (gedifineer in de /etc/group file). Als een gebruik naam een lid van een groep is, kan deze toegang krijgen tot files met dat GID (veronderstellend dat permissies dit toelaten). MTA (Mail Transfer Agent) een programma, zoals Sendmail, verantwoordelijk voor het sturen van mail van de ene naar de andere plaats. SGID (Set Group ID) een file attribuut dat een programma in staat stelt om te draaien met een specifieke groeps rechten, het maakt niet uit wie het programma uitvoert. smrsh (SendMail Restricted SHell) de shell die Sendmail gebruikt om programma's uit te voeren smrsh zet beperkingen op de programma's die kunnen worden gedraaid om het veiliger te maken dan een gewone shell zoals bash. SUID (Set User ID) een file atribuut dat toestaat een programma te draaien als een specifieke gebruiker, het maakt niet uit wie het programma uitvoert. UID (User ID) een identificatie nummer toegekend aan files, directories en processen--het zelfde als GID, maar iedere gebruiker heeft zijn eigen unieke UID. Elk proces moet draaien onder een UID ( De een-op-een relatie tussen UID en gebruikers naam is gedefinieerd in /etc/passwd). Het process' UID geeft aan wat het programma kan doen. Normaal ken een gewone gebruiker permissies op zijn/haar files veranderen, tenzij het UID 0 is (de root gebruiker). In dat geval kan hij elke file aanpassen op het systeem. wrapper Een programma gebruikt om een ander programma te starten; normaal is een wrapper SUID of SGID zodat het privileges kan geven aan een ander programma die het andere programma normaal niet zou hebben.