Talk su Nginx

25Ott11

In occasione del Linux Day 2011 a Milano, ho tenuto un breve talk sul server web Nginx. Nel caso qualcuno stesse cercando le slides, le ho caricate anche qua:
https://otacon22.files.wordpress.com/2011/10/nginx.pdf


Giappone 2011

24Ago11

Ed eccomi tornato dalla terra del sol levante. Avevo promesso un aggiornamento periodico durante il viaggio, ma non ho mai avuto tempo e voglia per prepararlo. Avevo semplicemente iniziato la stesura di questo articolo e poi l’ho lasciato in bozza per un po’.
Anche riguardo alle foto ne ho fatte pochissime, perché ho pensato di vivere la vacanza con un po’ più di relax, dopo la sessione d’esami mostruosa che ho passato 🙂

L’arrivo

Il viaggio aereo è stato molto stancante questa volta perché ho dormito veramente poco.
Sono atterrato Sabato 30 Luglio di prima mattina a Narita (成田), da dove mi sono spostato in direzione del mio appartamento a Kameido (亀戸). Appena arrivato mi sono procurato la carta ricaricabile Suica all’ufficio JR dell’aereoporto. Ho tentato di spiegare che volevo un abbonamento Okachimachi <-> Kameido ma mi hanno fatto una normale ricaricabile senza abbonamento.
Da Narita non ho preso il Narita express perché risultava più costoso e scomodo. Sono invece andato in direzione di Chiba con la linea Sobu rapida e poi ho proseguito per  Kinshicho (a seconda degli orari ci sono treni che necessitano di scendere a Chiba per cambiare o altri che proseguono). Da kinshicho sono “tornato indietro” di una fermata con la linea Sobu local ed ero a Kameido. In totale ho impiegato circa 1 ora e ho speso intorno ai 1500-2000¥ se non mi ricordo male. Tuttavia devo dire che girare con il valigione su quel tipo di treno non è proprio il massimo e ho dovuto farmi da parte e continuare a spostare la valigia.

C’è stato un po’ di casino all’hotel dove alloggio perché il check-in era alle 15 e io alle 9:00 ero già arrivato. Allora ho lasciato la valigia e sono andato a fare un giro (anche per mangiare) a Shinjuku. Ero molto stanco e non vedevo l’ora di andare a letto nella mia stanza, alle 15 infatti sono tornato subito per riposarmi. Più tardi dopo cena sono andato a letto presto (stanchissimo ancora dal volo) e mi sono svegliato intorno alle 3 di mattina.

I terremoti

Intorno alle 3:50 di Domenica 31 Luglio c’è stato un terremoto (chiaramente avvertibile, anche perché ero al 9° piano). Niente di tragico fortunatamente. Si trattava di un terremoto con epicentro al largo della prefettura di Fukushima di intensità 6.4 all’epicentro. Qua è stato avvertito ad una intensità 4 circa (vi ricordo che la scala è logaritmica). Ha oscillato parecchio il lampadario e ho subito acceso la tv dove sulla NHK (tv di stato giapponese) c’era già l’allerta e le notizie in diretta mentre ancora stavo sentendo il terremoto. Anche nei giorni seguenti ci sono stati dei leggeri terremoti (sempre con epicentro a nord di Tokyo) ma sempre nessun grosso pericolo. Da allora e nei giorni successivi ho sempre fatto riferimento al sito web della Japan Meteorological Agency per informazioni.

Molti mi hanno chiesto “Ma non sei preoccupato per i terremoti? Non ci sono segni visibili del terremoto dell’ 11 Marzo a Tokyo?” La risposta ad entrambe queste domande è no.

I terremoti sono pericolosi però nell’aera urbana di Tokyo e anche altrove gli edifici sono tutti a norma e non ho saputo di nessun edificio crollato a Tokyo l’11 Marzo ma solo di danni parziali. Ho sentito invece di tanta gente (che magari abitava molto in alto) a cui si sono rotti tutti i piatti, alcuni mobili, televisori, monitor del pc e altro durante l’11 Marzo. Uno dei pochi segni chiaramente evidenti dell’11 Marzo a Tokyo penso sia l’antenna della Tokyo Tower che si è lievemente stortata. La situazione in altre prefetture a nord più colpite è diversa ovviamente.
Il Giappone del resto è sempre stato caratterizzato da una intensa attività sismica per motivi geologici. In un museo qua a Ryogoku avevo visto di come Tokyo fosse stata molto tempo fa completamente distrutta a causa di terremoti e conseguenti incendi. Questo è “servito” a sensibilizzare i giapponesi al problema sismico già dall’antichità fino ad oggi, motivo per cui gli edifici vengono rigorosamente costruiti a norma antisismica.
C’è anche da dire però che fino ad adesso non ci sono stati terremoti forti con epicentro molto vicino a Tokyo. In quel caso anche gli edifici a norma potrebbero non essere sufficienti.

Qualcosa di nuovo

Tornando al mio viaggio: nei primi giorni ho fatto pochi giri e sempre in posti più o meno già visti, più che altro perché ancora stanchissimo dal volo aereo.
Uno dei posti nuovi dove sono stato è l’Ebisu Garden Place. Si tratta di una piccola zona di negozi tra alcuni grattacieli. Ci si arriva facilmente seguendo delle indicazioni partendo dalla stazione di Ebisu (Yamanote line).È una sorta di città nella città, un’area con una piazza e dei negozi tra due grattacieli. Un punto che mi sono preoccupato di fotografare è la “Marionette Clock Square”, famosa piazza che si vede nel drama Hana yori dango, punto dove i due protagonisti Tsukushi e Doumyouji si incontrano. Vicino a questa piazza c’è anche un museo e la sede della birra Ebisu della Sapporo.
Nella mia guida turistica ho letto che Ebisu dovrebbe essere una zona famosa anche per la cucina, però non ho visto molti ristoranti, probabilmente ho guardato nella zona sbagliata.

Un weekend sono anche passato a Nikko, posto abbastanza famoso a Nord di Tokyo, con magnifici templi e paesaggi. Trovate qualche foto sul mio album picasa.

Il 13-14 Agosto sono andato a Kyoto in treno (shinkansen) per incontrare degli amici e poi sono andato a Nagoya per incontrare degli amici della mia famiglia.
Lo shinkansen è stato parecchio costoso, ma decisamente comodo; senza contare che l’incontro con gli amici a Kyoto è valso decisamente il viaggio ^^
Ogni volta che si va fuori Tokyo si respira sempre un’aria diversa e c’è una atmosfera più tranquilla. È stato un peccato non passare qualche giorno fuori Tokyo.

Sono passato un paio di volte ad Akihabara anche. Qualche nuovo negozio ma niente di straordinario.
Come forse avrete letto, l’edificio di Radio Kaikan è stato chiuso per essere ristrutturato (non era a norma antisismica) ed è chiuso da alcune settimane se ho capito bene. Comunque quasi tutti i negozi che c’erano dentro sono stati spostati (temporaneamente?) nell’edificio a fianco, che era già stato preparato l’anno scorso apposta a quanto pare.

Il clima è stato parecchio fresco quando sono arrivato gli ultimi due giorni di Agosto. Poi però ha gradualmente iniziato il tipico caldo estivo nel giro di una settimana. I condizionatori nei negozi sono già accesi come al solito.

Riguardo ai consumi energetici

