Archivio per la categoria ‘Internet’

NAT con iptables. Condivisione di una connessione

Domenica, Agosto 30th, 2009

iptables, applicazione per modificare le regole di firewalling in ambiente GNU/Linux, permette anche di attivare un sistema di NAT. La tecnica di Network Address Translation maschera gli indirizzi in ingresso ad una interfaccia di rete con l’indirizzo IP della macchina dove le regole sono impostate e li fa uscire su una interfaccia di output: in questo modo è possibile, ad esempio, condividere una connessione di rete con un’altra macchina.

Di seguito c’è uno script BASH per attivare il NAT sui pacchetti entranti nell’interfaccia di rete eth1: essi vengono inoltrati attraverso l’interfaccia eth2.

#!/bin/bash

# Script che imposta le regole per effettuare NAT con un sistema GNU/Linux.

IPTABLES=/sbin/iptables

# Interfacce di rete interessate dal NAT
IFIN=eth1	# Interfaccia di rete verso il computer locale
IFOUT=eth2	# Interfaccia con accesso alla rete esterna

# Regole NAT
$IPTABLES -t nat -A POSTROUTING -o $IFOUT -j MASQUERADE
$IPTABLES -A FORWARD -i $IFIN -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -i $IFIN -o $IFOUT -j ACCEPT

# Abilitazione ip forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

L’ultimo passo, da effettuare sul client che sfrutta il NAT, consiste nella modifica della tabella di routing. Da utente root basta eseguire da shell la seguente istruzione dove ip_address è l’indirizzo dell’host dove sono attive le regole di NAT.

alice:/# route add default gw ip_address

Semplice parser SAX con Java

Giovedì, Gennaio 15th, 2009

In questo breve articolo si mostra con un esempio come realizzare un parser XML SAX (Simple API for XML) in Java. Per il parsing sono utilizzate le librerie Xerces2 disponibili in ambiente Debian GNU/Linux con il pacchetto libxerces2-java.

Il programma realizzato come esempio è un semplice feed aggregator RSS: la sua funzionalità consiste nell’estrarre da una serie di fonti RSS, indicate tramite i loro URL, gli articoli che hanno nei loro titoli una parola chiave impostata come parametro dall’utente al lancio del programma.

Nel codice sono definite tre classi: RSSFeedAggregator rappresenta il feed aggregator e contiene i comandi per il parsing nonché il programma principale (metodo main); RSSItem descrive un articolo RSS nei soli suoi campi titolo, link e descrizione; RSSSAXHandler è l’handler che gestisce gli eventi durante la lettura del documento estraendo le informazioni desiderate.

Vista la semplicità del codice non mi dilungo in ulteriori spiegazioni, che eventualmente possono essere chieste via commenti o via email, ma lascio alla presentazione del codice del programma.

Leggi il resto del post »

Feed degli stati su Facebook

Mercoledì, Gennaio 14th, 2009

Comunicare il proprio stato, su Facebook, è una delle caratteristiche più utilizzate: eserciti di adolescenti cresciuti o nostalgici bambini – anche l’autore di questo blog – spesso abusano di tale possibilità offerta dal sito di social network.

Quello che forse non tutti sanno è che tali stati possono essere recuperati sotto forma di documento RSS 2.0 ed essere visualizzati da qualunque feed reader. Il link al documento, però, con il “recente” restyling dell’interfaccia di Facebook è scomparso o comunque diventato più difficile da raggiungere; copio di seguito il link alla pagina che permette il salvataggio del feed RSS trovato dopo una mezz’ora di ricerche sul web.

Pagina Facebook ! Attività recenti (da accedere dopo aver fatto il login).
http://www.new.facebook.com/minifeed.php?filter=11

Per avere informazioni su come ho pubblicato tali stati sul mio blog Wordpress, consiglio di leggere la pagina riguardante il plugin RSS Stream (http://rick.jinlabs.com/code/rss-stream/).