# [mail e phpBB] non riesco a inviare la posta [risolto]

## cloc3

Il mio forum phpBB non riesce a spedire mail.

Non ho ancora capito bene se si tratti di un problema gentoo, comunque, provo a descrivere i sintomi.

Innanzitutto, ho un sistema con apache in chroot e utilizzo come mail sender locale msmtp, che funziona egregiamente da linea di comando, con mutt.

Quando provo ad inoltrare email con phpBB, ottengo sistematicamente il seguente errore, sul browser:

```

Failed sending email :: PHP :: 

DEBUG MODE

Line : 234

File : emailer.php

```

La dicitura cambia provando ad utilizzare l'opzione "Usa un Server SMTP per le e-mail". In questo modo:

```

Could not connect to smtp host : 10922 : 

DEBUG MODE

Line : 112

File : smtp.php

```

Il primo errore dovrebbe essere causato, stando agli howto di phpBB da una mancata integrazione del supporto di sendmail in php (dev-lang). 

Ma, a quanto pare, php non supporta una use flag sendmail, nè altro di analogo.

Il secondo errore potrebbe essere un problema di google, ma francamente ne dubito un po'.

Qualcuno è in grado di darmi qualche suggerimento?

----------

## .:chrome:.

usi configurazioni chroot?

----------

## cloc3

 *k.gothmog wrote:*   

> usi configurazioni chroot?

 

Si. apache è chrootato.

Ho collocato in /etc hosts e resolv.conf .

Il mysql riesce a funzionare bene. Come anche tutte le altre funzioni di php.

Mi è difficile capire quale sia l'eventuale oggetto mancante, proprio perché i log non mi danno suggerimenti.

----------

## silian87

Stesso problema... penso che visto che altri programmi in chroot come MediaWiki non trovano ImageMagick, che c'e', sia un semplicissimo problema...

Praticamente dall'idea che mi son fatto, essendo tutto in chroot, lui cerca i programmi con sendmail o imagemagick nel chroot... quindi bisognerebbe copiare tutti i binari e le librerie la... oppure dire ad emerge di metterli la (che mi sembra si possa fare)... effettivamente dovrei provarci :-!

----------

## randomaze

 *silian87 wrote:*   

> Praticamente dall'idea che mi son fatto, essendo tutto in chroot, lui cerca i programmi con sendmail o imagemagick nel chroot... quindi bisognerebbe copiare tutti i binari e le librerie la... 

 

Esattamente.

Chi é dentro il chroot non ha coscienza di quello che si trova all'esterno  :Wink: 

----------

## cloc3

 *randomaze wrote:*   

> 
> 
> Chi é dentro il chroot non ha coscienza di quello che si trova all'esterno 

 

Certo. Fin qui ci sono.

Ma io ho bisogno di aver coscienza di cosa mi manca.

Adesso ci ho messo dentro msmtp. Con tutti i file di `equery f msmtp` e con le librerie di `ldd /chroot/apache/usr/msmtp`.

Ma nulla di nuovo. I log non fanno parola di chiamate insoddisfatte a qualche libreria. Anzi, credo che msmtp non venga chiamato per nulla, perché non si crea il file /root/.msmtp.log.

----------

## .:chrome:.

 *randomaze wrote:*   

> Chi é dentro il chroot non ha coscienza di quello che si trova all'esterno 

 

questo problema lo puoi aggirare appoggiandoti al server INET, invece che all'eseguibile sendmail

chroot o meno, 127.0.0.1:25 è sempre raggiungibile

----------

## cloc3

 *k.gothmog wrote:*   

>  *randomaze wrote:*   Chi é dentro il chroot non ha coscienza di quello che si trova all'esterno  
> 
> questo problema lo puoi aggirare appoggiandoti al server INET, invece che all'eseguibile sendmail
> 
> chroot o meno, 127.0.0.1:25 è sempre raggiungibile

 

Ma questa, secondo me, è l'ultima strada da percorrere.

