Archivio per il 'Rete'Categoria

Testare i DNS

Dicembre 8, 2009

Con l’uscita di questo articolo dell’ottimo ossblog, che si merita il premio di blog del giorno, ho trovato finalmente una utility per testare i DNS: namebench presente anche su aur.

Ho constatato, con amara sorpresa, che i fooldns (tralasciando le altre feature) non sono poi così veloci ma almeno ho la soddisfazione di scrivere che gli opends sono quasi allo stesso livello.

Sono rimasto invece basito dalle soluzioni che proposte dopo i benchmark:

Recommended configuration (fastest + nearest):
———————————————-
nameserver 151.99.125.2 # Interbusiness IT
nameserver 212.31.224.3 # COLT IT-2
nameserver 62.196.2.70 # Infracom Network Application IT

********************************************************************************
In this test, Interbusiness IT is 96.5% faster than your current primary DNS server
********************************************************************************

Forse ora è meglio che consideri seriamente di reinstallare privoxy + adblock plus per firefox, cambiare dns abbandonando i fooldns…

Più terminali e più log in ssh

Dicembre 5, 2009

Caso d’uso

Ci logghiamo da remoto al nostro server OpenSSH poi, a un certo punto, mentre stiamo lavorando cade la connessione. Ci dobbiamo riloggare ma un’istanza della connessione rimane comunque aperta (controllate con ps ax). Oltretutto qualsiasi programma che avevamo lanciato dalla vecchia istanza continua a girare senza nessun controllo da parte nostra: lo killiamo o non lo killiamo e aspettiamo? Tipo se stavamo aggiornando con pacman…bella rogna vero?

Altro esempio. Siamo sul nostro terminale remoto e dobbiamo controllare più log in contemporanea ovvero osservarne due sulla stessa istanza di terminale aperta…come si fa?

Soluzione

Per il primo caso ci può affidare a screen. Anche se ci cade la connessione possiamo comunque agganciarci all’istanza di screen che abbiamo perso e ritrovarci il programma che avevamo lanciato continuare nel suo lavoro.

Per il secondo caso ci si può affidare a multitail. Apre più finestre nella stessa finestra di terminale e in ognuna un log scelto da noi. Consiglio: meglio usare multitail nelle tty cioé dando CTRL+ALT+F1, se non si fa così le combinazioni di tasti potrebbero venire intercettate da gnome-terminal, terminal ecc…

ssh: denyhosts

Novembre 22, 2009

Configuare OpenSSH a prova di bomba

Siamo talmente paranoici che abbiamo fatto, quasi, tutto quanto consigliato qua per rendere il nostro server con OpenSSH a prova di bomba. Per un uso casalingo io non ho impostato però nessun firewall (mi fido delle impostazioni che ho messo sul mio router netgear dg834g) cioè nessuna regola di iptables sul sistema dove è veramente installato OpenSSH server.

Fregare gli attacchi brute-force

L’unica cosa che mi scoccia sono questi essere infimi, e poco pericolosi, chiamati script-kiddies che tentano degli attacchi brute-force sulla porta 22. Non che sia una gran scocciatura ma i file di log, più precisamente i /var/log/auth.log, tendono a riempirsi paurosamente. Ho trovato una soluzione KISS usando un programma, scritto in Python, chiamato denyhosts. Il concetto è semplice: si guarda i file di log e se un determinato IP fallisce la connessione ssh lo blocca ficcandolo in /etc/hosts.deny.

Una precisazione su come funzionano /etc/hosts.allow e /etc/hosts.deny. Questi sono dei file che configurano il TCP Wrapper: una spiegazione esaustiva si trova negli Appunti di Informatica Libera di Daniele Giacomini. Riassumendo: se un IP è regolamentato da una regola in /etc/hosts.allow tutto fila liscio, se invece questo IP non è previsto in /etc/hosts.allow il sistema guarda /etc/hosts.deny. Quindi in /etc/hosts.allow, se vogliamo fare in modo che gli IP della nostra sottorete non vengano bloccati, mettiamo questa riga:

sshd: 192.168.0.0/255.255.255.248

Ovviamente questo è solo un esempio preso dalla mia configurazione. Se non sapete niente di reti e sottoreti non capirete una tega, forse potrebbe venirvi in aiuto il programma ipcalc:

Esempio ipcalc

