English abstract: After upgrading Ubuntu, there will be neither Wicd nor a wireless internet connection (unless you set Network Manager up). Connect your pc to your router with a LAN cable, add Wicd repo to your sources.list, open a terminal, update and upgrade with Aptitude, type (no quotes) ‘sudo aptitude -d install wicd’ (to download needed packages without installing them) and then ‘sudo aptitude install wicd’ (to install the packages). Start Wicd and enjoy the web again.

Se anche voi usate Wicd per potervi connettere a internet attraverso il router, noterete (o avrete notato) che durante l’aggiornamento la vostra distribuzione ha disinstallato Wicd per reinstallare quella semiciofeca di Network Manager.

Le cose si possono fare un po’ problematiche, perché Wicd e Network Manager non vanno d’accordo, e se c’è l’uno non può esserci l’altro. Ancora, probabilmente dopo l’aggiornamento, bisognerà configurare il wireless di Network Manager e lì potrebbe essere un’ulteriore rottura. Quindi, come far ritornare il nostro amato Wicd sperando di non combinare guai?

Io ho seguito questa semplice procedura. Completato l’aggiornamento ho spento il wireless e mi sono collegato ala rete con il cavo LAN. Ho ripristinato il repo di wicd (che durante l’aggiornamento era stato commentato con un cancelletto # nel file/etc/apt/sources.list). Dopodiché ho dato il seguente comando nel terminale:

sudo aptitude update && sudo aptitude safe-upgrade

per assicurarmi che il mio sistema sia perfettamente aggiornato. Quindi ho dato:

sudo aptitude -d install wicd

per scaricare tutti i pacchetti necessari senza però installarli (in passato, avendo saltato questo passaggio, è successo un casino che non vi dico). Probabilmente, se avevate installato Wicd prima dell’aggiornamento alla nuova versione della distribuzione, non sarà necessario scaricare alcuna dipendenza.

Adesso diamo il comando:

sudo aptitude install wicd

rispondiamo sempre sì alle obiezioni che aptitude ci proporrà e abbiamo finito. Almeno sulla mia macchina le impostazioni di Wicd erano ancora salvate, quindi non ho avuto bisogno di risettare alcunché: ho avviato Wicd e sono tornato connesso con il wireless, come prima dell’aggiornamento. 🙂

English abstract: to enable your internet connection on Microsoft Windows emulated by qemu, start it typing “qemu -hda sistema.qcow -localtime -boot c -net nic -net user” (no quotes) in a terminal, where “sistema.qcow” is the name of YOUR file .qcow as typed during the installation of Microsoft Windows.

Un breve passaggio per appuntarmi una cosa. Ho installato sul mio Kubuntu una versione virtuale di Microsoft Windows XP con qemu (il disco fisso che l’ospitava mi ha definitivamente lasciato). Il problema è che lanciandolo non riuscivo a far partire la connessione ad internet.

Ho risolto con il comando da dare nel terminale

qemu -hda sistema.qcow -localtime -boot c -net nic -net user

Ricordo a chi utilizzasse questa informazione di sostituire “sistema.qcow” con il nome (ed il percorso) che ha inserito durante l’installazione del sistema operativo.

SopCast è un popolare programma che serve per visualizzare flussi audio e video condivisi tramite il sistema del P2P. Insomma, è una televisione P2P. Disclaimer: non so per cosa vogliate usarlo, ma attenzione a non usarlo in modo illegale, ovvero per infrangere il diritto d’autore e cose simili.  Io vi ho avvisati.

SopCast è multipiattaforma, quindi comprende anche Linux; le istruzioni presenti sul sito internet ufficiale, però, sono una gran rottura di scatole.

Innanzitutto, io consiglio di aggiungere i repo di Medibuntu per soddisfare eventuali requisiti di VLC, attraverso i seguenti comandi da dare nel terminale:

sudo wget http://www.medibuntu.org/sources.list.d/intrepid.list --output-document=/etc/apt/sources.list.d/medibuntu.list

Il seguente comando serve per l’autenticazione:

sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update

Adesso passiamo all’installazione di SopCast: andiamo su questo sito e scarichiamo i pacchetti che ci interessano (sono nella colonna di destra). Sono due e sono sp-auth_3.0.1 e sopcast-player_0.2.0. Attenzione a scegliere quello giusto per la nostra architettura (nella maggior parte dei casi è i386).

Una volta scaricati, basterà cliccarvi su due volte per installarli (prima sp-auth, poi sopcast-player).

Finito! Facile, no?

Per avviarlo, qui su Kubuntu, basta cercare fra le applicazioni Internet del menu K (la sua icona è una televisione con schermo azzurro con le antenne come quella de i Simpson).

Adesso dobbiamo dire a Firefox di aprire i link sop (quelli delle trasmissioni): nella barra degli indirizzi scriviamo

about:config

e clicchiamo (o premiamo il tasto) Invio. Quindi diciamo a Firefox che faremo attenzione, quindi clicchiamo con il tasto destro del mouse nella pagina. Selezioniamo Nuovo e poi Stringa. Come nome della stringa diamo:

network.protocol-handler.app.sop

E clicchiamo su Ok. Dopodiché come valore della stringa inseriamo:

/usr/bin/sopcast-player.py

Adesso basterà cliccare sul link sop nel nostro browser per vedere il nostro programma su SopCast.

Se non funziona, copiamo l’indirizzo sop, andiamo su SopCast, clicchiamo su File, poi su Apri e incolliamo il nostro indirizzo.

WICD è certamente fra le migliori alternative a [K]NetworkManager, ovvero il gestore delle connessioni via cavo o wireless predefinito per [K]ubuntu, l’indispensabile programma per connettersi alla rete via router.

Tuttavia, uno dei problemi che mi capita di affrontare ogni volta che installo Kubuntu su un computer è quello di installare WICD quando non abbiamo una connessione diretta a internet, in altre parole se il nostro pc, per un motivo o per un altro, non riesce a connettersi alla rete.

NetworkManager ha infatti grossi difetti: è difficile da configurare e poco intuitivo, soprattutto se usiamo IP statici. Questo ci lascia, nella maggior parte dei casi, senza connessione a internet. WICD, inoltre, rispetto a NetworkManager, risulta molto più facile da configurare e gestisce meglio sia gli IP statici che la cifratura WPA (il che ci rende molto più sicuri).

In questo articolo, quindi, vedremo come installare questo programma con e senza una connessione diretta ad internet.

Cominciamo dal caso (più interessante) in cui non abbiamo l’accesso alla rete. Abbiamo bisogno di farci “prestare” un pc connesso a internet.

Il sito ufficiale segnala che non ci sono dipendenze insoddisfatte per i sistemi GNOME (come Ubuntu, appunto), e dovrebbe quindi essere sufficiente scaricare WICD da questo indirizzo

Se invece usiamo Kubuntu (come il sottoscritto), invece, c’è bisogno di installare anche altri pacchetti dai quali WICD dipende. Questi pacchetti necessari (in ordine di installazione) sono:

  • libglade2-0
  • python-cairo
  • python-numeric
  • python-glade2
  • python-gtk2

Questi pacchetti .deb possono essere scaricati da questo sito. Non inserisco i link diretti non per pigrizia, quanto perché le versioni dei pacchetti diventano presto obsolete.

Una volta scaricati questi pacchetti e trasferiti sul nostro pc, essi possono essere facilmente installati facendo doppio click su di essi. L’ordine in cui vanno installati dovrebbe essere quello precedente, ma poiché vado a memoria non garantisco l’esattezza. In ogni caso, il sistema vi avviserà con una bella scritta rossa (e voi magari avviserete me dell’errore, così da correggere il tutorial).

Prima di installare WICD, però, sarà necessario rimuovere NetworkManager, con il seguente comando:

sudo apt-get remove network-manager

Una volta fatte tutte queste operazioni (sembra difficile, ma in realtà non lo è), troveremo WICD fra le applicazioni internet. In alternativa possiamo avviarlo premendo Alt+F2 e inserendo il comando:

wicd-client

Ubuntu caricherà WICD all’avvio in modo automatico. Se, invece, il nostro Kubuntu non fa lo stesso, basterà aprire il terminale e dare il seguente comando:

kdesu kate ~/.kde/Autostart/tray.py.desktop

Si aprirà Kate, il blocco note di Kubuntu. Inseriamo il seguente testo:

[Desktop Entry]
Comment=wicd tray
Comment[en_GB]=wicd tray
Encoding=UTF-8
Exec=wicd-client
GenericName=wicd tray
GenericName[en_GB]=wicd tray
Icon=exec
MimeType=
Name=wicd tray
Name[en_GB]=wicd tray
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=

Salviamo e chiudiamo.

Concludiamo con il caso meno interessante in cui il pc è connesso a internet. Bisogna innanzitutto aggiungere una riga ai repository. Apriamo il terminale e diamo il comando (se usate Ubuntu sostituite ‘kate’ con ‘gedit’):

sudo kate /etc/apt/source.list

Si aprirà il nostro blocco note. Aggiungiamo in fondo alla lista la seguente riga:

deb http://apt.wicd.net intrepid extras

Salviamo e chiudiamo. Poi, sempre nel terminale, diamo i comandi:

sudo apt-get update

sudo apt-get install wicd

E il gioco è fatto!

Aggiornamento: WhiteWizard mi segnala che è necessario compiere anche queste operazioni per avviare il firewall all’avvio del sistema. Io non ricordo di aver fatto operazioni del genere, ma può esservi d’aiuto nel caso non sia così.

I sistemi GNU/Linux sono storicamente più sicuri di altri sistemi operativi, primo fra tutti Microsoft Windows, tanto che in molti utenti non sentono di avere necessità di dotarsi di firewall e antivirus. Se però vogliamo aggiungere un ulteriore livello di sicurezza, possiamo creare un firewall utilizzando un agile script che creerà una barriera impenetrabile a qualunque intruso. Potrà sembrare strano, ma per crearlo ci basta un semplice file di testo. Apriamo dunque Gedit o Kate o un qualunque altro blocco note. Se arrivate fino in fondo, ci sarà un regalo per voi.

Innanzitutto inseriamo la riga:

#!/bin/bash

Serve a segnalare che quel file è un programmino, dopodiché inseriamo:

IPTABLES=”/sbin/iptables”
IFLO=”lo”
IFEXT=”ppp0″

In questo modo definiamo alcune variabili che lo script utilizzerà. Modificando queste righe, infatti, potremo modificare la configurazione del nostro firewall con una sola sostituzione e non molte di più. La riga più interessante (e che dobbiamo modificare subito) è la riga IFEXT=”ppp0″. Al posto di ppp0 dobbiamo inserire l’interfaccia che stiamo utilizzando. Lo troviamo dando nel terminale il comando

ifconfig

Le più comuni sono le seguenti:

  • ppp0: per connessioni ADSL e via pccard e cellulare;
  • eth0 o eth1: per connessioni Ethernet (via cavo o wireless);
  • wlan0: per connessioni wireless.

Quindi inseriamo:

case “$1” in
start)

