Partizione criptata e protetta da password con CentOS GNU/Linux

16 febbraio 2010 Luca Nessun commento

Nell’articolo verra’ illustrata la procedura per creare una partizione criptata e protetta da password. Tutte le utility da utilizzare sono gia’ presenti sul sistema, comunque sia verificate che ci siano questi pacchetti

cryptsetup-luks
device-mapper
util-linux

Il comando da utilizzare e’ il seguente:

rpm -qa | egrep “cryptsetup-luks|device-mapper|util-linux”

Dovreste avere un output del genere:

device-mapper-1.02.13-1.el5
cryptsetup-luks-1.0.3-2.2.el5
util-linux-2.13-0.44.el5

Comunque sia se le suddette applicazioni non fossero installare potrete procedere cosi’

yum install cryptsetup-luks.i386 device-mapper.i386 util-linux.i386

N.B. i pacchetti installati con yum sono quelli a 32 bit

Creiamo il file che dovra’ contenere il file system (in questo caso da 1Gb):

dd if=/dev/zero of=/opt/crypto bs=1024k count=1024

Impostiamo i permessi affinche’ solo noi possiamo leggerlo

chmod 600 /opt/crypto

Associamo una loopback al file

losetup /dev/loop6 /opt/crypto

Eseguiamo cryptsetup. Ci verra’ richiesto di impostare una password per la nostra partizione.

cryptsetup -y create secretfs /dev/loop6

Sovrascriviamo il device mapper appena creato

dd if=/dev/zero of=/dev/mapper/secretfs

N.B. Non vi preoccupate del messaggio di warning restituito da dd

E’ giunto il momento di creare il filesystem che dovra’ contenere i nostri dati

mke2fs -j -O dir_index /dev/mapper/secretfs

Criamo la cartella che ci permettera’ di montare il file criptato

mkdir /mnt/secure

Consentiamo  l’accesso esclusivamente al nostro utente

chmod 600 /mnt/secure

Infine montiamo la partizione

mount /dev/mapper/secretfs /mnt/secure

La partizione si smonta cosi’

umount /mnt/secure
cryptsetup remove secretfs
losetup -d /dev/loop6

Potrete rimontarla in questo modo

losetup /dev/loop6 /opt/crypto
cryptsetup create secretfs /dev/loop6

** Inserite la password **

mount /dev/mapper/secretfs /mnt/secure

Installare ionCube su Debian

11 febbraio 2010 loade Nessun commento

In questa guida vedremo come installare l’encoder ionCube per criptare le vostre pagine PHP su Debian Lenny.
La prima cosa da fare è scaricare l’archivio dal sito di riferimento:

wget http://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz

A questo punto possiamo scompattare l’archivio:

tar zxvf ioncube_loaders_lin_x86.tar.gz

Consiglio prima di proseguire, la lettura del README.txt, presente nella directory ioncube.
Spostiamo la directory appena scompattata in un percorso definitivo:

mv ioncube /usr/local/

Ora dobbiamo inserire nel php.ini il modulo di ionCube, in base alla versione di PHP installata:

vi /etc/php5/apache2/php.ini
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.2.so

Riavviamo apache:

/etc/init.d/apache2 stop
/etc/init.d/apache2 start

Infine nell’output del phpinfo troveremo:

with the ionCube PHP Loader v3.3.10, Copyright (c) 2002-2009, by ionCube Ltd.

Monitorare i messaggi di posta spediti con la funzione mail() del php

9 febbraio 2010 Luca Nessun commento
Php

Php

Se  state gestendo un server web dove sono ospitati molti siti, prima o poi potrebbe essere necessario dover  far fronte a dello spam in uscita dalla vostra macchina; Messaggi generati da qualche form poco sicuro pubblicato in un sito, ma in quale? Non sempre negli header delle email si trovano informazioni utili ad individuarlo. Creando un wrapper del binario sendmail, risolveremo questo problema. Ecco come procedere:

Creiamo il nostro wrapper in /usr/local/bin/ chiamandolo sendmail-wrapper.php con il seguente codice al suo interno:

#!/usr/bin/php
<?php
$sendmail_path = ‘/usr/sbin/sendmail’;
$file_di_log = ‘/tmp/mail_php-’ . $_ENV['APACHE_RUN_USER'] . ‘.log’;

