Blog : server

Desktop Remoto senza disconnettere utente

Desktop Remoto senza disconnettere utente

Quando si abilita la funzionalità di Desktop Remoto in Windows Server si può avere la necessità di abilitare sessioni multiple concorrenti con lo stesso account.

Se infatti accediamo al server in Desktop Remoto utilizzando le credenziali di un utente, nel momento in cui tentiamo di loggarci con le stesse credenziali aprendo un’altra sessione, ci verrà richiesto quale utente attualmente connesso vogliamo disconnettere. Questo non rende possibile loggarsi a Windows Server da desktop remoto contemporaneamente.

Questo impedimento è sicuramente superabile modificando alcune impostazioni sul Server:

Come abilitare Sessioni Multiple Desktop Remoto

Per abilitare le sessioni concorrenti in RDP su Windows Server (2008, 2008 R2, 2012, 2012 R2) è sufficiente accedere alla finestra di ricerca posta sopra il menù di avvio e digitare la parola “regedit”.

Questa aprirà le chiavi di registro del Sistema Operativo. Andiamo quindi in 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server

Clicchiamo quindi con il tasto destro sulla voce : fSingleSessionPerUser

e successivamente sulla voce Modify. Si aprirà quindi una finestra dove possiamo modificare la voce di registro modificando il valore da 1 a 0

Ora sarà possibile creare sessioni simultanee di desktop remoto senza dover scollegare altri utenti

Errore Authen::Libwrap su Ubuntu Server utilizzando Webmin

Errore Authen::Libwrap su Ubuntu Server utilizzando Webmin

Utilizzando Webmin su Server Ubuntu può capitare che durante l’installazione di un modulo aggiuntivo compaia l’errore

Authen::Libwrap

o in un caso più specifico:

Failed to connect to the Bacula database : Failed to load the database DBI driver mysql at ./bacula-backup-lib.pl line 45

o ancora:

Error: Function definition too short '/ * EOF * /' in Libwrap.xs, line 32

 

Per risolvere l’errore è possibile verificare l’installazione delle librerie richieste con:

apt-get install libwrap0 libwrap0-dev

Dopo aver installato le librerie è sufficiente

apt-get install build-essential gcc libc6-dev libwrap0 libwrap0-dev
 cpan ExtUtils::MakeMaker
 cpan Authen::Libwra
Installazione Certificato SSL Apache

Installazione Certificato SSL Apache

In questo articolo  abbiamo visto come generare un certificato CSR da fornire ad un’autority per l’ottenimento di un certificato SSL da applicare ad un nostro sito.

Ipotizziamo pertanto di aver ottenuto in mail da parte dell’autority il classico file ZIP contenente il certificato SSL e il certificato di intermediazione.

Per procedere all’installazione, è sufficiente caricare questi due certificati in una cartella del server ad esempio in /root . E’ ovviamente importante che questa cartella abbia i permessi CHMOD 775 .

Accertiamoci quindi che Apache abbia installato il modulo SSL con:

a2enmod ssl

e quindi riavviamo il servizio con

/etc/init.d/apache2 restart

Successivamente possiamo passare ad editare il file con le direttive del nostro sito ad esempio:

nano /etc/apache2/sites-enabled/sito_da_proteggere

in quest’ultimo editiamo le direttive aggiungendo

<VirtualHost *:443> 
DocumentRoot /var/www/ 
SSLEngine on 
SSLCertificateFile /root/certificato.crt 
SSLCertificateKeyFile /root/sito_da_proteggere.key 
SSLCertificateChainFile /root/DigiCertCA.crt 
</VirtualHost>

Il primo parametro serve a mettere in ascolto apache sulla porta 443 e non più sulla porta 80
SSLEngine on Abilita la funzione SSL
SSLCertificateFile indica il path del file del certificato SSL inviato dall’autority
SSLCertificateKeyFile indica il file contenente la chiave generata questo articolo  .
SSLCertificateChainFile indica il path del file contenente il file di Intermediazione.

Fatto questo, salviamo e riavviamo apache.

Problemi che possono sorgere:

Errore di Apache

durante il riavvio di apache, lo stesso può restituire il messaggio di errore di

apache2: Could not reliably determine the server's fully qualified domain name, using [IP SERVER] for ServerName

Sarà quindi sufficiente editare il file

nano /etc/apache2/httpd.conf

e inserire all’interno l’istruzione

ServerName [IP DEL SERVER]

Forzare il redirect su HTTPS

Per redirigere gli accessi dal protocollo HTTP a quello HTTPS bisogna modificare il file:

nano /etc/apache2/sites-enabled/sito_da_proteggere

e aggiungere

<VirtualHost *:80>
    ServerName  esempiosito.com/
    Redirect / https://esempiosito.com/
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/
SSLEngine on
SSLCertificateFile /root/certificato.crt
SSLCertificateKeyFile /root/sito_da_proteggere.key
SSLCertificateChainFile /root/DigiCertCA.crt
</VirtualHost>
Monitoraggio Server Linux con Observium

Monitoraggio Server Linux con Observium

Avere sotto controllo i parametri vitali di un server è un aspetto fondamentale. Vediamo di seguito come installare Observium, un monitor di sistema con accesso remoto per server Linux. Scritto in PHP con supporto per molti dispositivi di network come Cisco, HP, Windows e molti altri.

Installazione:
Cominciamo con l’aggiornare il nostro server
sudo apt-get update

Observium per funzionare correttamente necessita dei pacchetti:
LAMP server
fping
Net-SNMP 5.4+
RRDtool 1.3+
Graphviz
Ipmitool
Libvirt-bin

procediamo quindi con la loro installazione
sudo apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-mcrypt php5-json php-pear snmp
fping mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick
libvirt ipmitool

Creazione Database di Appoggio a Observium:
Accediamo a MySql come root:
mysql -u root -p

Creiamo il database di Observium
CREATE DATABASE observium;

Creiamo l’utente amministratore del database
CREATE USER observiumadmin@localhost IDENTIFIED BY 'observium_password';

Diamo tutti i permessi al nuovo utente sul database riservato a Observium
GRANT ALL PRIVILEGES ON observium.* TO observiumadmin@localhost;

Puliamo e quindi aggiorniamo i privilegi
FLUSH PRIVILEGES;
exit

Scarichiamo ed Installiamo Observium
Iniziamo a creare una directory riservata
mkdir -p /opt/observium && cd /opt

Scarichiamo e scompattiamo il pacchetto di installazione:
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz

Entriamo nella directory
cd observium

Copiamo il file di configurazione ed editiamolo
cp config.php.default config.php
nano config.php

Modifichiamo i parametri di configurazione come da esempio:
/ Database config
$config['db_host'] = 'localhost';
$config['db_user'] = 'observiumadmin';
$config['db_pass'] = 'observiumpassword';
$config['db_name'] = 'observium';

Eseguiamo l’aggiornamento delle nuove informazioni introdotte:
php includes/update/update.php

Creiamo una cartella per conservare i file rrd
mkdir rrd
chown apache:apache rrd

E creiamo una cartella di log dove reperire informazioni in caso di problemi
mkdir -p /var/log/observium
chown apache:apache /var/log/observium

Creiamo un virtual host su Apache:

DocumentRoot /opt/observium/html/
ServerName observium.domain.com
CustomLog /var/log/observium/access_log combined
ErrorLog /var/log/observium/error_log
<Directory "/opt/observium/html/">
AllowOverride All
Options FollowSymLinks MultiViews

 

Se non ancora disponibile, abilitiamo sul nostro Server il mod Rewrite
sudo a2enmod rewrite

e riavviamo apache
sudo service apache2 restart

Configurazione Observium
Creiamo un primo utente admin
cd /opt/observium
./adduser.php admin adminpassword 10

Creiamo un nuovo file per il controllo di Cron Job:
>/etc/cron.d/observium

e incolliamo dentro:
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1
*/5 * * * * root /opt/observium/poller-wrapper.py 1 >> /dev/null 2>&1

aggiornando i Cron Jobs
/etc/init.d/cron reload

Tutto pronto, basta entrare nel pannello all’indirizzo: http://IPSERVER

Nel caso la porta 80 sia già occupata, possiamo configurare il virtual Host su un’altra porta.

Buon Monitoraggio a tutti!

Analizzatore Log Mail su Server

Analizzatore Log Mail su Server

Uno degli attacchi hackers più frecquenti, riguardandi hosting o server, sono quelli in cui viene caricato all’interno di una delle cartelle del sito o della web application, un file scritto in diversi linguaggi che è in grado di inviare email spamm mentendo in serio pericolo l’usabilità del sito ma soprattutto rendendoci responsabili di eventuali azioni legali.

Molte volte capita che su un solo server siano ospitati più siti e che quindi sia molto difficile trovare il file “infetto” che genera il traffico di spamm.

Con PHP 5.3 viene introdotta un’importante novità ovvero, è possibile specificare quale file può fungere da log mail e quindi memorizzare gli estremi di ogni email mandata dal nostro server. Utilizzando questa funzione, per ogni email inviata, troveremo il corrispondente file che l’ha generata consentendoci quindi di eliminarlo e successivamente di correre ai ripari cercando di trovare la falla che ha consentito la scrittura dello stesso.

Basta quindi editare il file php.ini e specificare le variabili alle righe:
mail.add_x_header = On
mail.log = /var/log/phpmail.log

La prima riga aggiunge al log mail X-Header Addizionali dandoci informazioni sul processo e sul nome e percorso del file che ha generato la mail.

La seconda riga specifica in quale file queste informazioni debbano essere inserite.

Nel caso in esempio, sarà quindi necessario creare un file phpmail.log nel persorso /var/log/phpmail.log e renderlo scrivibile dal processo di PHP

Per ogni email che partirà dal nostro server, avremo una linea di log simile a quella sottostante:

1
mail() on [/var/www/miosito.com/httpdocs/pages/formmail.php:50]: To: info@miosito.com -- Headers: From: "John Brown Smith: " <jsb@miosito.com>

Facile capire il percorso che ha generato la mail e apporre le dovute soluzioni.