echo -n “Sto attivando il firewall: “

Niente di particolare, lo vedremo poi. Adesso inseriamo:

modprobe ip_tables
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_LOG
modprobe ipt_MARK
modprobe ipt_MASQUERADE
modprobe ipt_REDIRECT
modprobe ipt_REJECT
modprobe ipt_TOS
modprobe ipt_limit
modprobe ipt_mac
modprobe ipt_mark
modprobe ipt_multiport
modprobe ipt_state
modprobe ipt_tos
modprobe iptable_mangle

Queste righe caricano alcuni moduli del kernel necessari (il primo, in particolare, è proprio ip_tables). Continuiamo:

$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X
$IPTABLES -X -t nat
$IPTABLES -X -t mangle

Questi comandi resettano le impostazioni. Adesso comincia il divertimento:

$IPTABLES -P INPUT   DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT  ACCEPT

Queste sono le prime regole vere e proprie del nostro firewall. La prima riga blocca il traffico in entrata, la seconda blocca il traffico in transito, la terza permette il traffico in uscita. Se provassimo a utilizzare un firewall siffatto, non potremmo utilizzare internet. Sicurezza estrema, insomma, ma non credo che serva a qualcuno. Creiamo quindi delle eccezioni:

$IPTABLES -A INPUT  -i $IFLO -j ACCEPT
$IPTABLES -A OUTPUT -o $IFLO -j ACCEPT

