Ci sono delle volte nella vita di un sistemista dove dopo aver allestito un nuovo Windows Server 2003, aver installato tutto il necessario compresi antivirus e backup giunge il momento di configurare IIS.

Nel caso il server sia adibito ad ospitare nuovi siti, non ci sono altre alternative che la configurazione attraverso l’interfaccia di amministrazione, ma nel caso di un migrazione da un altro server, dove magari sono presenti decine e decine di siti configurati la strada “facciamolo a mano” diventa lunga ma sopratutto la probabilità di fare qualche errore aumenta in modo direttamente proporzionale al numero di siti da configurare.

Diventa quindi lecito domandarsi come importare sulla nuova macchina la configurazione presente sul vecchio server.

Purtroppo dall’interfaccia di amministrazione le uniche operazioni che riguardano la gestione del metabase di IIS sono relative al backup ed relativo ripristino, ma fortunatamente Microsoft non ci lascia completamente a mano vuota, rendendo possibile l’operazione di esportazione e importazione tramite uno script vbs utilizzabile via shell.

Dal titolo del post, avrete capito che sto parlando di iiscnfg

Dopo aver letto un po’ di documentazione ed avendo come obbiettivo l’esportazione completa del metabase del vecchio server e la sua importazione sulla nuova macchina sono stati sufficienti 2 comandi …

Questo è il comando per l’esportazione, che ovviamente va eseguito sul server in cui c’è la configurazione da copiare.

iiscnfg /export /f nomefile /sp / /children

Vediamo insieme i parametri:

  • /f indica che l’esportazione deve avvenire su file ( nel mio caso nomefile è c:\iisconfig_backup.xml )
  • /sp indica il ramo del metabase, che nel mio caso è un semplice slash che indica tutto ma potrebbe anche indicare un singolo sito
  • /children consente semplicemente di esportare in maniera ricorsiva tutte le sottochiavi

Se tutto è andato bene dovremmo ritrovaci sotto c un file xml che dobbiamo far arrivare sul nuovo server per poterlo importare.

Prima di procedere all’importazione, nel caso abbiate già modificato qualcosa suggerisco un backup, che potete effettuare o tramite l’interfaccia di amministrazione o via shell con iisback.

iisback /backup /b nomebackup

Arrivato a questo punto vediamo il comando per l’importazione che è leggermente più complicato …

iiscnfg /import /f nomefile /sp / /dp / /children /merge

In questo caso ci sono due parametri in più:

  • /dp specifica il percorso della metabase in cui vengono memorizzate le chiavi, discorso simile a quello per /sp e nel mio caso dove voglio importare tutto indico solo lo slash
  • /merge consente di combinare le chiavi nel file XML con le chiavi esistenti della metabase. Forse questo parametro nel caso di una configurazione da zero è inutile, ma nel caso abbiate già fatto modificato la configurazione di IIS questo vi permettera di importare solo le chiavi nuove

Questo funziona a patto che i percorsi rimangano gli stessi, ovvero se i siti prima erano sul disco e: dovranno essere su e: anche adesso.

Nel caso non sia possibile ricreare la stessa configurazione, suggerisco la modifica del file xml con il metabase prima dell’importazione, altrimenti vi tocca modificare a mano tramite l’interfaccia di amministrazione sito per sito.

Un ultima cosa; se durante la migrazione i due server si possono “parlare” potrebbe essere più comodo copiare direttamente la configurazione tra un server e l’altro, ma nel mio caso, essendo i due server in due posti fisicamente diversi, ed essendo sotto firewall non è stato possibile praticarlo.

Sperando di non aver dimenticato nulla, e di non aver scritto caz**te, questo è quanto …

Link di riferimento: Gestione di configurazioni di IIS tramite script

Technorati: , , ,
BlogBabel: , , ,

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly
linux  software  download

Su segnalazione di Riccardo, scopro che WebMin non è presente sui reposity ufficiali dell’ultima release di debian (etch).

Webmin: web-based interface for system administration for *nix

Per chi non lo conoscesse, WebMin è uno strumento che fornisce un’interfaccia per l’amministrazione del sistema accessibie via browser che permette la configurazione e la gestione di molti servizi con un interfaccia un po’ più user-friendly della classica shall.

Giusto per citarne qualcuno, ecco alcuni dei servizi amministrabili via WebMin: apache, samba, dhcp, iptable, ecc..

Probabilmente alcuni preferiscono fare tutto attraverso un server ssh, ma a volte, sopprattuto per i servizi che non configuriamo quotidianemtne può risultare utile uno strumento accessibile via web.

Arrivati a questo punto, dopo aver preso coscienza che questa volta apt-get non ci risolve il problema, se decidiamo che vogliamo usare WebMin, possiamo procedere con un’installazione un po’ più manuale …

Prima di andare avanti apro una piccola parentesi per parlarvi della “poca” sicurezza che è intrinseca nelle applicazioni web. Quello che voglio dire è che quando si lavora attraverso il protocollo http le informazioni viaggiano in chiaro, quindi se decidiamo di amministrare il nostro server da remoto ( opzione abilitata di default su WebMin ) dobbiamo renderci conto che i nostri dati (e quindi anche le nostre password) sono alla portata di un qualsiasi sniffer.

Fortunatamente WebMin oltre al protocollo http gestisce anche https che garantisce un buon livello di crittografia, ma per abilitarlo, dobbiamo avere installato sulla nostra debian etch la libreria Perl SSLeay.

Tradotto in pratica … installiamo prima questa libreria:

# apt-get install libnet-ssleay-perl

Bene, adesso siamo pronti installare WebMin con il supporto https. :)

Prima di tutto scarichiamo il tar.gz sulla nostra macchina:

# wget http://nomeserver/webadmin/webmin-1.340.tar.gz

( ovviamente nomeserver va sostituito con l’indirizzo di uno dei mirror di disponibili … )

Dopo aver effettuato il download di circa 15mb … scompattiamo …

# tar zxvf webmin-1.340.tar.gz

… e lanciamo il setup:

# ./webmin-1.340/setup.sh

Questo è il log di una mia installazione di prova.

Bene, a questo punto l’installazione è terminata, e WebMin vi sta aspettando in https sulla porta 10000.

Nel mio caso digitando https://192.168.1.62:10000/ da una macchina remota mi trovo di fronte al login.

Per migliorare ulteriormente la sicurezza vi suggerisco di leggere questa pagina, di limitare l’accesso da un range di ip il più stretto possibile e di cambiare la porta di default su cui è in ascolto.

Ecco alcuni screenshot della mia installazione:

Webmin System Information Webmin configurazione

webmin accesso ip controllato Webmin configurazione server ssh

Link di riferimento: webmin , install webmin

Technorati:
BlogBabel:

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly

Grazie alla pazienza di mia moglie ecco la ricetta della Torta di mele.

Dopo averla infornata ha esclamato: “la torta di mele più lunga della mia vita !!“, poveretta, non dev’essere facile sopportare uno con la macchina fotografica che ti perseguita di continuo.

Le foto le ho pubblicate su flickr.

Ingredienti:

  • 80 gr di burro
  • 1 hg di zucchero
  • 1,5 hg di farina
  • 2 uova
  • 1 scorza di limone grattuggiata
  • 1/2 bustina di lievito vanigliato
  • 1 pizzico di sale
  • 1 bicchiere di latte
  • 4 mele golden

Leggi il resto »

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly

Sono passati parecchi mesi da quando avevo iniziato a scrivere due righe sulla faccenda del Drag and Drop con Javascript.

Oggi forse riusciamo a portarne a casa un altro pezzo …

Eccomi dunque qui per sperimentare con qualche riga di codice come capire quale elemento HTML si trova sotto il nostro mouse.

Il comando che lancia la funzione principale è richiamato dall’evento onmouseover dell’oggeto document:

document.onmouseover = CheckElement

CheckElement verrà quindi lanciata ogni volta che ci sposteremo da un elemento all’altro, indicandoci il tipo di elemeto ( IMG , DIV , ecc .. ) , il suo id e la sua classe css

Per un rudimentale esempio potete dare una sbirciata a questa pagina.

  • La riga 3 gestisce la compatibilità crossbrowser. ( vedi qui )
  • La riga 4 è il cuore dalla funzione in quando è lei che sempre con una modalità crossbrowser intercetta e referenzia l’elemento sotto il mouse assegnadolo alla variabile oElement.
  • La riga 5 referenzia l’elemento “log”, quello dove andremo a scrivere le informazioni del’elemento oElement.
  • Con la riga 6 verifico che l’elemento sotto il mouse non sia ne l’elemento HTML ne BODY in quanto questi due elementi rappresentano la pagina nella sua totalità , quindi trovarsi su di essi vuol dire non trovarsi sopra nulla.
  • Con le righe 7 , 8 e 9inietto” dentro l’elemento oLog tramite la sua sua proprietà innerHTML alcune informazioni relative all’elemento oElement.

Questo tipo di informazioni ci può tornare utile per gestire comportamenti differenti basandosi sul tipo di elemento e risulta a questo punto molto semplice creare delle funzioni che intervengano al rispettarsi di alcune condizioni come il tipo, il nome o la classe dell’elemento sottostante.

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly
linux

Dando un occhiata alle statistiche di questo blog una buona parte della banda e consumata da “spam crawlers” e “cross site image stealing“.

Per lo splog mi sono già attrezzato e devo dire che non ho più avuto problemi, ma per limitare un po il consumo di banda sto valutando alcune soluzioni.

Partiamo dalle cose più semplici.

Per il “furto” della immagini da altri siti (cross site image stealing) ho seguito questo tutorial che mi ha portato a creare un file .htaccess dentro la directory delle immagini.

SetEnvIfNoCase Referer "^http://maurizio.mavida.com/" ok_img
SetEnvIfNoCase Referer "^http://maurizio.mavida.com$" ok_img
SetEnvIfNoCase Referer "^$" ok_img
< filesmatch "\.(gif|png|jpe?g)$">
  Order Allow,Deny
  Allow from env=ok_img
< /filesmatch>

In pratica grazie al modulo modsetenvif istruisco apache che per alcuni tipi di file (gif|png|jpe?g) deve verificare se il Referer ha impostato correttamente la varibile “okimg”.
Nel mio caso l’accesso alle immagini viene negato a tutti tranne che alla pagine sotto “http://maurizio.mavida.com”.

Ispirato invece da quest’altro articolo sto provando ad applicare lo stesso procedimento per crowlers e spyder troppo invasivi …

La logica in questo caso è inversa: consenti a tutti tranne che per le casistiche previste.

SetEnvIfNoCase User-Agent "^Wget" no_page
SetEnvIfNoCase Remote_Addr "195.225.176.73" no_page
SetEnvIfNoCase Remote_Addr "195.225.177.90" no_page
SetEnvIfNoCase Remote_Addr "212.252.169.99" no_page

< filesmatch "\.(htm|php)$">
        Order Allow,Deny
        Allow from all
        Deny from env=no_page
< /filesmatch>

Per popolare la mia black-list ho incominiato usando i commenti taggati come spam, ma in questo modo l’elenco degli ip potrebbe essere molto lungo ad in alcuni casi potrebbe anche dare problemi di “performace”. E’ quindi da implementare con cirterio, verificando magari chi è il proprietario.

Le direttive impostabili con il modulo mod_setenvif sono molto potenti e quanto avete letto va considerato solo come un antipasto ….

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly