Archivi autore: Valerio Guaglianone

Mac su Intel: utilizzare AHT (Apple Hardware Test)

Il software Apple Hardware Test (AHT) contiene una serie di strumenti diagnostici che consentono di eseguire dei test sull’hardware del computer. Si tratta di un utile metodo per diagnosticare un problema hardware durante la procedura di risoluzione dei problemi sul computer.

Per avviare il computer in modalità Apple Hardware Test:

  1. Premi il pulsante di accensione per accendere il computer.
  2. Tieni premuto il tasto D prima di visualizzare la schermata grigia di avvio. Se Apple Hardware Test non si avvia, consulta la sezione Informazioni aggiuntive in fondo a questo articolo.
    Nota: alcuni computer Macintosh forniti con OS X Lion e versioni successive supportano l’uso di Apple Hardware Test in Internet. Se Apple Hardware Test non è presente nel disco rigido, il computer sarà avviato con una versione di AHT basata su Internet. Per utilizzare questa funzione, è necessaria una connessione a Internet tramite Ethernet o Wi-Fi.
  3. Occorre circa un minuto perché Apple Hardware Test venga avviato ed esamini la configurazione hardware. Durante l’operazione viene visualizzata un’icona sullo schermo:
  4. Una volta completata la procedura, seleziona la lingua quindi fai clic sul tasto Freccia destra. Se non utilizzi un mouse, per selezionare la tua lingua puoi utilizzare i tasti Freccia su e Freccia giù, premendo quindi il tasto Invio.
  5. Viene visualizzata la console Apple Hardware Test. Puoi scegliere che tipo di test eseguire:
    • Per eseguire tutti i test di base, premi il pulsante Test o il pulsante “T” oppure il pulsante Invio.
    • Per eseguire un test diagnostico più approfondito, seleziona la casella di controllo “Esegui test esteso” situata sotto il pulsante Test, quindi fai clic su quest’ultimo.

I risultati del test verranno visualizzati nella finestra situata nella parte inferiore destra della console.

Per uscire da AHT, fai clic su Riavvia o Spegni nella parte inferiore della finestra.

Informazioni aggiuntive

Apple Hardware Test è incluso nei DVD che vengono distribuiti con i computer Macintosh. Se la copia del disco rigido non è più disponibile, utilizza i DVD per eseguire Apple Hardware Test.

  • Per i computer Apple basati su Intel forniti con Mac OS X v10.5.4 o versioni meno recenti, Apple Hardware Test si trova nel CD 1 di installazione di Mac OS X ed è incluso con il computer.
  • Per i computer Apple basati su Intel forniti con Mac OS X dalla versione v10.5.5 alla versione 10.6.7, Apple Hardware Test si trova nel CD 2 di installazione di Mac OS X ed è incluso con il computer.
  • Per alcuni computer Apple forniti con OS X Lion, se Apple Hardware Test non è presente sul disco rigido, viene avviata una versione basata su Internet. Per utilizzare questa funzione, è necessaria una connessione a Internet tramite Ethernet o Wi-Fi. Alcuni computer su cui è installato Lion richiedono un aggiornamento software per utilizzare questa funzionalità. Per ulteriori informazioni, consulta l’articolo Computer che possono essere aggiornati per l’utilizzo di Recupero Internet OS X.

Sospendere temporaneamente una sessione di root

Quando si usa il comando su per diventare utente root oppure per assumere l’identità di un altro utente, si può usare il comando suspend per tornare momentaneamente alla sessione di shell precedente.

Per tornare alla sessione di root lasciata poco prima, si può invece usare il comando fg.

Nel caso si sia avviata una shell di login (per esempio con il comando su -), allora si può forzare il ritorno alla shell precedente, con il comando suspend -f.

Disconnettere gli utenti da una Linux Box

 

Un messaggio per avvisare tutti gli utenti collegati di disconnettersi dal sistema:
# wall prego disconnettersi urgentemente dal sistema!!