Queste righe abilitano il traffico interno (credo che nessuno abbia paura di ciò che facciamo noi stessi, sempre che sappiamo cosa stiamo facendo).

$IPTABLES -A INPUT -p  tcp -i $IFEXT -m state -s 0/0 –state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p icmp -i $IFEXT -m state -s 0/0 –state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p  udp -i $IFEXT -m state -s 0/0 –state ESTABLISHED,RELATED -j ACCEPT

Questa riga è un po’ più complicata: serve a stabilire che i pacchetti di risposta a una nostra richiesta possono entrare nel nostro pc. In altre parole, permettiamo l’entrata solo ai pacchetti che abbiamo invitato. Ci serve, in particolare, per utilizzare internet.

Adesso dobbiamo decidere quali programmi lasciar passare. Farò un esempio generale, poi sarete voi a decidere. Per utilizzare un programma che si immette sulla rete dobbiamo aprirgli una porta, in modo che possa entrare e uscire. Ogni porta ha un numero che la identifica, ed è quella che ci servirà per impostare il firewall. Nel nostro esempio, utilizzerò la porta 1234:

$IPTABLES -A INPUT -p tcp –dport 1234 -j ACCEPT
$IPTABLES -A INPUT -p udp –dport 1234 -j ACCEPT

Queste righe permettono il traffico attraverso la porta 1234 (una porta a caso). Se uno dei programmi che utilizzate passa per la porta 1234, questa è la stringa che dovete inserire. Se un altro programma utilizza un’altra porta non dovete far altro che inserire altre righe, facendo attenzione a sostituire 1234 con il numero della porta che vi serve. Una lista abbastanza completa delle porte utilizzate la trovate qui. Qualche esempio che mi è stato richiesto:

  • per MSN: 1863 (tcp);
  • per eMule: 4662 (tcp), 4672 (udp);
  • per SAMBA: 137 (udp), 138 (udp), 139 (tcp), 445 (tcp);
  • per ChatZilla (forse più in generale per IRC): 113, 6667 (entrambi tcp);

Notiamo che dobbiamo sostituire tcp e udp a seconda di quello che ci serve. Inseriamo quindi:

echo “ok”
;;

Serve semplicemente a dire che il caricamento del firewall è andato a buon fine (attenzione ai due punto e virgola, perché servono a dire allo script di fermarsi in quel punto – in altre parole, quando vedete ‘start’, molte righe più in alto, inizia un comando che termina ai due punto e virgola, e senza di essi lo script va avanti e rischia di sbagliare qualcosa). Continuiamo:

stop)

echo -n “Sto disattivando il firewall: ”

$IPTABLES -X -t mangle

$IPTABLES -P INPUT   ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT  ACCEPT

$IPTABLES -F
$IPTABLES -F -t nat
$IPTABLES -F -t mangle
$IPTABLES -X
$IPTABLES -X -t nat
echo “ok”
;;

Serve a disabilitare il firewall e abilitare tutto il traffico da qualunque parte.

status)
echo -n “Al momento sono in uso le seguenti regole: ”
$IPTABLES -L
;;

Mostra quali regole del firewall sono abilitate.

restart|reload)
$0 stop
$0 start
;;

Fa ripartire il firewall: utile quando mutiamo le impostazioni del firewall e vogliamo che siano attive.

*)
echo “Per usare questo script, devi specificare un attributo: firewall {start|stop|restart|reload|status}” >&2
exit 1
;;

esac

exit 0

Serve a ricordarci che dobbiamo dare un attributo e chiude. Che vuol dire? Lo vedremo fra poco.

Salviamo il nostro file con il nome “firewall” nella cartella /etc/init.d/ , in modo che venga caricato all’avvio. Altrimenti possiamo lasciarlo da qualche altra parte e caricarlo manualmente dal terminale, nel seguente modo. Gli esempi seguenti assumeranno che il file sia in /etc/init.d/ .

Per attivare il firewall:

sudo /etc/init.d/firewall start

Per disattivare il firewall:

sudo /etc/init.d/firewall stop

Per disattivare e riattivare il firewall (utile se modifichiamo il firewall).

sudo /etc/init.d/firewall restart

Per vedere quali regole sono attive:

sudo /etc/init.d/firewall status

start, stop, restart (o reload, che è lo stesso) e status sono gli attributi di cui parlavo prima.

Potete provare il firewall e vedere se va tutto ok. Se qualcosa non dovesse funzionare, potete disattivarlo. Nel praticamente impossibile evento in cui il pc non dovesse avviarsi (chissà cosa ci avete messo in quello script!), non dovrete far altro che rimuovere il file: per farlo potete usare il comando

sudo rm /etc/init.d/firewall

oppure, se volete utilizzare l’interfaccia grafica, usando un cd live. Poi, magari, gentilmente, mi mandate il file del vostro firewall per vedere che cosa ci avete infilato dentro: adoro la mitologia.

Bene, se siete arrivati fin qui ho un regalo per voi: un file di testo pronto per l’uso. Non dovete fare altro che modificarlo secondo le vostre esigenze (e soprattutto secondo le istruzioni) e infilarlo nella cartella suddetta. Sembra niente, ma è un firewall molto potente. Ovviamente sono a disposizione per eventuali problemi (mi sento responsabile).

(A chi si stesse chiedendo: perché non hai inserito direttamente il file di esempio invece di spiegare tutto? Perché in questo modo sapete cosa state facendo quando modificate il vostro scriptino)