Come certamente saprete, in seguito all’arresto della centrale di Fukushima ci sono stati diversi problemi, tra cui quello della mancanza di energia elettrica. Infatti la centrale di Fukushima è una di quelle che serviva buona parte dell’energia utilizzata nell’area urbana di Tokyo. Vi ricordo in proposito che Tokyo è una delle aree metropolitane più vaste del mondo, di consumi energetici ce ne sono parecchi.
Subito dopo l’arresto della centrale la società che la gestisce, la TEPCO (Tokyo Electric Power Company) ha iniziato una serie di blackout a rotazione di diverse aree della prefettura di Tokyo (e anche altrove) per tentare di non arrestare del tutto la fornitura di energia elettrica. In seguito il governo ha iniziato una grande compagna chiedendo aiuto a tutti i cittadini per ridurre i consumi per aiutare a risolvere il problema e intanto TEPCO si è organizzata per deviare corrente da altre centrali e incrementarne l’attività.
Grazie allo sforzo di tutti i blackout sono cessati e le attività quotidiane (almeno qui) sono tornate alla normalità.
In moltissime stazioni (se non in tutte), alcune macchinette automatiche dei biglietti, alcune scale mobili e alcuni tornelli di uscita elettronici sono stati spenti per aiutare a ridurre i consumi. Anche in treno a volte durante le giornate di sole vengono spente le luci al neon all’interno che sono superflue.
Gli impiegati in molti uffici governativi e non,  hanno iniziato a venire vestiti più “casual” senza la solita giacca e cravatta, di modo da poter tenere i condizionatori a temperatura un po’ più alta e risparmiare energia.
Penso sia molto interessante vedere come il popolo (a dispetto di quello che potrebbe accadere altrove) si sia subito adattato al problema e abbia iniziato a prendere le contromisure. Poche settimane dopo gli annunci sul risparmio energetico erano già in commercio condizionatori appositamente studiati per ridurre i consumi, macchinette delle bibite per le stazioni a basso consumo, alcune scale mobili di centri commerciali spente e così via.
La TEPCO dovrebbe completare a giorni una nuova centrale fotovoltaica che aiuterà (seppur poco) a risolvere il problema energetico.
Ogni giorno in televisione, anche più volte al giorno, compare un grafico che mostra i consumi attuali in watt e quelli dell’anno scorso e si vede chiaramente che c’è un po’ di risparmio, che evita di saturare la potenza massima erogabile. Compare anche una percentuale che indica quanta potenza è attualmente consumata rispetto al massimo disponibile. Intorno a ferragosto, a causa del grande caldo, abbiamo superato il 90%. Se si dovesse superare il 100% sarà necessario riniziare i blackout a rotazione.
Oltre a questo, ogni tanto si sente passare delle camionette (non so se della polizia o altro) che con un megafono annunciano in tutti i quartieri di alzare i condizionatori e ridurre i consumi.

Comunque secondo me il risparmio energetico anche se sta funzionando, potrebbe essere incrementato: ho visto alcune scale mobili inutili accese all’interno di centri commerciali. In molti posti continua ad esserci aria condizionata esageratamente bassa e ancora troppe luci accese all’esterno di alcuni locali la sera. Molti negozi di grandi catene hanno tutta una serie di interessi per attirare clienti e se ne fregano un po’ del risparmio energetico.

Radiazioni e cibo contaminato

Essere qua nonostante la tragedia dell’11 Marzo e la centrale di Fukushima è un po’ dura ma gli effetti non si fanno sentire ancora a Tokyo. Una della cose che veramente preoccupa è la contaminazione del cibo. Nonostante tutti gli sforzi che la TEPCO fa ogni giorno per tentare di ridurre i problemi alla centrale, parecchio materiale radioattivo si continua a liberare.
Restando ad almeno ~80 Km dalla centrale non si subisce nessun effetto di possibili radiazioni. Tokyo è a ~300 Km da Fukushima e attualmente i livelli di radioattività di Tokyo sono inferiori a quelli di Roma.. I livelli di radioattività vengono monitorati da tantissimi privati che li pubblicano su internet (ad esempio ci sono diversi stream su ustream.tv), poi c’è anche la via “ufficiale” per verificare i livelli di radioattività che è questo sito (sito web dell’istituto per la salute pubblica). Tuttavia vicino al limite dell’area “pericolosa” di Fukushima e anche in altri punti ci sono allevamenti e campi coltivati. Inutile dire che molti sono contaminati.
Non molti giorni fa il governo ha iniziato una campagna in cui ha messo al bando tutta la carne proveniente da quella zona, procedendo con accurati controlli ai mercati della carne. Le misure prese dal governo sono state così rigide che anche allevamenti probabilmente non contaminati sono forse stati inclusi nel bando e per questo ci sono state delle lamentele.
Anche il riso e la soia potrebbero essere a rischio. Diversi giorni fa qualcuno ha messo su youtube un video che mostra livelli di radioattività anomali in semi di soia comprati in un negozio specializzato. Anche questo ha generato lunghe discussioni e ha contribuito ad aumentare ancora di più i controlli del governo. Ogni giorno in televisione si vedono video di ispezioni in fabbriche dove viene impacchettata frutta e verdura, campi di riso etc etc..
Del mare non si è ancora parlato molto a quanto pare, ho letto che nonostante le contaminazioni l’oceano ha una fortissima capacità di assorbire e “diluire” abbastanza le sostanze radioattive. Controlli anche sul pesce sono comunque attivi.
In questi giorni la TEPCO ha iniziato a costruire una struttura per isolare la centrale ed evitare ulteriori contaminazioni del mare e dell’aria.

