Attivare il suexec su apache per slackware

Forum dedicato agli studenti del corso linux e a tutti gli amanti del pinguino!

Moderatore: matteo

Attivare il suexec su apache per slackware

Messaggioda matteo » ven dic 22, 2006 2:16 pm

solitamente apache viene avviato con utente nobody. E' facilissimo e consigliabile cambiarlo in un nuovo utente dedicato, p.e. apache con gruppo apache, così da non dar fastidio ad altre applicazioni running con nobody.
E' sufficiente andare in /etc/apache/httpd.conf e modificare le entry "User" e "Group".

Se però apache viene usato per dare spazio a più utenti, e si vuole attivare anche il php, la cosa si fa pericolosetta perchè tutti hanno la stessa utenza e posso sovrascrivere i file degli altri. Questo vale anche se faccio dei singoli Virtual-Host dedicati.

Per ovviare a questo, l'idea più comune è quella di mettere all'interno di ogni Virtual-Host, le direttive User e Group, con utenti e gruppi dedicati per i singoli utenti.
Se lo faccio però apache si rifiuta di startarsi.

A questo viene in aiuto l'utility 'suexec', un modulo di apache che consente di fare proprio questo.
Tuttavia questa opzione, su slackware, non è attiva di default.

Se andiamo a vedere i moduli caricati con apache, troviamo:
Codice: Seleziona tutto
# httpd -l
Compiled-in modules:
  http_core.c
  mod_so.c
suexec: disabled; invalid wrapper /usr/sbin/suexec

e mi sembra chiaro
Codice: Seleziona tutto
# ls -l /usr/sbin/suexec
ls: /usr/sbin/suexec: No such file or directory


cosa fare?
In verità su slackware non è disattivato tale modulo:
Codice: Seleziona tutto
> httpd -V
Server compiled with....
...
...
-D SUEXEC_BIN="/usr/sbin/suexec"
...
...

solamente non è stato compilato il binario 'suexec'

Per risolvere è sufficiente che compiliamo solamente questo.

Prendiamo il nostro dvd di slackware e copiamo i sorgenti di apache
Codice: Seleziona tutto
# cp /mnt/cdrom/source/n/apache/apache_1.3.37.tar.gz /tmp
# cd  /tmp
# tar xzf apache_1.3.37.tar.gz
# cd apache_1.3.37

ora lanciamo il classico
Codice: Seleziona tutto
# ./configure

ed andiamo a compilare il solo suexec.c
Codice: Seleziona tutto
# cd src/support

sarà forse perchè stiamo facendo una compilazione anomala, ma se vado a compilare così com'è il suexec.c, gcc da un errore che non conosce un paio di parametri. Allora andiamo a modificare una linea nel Makefile.
togliamo "-lap" e "-los" da LIBS
Codice: Seleziona tutto
# vi Makefile
LIBS=-lm  $(EXTRA_LIBS) $(LIBS1)
#LIBS=-lm -lap -los $(EXTRA_LIBS) $(LIBS1)

salviamo e compiliamo
Codice: Seleziona tutto
# make suexec
gcc -c  -I../os/unix -I../include   -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DNO_DL_NEEDED `../apaci` suexec.c
gcc  -DLINUX=22 -DHAVE_SET_DUMPABLE -DUSE_HSREGEX -DNO_DL_NEEDED `../apaci` -o suexec   -L../os/unix -L../ap suexec.o -lm   -lm -lcrypt -lexpat
# cp -a suexec /usr/sbin
# ls -l /usr/sbin/suexec
-rwxr-xr-x 1 root root 16653 Dec 22 11:38 /usr/sbin/suexec

e riverifichiamo.
Codice: Seleziona tutto
# httpd -l
Compiled-in modules:
  http_core.c
  mod_so.c
suexec: disabled; invalid wrapper /usr/sbin/suexec

da ancora INVALID
per attivarlo dovremo renderlo suid
Codice: Seleziona tutto
# chmod u+s /usr/sbin/suexec
# httpd -l
Compiled-in modules:
  http_core.c
  mod_so.c
suexec: enabled; valid wrapper /usr/sbin/suexec

ora ha dato VALID
Dovrebbe funzionare, ma non ho ancora potuto fare la prova. Per ora mi fido di 'httpd -l'

Matteo
matteo
 
Messaggi: 327
Iscritto il: ven mar 17, 2006 10:22 am

Torna a Unix, Linux & reti

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron