# [phpBB] Sicurezza. A che punto siamo?

## cloc3

Mi è stato chiesto di creare un sito web con un forum.

Premetto che, nonostante il mio indiscutibile attivismo  :Shocked:  sul forum gentoo, non ho una competenza informatica elevata, tanto più nel settore delle pubblicazioni web.

Comunque, ho pensato di usare il phpBB, perché secondo me, è un prodotto esteticamente insuperabile.

Tuttavia, sono al corrente dei terrribili problemi di sicurezza emersi ultimamente. Se ne è già parlato, ad esempio, qui.

Immagino che quei problemi non siano ancora stati superati, anche se un check con glsa-check non dà risultati, ma solo perché phpBB è attualmente mascherato per motivi di sicurezza, e quindi non supportato dalla nostra distro.

Vorrei tuttavia sapere se qualcuno è in grado di darmi qualche consiglio, qualche indicazione o qualche link per capire la reale portata del fenomeno e quali siano, se esistono, dei possibili antidoti per difendersi adeguatamente. In fondo, non mi pare che il phpBB sia completamente scomparso dal web, come dal portage.

----------

## .:chrome:.

problemi di sicurezza, in generale, ce ne saranno sempre.

puoi aggirare il problema usando configurazioni particolari, come kernel e profili hardened, flag hardenedphp, e simili

è vero che la sicurezza è sempre un concetto relativo, ma così facendo chiudi la porta a molti possibili exploit

----------

## X-Drum

phpbb resta senza dubbio una delle migliori Boards opensource,

ma a livello di boards ne esistono di migliori (es: invision powerboard)

in ogni caso oltre ad i consigli (ottimi di k.gothmog) se intendi adoperare

phpbb tieni sotto controllo di continuo il suo sito per eventuali patch

(phpbb è soggettissimo ad attacchi da parte di terzi purtroppo)

----------

## silian87

Se vuoi c'e' e17 che ha un forum in stile phpBB... se vuoi usare phpBB non sarebbe male capire come "ntrapporarlo" in una chroot jail. Tempo fa avevo cercato ma mi ero stufato presto :-p

----------

## Peach

 *X-Drum wrote:*   

> (phpbb è soggettissimo ad attacchi da parte di terzi purtroppo)

 

si e, a differenza di altri forum, per la stessa ragione che dici tu ha patch frequenti e un team molto responsive sotto questo aspetto.

Soluzioni che integrano phpBB come componente sono cmq da evitare come la peste.

----------

## lavish

Moved from Forum italiano (Italian) to Forum di discussione italiano.

----------

## makoomba

mod_security e chroot di apache.

----------

## .:chrome:.

 *makoomba wrote:*   

> mod_security e chroot di apache.

 

vero. me n'ero dimenticato... il guaio della chroot è che complica enormemente la gestione degli aggiornamenti del server, che non possono più essere automatizzati con portage, e quello di mod_security è che non è semplice da configurare

----------

## makoomba

il chroot di apache è molto più semplice con mod_security. 

avviene solo dopo il "caricamento" di tutti i moduli e librerie, quindi non è necessario creare directory, copiare files, etici etici.

l'unico problema lo crea la funzione mail di php, ma si risolve facilmente.

----------

## .:chrome:.

 *makoomba wrote:*   

> il chroot di apache è molto più semplice con mod_security. 
> 
> avviene solo dopo il "caricamento" di tutti i moduli e librerie, quindi non è necessario creare directory, copiare files, etici etici.
> 
> l'unico problema lo crea la funzione mail di php, ma si risolve facilmente.

 

forse mi sono perso qualche puntata... cosa intendi esattamente? fare la chroot tramite mod_security?

----------

## makoomba

sì, ti basta usare l'opzione SecChrootDir

edit

http://www.modsecurity.org/documentation/apache-internal-chroot.html

----------

## .:chrome:.

 *makoomba wrote:*   

> sì, ti basta usare l'opzione SecChrootDir

 

mitico. questa non la sapevo. non mi ero più preso la briga di leggere la guida, con le nuove versioni... evidentemente ho fatto male.

----------

## lavish

/me ringrazia makoomba  :Smile: 

----------

## cloc3

 *lavish wrote:*   

> /me ringrazia makoomba 

 

/me anche ringrazia makoomba.

però

/me così stupido che non capire proprio niente lo stesso.

Praticamente basterebbe:

```

echo SecChrootDir /chroot/apache>>/etc/apache2/modules.d/99_mod_security.conf

```

poi riavviare apache e andarsene a bere una birra  :Shocked:  ?

La mia impressione, invece, è che in questo modo non accada assolutamente nulla.

Per cercare ulteriori spiegazioni, ho trovato anche questo secondo link, dove è scritto:

 *Quote:*   