Turisti

Mi è stato chiesto da diverse persone com’è la situazione turisti: ce ne sono?
Sì, certamente, ma neanche poi tanto. Girando ad Akihabara, Ueno, Shinjuku, Asakusa etc lo si nota che c’è un po’ meno attività turistica. Nella mia scuola di giapponese per stranieri alcune classi sono meno piene del solito penso. Sono l’unico italiano della scuola, gli americani che di solito sono parecchi, quest’anno sono meno. I taiwanesi non sembrano essere diminuiti molto. Comunque da qui a dire che l’attività turistica è drasticamente diminuita c’è di mezzo il mare.

Non mi viene in mente di altre cose nello specifico da raccontare, lasciatemi delle domande nei commenti se volete e risponderò volentieri. Eventualmente farò un altro post.

Pubblicità

Hehe, vi aspettavate un post tecnico eh? E invece sorpresina! Anche quest’estate torno a Tokyo per tre settimane!
Sarò ancora come l’anno scorso in una scuola per stranieri a studiare giapponese.
Avendo proseguito lo studio della lingua giapponese dall’estate scorsa fino ad ora, penso che questa volta vivrò meglio le lezioni e imparerò ancora di più.

Ci sono poi diverse persone che ho conosciuto su internet che non vedo l’ora di incontrare, anche per fare pratica di quello che studio!

Metterò come al solito dei post riassuntivi, magari ogni 2-3 giorni al posto che ogni giorno come l’anno scorso!

Se doveste avere richieste particolari riguardo a video di qualche zona di Tokyo (o anche Kyoto dato che forse ci passerò) o altro, avvertitemi!

さよなら!


Mi è capitato spesso di avere una macchina  che deve esporre dei servizi in rete su alcune porte tcp/udp che però volevo evitare di mostrare al “mondo”.
Ad esempio può essere che voglio aprire un server ssh. Indipendentemente dal servizio e dalla porta, può essere poco raccomandabile lasciarlo lì aperto “a tutti”.
Potremmo allora pensare di aggiungere una regola sul firewall (iptables) per abilitare l’accesso solo da daterminati ip sorgenti. Peccato che molto spesso gli indirizzi sorgente possono cambiare (indirizzi ip dinamici e altro).

Il port-knocking permette di risolvere queste ed altre situazioni.

Supponiamo appunto di avere la porta del servizio ssh (la 22) che vogliamo aprire solo per certe persone, però non sappiamo i loro indirizzi ip. Con la tecnica del port-knocking possiamo avviare un demone che resta “in ascolto” sulle interfacce di rete per tutte le richieste di connessione a basso livello. Quando questo demone vede delle richieste di connessione ad alcune porte (anche “chiuse”) in successione con una certa sequenza, lancia un comando.

Richieste a porte in successione alla fine è una sorta di codice segreto per sbloccare una porta “bussando” su altre ben definite.

