10a sessió: Servidors Intranet i Linux. Configuració del
servidor Apache.
Un servidor intranet amb el sistema operatiu Linux es pot convertir
en una tasca molt complexa, però a la vegada amb una potència
formidable a un preu molt baix.
Al meu centre dispossem d'un ordinador K6-II a 500 MHz i 2 HD de
20 GB com a servidor principal, amb la distribució RedHat 6.O, que
es pot aconseguir actualitzada amb moltes revistes. Ens dona servidor de
pàgines web (Apache), servidor FTP,
servidor de fitxers (servidor SaMBa), conversió
a format PDF (programa ps2pdf com a tasca
al servidor d'impressores), proxy d'Internet (paquet squid)
amb centralització de la commutació ADSL / XDSI, sistema
de còpies de seguretat automàtic cada matinada, protecció
contra fallides elèctriques amb un SAI, ... Moltes tasques es poden
controlar de forma remota mitjançant scripts PERL, i la utilització
de documents en format HTML i PDF garanteixen una rendibiltat molt alta.
Amb el servei SaMBa cada alumne té el seu codi d’usuari i
contrasenya, accedint a un disc personal al servidor. Com els alumnes treballen
en grups de dos alumnes per ordinador, es van crear zones comunes de treball
per a cada crèdit, a les que es pot accedir amb qualsevol de les
contrasenyes de la parella: d’aquesta manera s’evita el problema de les
absències d’un dels membres del grup. A la vegada el professor té
accés a aquestes carpetes de treball, de forma que pot accedir als
documents directament per a la seva correcció.
Una adaptació del script drall
ens permet el mateix servei des de casa, mitjançant Internet. L'accés
es realitza mitjançant contrasenya, que identifica a l'usuari.
Una vegada reconegut l'usuari, s'accedeix als diferents serveis restringits:
L'usuari pot consultar i actualitzar el seu disc personal (cada alumne
en disposa de 6 MB propis, i cada departament docent de 600 MB pels seus
membres):
Els usuaris poden consultar les notícies del centre i informacions
generals:
Naturalment, també tenen accés a la part pública
del servidor. Scripts PERL faciliten l'actualització dels continguts
editant petits arxius de text:
Configuració del servidor Apache:
Veiem com podem crear un servidor experimental de pàgines web
amb un ordinador "obsolet". Recomano la consulta del curs Serveis
de xarxa amb GNU/Linux del PIE.
Instal·lació del servidor
Partim d'un 486 SX a 25 MHz amb 12 MB de RAM i 400 MB de HD i targeta
de xarxa compatible NE2000.
Per fer la instal·lació necessitarem teclat, monitor
i disquetera. El CD-ROM no és imprescindible, doncs es pot instal·lar
per xarxa, però facilita les coses. Una vegada instal·lat,
podem treure tots aquests perifèrics, doncs no seran necessaris.
Utilitzarem RedHat 6.0. Si fem la instal·lació per
xarxa, recomano la versió original anglesa, doncs existeixen versions
traduïdes al castellà que tenen problemes en la instal·lació
per xarxa. Tot seguint les instruccions, preparem el disquet d'instal·lació
i l'utilitzem, fent servir la configuració manual i seleccionant
els servidors Apache, ftp i el sistema de xarxa. Això ens deixarà
un 60 MB lliures pels nostres arxius. Si voleu fer servir l'opció
d'instal·lació de servidor necessitareu un HD més
gran. D'aquí en endavant suposo que l'hem assignat l'adreça
192.168.0.251.
Configuració dels serveis
Bàsicament utilitzarem dues eines: el programa de configuració
Linuxconf i el programa mc
(clònic del Norton Comander).
-
Crearem un grup ftpuser amb permissos 755
per permetre l'accés als directoris HTML a /home/curs1700
-
Modificarem el fitxer /etc/ftpaccess al
seu començament afegit-hi
restricted-gid ftpuser
per limitar la navegació ftp pel servidor.
-
Crearem un arxiu /bin/nologin amb permissos
755 i contingut
#!/bin/sh
exit
per impedir l'accés telnet,
i afegirem el nom d'aquest arxiu a /etc/shells
-
A /etc/httpd/conf/httpd.conf fem
ServerNAme 192.168.0.251
per evitar problemes quan no es coloca la barra final d'un
directori a l'adreça del navegador.
-
A /etc/httpd/conf/srm.conf fem
UserDir .
per utilitzar els directoris d'usuari com arrel de les pàgines
personals, i treiem el comentari a
AddHandler cgi-script .cgi
per activar l'execució de scripts amb l'extensió
cgi
-
A /etc/httpd/conf/access.conf afegim
<Directory /home/curs1700/*/./cgi-bin>
AllowOverride None
Options ExecCGI
</Directory>
per autoritzar l'execució de scripts CGI al directori
cgi-bin de cada usuari del grup
Alta d'usuaris
-
Canviem el nom de /etc/skel a /etc/skel.org
-
Creem un nou /etc/skel amb l'arxiu index.html
(644)
-
Donem d'alta els usuaris (programa adduser)
amb (NN són dos digits: 01, 01, ...,
20)
usuari: c1700uNN
Full Name: curs 1700 Usuari NN
Group: ftpuser
Shell: /bin/nologin
-
Assignem la contrasenya de cada usuari (programa passwd)
-
Donem d'alta l'usuari profe, mateix grup
Creació de zones restringides
-
A /etc/httpd/conf/access.con afegim
<Directory /home/curs1700/*/./privat>
AllowOverride AuthConfig
</Directory>
permet restricció per contrasenya carpeta privat
de cada usuari del grup
<Directory /home/curs1700/*/./control>
AllowOverride AuthConfig
Options ExecCGI
</Directory>
permet una carpeta restringida control
on guardar contrasenyes de privat i posar
executables segurs
-
Afegim per a l'usuari profe (podríem
fer-lo amb qualsevol, es només un exemple):
/home/curs/1700/profe
|
|-- control
|
|--------- .htaccess (644)
|
|--------- .mestre (644)
|
|--------- .privat (644)
|
|--------- drall.cgi (755)
|
|-- privat
|-------- .htaccess (644)
|-------- index.html (644)
-
Omplim /home/curs/1700/profe/control/.htaccess
amb
AuthName "Directori mestre"
AuthType Basic
AuthUserFile /home/curs/1700/profe/control/.mestre
require valid-user
-
Omplim /home/curs/1700/profe/control/.mestre
fent servir l'ordre htpasswd amb l'usuari
profe
-
Omplim /home/curs/1700/profe/control/.privat
fent servir l'ordre htpasswd amb els usuaris
autoritzats
-
Configurem drall.cgi per a accedir a /home,
amb suid, amb la qual cosa tindrem accés remot a tots als arxius
sota aquesta carpeta
-
Omplim /home/curs/1700/profe/privat/.htaccess
amb
AuthName "Zona restringida"
AuthType Basic
AuthUserFile /home/curs/1700/profe/control/.privat
require valid-user
Important: l'autor no
es fa responsable dels perjudicis causats per l'utilització d'aquesta configuració, especialment si els permissos d'escriptura dels arxius del servidor no
estan configurats de forma adient.
© Jordi Orts, març 2001