pkg://howto-swedish-6.0-4.noarch.rpm:1344023/
usr/
doc/
HOWTO/
translations/
sv/
html/Mail-HOWTO-se-6.html
info downloads
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Linux e-post HOWTO: GAMMALT AVSNITT: Sendmail+IDA</TITLE>
<LINK HREF="Mail-HOWTO-se-7.html" REL=next>
<LINK HREF="Mail-HOWTO-se-5.html" REL=previous>
<LINK HREF="Mail-HOWTO-se.html#toc6" REL=contents>
</HEAD>
<BODY>
<A HREF="Mail-HOWTO-se-7.html">Nästa</A>
<A HREF="Mail-HOWTO-se-5.html">Föregående</A>
<A HREF="Mail-HOWTO-se.html#toc6">Innehållsförteckning</A>
<HR>
<H2><A NAME="s6">6. GAMMALT AVSNITT: Sendmail+IDA</A></H2>
<P>
<P>För stora sajter kan det vara värt att välja sendmail på grund av det är "otroligt lättanvänt" (väldigt relativ
känsla när man känner till qmail) men du måste avgöra om du vill ha sendmail+IDA eller sendmail 8.x:
<P>
<UL>
<LI> Om du använder en gammal kärna (1.0): sendmail+IDA</LI>
<LI> Om du använder en inte så gammal kärna (1.2): sendmail+IDA och modifiering av källkod</LI>
<LI> Nyare kärna (2.0): sendmail 8.x</LI>
</UL>
<P>Kom ihåg: linuxnybörjare eller personer som vill ha säkerhet och/eller lätt konfiguration bör istället använda
smail eller qmail, vilka är lättare att använda och säkrare.
<P>
<H2><A NAME="ss6.1">6.1 Installation av källkod </A>
</H2>
<P>
<P>Om din distribution inte innehåller ett installeringsfärdigt paket med sendmail (.rpm för RedHat, Caldera och
Suse, .deb för Debian) så ladda hem källkoden och kör:
<P>
<UL>
<LI><CODE>cd / ; tar -zxvf sendmail5.67b+IDA1.5.tgz</CODE></LI>
</UL>
<P>
<UL>
<LI>byt till katalogen <CODE>/usr/local/lib/mail/CF</CODE> och kopiera exempelfilen <CODE>local.m4</CODE> till
<CODE>ditt_datornamn.m4</CODE>.</LI>
</UL>
<P>Editera denna fil och byt ut <EM>hostname</EM>, <EM>aliases</EM> och <EM>smarthost</EM> mot de som är korrekta för din
sajt. Standardfilen är för en endast-uucp sajt som har domäniserade huvuden och som 'pratar' med en smart värd.
Kör sedan <CODE>make ditt_datornamn.cf</CODE> och flytta resultatet till <CODE>/etc/sendmail.cf</CODE>
<P>
<UL>
<LI>Om du har en endast-uucp sajt så behöver du inte skapa någon av de tabeller som nämns i filen
<CODE>README.linux</CODE>.</LI>
</UL>
<P>Du kommer att behöva ändra lite grann i filerna så att <CODE>Makefile</CODE> fungerar. Ändra bara i <CODE>.m4</CODE> filen, kör
<CODE>make sendmail.cf</CODE> och börja testa det.
<P>
<UL>
<LI>Om du har en endast-uucp sajt och du 'pratar' med sajter utöver din <EM>smarthost</EM>, så måste du lägga
till <EM>uucpxtable</EM>-poster för var och en av dem (annars kommer e-post till dem också att gå via
<EM>smarthost</EM>) och köra <EM>dbm</EM> mot den ändrade <CODE>uucpxtable</CODE>.</LI>
</UL>
<P>
<UL>
<LI>Om du kör Rich Brauns orginaldistribution av 5.67a, och om du ändrar din <CODE>.cf</CODE>-fil så måste du frysa
konfigurationen med <CODE>/usr/lib/sendmail -bz</CODE> för att ändringarna skall ha någon effekt.</LI>
</UL>
<P>Du bör också updatera din version till åtminstonde 5.67b eftersom det finns ett elakt säkerhetshål i 5.67a och
tidigare. En annan bra sak är att, om du har <EM>mail.debug</EM> satt och du kör <EM>syslogd</EM>, så kommer dina
inkommande och utgående e-postmeddelanden att loggas. Se filen <CODE>/etc/syslog.conf</CODE> för mer information.
<P>Källkoden för sendmail+IDA finns på
<A HREF="ftp://vixen.cso.uiuc.edu">ftp://vixen.cso.uiuc.edu</A>.
Det krävs inga patchar om du kör en kärna som 1.00.
<P>Om du kör en kärna >1.1.50, så kommer du att få skoj med att ta bort de flesta Linux-specifika patchar som nu
finns i vanilla källkoden. (Jag *sade* ju att sendmail+IDA bara var för gamla kärnor :-)
<P>Det är extremt självklart var detta behövs: kör bara <CODE>make</CODE> och när det blir fel, gå till den raden i
källkoden och kommentera bort den Linux-specifika koden som finns där.
<P>Om du skall köra sendmail+IDA så rekommenderar jag starkt att du tar versionen sendmail5.67b+IDA1.5 eftersom
alla nödvändiga Linux-specifika patchar nu finns i vanilla källkoden och flera säkerhetsläckor som FANNS i de
gamla versionerna har täppts till.
<P>Nu är linux kärnan på 2.0 och du bör välja sendmail 8.x istället för sendmail+IDA.
<P>
<H2><A NAME="ss6.2">6.2 Filen <CODE>sendmail.m4</CODE> </A>
</H2>
<P>
<P>Sendmail+IDA kräver att du sätter upp en <CODE>sendmail.m4</CODE> fil istället för att ändra direkt i filen
<CODE>sendmail.cf</CODE>. Det fina med detta är att det är enkelt att sätta upp konfigurationer som är extremt svåra
(om inte totalt omöjliga för de flesta) att sätta upp korrekt i smail eller traditionell sendmail.
<P>En <CODE>sendmail.m4</CODE> fil som motsvarar ovanstående exempel med smail ser ut som följer:
<P>
<PRE>
dnl #------------------ SAMPLE SENDMAIL.M4 FILE ------------------
dnl #
dnl # (the string 'dnl' is the m4 equivalent of commenting out a line)
dnl #
dnl # you generally don't want to override LIBDIR from the compiled in paths
dnl #define(LIBDIR,/usr/local/lib/mail)dnl # where all support files go
define(LOCAL_MAILER_DEF, mailers.linux)dnl # mailer for local delivery
define(POSTMASTERBOUNCE)dnl # postmaster gets bounces
define(PSEUDODOMAINS, BITNET UUCP)dnl # don't try DNS on these
dnl #
dnl #-------------------------------------------------------------
dnl #
dnl # names we're known by
define(PSEUDONYMS, myhostname.subdomain.domain myhostname.UUCP)
dnl #
dnl # our primary name
define(HOSTNAME, myhostname.subdomain.domain)
dnl #
dnl # our uucp name
define(UUCPNAME, myhostname)dnl
dnl #
dnl #-------------------------------------------------------------
dnl #
define(UUCPNODES, |uuname|sort|uniq)dnl # our uucp neighbors
define(BANGIMPLIESUUCP)dnl # make certain that uucp
define(BANGONLYUUCP)dnl # mail is treated correctly
define(RELAY_HOST, my_uucp_neighbor)dnl # our smart relay host
define(RELAY_MAILER, UUCP-A)dnl # we reach moria via uucp
dnl #
dnl #--------------------------------------------------------------------
dnl #
dnl # the various dbm lookup tables
dnl #
define(ALIASES, LIBDIR/aliases)dnl # system aliases
define(DOMAINTABLE, LIBDIR/domaintable)dnl # domainize hosts
define(PATHTABLE, LIBDIR/pathtable)dnl # paths database
define(GENERICFROM, LIBDIR/generics)dnl # generic from addresses
define(MAILERTABLE, LIBDIR/mailertable)dnl # mailers per host or domain
define(UUCPXTABLE, LIBDIR/uucpxtable)dnl # paths to hosts we feed
define(UUCPRELAYS, LIBDIR/uucprelays)dnl # short-circuit paths
dnl #
dnl #--------------------------------------------------------------------
dnl #
dnl # include the 'real' code that makes it all work
dnl # (provided with the source code)
dnl #
include(Sendmail.mc)dnl # REQUIRED ENTRY !!!
dnl #
dnl #------------ END OF SAMPLE SENDMAIL.M4 FILE -------
</PRE>
<P>
<H2><A NAME="ss6.3">6.3 Att definiera en lokal e-postutdelare </A>
</H2>
<P>
<P>Till skillnad från de flesta Unixdistributioner, så har inte Linux en lokal e-postutdelare som standard. Men
<EM>deliver</EM> eller <EM>procmail</EM> är vanligtvis installerat, så ingen komplexitet kommer att läggas till denna
redan komlexa konfiguration. Jag rekommenderar att använda de vanligt förekommande <EM>deliver</EM> eller
<EM>procmail</EM> programmen, som kan vara valbara paket i en Linuxdistribution.
<P>För att göra detta så måste du definiera en <CODE>LOCAL_MAILER_DEF</CODE> i filen <CODE>sendmail.m4</CODE> som pekar på en fil
som ser ut som följer:
<P>
<PRE>
# -- /usr/local/lib/mail/mailers.linux --
# (local mailers for use on Linux )
Mlocal, P=/usr/bin/deliver, F=SlsmFDMP, S=10, R=25/10, A=deliver $u
Mprog, P=/bin/sh, F=lsDFMeuP, S=10, R=10, A=sh -c $u
</PRE>
<P>Det finns även inbyggt standard för <EM>deliver</EM> i filen <CODE>Sendmail.mc</CODE> som inkluderas i filen
<CODE>sendmail.cf</CODE>. För att använda det så skall du inte använda filen <CODE>mailers.linux</CODE> utan istället definiera
följande i din <CODE>sendmail.m4</CODE>:
<P>
<PRE>
dnl --- (in sendmail.m4) ---
define(LOCAL_MAILER_DEF, DELIVER)dnl # mailer for local delivery
</PRE>
<P>Tyvärr så förutsätter <CODE>Sendmail.mc</CODE> att <EM>deliver</EM> är installerat i <CODE>/bin</CODE>, vilket inte är fallet
med Slackware 1.1.1 (som installerar det i <CODE>/usr/bin</CODE>). I så fall måste du antingen göra en symbolisk
länk eller kompilera om <EM>deliver</EM> från källkoden så att det hamnar i <CODE>/bin</CODE>. Notera att <EM>procmail</EM>
generellt är bättre än <EM>deliver</EM>, till exempel för filtrering av e-post.
<P>
<H2><A NAME="ss6.4">6.4 Sendmail+IDA dbm tabeller </A>
</H2>
<P>
<P>Att sätta upp speciellt uppträdande för sajter eller domäner görs genom ett antal <CODE>dbm</CODE> tabeller istället
för att ändra direkt i filen <CODE>sendmail.cf</CODE>.
<P>Se Julinumret 1994 av <EM>Linux Journal</EM> (om du fortfarande kan hitta det :-), dokumentationen i källkoden
eller i sendmail kapitlet i <EM>Networking Administration Guide</EM> för mer detaljer.
<P>
<UL>
<LI>mailertable - definierar speciellt uppträdande för andra datorer eller domäner.</LI>
<LI>uucpxtable - tvingar UUCP utdelning av e-post till datorer som är i DNS format.</LI>
<LI>pathtable - definierar UUCP 'bang-paths' till andra datorer eller domäner.</LI>
<LI>uucprelays - kortsluter 'pathalias' vägen till välkända datorer.</LI>
<LI>genericfrom - konverterar interna adresser till generella som kan ses från utsidan.</LI>
<LI>xaliases - konverterar generella adresser till/från giltiga interna adresser.</LI>
<LI>decnetxtable - konverterar RFC-822 adresser till DECnet adresser.</LI>
</UL>
<P>
<H2><A NAME="ss6.5">6.5 Så vilka poster krävs? </A>
</H2>
<P>
<P>När man inte använder någon av de valbara dbm tabellerna så skickar sendmail e-post via <CODE>RELAY_HOST</CODE> och
<CODE>RELAY_MAILER</CODE> som är definierade i filen <CODE>sendmail.m4</CODE> som används för att generera <CODE>sendmail.cf</CODE>.
Det är lätt att gå förbi det genom poster i <EM>domaintable</EM> eller <EM>uucpxtable</EM>.
<P>En generell sajt som finns på Internet och förstår DNS, eller en som är endast-uucp och vidarebefodrar all
e-post via UUCP genom en smart <CODE>RELAY_HOST</CODE>, behöver antagligen inte specificera några tabellposter alls.
<P>I stort sett alla system bör sätta makrona <CODE>DEFAULT_HOST</CODE> och <CODE>PSEUDONYMS</CODE>, vilka definierar det
kanoniska namnet på sajten och alias som den är känd som.
<P>Om allt du har är en vidarebefodringsdator och vidarebefodringsutdelare så behöver du inte sätta dessa
standardvärden eftersom det fungerar automagiskt. UUCP-datorer behöver antagligen också sätta <CODE>UUCPNAME</CODE>
till dess officiella uucp-namn.
<P>De behöver också sätta <CODE>RELAY_MAILER</CODE> och <CODE>RELAY_HOST</CODE> vilket sätter på 'smarthost' routing genom en
vidarebefodrande e-post utdelare.
<P>Transportprotokollet som skall användas definieras i <CODE>RELAY_MAILER</CODE> och skall vanligtvis vara UUCP-A för
UUCP-sajter. Om din sajt är endast-smtp och förstår DNS så skall du ändra <CODE>RELAY_MAILER</CODE>.
<P>Om du har en SLIP-sajt så kan du göra på det enkla sättet och bara vidarebefodra all utgående e-post till din
leverantör som sedan kan hantera den. För att göra så så skall du definiera <CODE>ISOLATED_DOMAINS</CODE> och
<CODE>VALIDATION_DOMAINS</CODE> till din domän. Du skall även definiera <CODE>RELAY_HOST</CODE> till att vara din leverantör
och <CODE>RELAY_MAILER</CODE> till att vara TCP. Självklart skall du fråga om lov innan du ställer in ett annat system
till att vara din <CODE>RELAY_HOST</CODE>.
<P>
<H2><A NAME="ss6.6">6.6 Sendmail 8.x</A>
</H2>
<P>
<P>Sendmail 8.7.x från Berkeley var den senaste stora revisionen efter sendmail5. Den hade underbart inbyggt stöd
för linux: bara <CODE>make linux</CODE> och allt var klart.
<P>Du klarar dig antagligen bäst genom att ta en av de olika binärdistributionerna från något av Linuxarkiven
istället för att kämpa med saker som Berkeley dbm själv.
<P>Det finns en bra distribution av sendmail 8.6.12 från Jason Haar (<CODE>j.haar at lazerjem.demon.co.uk</CODE>) på
sunsite.unc.edu i /pub/Linux/system/Mail/delivery/sendmail-8.6.12-bin.tgz som innehåller dokumentationen från
källkoden och en väldigt trevlig snabbeskrivning av hur man kör sendmail v8 för vanliga konfigurationer.
<P>Med sendmail v8 vill man konfigurera så lite som möjligt för att få jobbet gjort. Följande är ett exempel som
iallafall skall få dig på rätt väg.
<P>
<H2><A NAME="ss6.7">6.7 Exempel på 8.7.x <CODE>mc</CODE>-fil </A>
</H2>
<P>
<P>Liksom sendmail+IDA så använder sendmail v8 m4 till att processa en konfigurationsfil till en <CODE>sendmail.cf</CODE>
som används av sendmail. Följande är den <CODE>mc</CODE>-fil som jag använder för närvarande på min sajt (ppp till
Internet för utgående e-post, uucp för inkommande e-post).
<P>
<PRE>
dnl divert(-1)
#---------------------------------------------------------------------
#
# this is the .mc file for a linux host that's set up as follows:
#
# - connected to Internet for outbound mail (ppp here)
# - connected via UUCP for incoming mail
# - domainized headers
# - no local mailer (use 'deliver' instead)
# - no DNS running so don't canonicalize outgoing via DNS
# - all non-local outbound mail goes to the RELAY_HOST over smtp
# (we run ppp and let our service provider do the work)
#
# vds 3/31/95
#
#---------------------------------------------------------------------
include(`../m4/cf.m4')
VERSIONID(`linux nodns relays to slip service provider smarthost')dnl
Cwmyhostname.myprimary.domain myhostname.UUCP localhost
OSTYPE(linux)
FEATURE(nodns)dnl
FEATURE(always_add_domain)dnl
FEATURE(redirect)
FEATURE(nocanonify)
dnl MAILER(local)dnl
MAILER(smtp)dnl
MAILER(uucp)dnl
define(`RELAY_HOST', smtp:my.relay.host.domain)
define(`SMART_HOST', smtp:my.relay.host.domain)
define(`UUCP_RELAY', smtp:my.relay.host.domain)
define(`LOCAL_MAILER_PATH', `/bin/deliver')
define(`LOCAL_MAILER_ARGS', `deliver $u')
</PRE>
<P>
<H2><A NAME="ss6.8">6.8 Sendmail v8 skillnader </A>
</H2>
<P>
<P>Det finns några skillnader. Hittills har jag hittat följande:
<P>
<P> Istället för <CODE>runq</CODE> så skall man köra <CODE>sendmail -q</CODE> för att köra e-postkön!
<P>
<P>
<H2><A NAME="ss6.9">6.9 Lokala e-postutdelare </A>
</H2>
<P>
<P>Till skillnad från de flesta operativsystem så hade Linux inte 'inbyggd' e-post. Du var tvungen att ha ett
program som kunde dela ut den lokala e-posten, till exempel <EM>lmail</EM>, <EM>procmail</EM> eller <EM>deliver</EM>.
<P>Men, alla nyare distributioner inkluderar en lokal utdelare nu.
<P>Dokumentation för hur man använder de olika finns i binärversionen av sendmail5.67b+IDA1.5 (på sunsite) som
nämns ovan.
<P>
<HR>
<A HREF="Mail-HOWTO-se-7.html">Nästa</A>
<A HREF="Mail-HOWTO-se-5.html">Föregående</A>
<A HREF="Mail-HOWTO-se.html#toc6">Innehållsförteckning</A>
</BODY>
</HTML>