Per ora, nel mio sistema è installato msmtp, che è un client. Con msmtp, riesco ad inoltrare email in linea di comando verso google.

Fino a prova contraria, devo supporre che questo programma sia compatibile con phpBB.

Tuttavia, pur collocando l'eseguibile in chroot, non si avvia. E' strano che non parta. Perché in fondo nemmeno il php è contenuto dentro il chroot, eppure viene eseguito. Sinceramente, non mi è ben chiaro come il tutto funzioni. Io ho usato le informazioni che avevo acquisito in questo post per fare il tutto e mi sembrerebbe corretto.

Per installlare un demone smtp, dovrei come prima cosa cambiare radicalmente configurazione, cominciando a togliere msmtp (che non è compatibile).

E poi, a me non funziona nemmeno l'opzione "Usa un Server SMTP per le e-mail", che cerca di utilizzare in diretta il server smtp di google.

La prima cosa che mi serve è un metodo sensato per indagare sul problema, altrimenti, poi tenterò dei workaround.

----------

## makoomba

per utilizzare correttamente la funzione mail di php in chroot, occorre installare nello stesso un sendmail compatibile + shell.

in un server ho usato bash + ssmtp.

suppongo che sash potrebbe funzionare

----------

## .:chrome:.

 *cloc3 wrote:*   

> Ma questa, secondo me, è l'ultima strada da percorrere.

 

e perché mai? non implica alterare il funzionamento del server, installare server SMTP, né altro. è una soluzione come tante altre, e tu mi pare che la stia considerando alla stregua di una bestemmia. non vedo perché mai si dovrebbe. per la cronaca: è la soluzione usata per default da squirrelmail, quindi se non vuoi credere a me, almeno credi a lui  :Smile: 

 *cloc3 wrote:*   

> Per ora, nel mio sistema è installato msmtp, che è un client.
> 
> ...

 

beh, già questa  frase im fa storcere il naso. parlare di client SMTP mi pare una cosa un po' brutta.

ad ogni modo, hai testato msmtp da linea di comando da dentro la chroot? hai verificato di avergli reso disponibili tutti i files e le librerie di cui necessita?

usare le chroot non è proprio l'operazione banale che sembra nel thread che hai segnalato, in realtà richiede qualche accortezza in più, specie in casi come il tuo, nei quali non si ingabbia un web server che pubblica semplici pagine statiche

----------

## cloc3

 *k.gothmog wrote:*   

> 
> 
> ad ogni modo, hai testato msmtp da linea di comando da dentro la chroot?

 

Manco a dirlo  :Laughing:  :

```

s939 chroot # file /chroot/apache/bin/bash

/chroot/apache/bin/bash: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), stripped

s939 chroot # chroot /chroot/apache/

chroot: cannot run command `/bin/bash': No such file or directory

```

Oserei dire che non è il comportamento più corretto che ci possa attendere.  :Rolling Eyes: 

A questo punto, ho abbandonato la tecnica di installazione manuale e ho proseguito ad installare con emerge:

```

s939 chroot # USE="ssl mailwrapper" FEATURES="nodoc noman noinfo" ROOT=/chroot/apache INSTALL_MASK="*.h" emerge bash msmtp

```

Ma nessun progresso.

A questo punto, credo che mi servirebbe un manualetto per capire quali siano gli elementi minimi per generare un chroot funzionante.

Fino ad ora, ho utilizzato sempre e solo enviroment precofenzionati, come i cd di gentoo. Dove potrei rivolgermi?

P.S. grazie a wikipedia, ho scoperto jail. Che mi possa aiutare?

Ho provato ad aggiungere le dipendenze di bash, cioè ncurses e patch, ma senza fortuna.

Tra l'altro, bash, non solo esiste, ma ho controllato che sia anche eseguibile in ../apache/bin, e ho verificato n volte la presenza delle librerie indicate da ldd .

@k.gothmog: non te la prendere. Non intedevo ricusare con tonalità scandalizzate e blasfeme il demone di mail. Solo mi pare che, se ho cominciato una strada, devo trovare ragioni valide prima di separarmene. Non ho a cuore solo il risultato finale, ma soprattutto il desiderio di imparare (e mi pare proprio di averne bisogno  :Smile:  ).

----------

## randomaze

 *cloc3 wrote:*   

> Ho provato ad aggiungere le dipendenze di bash, cioè ncurses e patch, ma senza fortuna.
> 
> Tra l'altro, bash, non solo esiste, ma ho controllato che sia anche eseguibile in ../apache/bin, e ho verificato n volte la presenza delle librerie indicate da ldd

 

Con un "File not Found" strace può essere il tuo migliore amico.

Ho fatto una prova al volo (creato la dir e copiato dentro l'eseguibile di bash):

```
 # strace chroot /mnt/gentoo /bin/bash