Se gli utenti non si disconnettono da soli si può fare così:

1. si vedono i pid degli utenti ancora collegati alla macchina con:
# who -a | grep pts

2. quindi si procede con il comando:
# kill <pid utente>

Fuori tutti!

Come rendere più sicuro il PHP

Il PHP è comunemente considerato un linguaggio di scripting sicuro. Questa convinzione deriva dalle innumerevoli funzioni messe a disposizione degli sviluppatori ed attivabili dal file di configurazione globale php.ini o direttamente dal codice con l’apposita funzione ini_set().
A dispetto dalla sua robustezza sotto questo profilo, il PHP rimane però uno dei linguaggi maggiormente sfruttati oggi da hacker, virus e malware writer per attaccare i server che lo supportano.
Quello che segue è un elenco delle funzioni più comuni del linguaggio, seguite da una breve descrizione e dal tipo di parametro che è consigliato specificare (on per attivare la funzionalità ed off per disattivarla):
- register_globals: consente agli utenti di indicare variabili e valori iniettandoli nel contesto del programma con il rischio di alterarne la logica (ad esempio far credere ad un’applicazione di essere un utente autenticato quando invece non lo è). E’ consigliato impostare questa opzione ad OFF.
- magic_quotes: è un processo che automaticamente effettua l’escaping (ovvero la messa in sicurezza) dei dati acquisiti in ingresso dagli script PHP. Pur l’apparente utilità di questa feature è consigliato effettuare un controllo dei dati a runtime impostandola quindi ad OFF.
- allow_url_fopen: questa opzione consente di accedere a file remoti attraverso i protocolli ftp o http. Per ragioni di sicurezza (vulnerabilità di tipo File Inclusion) è consigliato impostare quest’opzione ad OFF.
- safe_mode: abilita la modalità sicura del PHP. E’ consigliato impostare questa opzione ad ON. Essa fornisce accesso ad una serie di sotto opzioni. Con safe_mode_include_dir è ad esempio possibile specificare una o più directory in cui risiedono file di tipo include, mentre con safe_mode_exec_dir è possibile indicare dove sono localizzati gli eventuali file eseguibili richiamati dall’applicazione PHP. Tutti i file all’esterno di queste directory non potranno essere acceduti.
- safe_mode_gid: effettua una comparazione sul group id (GID) prima di accedere ad un file. E’ consigliato attivare questa opzione impostandola ad ON.
- open_basedir: limita i file che possono essere acceduti dagli script PHP ad una o più directory specifiche. E’ consigliato utilizzare questa opzione.
- session.auto_start: specifica se le sessioni sono avviate automaticamente o richiedono una fase di startup. Per motivi di sicurezza e praticità è consigliato disattivare questa opzione impostandola ad OFF.
- session.entropy_file: indica il percorso di una risorsa che può essere utilizzata come ulteriore fonte di entropia per il processo di generazione degli identificativi di sessione. E’ consigliato impostare questa opzione al file speciale “/dev/urandom”.
- session.cookie_secure: specifica se i cookie di sessione devono essere inviati solamente attraverso canali di comunicazione sicuri. E’ consigliato attivare questa opzione impostandola ad ON.
- session.cookie_httponly: preclude l’accesso al cookie di sessione da parte di javascript o altri linguaggi client-side. Per ragione di sicurezza è consigliato impostare questa opzione ad ON.
- display_errors: determina se gli eventuali errori generati dagli script PHP devono essere riportati all’utente nella pagina web richiesta. Per questioni di sicurezza (Information Leak) è consigliato disattivare questa opzione (OFF).
- expose_php: è consigliato disattivare questa opzione impostandola ad OFF. In questo modo si riduce le possibilità che il sistema possa essere individuato come web server vulnerabile da scansioni automatizzate degli header HTTP.

Alcuni consigli per sviluppare applicazioni sicure nel linguaggio PHP