ma anche Wikipedia…se non basta fatevi un corso universitario di Reti di Calcolatori o leggetevi un libro a riguardo o rompete i coglioni a un SysAdmin (non io: non lo sono!).
In /etc/hosts.deny non mettiamo nulla: se ne occuperà automaticamente denyhosts. Per esempio una riga che aggiunge denyhosts è la seguente (ovviamente l’IP bloccato è di fantasia):

# DenyHosts: Sat Nov 21 13:05:13 2009 | ALL: 123.123.123.123
ALL: 123.123.123.123

Figo no? Ora non ci resta che editare il file di configurazione di denyhosts che si trova, su Arch Linux, in /etc/denyhosts/denyhosts.cfg.

Configurazione di denyhosts.cfg

Prendo paro paro il mio file di configurazione con una spiegazione tutta mia. Le FAQ sul sito e i commenti su denyhosts.cfg sono molto esaustivi ma degli esempi in più non fanno mai male e non vi faranno sicuramente schifo (vero?). Comunque sia sto usando la versione 2.6 di denyhosts.

SECURE_LOG = /var/log/auth.log Ovviamente questo è il file che denyhosts parsa per andare a pescarsi gli IP da bannare.

HOSTS_DENY = /etc/hosts.deny In un sistema Linux è qui che ci sono le regole per il TCP Wrapper degli IP a cui è vietato l’ingresso nel sistema.

PURGE_DENY = 2d Ricordo che stiamo parlando di uso domestico, quindi abbiamo un indirizzo dinamico raggiungibile magari, con l’ausilio di dyndns come ho fatto io, con un URL www. Ma abbiamo sempre un indirizzo dinamico e ad ogni caduta di connessione (grazie Telecom) cambiamo spesso IP. Quindi gli script-kiddies non punteranno sempre a noi pensando che siamo sempre noi cambiando, magari, gli username e password. Insomma non siamo un bersaglio fisso! Quindi è inutile riempire /etc/hosts.deny di IP. Anche perché magari pure gli script-kiddies hanno IP dinamici come tutti i comuni mortali (a parte i compuer zombie ma si spera di no). Quindi è meglio ripulire /etc/hosts.deny abbastanza spesso. 2d infatti sta per 2 day: due giorni.

BLOCK_SERVICE = ALL Ok, abbiamo solo sshd attivo come servizio. Sarebbe più logico mettere BLOCK_SERVICE = sshd. De gustibus. Questo cambia ovviamente le occorrenze di /etc/hosts.deny che dal mio esempio precedente diventerebbero

# DenyHosts: Sat Nov 21 13:05:13 2009 | sshd: 123.123.123.123
sshd: 123.123.123.123

Denyhosts è molto configurabile, può controllare o tutti i servizi o solo quello che vogliamo noi.

DENY_THRESHOLD_INVALID = 2 Ogni due tentativi da parte di un username invalido (che non esiste sul sistema o che non è specificato in AllowUsers o AllowGroups in /etc/ssh/sshd_config) l’IP viene bannato. Metti che uno al posto di scrivere cicciobanza scrive cicciobnza…lo banniamo subito? Diamogli una seconda possibilità.

DENY_THRESHOLD_VALID = 3 Diamo invece tre tentativi a un user valido nel sistema, magari ha la giornata storta e sbaglia la password (che comunque, siamo stati bravi, è un’autenticazione chiave pubblica/privata).

DENY_THRESHOLD_ROOT = 1 Diciamo che se uno tenta subito root lo banniamo immediatamente..vero?

DENY_THRESHOLD_RESTRICTED = 1 Questa è una sboronata. Possiamo specificare degli username (in /var/lib/denyhosts/restricted-usernames) a cui possiamo dare tot tentativi. Io ho messo 1 perché ci metto i classici: mysql, test, user…i soliti username che non andrebbero mai usati…

WORK_DIR = /var/lib/denyhosts Si commenta da sola, io la lascio così di default e consiglio di fare altrettanto!

SUSPICIOUS_LOGIN_REPORT_ALLOWED_HOSTS=YES A dire la verità non ho ben capito. Sembra che denyhosts si faccia dei sospetti di attacco anche sugli hosts della nostra sottorete e ci avverta di questo. Ho lasciato YES ma approfondirò in seguito…

HOSTNAME_LOOKUP=NO A dire la verità non ho capito molto questo. Non ho capito cosa se ne faccia denyhosts del nome host dell’IP associato che blocca. Approfondirò anche questo…

LOCK_FILE = /var/run/denyhosts.pid Si commenta da solo, lasciamolo così com’è.

ADMIN_EMAIL = Lo lascio vuoto, non ho nessun Postfix o simili installato sul sistema che invii mail di avvertimento quindi…