...

chroot("/mnt/gentoo")                   = 0

chdir("/")                              = 0

execve("/bin/bash", ["/bin/bash"], [/* 43 vars */]) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it_IT.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it_IT.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it_IT/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

write(2, "chroot: ", 8chroot: )                 = 8

write(2, "cannot run command `/bin/bash\'", 30cannot run command `/bin/bash') = 30

open("/usr/share/locale/it_IT.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it_IT.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it_IT/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

open("/usr/share/locale/it/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

write(2, ": No such file or directory", 27: No such file or directory) = 27

...
```

prova a mettere anche qualche file di localizzazione  :Wink: 

----------

## makoomba

in pratica, il problema è questo

```
mail ~ # strace -f -e execve php -r 'mail("nome@dominio","prova","prova");' 

...

[pid 25190] execve("/bin/sh", ["sh", "-c", "/usr/sbin/sendmail -t -i "], [/* 32 vars */]) = 0

[pid 25190] execve("/usr/sbin/sendmail", ["/usr/sbin/sendmail", "-t", "-i"], [/* 32 vars */]) = 0

...
```

php esegue "sh -c usr/sbin/sendmail -t -i"

sostituire bash (che ha un fottio di dipendenze) con sash (shell minimale compilata staticamente) dovrebbe rendere più agevole la configurazione del chroot.

anche msmtp può essere compilato staticamente nel chroot con

```
CFLAGS="-static" USE="-*" FEATURES="nodoc noman noinfo" ROOT=/chroot INSTALL_MASK="*.h" emerge msmtp
```

in questo modo si riducono all'osso le dipendenze runtime 

@cloc3

quando ti funge il tutto, potresti mettere un tip/howto nell'apposita sezione

----------

## .:chrome:.

 *cloc3 wrote:*   

> chroot: cannot run command `/bin/bash': No such file or directory
> 
> @k.gothmog: non te la prendere. Non intedevo ricusare con tonalità scandalizzate e blasfeme il demone di mail. Solo mi pare che, se ho cominciato una strada, devo trovare ragioni valide prima di separarmene. Non ho a cuore solo il risultato finale, ma soprattutto il desiderio di imparare (e mi pare proprio di averne bisogno  ).
> 
> 

 

giusta osservazione. avevo inteso male le tue parole. perdonami.

quanto al problema di bash: il messaggio è ingannevole perché non è l'eseguibile /bin/bash, che non trova, ma un suo componente.

è quello a cui mi riferivo quando dicevo che la chroot non è un'operazione del tutto banale.

per capirci, prova a fare questo:

```
cd ~

mkdir -p test/bin

cp /bin/bash test/bin

chroot test
```

restituirà lo stesso identico errore.

il problema lo si risolve così:

```
chroot test ldd /bin/bash
```

questo ti mostrerà tutti i file a cui è linkato bash, e vedrai che ne mancheranno parecchi.

una volta copiati i files mancanti sarà tutto sistemato  :Smile: 

----------

## silian87

fantastico... volevo provare tutto questo ma oggi qualcuno mi ha bucato il phpBB e cambiato la sua pass... ho gia' tolto tutto... certo che non penso che mettero' ancora phpBB  :Razz: 

----------

## .:chrome:.

 *silian87 wrote:*   

> fantastico... volevo provare tutto questo ma oggi qualcuno mi ha bucato il phpBB e cambiato la sua pass... ho gia' tolto tutto... certo che non penso che mettero' ancora phpBB 

 

'sticazzi... è durato pochissimo  :Confused: 

----------

## cloc3

Va bene. Ci sono quasi.

Sistemare bash è troppo difficile. Ho deciso di metterlo OT in questo topic  :Cool:  .

Però sash funziona.

```

#cd /chroot/apache/bin ; ln -s sash bash

```

Da quel momento i log cominciano a rispondere, e tu ad usare la zucca.

L'utimo problema è la connessione in rete:

 *log wrote:*   

> 
> 
> sendmail: cannot locate host smtp.gmail.com: Name or service not known
> 
> 

 

Non capisco bene se basta popolare adeguatamente la /etc (hosts, host.conf, nsswitch, resolv.conf e che altro?) o se si debba aggiungere un qualche software, che non so individuare esattamente.

Inserire l'ip di smtp.gmail.com direttamente in /etc/hosts, per aggirare la query al dns non giova.

Con sash è arduo usare ldd o strace. Altrimenti sarei riuscito a sistemare bash...

----------

## makoomba

copia nel chroot etc/resolv.conf ed etc/hosts

edit:

sospetto che sia necessario anche

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

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

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

----------

## cloc3

 *makoomba wrote:*   

> sospetto che sia necessario anche
> 
> ```
> cp -a /lib/libnss_dns* /chroot/lib
> 
> ...

 

Delusione. A questo punto la storia si complica, proprio quando sembrava di essere a un passo dalla fine:

```

Fatal: no entropy gathering module detected

```

Qui,  goggle dice:

 *Quote:*   

> 
> 
> That is a libgcrypt error.  Check how you built libgcrypt.
> 
> ...
> ...

 

Purtroppo non basta compilare le libgcrypt, perché dopo chiede le gnutls.

Le gnutls sono assolutamente indispensabili. In assenza, il php dà errore sul browser.

Ho compilato staticamente le libgcrypt, ma quando ho provato a fare lo stesso per le gnutls, ho avuto:

```

s939 apache # CFLAGS="-static" USE="-* crypt zlib" FEATURES="nodoc noman noinfo" ROOT=/chroot/apache INSTALL_MASK="*.h" emerge gnutls -pv

These are the packages that I would merge, in order:

Calculating dependencies ...done!

[ebuild  N    ] app-crypt/opencdk-0.5.5  to /chroot/apache/ -doc 0 kB

[ebuild  N    ] sys-libs/glibc-2.3.5-r2  to /chroot/apache/ -build -erandom -glibc-compat20 -glibc-omitfp -hardened -linuxthreads-tls (-multilib) -nls* -nptl* -nptlonly -pic -profile (-selinux) -userlocales* 0 kB

[ebuild  N    ] sys-devel/m4-1.4.3  to /chroot/apache/ -nls* 0 kB

[ebuild  N    ] sys-devel/bison-1.875d  to /chroot/apache/ -nls* -static 0 kB

[ebuild  N    ] sys-devel/libperl-5.8.7  to /chroot/apache/ -berkdb* -debug -gdbm* -ithreads 0 kB

[ebuild  N    ] dev-lang/perl-5.8.7-r3  to /chroot/apache/ -berkdb* -build -debug -doc -gdbm* -ithreads -minimal -perlsuid 0 kB

[ebuild  N    ] dev-libs/libtasn1-0.2.13  to /chroot/apache/ -doc 0 kB

[ebuild  N    ] app-admin/perl-cleaner-1.01  to /chroot/apache/ 0 kB

[ebuild  N    ] dev-libs/lzo-1.08-r1  to /chroot/apache/ 0 kB

[ebuild   R   ] net-libs/gnutls-1.2.4  to /chroot/apache/ +crypt -doc +zlib 0 kB

```

Troppa grazia, Sant'Antonio.  Se ci metto tutto, che chroot mi viene?

Allora ho cominciato a compilare con l'opzione --nodeps, aggiungendo a mano le librerie di volta in volta richieste dai log.

Ne ho messe un po', fino a quando si è stufato di dare errore sul web.

Adesso , l'utente crede di avere inoltrato correttamente il messaggio, ma il log ripete laconicamente:

```

Fatal: no entropy gathering module detected

```

Insomma. Il serpente si mangia la coda.

A questo punto, non ho più indicazioni per aggiungere nuove librerie, ma l'email non parte.

Controprova. Tolto l'uso di tls da /chroot/apache/etc/msmtprc e ricompilato msmtp senza tls:

```

sendmail: the server does not support authentication

sendmail: could not send mail (account default from /etc/msmtprc)

```

----------

## makoomba

cloc3, ormai ce la devi fare: è una questione di principio ca$$o !

ho un paio di setup chroot con bash+ssmtp funzionanti, questo è il contenuto

```
bin/sh

lib/libpcre.so.0

lib/libssl.so.4

lib/libcrypto.so.4

lib/libcom_err.so.2

lib/libresolv.so.2

lib/libdl.so.2

lib/libnsl.so.1

lib/libcrypt.so.1

lib/ld-linux.so.2

lib/tls/libdb-4.1.so

lib/tls/libc.so.6

lib/tls/libpthread.so.0

lib/libtermcap.so.2

lib/libnss_files.so.2

etc/httpd/run/httpd.pid

etc/ssmtp/revaliases

etc/ssmtp/ssmtp.conf

etc/passwd

etc/group

etc/localtime

etc/nsswitch.conf

etc/resolv.conf

etc/hosts

etc/host.conf

etc/ld.so.cache

etc/ld.so.conf

sbin/nologin

usr/lib/libldap.so.2

usr/lib/liblber.so.2

usr/lib/libsasl2.so.2

usr/lib/libgssapi_krb5.so.2

usr/lib/libkrb5.so.3

usr/lib/libk5crypto.so.3

usr/lib/libz.so.1

usr/lib/libwrap.a

usr/lib/libwrap.so

usr/lib/libwrap.so.0

usr/lib/libwrap.so.0.7.6

usr/lib/libhesiod.so.0

usr/sbin/sendmail

```

risale a parecchio tempo fa ed è una FC 1 

prova a sostituire msmtp con ssmtp.

----------

## cloc3

 *makoomba wrote:*   

> cloc3, ormai ce la devi fare: è una questione di principio ca$$o !
> 
> 

 

Makoomba, sei forte!  :Very Happy: 

Comunque, mi pare proprio che nessuno debba prendere seriamente in considerazione la possibilità che io, presto o tardi, non ce la faccia  :Cool:  .

Per ora, comunque, buio pesto.

Cioè no, non del tutto.

Dopo una serie prolungata di esercizi di montaggio e smontaggio del mio chroot zoppo, pezzo per pezzo, con msmtp e con ssmtp, ho finalmente deciso di schiaffarci dentro le glibc belle integrali e ciaccarutarmi con bash.

Ho fatto:

```

# echo pippo| strace ssmtp pincopallo@gmail.com >ssl_connect.txt

```

e ho confrontato l'output dello stesso comando lanciato fuori (dove funziona).

Anche se è un po' lungo, prova a postare la parte saliente:

```

write(3, "STARTTLS\r\n", 10)            = 10

read(3, "2", 1)                         = 1

read(3, "2", 1)                         = 1

read(3, "0", 1)                         = 1

read(3, " ", 1)                         = 1

read(3, "2", 1)                         = 1

read(3, ".", 1)                         = 1

read(3, "0", 1)                         = 1

read(3, ".", 1)                         = 1

read(3, "0", 1)                         = 1

read(3, " ", 1)                         = 1

read(3, "R", 1)                         = 1

read(3, "e", 1)                         = 1

read(3, "a", 1)                         = 1

read(3, "d", 1)                         = 1

read(3, "y", 1)                         = 1

read(3, " ", 1)                         = 1

read(3, "t", 1)                         = 1

read(3, "o", 1)                         = 1

read(3, " ", 1)                         = 1

read(3, "s", 1)                         = 1

read(3, "t", 1)                         = 1

read(3, "a", 1)                         = 1

read(3, "r", 1)                         = 1

read(3, "t", 1)                         = 1

read(3, " ", 1)                         = 1

read(3, "T", 1)                         = 1

read(3, "L", 1)                         = 1

read(3, "S", 1)                         = 1

read(3, "\r", 1)                        = 1

read(3, "\n", 1)                        = 1

brk(0x552000)                           = 0x552000

open("/dev/urandom", O_RDONLY|O_NONBLOCK|O_NOCTTY) = -1 ENOENT (No such file or directory)

open("/dev/random", O_RDONLY|O_NONBLOCK|O_NOCTTY) = -1 ENOENT (No such file or directory)

open("/dev/srandom", O_RDONLY|O_NONBLOCK|O_NOCTTY) = -1 ENOENT (No such file or directory)

socket(PF_FILE, SOCK_STREAM, 0)         = 4

connect(4, {sa_family=AF_FILE, path="/var/run/egd-pool"}, 19) = -1 ENOENT (No such file or directory)

close(4)                                = 0

socket(PF_FILE, SOCK_STREAM, 0)         = 4

connect(4, {sa_family=AF_FILE, path="/dev/egd-pool"}, 15) = -1 ENOENT (No such file or directory)

close(4)                                = 0

socket(PF_FILE, SOCK_STREAM, 0)         = 4

connect(4, {sa_family=AF_FILE, path="/etc/egd-pool"}, 15) = -1 ENOENT (No such file or directory)

close(4)                                = 0

socket(PF_FILE, SOCK_STREAM, 0)         = 4

connect(4, {sa_family=AF_FILE, path="/etc/entropy"}, 14) = -1 ENOENT (No such file or directory)

close(4)                                = 0

getuid()                                = 0

dup(2)                                  = 4

fcntl(4, F_GETFL)                       = 0x8001 (flags O_WRONLY|O_LARGEFILE)

close(4)                                = 0

write(2, "SSL_connect: No such file or dir"..., 39SSL_connect: No such file or directory

) = 39

write(2, "ssmtp: Cannot open smtp.gmail.co"..., 38ssmtp: Cannot open smtp.gmail.com:587

) = 38

```

la mia impressione è che il problema nasca dal tentativo di accesso a /dev/urandom , ma francamente, mi pare strano di dover configurare quel dispostivo dentro il chroot.

Cosa ne pensi?

Anzi. Ho creato a mano il nodo dev/urandom e ho visto che il comando prosegue, uscendo poi con un messaggio preciso di connection refused.

Ma perchè lo rifiuta? È un rifiuto vero e proprio del server remoto, o qualcosa che è simulato in locale? Come capirlo?

----------

## randomaze

 *cloc3 wrote:*   

> la mia impressione è che il problema nasca dal tentativo di accesso a /dev/urandom , ma francamente, mi pare strano di dover configurare quel dispostivo dentro il chroot.
> 
> Cosa ne pensi?

 

Prova ad aggiungere un link al dispositivo in questione.

----------

## cloc3

 *randomaze wrote:*   

>  *cloc3 wrote:*   la mia impressione è che il problema nasca dal tentativo di accesso a /dev/urandom , ma francamente, mi pare strano di dover configurare quel dispostivo dentro il chroot.
> 
> Cosa ne pensi? 
> 
> Prova ad aggiungere un link al dispositivo in questione.

 

Già fatto. Come ho scritto nella nota modificata. Però non un link, perchè andrebbe fuori del chroot.

Ho creato a mano il nodo, sperando che funzioni. Sopra le considerazioni successive.

----------

## makoomba

l'accesso a /dev/urandom (così come il fracco di files seguenti) è legato al tentativo, da parte del client, di stabilire una connessione SSL con il server.

considerato che il chroot dovrebbe contenere lo stretto necessario, fossi in te, rinuncerei alla connessione criptata diretta dal chroot

volendo usare SSL, la soluzione più semplice sarebbe, imho, installare una conf minima di postfix (o similare) in locale.

il client del chroot si connette quindi "plaintext" al server (localhost) che invia all'esterno (SSL).

eliminato SSL (e il fottio di dipendenze che si porta dietro), la configurazione del chroot sarà sicuramente molto più semplice.

----------

## randomaze

 *cloc3 wrote:*   

> Già fatto. Come ho scritto nella nota modificata. Però non un link, perchè andrebbe fuori del chroot.
> 
> Ho creato a mano il nodo, sperando che funzioni. Sopra le considerazioni successive.

 

Ah, ok adesso ho visto.

Beh, a questo punto fai cifra tonda ed aggiungi anche il client telnet. Poi provi la connessione al server remoto, porta 25 per vedere se va la posta...

----------

## makoomba

 *randomaze wrote:*   

> Poi provi la connessione al server remoto, porta 25 per vedere se va la posta...

 

non è necessario, dal log di strace si legge chiaramente la risposta di gmail

```
220 2.0.0 Ready to start TLS
```

la connessione avviene ma il client si blocca perchè non riesce a creare il canale sicuro

----------

## cloc3

 :Confused:   *makoomba wrote:*   

> 
> 
> la connessione avviene ma il client si blocca perchè non riesce a creare il canale sicuro

  :Confused: 

Sono troppo curioso per lasciare qui.

Forse, a questo punto converrebbe proprio cercare una soluzione senza ssl (che poi, in fondo, sarebbe proprio quello che diceva da principio kgothmog), ma voglio farmene una ragione più chiara. Secondo me, entrambi i modi devono funzionare. Al termine, si sceglierà quello più leggero.

Dopo che ho aggiunto il nodo /dev/urandom (non so e questo è un fatto normale, però a me pare che funzioni correttamente, come se stesse dentro alla /dev vera), gli output sono divenuti quasi identici, anche se quello chrootato rimane negativo.

In particolare, mi fa impressione che scompaiano quasi del tutto i richiami a file non trovati (solo la ricerca iniziale del socket ad nscd, che non deve esistere per davvero). Ecco il testo:

```

...

open("/dev/urandom", O_RDONLY|O_NONBLOCK|O_NOCTTY) = 4

select(5, [4], NULL, NULL, {0, 10000})  = 1 (in [4], left {0, 12000})

read(4, "\262\300\212\3167\270\303]r#u\271\32\247E\352\vb\2217u"..., 32) = 32

close(4)                                = 0

getuid()                                = 0

write(3, "\200\222\1\3\1\0i\0\0\0 \0\0009\0\0008\0\0005\0\0\26\0"..., 148) = 148

read(3, "\26\3\1\0J\2\0", 7)            = 7

read(3, "\0F\3\1C\322\230f\375j}\33h\330\264\367\17D\'a\205-\377"..., 72) = 72

read(3, "\26\3\1\3d", 5)                = 5

read(3, "\v\0\3`\0\3]\0\3Z0\202\3V0\202\2\277\240\3\2\1\2\2\3?\336"..., 868) = 868