Un caso tipico potrebbe essere questo: diciamo al demone che quando vede delle richieste di connessione alle porte  77,98,1044,1066 (esattamente in quest’ordine e fatte entro un certo tempo massimo l’una dall’altra), decide di guardare l’indirizzo ip di chi ha “bussato” e sbloccare solo per lui la porta di ingresso sulla 22 (lanciando una regola di iptables).
Altra cosa molto utile è richiudere la porta appena aperta dopo alcuni secondi. In questo modo l’utente remoto che deve collegarsi “bussa” e si collega, poi richiudendo la porta la connessione oramai stabilita con ftp non cadrà (dato che supponiamo che sul server ci sia una regola iptables per mantenere sempre attive le connessioni stabilite) e altre persone, anche con lo stesso indirizzo sorgente (dentro la stessa NAT dell’utente magari) non potranno collegarsi.

Per prima cosa dobbiamo procurarci il demone, che si chiama knockd. Nelle maggiori distribuzioni lo trovate facilmente nei repository. Lo stesso pacchetto comprende al suo interno anche il “client”, anche se per client potreste usare normalmente netcat o altro (basta solo “bussare” alla fine :D).

Il file di configurazione si trova in /etc/knockd.conf

La configurazione di default dovrebbe essere qualcosa di simile:

[openSSH]
	sequence    = 7000,8000,9000
	seq_timeout = 5
	command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
	tcpflags    = syn

[closeSSH]
	sequence    = 9000,8000,7000
	seq_timeout = 5
	command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
	tcpflags    = syn

Questa configurazione significa che quando knockd vede dei pacchetti syn (richiesta di connessione) sulle porte 7000,8000,9000 (in questo preciso ordine), “bussando” in un massimo di 5 secondi, allora viene lanciato il comando “command”.
Quel comando iptables specifica che vengano accettate tutte le connessioni provenienti dall’indirizzo IP di chi ha “bussato” e dirette alla porta tcp 22 (solitamente adibita al protocollo SSH).

Nella sezione seguente, chiamata “[closeSSH]” viene fatto esattamente l’opposto in corrispondenza della sequenza di porte 9000,8000,7000.

Di default il demone knockd non si avvierà se non modificate prima il file /etc/default/knockd impostando:

START_KNOCKD=0

Sempre nello stesso file possiamo specificare su quale interfaccia di rete dovrà lavorare knockd (di default penso le utilizzi tutte):

KNOCKD_OPTS="-i eth0"

Per “bussare” sulle porte utilizzando il client apposito incluso nel pacchetto di knockd ci basterà lanciare un comando tipo questo:

knock 1.2.3.4 7000 8000 9000

Ma usare knock non è obbligatorio. Se siamo su un pc dove non lo abbiamo a portata di mano possiamo anche optare per una soluzione del genere:

 for i in 7000 8000 9000; do nc 1.2.3.4 $i & done;

In questo modo vengono lanciate in background varie istanze di netcat in successione.

Una volta collegati ad ssh si suppone che il firewall iptables sulla macchina che configuriamo sia già impostato per accettare in ingresso connessioni stabilite, di modo che quando la porta viene chiusa la connessione non cade.
Solitamente questo lo si fa con una regola tipo (che comunque dovreste già avere se avete la policy di iptables in DROP):

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Nella configurazione che abbiamo visto prima la porta viene aperta e chiusa con una combinazione. Una soluzione più furba potrebbe essere di farla chiudere “automaticamente” qualche secondo dopo che la sequenza è stata lanciata e si è aperta

Un esempio di config per fare cio è il seguente:

[openBITS]
        sequence = 9132,4367,8371,1321,5239
        seq_timeout = 30
        tcpflags = syn
        start_command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        cmd_timeout = 60
        stop_command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

In questo modo avremo 30 secondi per “bussare” ed una volta aperta la porta, lo resterà per soli 60 secondi.

Per debugging e controllare altro potete sempre visionare il file di log di knockd su /var/log/knockd.log

Come altri spunti interessanti vi avverto che è possibile anche specificare se la porta su cui bussare sia TCP o UDP (per complicare la sequenza) ed è anche possibile verificare la presenza/assenza di determinati flag tcp. In ogni caso trovate altre informazioni sulla pagina ufficiale o nella documentazione.