AGE_RESET_VALID=1m Resetta i tentativi, dopo un minuto di inattività, di un utente valido. Del tipo, scannate password, aspettate un minuto: avete ancora 3 tentativi (riguardate DENY_THRESHOLD_VALID).

AGE_RESET_ROOT= Se uno tenta root non gli diamo altre possibilità.

AGE_RESET_RESTRICTED= Se uno tenta mysql non gli diamo altre possibilità.

AGE_RESET_INVALID= Se uno tenta un utente invalido non gli diamo altre possibilità.

DAEMON_LOG = /var/log/denyhosts Si commenta da solo. Comunque è meglio aggiungere /var/log/denyhosts in /etc/logrotate.d/syslog-ng in modo che logrotate faccia la rotazione anche dei log di denyhosts.

DAEMON_SLEEP = 1m Ogni minuto denhyhosts controlla i file di log. Ci saranno comunque dei tentativi, in un minuto, gli script kiddies provano circa 5-10 username al colpo.

DAEMON_PURGE = 1h Il periodo, quando denyhosts è daemonizzato, con il quale controlla le occorrenze di /etc/hosts.deny e le toglie (in base ovviamente a PURGE_DENY)

Queste sono configurazioni base e utili per un sistema casalingo. Più fico sarebbe sincronizzare /etc/hosts.deny anche con IP bannati da altri che usando denyhosts e che condividono le informazioni (tutto sempre configurando denyhosts.cfg) ma è troppo per noi. Io ho provato ma, come ho già detto, non siamo bersagli fissi.

Asus A8SC-4P107C, IrDA e Nokia 6070

Agosto 25, 2009

Quanto scritto in questo post è preso quasi nella sua totalità da questo. Quindi non ringraziate me ma DnaX (fra l’altro ho scoperto essere è un mio collega Ingegnere Informatico) anche perché quanto andrò a scrivere è solo la mia soluzione per il mio hardware e software (Arch Linux, Xfce 4.6, Linux 2.6.30.5) quindi non fatemi domande troppo difficili: non saprò rispondere!

Installazione del necessario
pacman -S irda-utils openobex obexftp
Ma questo è utile solamente se volete fare dei test come scritto nel post di Dnax.

Moduli del kernel
Aggiungere su /etc/rc.conf, nell’array MODULES, ircomm-tty

Usare Ircp-Tray
Ircp-Tray è un’applicazione che starà nel tray pronta a spedire al cellulare i nostri file. Questa applicazione è sviluppata e portata avanti sempre da DnaX ed è presente in AUR grazie al nostro archer psykopear. Per usare Ircp-Tray è necessario legare la porta utilizzata per l’IrDA allo stack del kernel e attivare l’auto-discovering. Quindi in /etc/rc.local inserire irattach /dev/ttyS1 -s & (l’& finale è solo per far eseguire questo comando in background, non fatevi seghe mentali non c’entra direttamente con l’IrDA). Una volta riavviato il portatile potete inviare i file al cellulare. Ircp-Tray dirà

Sembra che non ci sia un dispositivo qui vicino. Continuare?

ma continuate (date Ok): funzionerà lo stesso!

Usare Wammu
Wammu mi permette di scaricare i messaggi, la rubrica e inviare messaggi tramite il cellulare con una bellissima interfaccia grafica (Wammu è l’interfaccia grafica per Gammu). Forse fa anche di più ma devo ancora provare tutte le varie opzioni. L’unica pecca è che, purtroppo, non sono ancora riuscito a impostare Wammu per inviare file al cellulare quindi, finché non mi metto d’impegno e ci capisco qualcosa dell’IrDA su Linux, continuo ad usare Ircp-Tray per questa funzione. Per installare Wammu basta dare

pacman -S wammu

Fatto questo dobbiamo aggiungere il nostro utente al gruppo uucp, questo per me si traduce in

gpasswd -a ugaciaka uucp

Per le impostazioni vi lascio uno screenshotwammu

Conclusioni
Eccoci arrivati alla fine, spero vi sia d’aiuto questo post. Se scopro qualcos’altro modificherò l’articolo o se avete qualche suggerimento non esitate a scrivere un commento ;-)

Mi sto leggendo

Giugno 26, 2009

Linux Networking CookBook. Ho trovato il pdf della versione 2007 (ovviamente in Inglese). Mi ricorda più di un anno fa quando mi studiavo sui pdf C# per il tirocinio. Cuffie, qualche discografia, leggere, pausa-cazzi-miei-navigazione-internet, leggere ecc ecc… Solo che questa volta non mi incazzo se qualcuno non mi spiega niente.