read(3, "\26\3\1\0\4", 5)               = 5

read(3, "\16\0\0\0", 4)                 = 4

write(3, "\26\3\1\0\206\20\0\0\202\0\200\37\365\306\335\343\177\246"..., 190) = 190

read(3, "\24\3\1\0\1", 5)               = 5

read(3, "\1", 1)                        = 1

read(3, "\26\3\1\0(", 5)                = 5

read(3, ">d\264>\346~V\226/l:\230+@$\321XwY?\370\255\24\f\375\301"..., 40) = 40

stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=951, ...}) = 0

stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=951, ...}) = 0

stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=951, ...}) = 0

socket(PF_FILE, SOCK_DGRAM, 0)          = 4

fcntl(4, F_SETFD, FD_CLOEXEC)           = 0

connect(4, {sa_family=AF_FILE, path="/dev/log"}, 16) = -1 ECONNREFUSED (Connection refused)

close(4)                                = 0

write(3, "\27\3\1\0\30\22\33\346{\253u\203\r\217\330j\303#\377\314"..., 90) = 90

alarm(300)                              = 599

...

```

Esiste un modo per capire il motivo del rifiuto?

----------

## cloc3

 :Smile:   :Confused:   :Shocked:   :Sad:   :Cool:   :Crying or Very sad:   :Embarassed:   :Twisted Evil:   :Rolling Eyes:   :Idea:   :Question:   :Evil or Very Mad:   :Arrow:   :Wink: 

Orpo. makoomba, hai vinto, e non lo sapevo.

Mentre impazzivo con le paturnie di ssmtp in linea di comando, il phpBB era già in grado di funzionare correttamente!!!

Mi sono già spedito un paio di email.

La /chroot/apache/dev/urandom è fondamentale.

Adesso non resta che incomnciare la cura dimagrante del chroot.

E naturalmente: ragazzi siete fantastici !!! Grazie soprattutto a  makoomba, ma anche agli altri.

Anzi, guardate un po' la differenza tra un forum vero e un forum

 :Smile:   :Confused:   :Shocked:   :Sad:   :Cool:   :Crying or Very sad:   :Embarassed:   :Twisted Evil:   :Rolling Eyes:   :Idea:   :Question:   :Evil or Very Mad:   :Arrow:   :Wink: 

----------

## silian87

 *Quote:*   

> 
> 
>              

 

Mi e' andato fuori di testa cloc3 O_O   :Laughing: 

(ah.., hai dimentigato lui:   :Mr. Green:  )

Asd

----------

## cloc3

 *silian87 wrote:*   

>  *Quote:*   
> 
>               
> 
> Mi e' andato fuori di testa cloc3 O_O  
> ...

 

 :Laughing: 

Era cornicetta.

A proposito, manda detto a quei cattivoni del tuo phpBB che il mio, sperimentale, stette su internet una ventina di giorni con utente amministratore "root" e password "pippo", senza che loro ci passavano a farci visitina.

 :Laughing:   :Laughing:   :Laughing: 

P.S. Asd che vuol dire? È da aggiungere qui?

----------

## makoomba

 *cloc3 wrote:*   

> Mentre impazzivo con le paturnie di ssmtp in linea di comando, il phpBB era già in grado di funzionare correttamente!!!
> 
> Mi sono già spedito un paio di email.

 

non avevo dubbi che l'avresti spuntata alla fine.

se puoi, posta un tip: l'argomento è interessante e sono sicuro che altri utenti ti sarebbero grati se potessero risparmiarsi il "calvario" della sperimentazione.

----------

## cloc3

 *makoomba wrote:*   

> 
> 
> se puoi, posta un tip: l'argomento è interessante e sono sicuro che altri utenti ti sarebbero grati se potessero risparmiarsi il "calvario" della sperimentazione.

 

Sarà fatto. Non a caso ho marcato il titolo [da perfezionare].

Solo che mi ci vorrà un po'. Sia per dimagrire il chroot sia perché ho già speso parecchio tempo nella prima fase e ho alcune altre cose in cantiere che hanno la precedenza.

In ogni caso, per ora, chi legge il topic può trovare tutte le indicazioni indispensabili.

Grazie ancora.

----------

## cloc3

 *cloc3 wrote:*   

>  *makoomba wrote:*   
> 
> se puoi, posta un tip: l'argomento è interessante e sono sicuro che altri utenti ti sarebbero grati se potessero risparmiarsi il "calvario" della sperimentazione. 
> 
> Sarà fatto. Non a caso ho marcato il titolo [da perfezionare].
> ...

 

Fatto.

Cortesemente, provate a vedere se va bene, che poi magari lo spostiamo sul wiki e aggiustiamo il titolo del topic.

----------

