Verder Terug Inhoud

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 gestuurd 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/majordomo-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/majordomo-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 standaard 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.

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/majordomo-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.

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.

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.

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 verwijderen 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

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

Een andere Aliases File aanmaken

Voeg de regel

define(`ALIAS_FILE',`/etc/aliases,/usr/local/majordomo/majordomo.aliases')
toe aan de sendmail.mc file.

Majordomo een vertrouwde gebruiker maken

Voeg de regel

define(`confTRUSTED_USERS',`majordomo')
toe aan de sendmail.mc file.

Sendmail Secure Shell uitschakelen

Verwijder de regel

FEATURE(smrsh)
in uit sendmail.mc file.

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.

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.

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.

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.

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.
Verder Terug Inhoud