Anche se utilizzo linux, sopratutto per scopi desktop, da più di due anni e ho frequentanto il corso di Reti di Calcolatori, due volte con due prof. e tutor locali diversi, leggendo questo libro mi sento molto ignorante. Almeno: ho capito la differenza fra Gateway e Router e fra cavo incrociato e non, ho scoperto l’esistenza di minicom e via discorrendo. Chissà se un giorno avrò occasione di mettere in pratica queste nozioni che intanto sto immagazziando nel cervello.

Ah, ho trovato anche la versione 2008 in pdf, sempre in inglese, di Linux Bible (Linux Grande Guida per il Professionista).

Oggi sono andato

Giugno 13, 2009

alla Fiera dell’Elettronica delle mie parti, molto piccola rispetto a quelle di Pordenone e company ma non è questo il problema. Forse era meglio se non ci andavo anzi forse era meglio se mi compravo un pc di seconda mano da usare come mulo/server/mediacenter punto e basta. Mi sono preso:

  1. un libro, Linux e le reti di Roberto Butti. L’ho letto quasi tutto in due orette, a parte la condivisione con Windows e sistemi Apple. Fa un po’ schifo. Il target è per principianti ma molto confusionario, fa un elenco dei software e servizi del kernel che il pinguino mette a disposizione ma veramente non ci si capisce una tega di niente. Mentre il capitolo iniziale che in poche pagine spiega TCP/IP e soci in linea generale. Poi sputa qua e là qualche file di configurazione e qualche elenco dei parametri copiati paro paro dai vari man. Per non parlare dell’inutilità: dei vari screenshot di Nautilus che mostra il contenuto di qualche directory, di spiegare in una facciata la compilazione classica del kernel linux per abilitare alcuni parametri del TCP…molto utile per un principiante sopratutto scritto così da culo. Fa proprio schifo era meglio se risparmiavo questi 12 euro.
  2. una memoria PC5300 Kingston, da 1GB, per aggiungerla al mio portatile. Ma che da bravo cretino devo aver fritto perché l’ho inserita dimenticandomi la batteria attaccata! Altri 14 euro bruciati…
  3. un pacco di cd-r, 50 pezzi, della verbatim che con tutti i vari smanettamenti che faccio tornano sempre utili oltre al fatto che la mia 500, vecchio modello, ha un’autoradio con soli cd senza mp3 (ma è una cosa che non ho ancora capito se riesce a leggerli o no perché sul display si vede una etichetta mp3 ma dato che non ho il manuale e non so neanche precisamente da dove salti fuori va bene lo stesso). 10 euro…
  4. un borsellino perché quello dell’invicta che mi sono comprato un anno fa non ha una cazzo di cerniera che qualsiasi ministro dell’economia può infilarci la mano e fregarsi i vari fazzoletti e ombrelli che ci metto dentro (il portafoglio lo metto sempre sulla tasca davanti dei jeans così sento subito se uno tocca vicino al cazzo…). 5 euro
  5. biglietto d’entrata 5 euro. Dovevano essere 7 ma all’entrata uno ci ha dato uno sconto per avere il biglietto ridotto ma non ho capito perché.
  6. senza contare che ho dovuto fare benzina a sto cesso di macchina, ho incrociato un casino di ciclisti merdosi che si fanno sempre la statale e stanno sempre in mezzo alla semicarreggiata come se la strada fosse loro. Però come mia abitudine consolidata quest’anno ne ho già imprecati parecchi di stare in parte…

Ma non potevo stare a casa?

Firefox in Italiano

Maggio 13, 2009

Mettete la vostra distro preferita, tac installate Firefox: porco mondo è tutto Inglese.

Soluzione:

  • per avere Firefox in Italiano (cioé leggere i menù e le configurazioni grafiche nella nostra lingua) basta, di norma, installare un pacchetto a parte: firefox-i18n;
  • ma come? visito un sito multilingue e mi si mostra la versione inglese? No problem: about:config sulla barra degli indirizzi e modificare il valore di general.useragent.locale in it (funziona, non so come mai non serva it_IT…boh). Infine su Modifica, Preferenze, Contenuti, Scegli e da qui selezionare la nosta lingua;
  • per avere invece il controllo ortografico basta aggiungere il dizionario Italiano che non è altro che una estensione;
  • per la gestione dei motori di ricerca c’è un sito che ha una serie di estensioni per avere Wikpiedia in Italiano ecc ecc;

