Categorie
featured tutorial

Montate automaticamente periferiche USB

Ubuntu e molte altre distribuzioni “desktop” ci hanno abituato a quella piccola magia chiamata automount che permette il colleganeti automatico al filesystem di periferiche USB come un dischi removibili o sempici chiavette.

In pratica ci evita la “noia” del mount.

Come dicevo qualche riga sopra questa funzionalità è presente in moltissime distrubuzioni dotate di Desktop environment ma nel caso volessimo usarla sulla nostra debian minimale dobbiamo installare un pacchetto aggiuntivo.

liunx-usbmount

Fino a ieri avrei suggerito autofs il quale funziona egregiamente a patto di avere voglia di fare qualche piccola configurazione ma, oggi, dopo aver fatto una piccola ricerca per rispondere ad un mail ricevuta da un certo Riccardo sono venuto a conoscenda di USBmount.

The USBmount Debian package automatically mounts USB mass storage devices (typically USB pens) when they are plugged in, and unmounts them when they are removed. The mountpoints (/media/usb[0-7] by default), filesystem types to consider, and mount options are configurable.

Essendo presente nei reposity debian è sufficente il solito:

# apt-get install usbmount

Come già scritto anche in queste pagine il mount di chiavette formattate con fat32 richiede una modifica al file di configurazione (“/etc/usbmount/usbmount.conf”) aggiungendo “vfat” all’elenco dei filesystem riconosciuti.

FILESYSTEMS=”vfat ext2 ext3″

Infine per applicare i cambiamenti è necessario riavviare udev

# /etc/init.d/udev restart

A questo punto per poter poter accedere alla nostra chiavetta USB ci basterà spostarci sotto “/media/usb” (ovviamente dopo averla inserita) 😉

Categorie
featured security tutorial

Controllo degli accessi su SSH

Questa mattina controllando i report di alcuni server relativi al traffico generato ho visto qualcosa di alquanto anomalo.

Il grafico che vedete rappresente l’attivita del protocollo ssh e come potete osservare dalle 4.30 alla 6.30 qualche simpatico amico a tentato un brute force.

Da una prima analisi non sembra essere successo nulla di grave in quanto dai log si può vedere un banale tentativo di dictionary attacks.

Sotto potete vedere una parte del log restituito da questo comando:

# cat /var/log/auth.log | grep ssh | grep “invalid user”

Nello stesso modo ho poi verificato gli accessi “autorizzati” e fortunatamente non ne risultano altri oltre a quelli fatti dal sottoscritto:

# cat /var/log/auth.log | grep ssh | grep Accepted

E’ anche vero che nel caso in cui il nostro hackers fosse riuscito ad accedere avrebbe potuto eliminare una parte dei log ma voglio pensare che avrebbe eliminato tutti i riferimenti al suo ip.

Anche se considero l’attacco fallito ho cercato in rete come evitare questo tipo di attacchi e come in tante altre occasioni la ricerca è durata meno di un minuto: Preventing SSH Dictionary Attacks With DenyHosts

DenyHosts è un tool di sicurezza scritto in Python per server SSH. È pensato per prevenire attacchi brute force verso server SSH monitorando i tentativi di login invalidi nel log di autenticazione e bloccando gli indirizzi IP. (via wikipedia)

Dopo aver verificato se il pacchetto fosse già presente nei repository debian ho provveduto al solito:

# apt-get install denyhosts

Una veloce occhiata al file di configurazione per modificare la mail a cui inviare gli avvisi sui nuovi hosts bloccati ed un controllo lo script fosse in funzione come servizio sono al momento sufficenti per <s>farmi dormire tranquillo</s> rimandare di 24 ore le prossime analisi.

Categorie
tutorial wordpress

5 nuovi indici per le tabelle di wordpress

Seguendo alcuni suggerimenti di un essere illuminato, sto lentamente mettendo in pratica quanto ascoltato durante l’ iWordCamp.

Mi appunto quindi i comandi da lanciare in modo non dovermi ricordare la sintassi ed evitare refusi…

CREATE INDEX autoload ON wp_options (autoload);
CREATE INDEX post_date ON wp_posts (post_date);
CREATE INDEX post_date_gmt ON wp_posts (post_date_gmt);
CREATE INDEX parent ON wp_term_taxonomy (parent);
CREATE INDEX name ON wp_terms (name);

In alcune installazioni il nome delle vostra tabelle potrebbe essere diverso… verificate quindi prima se avete usato un prefisso.
(file wp-config var $table_prefix)

Mi verrebbe anche voglia di scrivere un piccolo plugin per rendere il lavoro ancora più veloce, ma mi sembra una roba troppo banale.

N.B.
L’applicazione di questi indici è applicabile solo nel caso abbiate una versione di wordpress 2.3 o superiore.

Già che si sono segnalo anche questo script che suggerisce ulteriori tuning per il vostro database server preferito (via giorgio)

Categorie
tutorial

MySQL, indici FullText e la lunghezza delle strighe

Avete mai provato a cercare su un indice FullText con una stringa sotto i 4 caratteri ?

select * from tabella where match (nomecampo) against (‘abc’);

Bhe, io dopo essere diventato scemo, ho scoperto che per default la lunghezza minima è impostata a 4 caratteri.

MySQL, indici FullText e ricerca sotto i 4 caratteri

Se quindi state cercando stringhe come “php“,”htm” o “css“, e nonostante siate sicuri che ci siano riscontri, la ricerca non vi restituisce nessun record, non è dovuto ad una tabella corrotta, ma molto più semplicemente perché l’indice in condizioni normali non gestisce ricerche di questo tipo.

La soluzione, se siete nelle condizioni di modificare il file di configurazione, fortunatamente c’è, e prevede 3 operazioni

  1. E’ necessario definire il valore della variabile ft_min_word_len all’interno del file my.cfg
    ft_min_word_len=3
  2. Riavviare il server in modo che valorizzi in modo corretto la nuova impostazione
  3. Per finire, è necessario fare il rebuild degli indici, in modo che vengano ricostruiti con tutte le informazioni corrette
    REPAIR TABLE nometabella QUICK;

Facile come bere un chupito… basta saperlo.

Per la documentazione ufficiale basta guardare qui