Il PHP è un linguaggio interpretato ampiamente utilizzato per la creazione di script dinamici. Nato da un’idea di Rasmus Lerdorf nel 1994, è divenuto uno standard de facto per lo sviluppo di applicazioni web. Il PHP è considerato un linguaggio comunemente sicuro, ma nonostante questo è allo stesso tempo uno dei più sfruttato da hacker, virus e malware writer per diffondere software malevolo.
Gran parte delle vulnerabilità software è oggigiorno riconducibile allo scarso filtraggio dell’input utente.
Il presupposto comune è che i dati acquisiti in ingresso sono sempre consistenti e frutto di richieste provenienti da utenti autorizzati. Niente di più sbagliato! Nessuna variabile dovrebbe essere considerata costituita da dati la cui regolarità non può essere comprovata. Ciò si riduce a dire che tutto l’input utente deve sempre essere controllato/filtrato per accertare che sia conforme con il tipo, le logiche e le operazioni che su di esso l’applicazione deve svolgere. In particolare devono essere previste i seguenti accorgimenti:
• Tutti i caratteri che possono avere una qualche valenza per l’interprete dei comandi (! $ ^ & * ( ) ~ [ ] \ | { } ‘ ” ; < > ? – `) o l’helper SQL (# ? % ‘ “ — ;) devono essere filtrati. Poiché alcuni di questi caratteri sono anche utilizzati per rappresentare tag HTML validi è importante prescindere dal tipo di dato che si sta acquisendo in input prima di operare un adeguato filtraggio;
• Altri caratteri che potrebbero creare problemi, troncamenti o effetti indesiderati durante l’accesso a file o risorse DB sono il terminatore stringa (\0), il ritorno a carrello (\x10), la nuova riga (\x13) ed ASCII 26 (\x1a). Questi vanno opportunamente gestiti.
- La quantità di input che l’utente può inviare in una form deve essere sempre dimensionato in modo da non eccedere i limiti della direttiva memory_limit impostata nel file di configurazione del PHP (valore di default 8 MB);
- I nomi dei file hanno solitamente una dimensione limitata a 255 byte. Quando si progetta un’applicazione PHP che accede sul disco è sempre bene considerare questo elemento. Eventuali loro troncamenti dovuti ad un poco accorto dimensionamento dell’input utente potrebbe generare effetti disastrosi o inaspettati;
- Ogni script che invia e-mail verso l’esterno può essere potenzialmente abusato così come gli hidden field di una form. Bisogna sempre accertare i permessi assegnati all’utente prima di decidere se eseguire un’operazione;
- Tutte le variabili dichiarate nell’applicazione devono essere inizializzate;
- E’ consigliato offuscare tutte le pagine PHP dell’applicazione;
- I valori utilizzati con la funzione header() devono essere privati dei caratteri speciali “\r” (\x0a) ed “\n” (\x0c);
- I file inclusi nel codice PHP devono avere estensioni riconosciute dal web server come codice interpretabile e non come text/plain visualizzabile.

Nove comodi usi per il comando find

Ci sono 9 comodi usi per il comando find in Linux, che non tutti conoscono e che vengono spiegati in questo tutorial. Come path in ogni esempio verrà utilizzato /root ma e’ possibile utilizzare qualsiasi altro path.

1)Trovare directory vuote:
find /root -depth -type d -empty

2)Trovare file vuoti:
find /root -depth -type f -empty

3)Trovare file con nomi specifici:
find /root -name [name_of_file]

4)Trovare un file con una specifica estensione:
find /root -name “*.[given_extension]”

5)Trovare file con specifici permessi:
find /root -perm [permission bits]

6)Trovare file di determinate dimensioni:
find -size n[cwbkMG]
find /root -name ‘*.txt’ -size 4k -exec ls -l {} ;

7)Trovare un file con un certo nome ed una qualsiasi estensione:
find -name ‘[given_name].*’

8)Trovare un file modificato nelle ultime 24 ore:
find -mtime n
dove 0 sta per 24 ore, 1 per 48, 2 per 72 e cosi’ via.

9)Trovare file a cui si e’ acceduto nelle ultime 24 ore:
find -atime n
dove 0 sta per 24 ore, 1 per 48, 2 per 72 e cosi’ via.

Linux: come eseguire un programma in altre lingue

Avete la necessità di avviare, sotto Linux, un programma in una lingua diversa, senza uscire dall’ambiente desktop in uso? Avete un sito in inglese, e dovete fare degli screenshot ad un software, per preparare un articolo?

Aprite un terminale e digitate:

$ export LANG=lingua
$ programma

per avviare programma nella lingua scelta (en per l’inglese e it per l’italiano).

Mettere il turbo al comando make nei PC con CPU dual/quad-core

Da non molto ho preso un nuovo portatile e, a differenza dal precedente, è un dual core duo. Ho notato che quando andavo a compilare i programmi, utilizzavo solo il 50% della CPU(S), pertanto mi ci voleva un meccanismo per incrementare le prestazioni, ma non sapevo quale.

Ecco come ottimizzare la fase di compilazione di un programma che dispone di un Makefile.

Basta aggiungere solamente una riga al file ~/.bashrc:
alias make=’nice make -j2′

Il -j2 sta ad indicare che si hanno a disposizione 2 processori. Se avete un quadcore, mettete -j4. Successivamente, ricaricate il file di configurazione

con:
$ source ~/.bashrc

Forse avrò scoperto l’acqua calda, ma fino ad oggi onestamente lo ignoravo.

Cambiare il MAC address di una scheda ethernet sotto Linux

Per cambiare il nostro MAC address non bisogna fare altro che eseguire 3 semplici passaggi.

Per prima cosa bisogna ricordarsi che i numeri e le lettere ammessi sono: 1 2 3 4 5 6 7 8 9 0 a b c d e f

Dopodiche ci si costruisce a piacere un MAC address tipo questo 1a:2b:3c:4d:5e:6f

Quindi da root

ifconfig eth0 down
ifconfig eth0 hw ether 1a:2b:3c:4d:5e:6f
ifconfig etho up

Per controllare il nuovo MAC address

ifconfig

Swappiness Tuning, facciamo chiarezza!

Immagino che solo pochi di voi sappiano che cos’è lo swappiness. Rappresenta un cosiddetto “collo di bottiglia” ed è presente in qualunque sistema UNIX-LIKE (MacOSX compreso). Ma che cos’è lo swappiness? E’ un’area di memoria, presa dal disco rigido, che esegue la stessa funzione della ram. E’ facile capire come, la partizione di swap, è indubbiamente più lenta della RAM.

Molti, per velocizzare Linux, consigliano di “ritoccare” questo valore, ma bisogna stare attenti.

Di solito, in giro sul web, si legge:
Nel terminale digitate:
sudo gedit /etc/sysctl.conf
ed aggiungete alla fine del file
vm.swappiness=0
Questo numero può essere compreso tra 0 e 100.

Attenti però

Lo swappiness tuning non è esente da problemi, prima di tutto è consigliato modificare il valore SOLO e soltanto se si ha qualcosa come più di 512 MB di ram, soprattutto se lo si sposta a zero poiché è diverso dal comportamento descritto da molti pseudo-sistemisti. Uno swappiness alto (100) significa che il gestore della memoria sposta molto rapidamente i dati delle applicazioni, dalla ram per intenderci, allo swap; un valore basso (quindi 0) invece fà in modo di mantenere il più a lungo possibile i dati in ram e spostarli solo quando non si ha più ram disponibile. Un valore 0 PUO’ causare malfunzionamenti ai PC, soprattutto quelli con poca ram o processori non troppo recenti/potenti, ed è sconsigliato nei laptop. Un valore di sicurezza per lo swappiness è dai 10 ai 30, a seconda del PC, ma non garantisce nessun aumento velocità in quanto è strettamente dipendente dal kernel installato e dalla configurazione della macchina, alcune volte migliora, altre volte peggiora.