Infine ci sarebbe anche una estensione, Quick Locale Switcher, ma non mi ispira molta fiducia (devo avere una estensione in più appesantendo il browser?)

PS queste istruizioni vanno bene ovviamente anche per Iceweasel.

FoolDNS beta tester

Marzo 22, 2009

Eh sì, anche io sono un beta tester dei DNS forniti da FoolDNS.

Devo dire che, a livello pratico, ho disattivato l’add-on di firefox adblock plus e che rispetto agli OpenDNS si ha una velocità di query del 40% in più (non ho fatto statistiche evolute, ogni tanto provo manualmente con dig sul terminale).

Dato che FoolDNS blocca le pubblicità (e ci riesce nel 99% dei siti che visito) viene duramente criticato. Ma se io, consapevolmente, non voglio continuamente vedere dei cazzuttissimi banner pubblicitari, che non ho mai clickato in vita mia, cosa tange all’economia globale? Cosa cambia rispetto a prima? Cosa cambia rispetto a quando usavo l’estensione adblock plus?

Allora immagino che a questi personaggi, a cui piace tanto vedersi dei cazzi di banner che ti invitano su qualche sito dato che è il 99999999 accesso effettuato, non gli scazzino nemmeno quelle merdose telefonate di pubblicità che arrivano, dai call-center, sul telefono di casa alle 7 di sera proponendo una vantaggiosa offerta riguardo “qualcosa”. Oppure quelle cazzo di pubblicità in televisione delle cartomanti sulle reti private o quelle dei pannolini pieni di pupù trasmesse durante il pranzo.

PS riguardo alle telefonate rompi-cazzo-della-sera, se voglio cambiare gestore telefonico lo decido quando voglio io. Se il gestore dell’enel vuole cambiarmi un tariffario e farmi quello più conveniente per me la cosa puzza, cosa gli viene in tasca all’enel che la mia bolletta sia più leggera se sono già cliente della loro azienda?

Firefox, ottimizzare i DB di sqlite con VACUUM

Marzo 12, 2009

Avevo già elencato qui una serie di hack per velocizzare la navigazione Internet. Mi sono finalmente studiato il piccolo trucchetto per ottimizzare i DB sqlite di Firefox con VACUUM.

Dato che questo hack deve ripetersi nel tempo (l’unica manutenzione su DB sqlite, in generale, è questa se ho ben capito) ho scritto questo script. Non contento di questo mi sono messo nelle mani di cron quindi, da utente, lanciato crontab -e ed inserito questa stringa

00 19 * * 1 zsh /home/ugaciaka/.sqlite_vacuum.zsh

che fa partire lo script ogni Lunedì della settimana alle 19.00 in punto.

Velocizzare navigazione Internet

Gennaio 22, 2009

Qualcuno potrebbe obiettare che l’ennesimo articolo di un blog per velocizzare la navigazione Internet è troppo. Forse quel qualcuno avrebbe anche ragione ma chi se ne frega.

Quello che andrò a scrivere non sarà una guida ma una serie di link autoreferenziali, a wiki, ad articoli di altri blog. Il tutto testato su una rete WiFi tra il mio PC e il router, ovviamente dovrete avere una conoscenza abbastanza creativa di GNU/Linux, reti, Internet e via dicendo, se non avete questa capacità meglio che vi affidiate prima a Wikipedia.

  • iniziamo con questo post, riassume più o meno quello che bisognerebbe fare per una rete casalinga: disabilitare l’IPv6 (altro metodo) sia per la macchina e per Firefox (per me è l’unico browser ora), impostare dei DNS invece di lasciarli caricare automaticamente dal provider
  • a seguire questo mio articolo in cui cerco di svelocizzare Firefox il più possibile impostando la Cache in RAM, diminuendo il tempo di carica di una pagina
  • questo hackeraggio dei DB di Firefox, infatti come ha notato pierluigi quando avviamo Firefox è lentissimo, così in teoria si dovrebbe migliorare
  • ultima ma non meno importante, usare il caching tramite bind (oppure pdnsd o dnsmasq). Perché richiedere sempre ai DNS l’indirizzo IP di un sito quando lo abbiamo già visitato una prima volta? Appunto. Questa cosa l’ho scoperta grazie a Berseker in questa discussione dove cerco, tuttora, DNS alternativi oltre OpenDNS che di open hanno poco. EDIT: da un po’ di tempo uso i DNS forniti da fooldns, mi trovo molto bene (vi consiglio di andare a visitare il sito per saperne di più)