$logline = ”;
$pointer = fopen(’php://stdin’, ‘r’);

while ($line = fgets($pointer)) {
if(preg_match(’/^to:/i’, $line) || preg_match(’/^from:/i’, $line)) {
$logline .= trim($line).’ ‘;
}
$mail .= $line;
}

$command = ‘echo ‘ . escapeshellarg($mail) . ‘ | ‘.$sendmail_path.’ -t -i ‘;
for ($i = 1; $i < $_SERVER['argc']; $i++) {
$command .= escapeshellarg($_SERVER['argv'][$i]).’ ‘;
}

file_put_contents($file_di_log, date(’Y-m-d H:i:s’) . ‘ ‘ . $_ENV['PWD'] . ‘  ‘ . $logline . “\n”, FILE_APPEND);

shell_exec($command);
?>

N.B. sendmail-wrapper.php deriva da uno script di Till Brehm. E’ stato necessario apportare delle modifiche per sistemare alcuni bug e per renderlo compatibile con i nuovi sistemi.

Impostiamo su di esso i permessi di esecuzione

chmod 755 /usr/local/bin/sendmail-wrapper.php

Editiamo la configurazione del php.ini utilizzata dai siti (probabilmente /etc/php5/apache2/php.ini) decommentando (eliminando il carattere ; da inizio riga) la direttiva ’sendmail_path’ ed associandogli come valore il percorso del nostro wrapper. In questo modo:

sendmail_path = /usr/local/bin/sendmail-wrapper.php

Dopo aver riavviato il web server potremo verificare che ogni qualvolta viene inviata un’email con il metodo mail del php, in un file di log presente nella directory /tmp sara’ memorizzato il nome del sito che ha inviato il messaggio. Il nome del log avra’ il seguente formato e sara’ memorizzato nella directory /tmp:

mail_php-’UTENTE-CHE-ESEGUE-IL-PHP’.log

Se il php dei siti viene eseguito come modulo, allora il file sara’ questo:

/tmp/mail_php-www-data.log

Mentre se i siti sono eseguiti con la suexec verra’ generato piu’ di un log. Ad esempio

/tmp/mail_php-sito1.log

/tmp/mail_php-sito2.log

/tmp/mail_php-sito3.log

Potrete tastare il tutto creando in un sito un file php con questo contenuto e richiamandolo via browser web

<?php
mail(’indirizzo_destinatario@suo-sito.it’,'This is a test message subject’,'This is a test message body’,”,’-ftuoindirizzo@tuo-sito.it’);
echo ‘Messaggio Inviato’;
?>

N.B. Modificare l’indirizzo del mittente e del destinatario nella funziona mail

Installare mysqld in Debian Lenny

9 febbraio 2010 Luca Nessun commento

Ecco i comandi da eseguire per installare il server mysql su una distribuzione Debian Lenny

apt-get install mysql-server

N.B. Se avete in esecuzione un server web con integrato l’interprete php, dovrete installare anche il pacchetto php5-mysql per poter permettere agli script del sito di collegarsi al database

Durante l’installazione vi verra’ richiesto di impostare una password per l’utente root

Il servizio verra’ avviato ad installazione terminata.  Eseguendo il comando

ps ax

Vedremo una cosa del genere

2955 ?        S      0:00 /bin/sh /usr/bin/mysqld_safe
2994 ?        Sl     0:00 /usr/sbin/mysqld –basedir=/usr –datadir=/var/lib/mysql –user=mysql –pid-file=/var/run/mysqld/mysqld.pid –skip-external-locking –port=3306 –socket=/v
2996 ?        S      0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld

Per collegarsi a mysqld con l’applicazione ‘mysql’ si deve eseguire questo comando:

mysql -uroot -pPASSWORD

Questa e’ la query da eseguire per creare un database

mysql> CREATE DATABASE ‘nome_database’;

Ecco come creare un utente ed associarlo al nuovo database

mysql> GRANT ALL PRIVILEGES ON nome_database.* TO ‘nome_utente’@'%’ IDENTIFIED BY ‘password’;

Per variare la password di un utente invece bastera’ digitare questo

mysql> use mysql
mysql> update user set password=PASSWORD(’NuovaPasswordDaImpostare’) where User=’nome_utente’;

Per eliminare un database

mysql> DROP DATABASE ‘nome_database’;

Per eliminare un utente

mysql> use mysql
mysql> delete from user where User=’nome_utente’;

Per visualizzare i database attivi

mysql> use mysql
mysql> show databases;

Per visualizzare gli utenti attivi

mysql> use mysql
mysql> select * from user;

Categorie:Altro Tag: