Kapitel 9. Udvidelse af webserveren

Indholdsfortegnelse
9.1. Webmail
9.2. Fjernadgang til dine filer
9.3. FindElev

Af: Gunner Poulsen

Webserveren Apache er noget af det mest fremadrettede, man kan installere på skolens Linuxserver. Det, der gør den så god, er det utal af udvidelsesprogrammer (såkaldte scripts), den kan udføre. Som meget umiddelbare forslag til udvidelser vil vi her beskrive, hvordan man sætter et webmailprogram og et program, der giver fjernadgang til filerne på din server, op.

9.1. Webmail

At sende og hente internetpost via en webbrowser er en mulighed, der udvider elevernes mulighed for at udnytte deres postkasse på skolen bedre. Man kunne jo bare lade eleverne bruge deres almindelige e-mail-program hjemmefra ligesom internetudbyderne gør, men POP3 protokollen transporterer alting, også brugernavne og adgangskoder, i klar tekst, og det er ret risikabelt, når det foregår via internettet. Derfor er et webmailscript, der kører over en krypteret linie, den ideelle løsning for en skole. Vi har i sidste kapitel beskrevet, hvordan man får Apache og Mod_ssl installeret, og hvordan man får lavet sit eget SSLcertifikat. Her vil vi så gennemgå opsætningen af et webmailscript.

9.1.1. Neomail

Vi er selv meget vilde med det webmailscript, der hedder Neomail. Det er oversat til dansk af Søren Ulrik og understøtter bl.a. adressebog og gemning af sendte meddelelser. En anden smart ting ved Neomail er, at det ikke bruger POP3 til at hente post. Vi vil her gennemgå opsætningen af Neomail.

Først skal Neomail hentes på http://neomail.sourceforge.net/ og pakkes ud med:

[root@gnuskole /root]# tar --use-compress-program=gunzip -xvf /root/neomail-1.24.tar.gz -C /root

Nu skulle kildekoden til Neomail gerne ligge i /root/neomail-1.24/. Hvis du bruger RedHat 6.2 har du sikkert et for gammelt CGI.pm modul. Hent et nyt på http://www.cpan.org/modules/by-module/CGI/. Pak det ud med:

[root@gnuskole /root]# tar --use-compress-program=gunzip -xvf /root/CGI.pm-2.74.tar.gz -C /root
[root@gnuskole /root]# cd /root/CGI.pm-2.74

Kør:

[root@gnuskole CGI.pm-2.74]]# perl Makefile.PL && make && make test && make install

Så skulle Perl være i orden også i RedHat 6.2. Inden du går videre, så læs lige resten af afsnittet igennem, så du ved, hvad du bliver bedt om at tage stilling til gennem resten af opsætningen.

[root@gnuskole /root]# cd neomail-1.24/
[root@gnuskole neomail-1.21]# ./setup.pl

Nu kommer der en række spørgsmål. Hvis du er tilfreds med de forslag scriptet skriver i [..] så bare tryk enter.

NEOMAIL DIRECTORY
==================
[/var/neomail]: Skriv hvor brugernes indstillinger og gemte dokumenter mm. skal ligge (der skal være en del plads).
DEFAULT LANGUAGE
================
dk == Dansk
[en]:dk (selvfølgelig!)
MAIL SPOOL GROUP ID
===================
[mail]: Undersøg dette, inden du går i gang. I kapitlet om Exim brugte vi den gruppe, der er foreslået her.
DOMAIN NAME
===========
[mail.gnuskole.dk]: gnuskole.dk (Kun domænedelen af maskinnavnet)
SENDMAIL
========
[/usr/sbin/sendmail]:  Det foreslåede virker også i Exim, da /usr/sbin/sendmail er et symbolsk link til Exim.
PASSWORD FILE
=============
[/etc/shadow]: Fint nok.
NEOMAIL LOGFILE
===============
If you'd like to disable logging, type 'n' here.
filename/n [/var/neomail/neomail.log]: Ok hvis du valgte /var/neomail/ som NEOMAIL DIRECTORY.
TIME OFFSET
===========
[-0500]: +0100  (Danmark)
SESSION TIMEOUT
===============
Hvor mange minutter skal en bruger være inaktiv, før hun automatisk bliver logget af.
[30]: rimeligt? Måske 60? Man skulle jo nødigt logges af bare fordi det er et langt kærestebrev, man skriver!
NUMBER OF HEADERS
=================
[20]:  Ok (brugerne kan selv ændre det om nødvendigt).
MAXIMUM ADDRESS BOOK SIZE
=========================
[50]:  I kilobytes (KB).
FOLDER QUOTA
============
Her bestemmer du hvor meget dine brugeres mapper (sendte, skraldespand, gemte osv.) må fylde i kilobytes (KB).
[0]: 0 betyder ubegrænset.
ATTACHMENT SIZE LIMIT
=====================
Hvor store vedlagte filer må dine brugere SENDE?
[1]:  OBS! størrelsen er i MegaBytes (MB).
SCRIPT LOCATION
===============
Her skal du skrive den placering på webserveren, som Neomail skal have.
[/cgi-bin/neomail.pl]: Jeg foreslår at du samler alle krypterede scripts i /scgi-bin/. Skriv /scgi-bin/neomail.pl 
PREFS LOCATION
==============
Læg scriptet til at læse de overordnede indstillinger sammen med selve neomail.pl.
[/cgi-bin/neomail-prefs.pl]: /scgi-bin/neomail-prefs.pl
CGI-BIN LOCATION
================
[/var/www/cgi-bin/]: Nej /var/www/scgi-bin/ 
DOCUMENTROOT LOCATION
=====================
[/var/www/html]: Fint nok.
PINE COMPATIBILITY
===============
y/n [n]: nej.
QMAIL SUPPORT
=============
Postprogrammet Qmail lægger indkommende post et andet sted og på en anden måde end Exim og Sendmail, derfor dette spørgsmål.
y/n [n]: n
MAIL SPOOL
==========
[/var/spool/mail]:  Fint.
HASHED MAIL SPOOLS
==================
Har I stoffer på skolen? If unsure, say no.
y/n [n]: n
BACKGROUND IMAGE
================
Hvor skal Neomails (pæne) baggrundsbillede ligge?
[/neomail-bg.gif]: /images/neomail-bg.gif For eksempel.
LOGO IMAGE
==========
[/neomail.gif]: /images/neomail.gif
DIRECTORY FOR IMAGES
====================
[/images/]: Fint
Nu vises de indstillinger du har foretaget og nogen scriptet selv har fundet.
Husk dem eller skriv dem ud.
Is this correct? y/n [n]: y (Jeps!)

Så er webmailprogrammet sat op, så skal det bare lægges på plads.

Neomail spørger om det skal lægge alting på plads - Lad dog barnet!

Så skulle alt være på plads.

Hvis du senere vil ændre nogle af dine indstillinger ligger de i /var/neomail/neomail.conf. Efter at du har lavet ændringer i neomail.conf, så husk at kontrollere, at den stadigvæk ejes af din "mail"-gruppe!

Der skal lige laves en ændring i /etc/exim.conf før vi er færdige til at prøve. Åbn /etc/exim.conf i en teksteditor og stil dig sidst i 1. afdeling. Indsæt linien:

trusted_users = mail:apache (brugeren efter : skal være den bruger Apache kører som - her apache).

Kør:

[root@gnuskole /root]# /etc/init.d/exim restart
[root@gnuskole /root]# /etc/init.d/httpd restart

Hvis alt er vel skulle du nu kunne komme ind i Neomail med: https://www.gnuskole.dk/scgi-bin/neomail.pl. Senere kan du lave et link på forsiden af skolens hjemmeside, så elever og kolleger kan finde deres post!

9.1.2. Tilpasning af ipop3d

Den version af Imap pakken, der kommer med RedHat flytter nye meddelelser til en fil ved navn mbox i brugernes hjemmekatalog ligeså snart fx Netscape checker om der er ny post (også når man ikke downloader den). Det giver webmailprogrammet Neomail problemer da det kun kigger efter post i /var/spool/mail/*. For at komme rundt om denne hurdle må du kompilere din egen Imap. Det er heldigvis ikke så svært!

Hent kildekoden i ftp://ftp.cac.washington.edu/imap/imap.tar.Z. Pak den ud med:

[root@gnuskole /root]# tar --use-compress-program=gunzip -xvf /root/imap.tar.Z -C /root

Åbn /root/imap-4.7c/Makefile i en teksteditor. Find linien EXTRADRIVERS=mbox og kommenter den ud ved at sætte # foran: #EXTRADRIVERS=mbox

Så skal den Kompileres:

[root@gnuskole /root]# cd /root/imap-4.7c/
[root@gnuskole imap-4.7c]# make slx

Nu ligger de nye serverprogrammer i /root/imap-4.7c/ipopd/ og /root/imap-4.7c/imapd/. Flyt dem til /usr/sbin med:

[root@gnuskole imap-4.7c]# cp -p /root/imap-4.7c/ipopd/ipop3d /usr/sbin
[root@gnuskole imap-4.7c]# cp -p /root/imap-4.7c/imapd/imapd /usr/sbin

og ændr gruppen til mail med:

[root@gnuskole imap-4.7c]# chown root.mail /usr/sbin/ipop3d
[root@gnuskole imap-4.7c]# chown root.mail /usr/sbin/imapd
[root@gnuskole /root]# /etc/rc.d/init.d/inet restart

Så er det problem løst!