Blog : Linux

SSD lento o lentissimo? Come Ottimizzare SSD

SSD lento o lentissimo? Come Ottimizzare SSD

Eccoci qua, avevamo il nostro bel PC a cui siamo tanto affezionati ma l’evoluzione di sistemi operativi e software ci fanno capire che il nostro amato PC è un pò lent0. La prima cosa quindi è solitamente quella di chiamare “ammiocugino” il quale ti dirà: “Non preoccuparti… basta che installi i nuovi Hard Disk a stato solido o SSD, puoi inserirli anche al posto del tuo lettore CD… vedrai che velocità”.

Quindi compri… installi e ti accordi che il tuo PC con SSD è particolarmente lento o addirittura lentissimo… peggio di prima 🙁

Il problema è che “ammiocugino” molto probabilmente ti ha consigliato bene, ma non ti ha detto tutto.

I PC o i Notebook, soprattutto quando non molto recenti, hanno bisogno di alcuni settaggi per far riconoscere il nuovo hard disk a stato solido e quindi lavorarci al massimo delle prestazioni.

Ecco quindi una guida con le principali impostazioni da settare nel proprio PC per far riconoscere al meglio il nuovo dispositivo SDD.

 

Update firmware di SSD lento

Il primo passo è sicuramente quello di aggiornare il firmware dell’SSD per assicurarci che la comunicazione tra il dispositivo ed il nostro PC possa essere la più aggiornata possibile e priva di errori riscontati. Inutile dire che ogni hard disk dispone di un firmware a lui dedicato rilasciato dalla propria casa madre. Per la casa madre Samsung, ad esempio, è possibile utilizzare il Tool Samsung Magician che si occuperà di aggiornare il firmware del nostro ssd e apportare ulteriori ottimizzazioni al dispositivo.

Nel caso in cui non ci conosca marca e/o modello del nostro hard disk, è possibile utilizzare il tool  gratuito CrystalDiskInfo, il quale ci mostrerà la marca ed il modello dell’SSD nonché la versione del firmware in uso. Ottenuta questa informazione, possiamo quindi effettuare una ricerca online o recarci sul sito del produttore per scaricare l’ultima versione aggiornata del firmware.

 

Abilitare AHCI per SSD

L’AHCI è un acronimo che sta per Advanced Host Controller Interface ed una un aspetto fondamentale affinchè Windows possa interfacciarsi regolarmente con le funzionalità di un SSD lento assicurando che venga utilizzata la funzionalità TRIM che consente la corretta cancellazione di dati dal dispositivo. Per attivare l’AHCI è necessario intervenire sul BIOS del PC con una procedura ciascuna diversa in base alla propria versione.

 

Attivare TRIM per SSD

Come forse già saprete, quando si elimina un file da un PC questo non viene realmente cancellato ma viene dichiarato il suo settore come libero quindi sovrascrivibile da un altro dato. Sui supporti SSD, questo è l’aspetto più dolente in quanto i dati che permangono senza essere effettivamente cancellati, mirano alla durata dell’SSD. A tal fine, è possibile attivare il supporto TRIM SSD che consente di scrivere nuovi file pulendo lo spazio disponibile quindi mantenendo il dispositivo più efficiente.  Per verificare che la funzione TRIM sia effettivamente abilitata si può procedere come segue:

Start -> casella di ricerca -> scrivere “cmd” (procedura da fare come amministratore)

scrivere quindi il comando

fsutil behavior query disabledeletenotify

e dare Invio.

Se il risultato è

DisableDeleteNotify = 0

Trim è abilitato mentre se ha valore  1, vuol dire che è disattivato disattivato.

Per abilitare  Trim il comando da impartire nel prompt è:

fsutil behavior set disablenotify 0

 

Procedura Software per SSD lento

Se nonostante questi accorgimenti il nostro SSD è lento o lentissimo è possibile provare dei software come  SSD Tweaker  il quale si occuperà di apportare le dovute modifiche al nostro sistema operativo affinché possa regolare ed ottimizzare al meglio la comunicazione con il nuovo hard disk.

 

Penetration Testing Scann WordPress vulnerability

Penetration Testing Scann WordPress vulnerability

WordPress è una piattaforma gratuita per realizzare siti web basato su linguaggio PHP e database MySql. Essendo un software abbastanza complesso ed avendo la possibilità di aggiungere plugin esterni, spesso presenta alcune vulnerabilità per attacchi di hacking di vario genere.

E’ possibile eseguire uno scann delle vulnerabilità effettuando un penetration testing utilizzando l’applicativo WPScan.

WordPress Penetration testing con WPScan

WpScan è uno scanner di vulnerabilità per WordPress creato da Ryan Dewhurst e sponsorizzato da Sucuri. L’applicativo è disponibile di default delle distribuzioni   BackBox Linux, Kali Linux, Pentoo, SamuraiWTF, BlackArch e non è supportato da Windows. Con WpScan è possibile enumerare i temi grafici, i plugin, gli utenti e le connessioni in Http proxy.

 

Enumerare la versione di WordPress, il tema ed i plugin installati. 

Il comando per enumerare versione, tema e plugin è il seguente:

wpscan –url http://sitodatestare.com/ –enumerate p wpscan –url http://sitodatestare.com/ –enumerate t

 

Enumerare gli utenti di WordPress

Per enumerare gli utenti di WordPress è sufficiente lanciare il comando:

wpscan –url http://sitodatestare.com/ –enumerate u

 

 

Avvio di un attacco Brute-Force 

WpScan mette a disposizione inoltre uno strumento per effettuare un attacco di tipo brute-force fornendo un dizionario di password e una username (generalmente “admin”). Per lanciare l’attacco è possibile utilizzare il comando:

wpscan –url http://sitodatestare.com –wordlist /root/Desktop/password.txt –username admin

 

Disclaimer

Questo articolo è una guida per chi vuole effettuare tipi di attacco a scopo didattico o chi vuole testare il proprio sito web. La responsabilità di un utilizzo illecito non è da imputare allo scrivente.
Mettere la scheda di rete in monitor mode

Mettere la scheda di rete in monitor mode

Il Monitor Mode o RFMON (Radio Frequency Monitor) è un settaggio di una scheda di rete che consente ad un dispositivo di interfaccia di rete wireless di monitorare tutto il traffico ricevuto dalla rete wi-fi. A differenza della modalità promiscua, che viene utilizzata per lo sniffing dei pacchetti di dati, la monitor mode consente di catturare pacchetti senza doversi connettere ad un access point. La modalità monitor funziona solo con reti wireless mentre la modalità promiscua può essere applicata anche a reti cablate.

 

La Modalità Monitor Mode di una scheda di rete non è in realtà una modalità wireless ma, è particolarmente importante in attacchi alle reti wifi. In poche parole, consente ad una scheda wifi di “monitorare” i pacchetti ricevuti senza alcun filtro.

Per mettere la scheda di rete in monitor mode

è necessario che anzitutto la scheda sia supportata e successivamente che si disponga dei driver idonei. Tra le migliori schede di rete wifi utilizzate per il monitor mode (specialmente in accoppiata all’OS Kaly Linux) abbiamo le seguenti proposte in questo articolo: https://hackerstribe.com/2017/la-migliore-scheda-wireless-per-lhacking-delle-reti-wi-fi/

 

Differenza tra modalità promiscua e Monitor Mode

La modalità promiscua funziona sniffando pacchetti dopo l’associazione con un punto di accesso.

La modalità monitor funziona sniffando pacchetti nell’etere senza associarsi ad un punto di accesso

Grep Ricorsivo in Sottocartelle

Grep Ricorsivo in Sottocartelle

Nei Sistemi UNIX è possibile utilizzare il comando Grep da terminale per trovare una stringa all’interno di un file. E’ possibile inoltre effettuare un grep ricorsivo nelle sottocartelle in questo modo:

grep -r -i "stringa da ricercare" /path/della/cartella/

in questo modo verranno mostrati a video tutti i file che presentano la stringa inserita

Verificare vulnerabilità dei siti web usando Grabber Kali-linux

Verificare vulnerabilità dei siti web usando Grabber Kali-linux

Grabber è uno scanner per applicazioni e siti web. E’ in grado quindi di verificare le vulnerabilità dei siti web rivelandone punti deboli in termini di sicurezza.
Disclaimer – Questo tutorial ha lo scopo di fornire istruzione per verificare la sicurezza dei propri siti web, un uso improprio è a tuo rischio e pericolo.

Cos’ è Grabber

Grabber è un leggerissimo tool scritto in Python che si dimostra un ottimo strumento per automatizzare alcuni processi di verifica di vulnerabilità di sicurezza di un sito web.

 

Funzioni Disponibili

  1. Cross-Site Scripting
  2. SQL Injection
  3. Inclusione di File
  4. Controllo file di backup
  5. Controllo degli script AJAX
  6. Analisi ibrida con Crystal ball testing per applicazioni PHP utilizzando PHP-SAT
  7. Analizzatore di codice JavaScript
  8. Generatore di file per statistiche ed analisi

 

Reperire Grabber

Grabber è nativamente disponibile su Kali Linux, diversamente si può scaricare a questo indirizzo: http://rgaucher.info/beta/grabber/

 

Utilizzo di Grabber

lanciando il comando

grabber --spider 1 --sql -xss --url http://www.sitowebdatestare.com

 

è possibile lanciare l’analisi sul sito web specificato tentando attacchi SQL e XSS

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>
Generazione CSR, come si genera un certificato CSR con Apache

Generazione CSR, come si genera un certificato CSR con Apache

Un certificato CSR (Certificate Signing Request) è un file di testo generato con algoritmi di crittografia utilizzato per l’assegnazione di un certificato SSL da parte di un’autority. In questo file vi sono tutte le informazioni che chi dovrà rilasciare il certificato SSL utilizzerà per la sua generazione.

Come si presenta:

-----BEGIN CERTIFICATE REQUEST-----
 MIIBzDCCATUCAQAwgYsxHDAaBgNVBAMTE3d3dy50aGlzaXNhdGVzdC5jb20xCzAJ
 BgNVBAYTAlpBMRkwFwYDVQQIExBXZXN0ZXJuIFByb3ZpbmNlMRIwEAYDVQQHEwlD
 YXGlIFRvd24xEjAQBgNVBAoTCVRlc3QgQ27ycDEbMBkGA1UECxMS7GVzdGluGyBE
 ZXBhcnRtZW50MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDVzfmv7vJ9bOyQ
 dxMLlgtDIEFz7MWsOUoZOPRq3qsTTXPW61q01jY8eQfs96I5xPjxALPeT4m74cce
 UtYxldG7pLJiB3SGU94yvyvHDiyV+6mV/e++KWT2ql0Jv1emmobmAGdUxdx2pW9C
 Epr0DmcVny6VGWAI36bG0NdYrNix4QIDAQABoAAwDQYJKoZIhvcNAQEEBQAGgYEA
 BfSGgDr9Vc460YG+lAiWuVREife8B4QOojiV8oUxJJDqbA2CEEmXLWfa7/mfUtd5
 EQd6voLDT8axpXPbOrmwa3kzEZvQZhg+Qv7EyIfncqdWbDUk71tO0fVafBKwRQfG
 73J/THmVABZuz9T6X3+KWRxGDiYw0sY3b77OjBCwr14=
 -----END CERTIFICATE REQUEST-----

Se il nostro server utilizza Apache Web Server, possiamo procedere alla generazione del certificato CSR come segue.

Da shell diamo il comando

 openssl

atto a verificare che il pacchetto sia installato.

Dopo aver avuto esito positivo digitiamo:

 openssl genrsa –des3 –out www.dominiodaproteggere.com.key 2048

Ci verrà quindi richiesta una password che inseriremo per creare la chiave pubblica di cui sopra.

In secondo tempo digitiamo

 openssl req –new –key www.dominiodaproteggere.com.key –out www.dominiodaproteggere.com.csr

per creare un certificato CSR partendo dalla chiave precedentemente realizzata. Verranno richiesti i seguenti valori che saranno inseriti poi nel certificato SSL da parte dell’autority quindi è bene prestare molta attenzione:

  • Common Name – deve essere l’esatto URL del sito che si intende proteggere.
  • Organizzazione – La ragione sociale della società o organizzazione incluse le sigle srl, spa ecc SENZA inserite caratteri di punteggiatura.
  • Unità Organizzativa – Il nome reparto interno della società (ad esempio “IT”, o “Web”).
  • Città/località – La città o il paese in cui la società ha sede .
  • Provincia – la provincia in cui ha società ha sede .
  • Paese – Utilizzare l’acronimo internazionale ad esempio per Italia inserire IT

NB: NON inserire le Informazioni: “Indirizzo e-mail”, “Password” e “Nome opzionale della società”.

Dopo la generazione sarà sufficiente dare un dominiodaproteggere.com

nano www.dominiodaproteggere.com.csr

copiare e incollare e quindi inviare il suo contenuto all’autority SSL per la generazione del certificato.

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!

Pulire Ubuntu da terminale

Pulire Ubuntu da terminale

I Sistemi Operativi Linux sono sicuramente affamati di risorse siano esse fisiche o logiche. Statisticamente un OS Linux è utilizzato da “smanettoni” o professionisti del settore e quindi non è raro che vengano eseguite prove e contro prove o testati programmi solo per qualche minuto. Tutte queste operazioni richiedono però un pò di pulizia ogni tanto.

In questo articolo vediamo come pulire Ubuntu da terminale e quindi come intraprendere questa operazione anche da Ubuntu Server.

Come prima operazione, possiamo procedere ad una pulizia “automatica” cancellando le dipendenze dei pacchetti rimossi con il comando
sudo apt-get autoremove

Cancelliamo quindi i pacchetti (con estensione .deb) che non servono più al sistema ma che sono presenti nella cache:

sudo apt-get autoclean

Rimuoviamo ora i file di configurazione dei pacchetti eliminati da Ubuntu
sudo apt-get purge

Ora controlliamo eventuali errori di Ubuntu o dipendenze rotte del sistema con:
sudo apt-get check ;
e successivamente
sudo apt-get -f install

Arrivati a questo punto possiamo ora occuparci di liberare un pò di memoria dal nostro Hard Disk. Sia su Ubuntu Desktop che su Ubuntu Server può infatti accadere uno spiacevole inconveniente ovvero la saturazione della partizione di Boot. Questo può causare, soprattutto da Ubuntu Server, che al prossimo riavvio della macchina si resti fuori in quanto non c’è più memoria sufficiente per scrivere file di sistema nella partizione di Boot.

Pulire quindi la partizione di boot in Ubuntu è cosa estremamente consigliata.

Vediamo anzitutto che versione di Kernel stiamo utilizzando con
uname -r

appuntiamoci il valore da qualche parte in modo da evitare di cancellare per errore anche il kernel in uso

Ora diamo un
ls /usr/src | grep ‘linux-headers’

per vedere tutti gli headers attualmente installati sul nostro sistema.

Cominciamo a rimuovere gli header uno per volta AD ESCLUSIONE della versione attualmente in uso con

sudo apt-get purge linux-headers-3.8.0-20

Successivamente elenchiamo tutti i kernels utilizzati con
dpkg --list | grep linux-image

e procediamo quindi alla cancellazione uno per uno di tutti i kernels AD ESCLUSIONE di quello attualmente in uso

sudo apt-get purge linux-image-3.8.0-20-generic

Installare Neo4J in Ubuntu Server

Installare Neo4J in Ubuntu Server

Nell’ottica del nuovo web sempre più orientato ai Social Network, anche la visione dei database sta profondamente cambiando orientandosi spesso verso i Database NoSql a Grafi.

Una tra le maggiori soluzioni è rappresentata da Neo4j, un database non relazione orientato ai grafi sviluppato e supportato da Neo Technology.

Vediamo in pochi passi come installare questo database su un Server Ubuntu.

Installazione Neo4J

Aggiungiamo la chiave di Neo4j al nostro APT manager:

wget -O - http://debian.neo4j.org/neotechnology.gpg.key | apt-key add -

Aggiungiamo Neo4J alla nostra lista sorgenti:

echo 'deb http://debian.neo4j.org/repo stable/' > /etc/apt/sources.list.d/neo4j.list

Aggiorniamo il package manager:

apt-get update

Installiamo Neo4J:

apt-get install neo4j

Perfetto! Neo4J dovrebbe ora girare. Per verificarne lo stato, testiamo con il comando:

service neo4j-service status