> 
> 
> Other Features
> 
> Internal chroot
> ...

 

In pratica, mi sembrerebbe di capire che si debbano spostare anche i dati in chroot. I miei stavano prima in /var/www/localhost/htdocs .

Se sposto la cartella in /chroot, però, apache non trova più i dati. A meno di non modificare anche il path in /etc/apache2/vhosts.d/00_default_vhost.conf .

Ma così non ha senso. E' un cambiamento di cartelle, non un chroot.

Da cosa capisco che veramente è stata eseguita una chiamata a chroot?

Anche da qui, non si direbbe proprio:

```

s939 apache2 # ps aux|grep apache

root      9859  0.0  0.2 103108  6800 ?        Ss   23:11   0:00 /usr/sbin/apache2 -D DEFAULT_VHOST -D PHP5 -d /usr/lib64/apache2 -f /etc/apache2/httpd.conf -k start

apache    9862  0.0  0.0 101132  2836 ?        S    23:11   0:00 /usr/sbin/apache2 -D DEFAULT_VHOST -D PHP5 -d /usr/lib64/apache2 -f /etc/apache2/httpd.conf -k start

apache    9863  0.0  0.1 324400  5420 ?        Sl   23:11   0:00 /usr/sbin/apache2 -D DEFAULT_VHOST -D PHP5 -d /usr/lib64/apache2 -f /etc/apache2/httpd.conf -k start

apache    9865  0.0  0.1 324400  5424 ?        Sl   23:11   0:00 /usr/sbin/apache2 -D DEFAULT_VHOST -D PHP5 -d /usr/lib64/apache2 -f /etc/apache2/httpd.conf -k start

root     10180  0.0  0.0   3852   708 pts/1    R+   23:34   0:00 grep apache

```

----------

## .:chrome:.

allora... facciamo così...

lista della spesa:

```
mkdir -p /chroot/apache

cd /chroot/apache

mkdir -p var/www

mkdir var/run

mkdir tmp

chmod 1777 tmp

mount --bind /var/www /chroot/apache/var/www
```

però anche così... a me funziona, ma non riesco ad accedere al server IMAP, con la webmail. e non capisco il perché

----------

## cloc3

 *k.gothmog wrote:*   

> 
> 
> però anche così... a me funziona, ma non riesco ad accedere al server IMAP, con la webmail. e non capisco il perché

 

Potrebbe essere questo?

 *Quote:*   

> 
> 
> There are some cases, however, when you will need additional files in jail, and that is if you intend to execute CGI scripts or system binaries. They may have their own file requirements. If you fall within this category then you need to proceed with the external chroot procedure as normal but you still won't have to think of the Apache itself.
> 
> 

 

Per la tua ricetta, ci penserò domani. Intanto grazie.

Mi resta ancora il dubbio di non saper come verificare se l'esecuzione del programma si sta eseguendo veramente il chroot.

----------

## .:chrome:.

 *cloc3 wrote:*   

> Mi resta ancora il dubbio di non saper come verificare se l'esecuzione del programma si sta eseguendo veramente il chroot.

 

lo vedi tramite /var/log/apache2/error_log

----------

## mordredP

https://forums.gentoo.org/viewtopic-t-403778-highlight-.html

magari c'e' qualcosa che puo' tornarti utile

----------

## X-Drum

 *makoomba wrote:*   

> mod_security e chroot di apache.

 

no no e no,

se si parla di phpBB si possono avere molte noi anche in termini

di sola gestione del forum:

esempio ci sono parecchi exploit per la manipolazione del db

e "l'appropiazione indebita" dell' smtp (se configurato e disponibile per php)

quindi i due moduli citati possono essere utili per altri fini (proteggere la macchina)

ma phpbb chi lo protegge?

si ok, come peach fa notare gli sviluppatori di phpBB sono reattivi,

ma bisogna starci dietro, solo questa avvertenza

----------

## makoomba

@X-Drum

gli exploit restano comunque, lo scopo di mod_security è limitarne i danni.

in alcuni casi, già le regexp di default forniscono almeno una protezione di base su attacchi SQL injection.

per quanto riguarda il chroot tramite mod_security

- tutti i dati devono ovviamente risiedere nel chroot

- la connessione al db deve avvenire tramite 127.0.0.1 (o si può spostare il socket all'interno del chroot stesso)

- potrebbe essere necessario qualche link simbolico (ad esempio, per path assoluti in script php).

la funzione mail di php non funziona, per risolvere ci sono due strade.

- utilizzare una delle tante classi che possono connettersi direttamente al server smtp

- installare nel chroot ssmtp + bash

per chi non lo sapesse, emerge può essere utilizzato per "alleviare" la gestione dei chroot, ad esempio

```
USE="-*" FEATURES="nodoc noman noinfo" ROOT=/var/chroot/apache INSTALL_MASK="*.h" emerge pacchetto
```

installerà "pacchetto" in /var/chroot/apache escludendo headers e documentazione.

con quickpkg ed emerge -k si può eventualmente riutilizzare il pacchetto già compilato sulla macchina.

----------

## .:chrome:.

 *makoomba wrote:*   

> la funzione mail di php non funziona, per risolvere ci sono due strade.
> 
> - utilizzare una delle tante classi che possono connettersi direttamente al server smtp
> 
> - installare nel chroot ssmtp + bash

 

a me succede qualcosa che non riesco a capire: la webmail (squirrelmail) non vuole saperne di entrare. al login mi dice che è impossibile connettersi al server IMAP, ma non capisco dove possa essere il problema... la connessione deve avvenire tramite socket inet, non tramite socket unix, e quindi dovrebbe essere disponibile anche all'interno della chroot

----------

## makoomba

il server imap è impostato come ip ?

----------

## .:chrome:.

 *makoomba wrote:*   

> il server imap è impostato come ip ?

 

courier-imap

127.0.0.1:143

----------

## makoomba

http://webmail/src/configtest.php che dice ?

----------

## .:chrome:.

 *makoomba wrote:*   

> http://webmail/src/configtest.php che dice ?

 

 *Quote:*   

> Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: No address associated with hostname in /var/www/mail/htdocs/squirrelmail/src/configtest.php on line 211
> 
> Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:25 (Unknown error) in /var/www/mail/htdocs/squirrelmail/src/configtest.php on line 211
> 
>     ERROR: Error connecting to SMTP server "localhost:25".Server error: (1569521728) 

 

continuo a non capire. il server c'è ed è in ascolto.

----------

## makoomba

mod_security è caricato per primo ?

----------

## makoomba

il problema potrebbe essere legato alla risoluzione dei nomi (libnss, che tende a rompere le palle) 

prova

```
cp -a /lib/libnss_dns* /chroot/lib

cp -a /lib/libnss_files* /chroot/lib

cp -a /lib/libresolv* /chroot/lib

cp /etc/resolv.conf /etc/hosts /chroot/etc
```

----------

## .:chrome:.

 *makoomba wrote:*   

> mod_security è caricato per primo ?

 

mi prendi alla sprovvista. cosa intendi, precisamente?

carico mod_security con la direttiva -D SECURITY in /etc/conf.d/apache2

----------

## X-Drum

 *makoomba wrote:*   

> @X-Drum
> 
> gli exploit restano comunque, lo scopo di mod_security è limitarne i danni.
> 
> in alcuni casi, già le regexp di default forniscono almeno una protezione di base su attacchi SQL injection.
> ...

 

ti assicuro che all'atto pratico (in real life) il tuo mod_security puo' nulla contro gli

attacchi ai quali è soggetto phpbb cmq prendere delle contromisure in piu'

non fa mai male anche se non estinguono completamente il problema

----------

## makoomba

 *k.gothmog wrote:*   

>  *makoomba wrote:*   mod_security è caricato per primo ? 
> 
> mi prendi alla sprovvista. cosa intendi, precisamente?
> 
> carico mod_security con la direttiva -D SECURITY in /etc/conf.d/apache2

 

con apache 1.x il modulo va caricato per primo.

leggendo meglio la guida, con la versione 2 non è necessario perchè l'ordinamento è gestito internamente.

quindi nel tuo caso va bene così.

hai provato a copiare le lib nel chroot ?

----------

## .:chrome:.

 *makoomba wrote:*   

> hai provato a copiare le lib nel chroot ?

 

no. ci ho pensato, ma non l'ho fatto perché non capisco nemmeno quale sia esattamente il problrema.

apache funziona. non è che non trova delle librerie o dei files, o altro. è solo che non riesce ad usare quei due socket. non saprei nemmeno quali librerie copiare nella chroot.

guardando bene la documentazione di mod_security, c'è scritto che il chroot viene fatto dopo che il server si è avviato, e prima che vengano fatti i fork dei processi figli. quindi le librerie che servono, a questo punto dovrebbero essere già state importate, no?

----------

## cloc3

 *makoomba wrote:*   

> 
> 
> ```
> USE="-*" FEATURES="nodoc noman noinfo" ROOT=/var/chroot/apache INSTALL_MASK="*.h" emerge pacchetto
> ```
> ...

 

Per il mio primo esperimento (con dokuwiki per ora, non con phpBB) è servita anche l'opzione -nodeps, altrimenti installava anche il kernel.

Grazie ancora, makoomba.

Non metto risolto, perché mi pare che il post ha sollevato una quantità di altri problemi più grossi di me.

----------

## makoomba

 *k.gothmog wrote:*   

> guardando bene la documentazione di mod_security, c'è scritto che il chroot viene fatto dopo che il server si è avviato, e prima che vengano fatti i fork dei processi figli. quindi le librerie che servono, a questo punto dovrebbero essere già state importate, no?

 

sospetto fortemente che il problema sia legato alla risoluzione dei nomi.

eventualmente, aggiungi solo i files in etc

----------

## .:chrome:.

 *makoomba wrote:*   

>  *k.gothmog wrote:*   guardando bene la documentazione di mod_security, c'è scritto che il chroot viene fatto dopo che il server si è avviato, e prima che vengano fatti i fork dei processi figli. quindi le librerie che servono, a questo punto dovrebbero essere già state importate, no? 
> 
> sospetto fortemente che il problema sia legato alla risoluzione dei nomi.
> 
> eventualmente, aggiungi solo i files in etc

 

porca miseria... hai ragione. non ci avevo proprio pensato   :Embarassed: 

copiati /etc/hosts e /etc/resolv.conf è andato tutto

----------

## makoomba

la rottura di palle maggiore è legata a mail().

squirrel può usare direttamente un smtp, ma il problema resta per altre applicazioni.

tempo permettendo, vorrei provare con sash.

----------

## cloc3

Riprendo dopo qualche tempo il topic, perché avevo lasciato il problema a 3/4.

Ora, sono riuscito a realizzare il chroot di apache ed anche a farci girare dentro un dokuwiki.

phpBB, invece, non trova qualche risorsa, perché l'installazione restituisce questo messaggio laconico:

```

La configurazione php del tuo server non supporta il tipo di database che hai scelto

```

Naturalmente non è un problema di supporto del database, in quanto ho già provato a realizzare l'installazione fuori del chroot con successo.

Si tratta di cercare qualche libreria indispensabile da mettere nel chroot.

Sono un po' disorientato, perché non so bene come cercare una soluzione corretta, che mi eviti di copiare nel chroot l'intero sistema operativo.

----------

## .:chrome:.

io ho perso un sacco di tempo su una cosa del genere... poi mi sono accorto semplicemente che il socket veniva creato al di fuori della chroot. prova a controllare che sia accessibile.

oppure guarda se nei log viene registrato qualcosa di strano, tipo file di libreria mancanti, o roba simile...

----------

## silian87

 *Quote:*   

> io ho perso un sacco di tempo su una cosa del genere... poi mi sono accorto semplicemente che il socket veniva creato al di fuori della chroot. prova a controllare che sia accessibile.
> 
> oppure guarda se nei log viene registrato qualcosa di strano, tipo file di libreria mancanti, o roba simile...

 

Se se...   :Laughing:   :Wink: 

A parte gli scherzi... mysql vuole anche che il "pid" dile venga creato nella stessa directory del socket... quindi cambia anche quello  :Wink: 

----------

## .:chrome:.

 *silian87 wrote:*   

>  *Quote:*   io ho perso un sacco di tempo su una cosa del genere... poi mi sono accorto semplicemente che il socket veniva creato al di fuori della chroot. prova a controllare che sia accessibile.
> 
> oppure guarda se nei log viene registrato qualcosa di strano, tipo file di libreria mancanti, o roba simile... 
> 
> Se se...    

 

cosa vorresti dire...?

guarda che prima di te l'ho fatta anche io quelal cazzata, te l'ho detto  :Wink: 

però io non uso mysql. uso postgres che è più figo  :Very Happy: 

----------

## cloc3

 *k.gothmog wrote:*   

> io ho perso un sacco di tempo su una cosa del genere... poi mi sono accorto semplicemente che il socket veniva creato al di fuori della chroot. prova a controllare che sia accessibile.
> 
> oppure guarda se nei log viene registrato qualcosa di strano, tipo file di libreria mancanti, o roba simile...

 

Niente da fare.

Ho spostato i socket agendo sul file /etc/mysql/my.cnf senza fortuna.

Inoltre è capitata una cosa strana: i programmi come mysql o mysql_setpermissions non trovavano più il socket, a meno di linkarglielo nella consueta collocazione di /var/run/mysqld .

Invece phpBB continua a non partire in nessun modo. La disdetta è che i file di log mi sembrano del tutto insignificanti.

----------

## makoomba

posta

```
lsof -n -p `pidof apache2 | tr ' ' , ` | grep mysql
```

sostituisci apache2 con apache se usi la 1.X.X

----------

## cloc3

 *makoomba wrote:*   

> posta
> 
> ```
> lsof -n -p `pidof apache2 | tr ' ' , ` | grep mysql
> ```
> ...

 

No  :Embarassed:  .

Mi hai aperto gli occhi.

Un asino mi aveva compilato dev-lang/php senza il supporto per mysql.

----------

## makoomba

allora aveva ragione phpBB a lamentarsi  :Wink: 

----------

