27/11/2011
IP pubblico blacklistato da out.virgilio.it
Da un po' di tempo a questa parte mi capita di non ricevere le notifiche via mail da qualcuno dei miei server. Purtroppo ciò accade saltuariamente ed in modo pseudorandom, quindi per mettere bene a fuoco la problematica ho dovuto effettuare un'attenta analisi degli eventi.
Ma andiamo con ordine. Ieri, dopo aver aperto il mio client di posta elettronica, mi sono accorto che mancavano TUTTE le email di notifica del mio server casalingo (qualche giorno prima mi era successo la stessa cosa con il server di un amico commercialista). Accedo quindi alla shell via SSH e lancio il comando:
nightfly@nightbox:~$ cat /var/log/exim4/mainlog | grep mioindirizzoemail
Una delle entry riportava le seguenti informazioni:
** *@nightbox.it R=hub_user_smarthost T=remote_smtp_smarthost: SMTP error from remote mail server after MAIL FROM:<> SIZE=2430: host rm.virgilio.it [62.211.72.20]: 550 mail not accepted from blacklisted IP address [188.11.59.93]
Uhm, il mio IP pubblico, ovvero 188.11.59.93 è stato blacklistato dall'SMTP di virgilio... ma per quale motivo?
Mi collego dunque al sito www.senderbase.org e digito il mio indirizzo IP pubblico. Come risultato mi becco una bella schermata in cui c'è scritto che l'IP da me digitato è classificato come poor ed è stato inserito nella pbl di spamhaus.org. Bene, ma cosa diavolo è questa pbl? Cito testualmente:
The Spamhaus PBL is a DNSBL database of end-user IP address ranges which should not be delivering unauthenticated SMTP email to any Internet mail server except those provided for specifically by an ISP for that customer's use. The PBL helps networks enforce their Acceptable Use Policy for dynamic and non-MTA customer IP ranges.
Ok, quindi il problema è dovuto al fatto che ho inviato le email al mio MTA (out.virgilio.it) senza essermi prima autenticato. Inoltre, il controllo viene effettuato solo sugli IP pubblici che iniziano con 188.*, ovvero gli ultimi (in ordine di tempo) messi a disposizione per gli utenti di Aliceadsl.
Ne è la riprova il fatto che gli altri server che utilizzano un IP pubblico diverso da 188.* non vengono blacklistati, nonostante continuino a non usare l'autentica per connettersi all'SMTP di virgilio.
Per completezza, queste sono le blacklist su cui si basa l'SMTP citato in precedenza:
http://www.spamhaus.org
http://ipremoval.sms.symantec.com
http://cbl.abuseat.org
http://psbl.surriel.com
Ma come fare per risolvere il problema? Semplice, basta fare in modo che venga utilizzata l'autentica in fase di invio dei messaggi email (soluzione definitiva), oppure cambiare indirizzo IP pubblico, sperando che non ce ne venga assegnato nuovamente uno del blocco 188.* (soluzione temporanea).
A presto.
Aggiornamento
A quanto pare il controllo sull'autenticazione SMTP è stato esteso anche ad altri netblock, ad esempio il 79.*. Dunque vi consiglio di settare l'autentica per lo smarthost (se utilizzate exim4 come mail server locale, potete trovare informazioni utili in questo post).
11:55
Scritto da: nazarenolatella
in Networking | Link permanente | Commenti (0)
|
Segnala
| Tag: blacklist, spam, mta, virgilio, ip pubblico, notifiche, email, smtp | OKNOtizie |
Facebook
24/11/2011
Smarthost authentication con exim4
In questo post ho discusso i meccanismi che regolano il funzionamento delle blacklist sull'SMTP out.virgilio.it
Ora vedremo come abilitare l'autentica per lo smarthost (ovvero l'MTA) utilizzato da exim4.
La procedura è quasi banale, basta modificare il contenuto del file passwd.client presente nella directory /etc/exim4, inserendo una stringa così formata:
smarthost:username@dominio:password
Ad esempio, se il nostro exim4 utilizza come smarthost out.virgilio.it, dovremo editare il file citato in precedenza, aggiungendo la seguente entry:
out.virgilio.it:vostroindirizzo@virgilio.it:vostrapassword
Per verificare la correttezza di tale procedura ho effettuato uno sniffing dei pacchetti da e verso lo smarthost. Ecco i dump (parziali):
Senza autentica
No. Time Source Destination Protocol Info
1 0.000000 172.16.*.* 212.48.20.24 TCP 58336 > smtp [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=164278477 TSER=0 WS=6
No. Time Source Destination Protocol Info
2 0.049538 212.48.20.24 172.16.*.* TCP smtp > 58336 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1380 TSV=262597959 TSER=164278477 WS=7
No. Time Source Destination Protocol Info
3 0.049655 172.16.*.* 212.48.20.24 TCP 58336 > smtp [ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=164278490 TSER=262597959
No. Time Source Destination Protocol Info
4 0.097831 212.48.20.24 172.16.*.* SMTP S: 220 fep-mail-smtpout-l2c.virgilio.net ESMTP Service ready
No. Time Source Destination Protocol Info
5 0.097934 172.16.*.* 212.48.20.24 TCP 58336 > smtp [ACK] Seq=1 Ack=60 Win=5888 Len=0 TSV=164278502 TSER=262598009
No. Time Source Destination Protocol Info
6 0.098125 172.16.*.* 212.48.20.24 SMTP C: EHLO nightbox
No. Time Source Destination Protocol Info
7 0.145662 212.48.20.24 172.16.*.* TCP smtp > 58336 [ACK] Seq=60 Ack=16 Win=5888 Len=0 TSV=262598057 TSER=164278502
No. Time Source Destination Protocol Info
8 0.146254 212.48.20.24 172.16.*.* SMTP S: 250-fep-mail-smtpout-l2c.virgilio.net | 250-DSN | 250-8BITMIME | 250-PIPELINING | 250-HELP | 250-AUTH=LOGIN | 250-AUTH LOGIN CRAM-MD5 DIGEST-MD5 PLAIN | 250-DELIVERBY 300 | 250 SIZE 31457280
No. Time Source Destination Protocol Info
9 0.164391 172.16.*.* 212.48.20.24 SMTP C: MAIL FROM:<nightfly@nightfly.*.*> SIZE=1405 | RCPT TO:<nazareno.latella@*.*> | DATA
No. Time Source Destination Protocol Info
10 0.211331 212.48.20.24 172.16.*.* SMTP S: 250 MAIL FROM:<nightfly@nightfly.*.*> OK
No. Time Source Destination Protocol Info
11 0.211789 212.48.20.24 172.16.*.* SMTP S: 250 RCPT TO:<nazareno.latella@*.*> OK
No. Time Source Destination Protocol Info
12 0.212137 172.16.*.* 212.48.20.24 TCP 58336 > smtp [ACK] Seq=112 Ack=338 Win=6912 Len=0 TSV=164278531 TSER=262598123
No. Time Source Destination Protocol Info
13 0.436690 212.48.20.24 172.16.*.* SMTP S: 354 Start mail input; end with <CRLF>.<CRLF>
No. Time Source Destination Protocol Info
14 0.437121 172.16.*.* 212.48.20.24 IMF subject: prova, from: * <*@nightfly.*.*>rn,
No. Time Source Destination Protocol Info
15 0.511319 212.48.20.24 172.16.*.* SMTP S: 250 <4EC124BD001803F0> Mail accepted
No. Time Source Destination Protocol Info
16 0.548011 172.16.*.* 212.48.20.24 TCP 58336 > smtp [ACK] Seq=497 Ack=422 Win=6912 Len=0 TSV=164278615 TSER=262598423
No. Time Source Destination Protocol Info
17 0.582529 172.16.*.* 212.48.20.24 SMTP C: QUIT
No. Time Source Destination Protocol Info
18 0.582574 172.16.*.* 212.48.20.24 TCP 58336 > smtp [FIN, ACK] Seq=503 Ack=422 Win=6912 Len=0 TSV=164278623 TSER=262598423
No. Time Source Destination Protocol Info
19 0.629901 212.48.20.24 172.16.*.* SMTP S: 221 fep-mail-smtpout-l2c.virgilio.net QUIT
No. Time Source Destination Protocol Info
20 0.630006 172.16.*.* 212.48.20.24 TCP 58336 > smtp [RST] Seq=503 Win=0 Len=0
No. Time Source Destination Protocol Info
21 0.630223 212.48.20.24 172.16.*.* TCP smtp > 58336 [ACK] Seq=466 Ack=504 Win=5114624 Len=0
No. Time Source Destination Protocol Info
22 0.630240 172.16.*.* 212.48.20.24 TCP 58336 > smtp [RST] Seq=504 Win=0 Len=0
Con autentica
No. Time Source Destination Protocol Info
1 0.000000 172.16.*.* 212.48.20.24 TCP 58305 > smtp [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=164205424 TSER=0 WS=6
No. Time Source Destination Protocol Info
2 0.050120 212.48.20.24 172.16.*.* TCP smtp > 58305 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1380 TSV=262305745 TSER=164205424 WS=7
No. Time Source Destination Protocol Info
3 0.050177 172.16.*.* 212.48.20.24 TCP 58305 > smtp [ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=164205437 TSER=262305745
No. Time Source Destination Protocol Info
4 0.115507 212.48.20.24 172.16.*.* SMTP S: 220 fep-mail-smtpout-l2c.virgilio.net ESMTP Service ready
No. Time Source Destination Protocol Info
5 0.115532 172.16.*.* 212.48.20.24 TCP 58305 > smtp [ACK] Seq=1 Ack=60 Win=5888 Len=0 TSV=164205453 TSER=262305811
No. Time Source Destination Protocol Info
6 0.115639 172.16.*.* 212.48.20.24 SMTP C: EHLO nightbox
No. Time Source Destination Protocol Info
7 0.162612 212.48.20.24 172.16.*.* TCP smtp > 58305 [ACK] Seq=60 Ack=16 Win=5888 Len=0 TSV=262305858 TSER=164205453
No. Time Source Destination Protocol Info
8 0.163306 212.48.20.24 172.16.*.* SMTP S: 250-fep-mail-smtpout-l2c.virgilio.net | 250-DSN | 250-8BITMIME | 250-PIPELINING | 250-HELP | 250-AUTH=LOGIN | 250-AUTH LOGIN CRAM-MD5 DIGEST-MD5 PLAIN | 250-DELIVERBY 300 | 250 SIZE 31457280
No. Time Source Destination Protocol Info
9 0.163651 172.16.*.* 212.48.20.24 SMTP C: AUTH CRAM-MD5
No. Time Source Destination Protocol Info
10 0.217604 212.48.20.24 172.16.*.* SMTP S: 334
(digest username)
No. Time Source Destination Protocol Info
11 0.217920 172.16.*.* 212.48.20.24 SMTP C:
(digest password)
No. Time Source Destination Protocol Info
12 0.303846 212.48.20.24 172.16.*.* TCP smtp > 58305 [ACK] Seq=338 Ack=117 Win=5888 Len=0 TSV=262306000 TSER=164205479
No. Time Source Destination Protocol Info
13 0.345052 212.48.20.24 172.16.*.* SMTP S: 235 CRAM-MD5 authentication successful
No. Time Source Destination Protocol Info
14 0.363227 172.16.*.* 212.48.20.24 SMTP C: MAIL FROM:<nightfly@nightfly.*.*> SIZE=1405 AUTH=nightfly@nightfly.*.* | RCPT TO:<nazareno.latella@*.*> | DATA
No. Time Source Destination Protocol Info
15 0.410026 212.48.20.24 172.16.*.* TCP smtp > 58305 [ACK] Seq=378 Ack=247 Win=6912 Len=0 TSV=262306106 TSER=164205515
No. Time Source Destination Protocol Info
16 0.410494 212.48.20.24 172.16.*.* SMTP S: 250 MAIL FROM:<nightfly@nightfly.*.*> OK
No. Time Source Destination Protocol Info
17 0.410923 212.48.20.24 172.16.*.* SMTP S: 250 RCPT TO:<nazareno.latella@*.*> OK
No. Time Source Destination Protocol Info
18 0.410978 172.16.*.* 212.48.20.24 TCP 58305 > smtp [ACK] Seq=247 Ack=472 Win=6912 Len=0 TSV=164205527 TSER=262306106
No. Time Source Destination Protocol Info
19 0.532271 212.48.20.24 172.16.*.* SMTP S: 354 Start mail input; end with <CRLF>.<CRLF>
No. Time Source Destination Protocol Info
20 0.532658 172.16.*.* 212.48.20.24 IMF subject: prova, from: * <*@nightfly.*.*>rn,
No. Time Source Destination Protocol Info
21 0.630124 212.48.20.24 172.16.*.* SMTP S: 250 <4EC124BD0017FEC2> Mail accepted
No. Time Source Destination Protocol Info
22 0.668193 172.16.*.* 212.48.20.24 TCP 58305 > smtp [ACK] Seq=632 Ack=556 Win=6912 Len=0 TSV=164205592 TSER=262306326
No. Time Source Destination Protocol Info
23 0.697248 172.16.*.* 212.48.20.24 SMTP C: QUIT
No. Time Source Destination Protocol Info
24 0.697297 172.16.*.* 212.48.20.24 TCP 58305 > smtp [FIN, ACK] Seq=638 Ack=556 Win=6912 Len=0 TSV=164205599 TSER=262306326
No. Time Source Destination Protocol Info
25 0.743766 212.48.20.24 172.16.*.* SMTP S: 221 fep-mail-smtpout-l2c.virgilio.net QUIT
No. Time Source Destination Protocol Info
26 0.743892 172.16.*.* 212.48.20.24 TCP 58305 > smtp [RST] Seq=638 Win=0 Len=0
No. Time Source Destination Protocol Info
27 0.744116 212.48.20.24 172.16.*.* TCP smtp > 58305 [ACK] Seq=600 Ack=639 Win=5081856 Len=0
No. Time Source Destination Protocol Info
28 0.744152 172.16.*.* 212.48.20.24 TCP 58305 > smtp [RST] Seq=639 Win=0 Len=0
Come potete notare, il metodo di autenticazione di default utilizzato dall'SMTP è CRAM-MD5.
Infine, riavviamo exim4 mediante il comando:
nightfly@nightbox:/etc/exim4$ sudo service exim4 restart
ed abbiamo finito.
A presto.
22:07
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: smarthost, mta, out.virgilio.it, exim4, smtp authentication | OKNOtizie |
Facebook
23/11/2011
autovodafone versione 0.2: URL-encoding completo e meccanismi di controllo
Come avevo già preannunciato in questo post, ecco la versione 0.2 dello script bash per l'invio di MMS gratis mediante Vodafone.it:
#!/bin/bash
#File di log
FILELOG=/var/log/autovodafone
ROOT_UID=0
#Controllo che lo script venga eseguito da root
if [ "$UID" -ne "$ROOT_UID" ];then
ERRORE1="Errore 1: Devi essere root per eseguire lo script"
echo $ERRORE1
echo "$(date) $ERRORE1" >> $FILELOG
exit 1
fi
data=$(date)
echo "Inserisci il destinatario:"
read destinatario
echo "Inserisci l'oggetto del messaggio:"
read oggetto
echo "Inserisci il testo del messaggio:"
read testo
echo "$testo" > text
cat text | sed -f urlencoding.sed > encoded
enc=$(cat encoded)
curl -c cookiev.txt -F "username=vostrousername" -F "password=vostrapassword" https://www.vodafone.it/190/trilogy/jsp/login.do 2&>1
curl -b cookiev.txt --data "recipient=$destinatario&subjecttosend=$oggetto&SmilName=&TextName=$enc&ImageName=&AudioName=&nextPage=/web/servletresult.html" http://mmsviaweb.net.vodafoneomnitel.it/WebComposer/web/elaborapop.jsp | grep -o -E '"s*(.*)>(.*)"' > out
sed -n '2p' out > out1
sed -e s/"//g out1 > out2
sed -e "s/ /+/g" out2 > out3
url="http://mmsviaweb.net.vodafoneomnitel.it"
url1=$(cat out3)
url2=$(echo "$url$url1")
curl -b cookiev.txt $url2 > result
if grep -q "SendMessage=1" result;then
echo "$data: messaggio inviato" >> $FILELOG
else
echo "$data: il messaggio non e' stato inviato" >> $FILELOG
fi
rm out
rm cookiev.txt
rm text
rm encoded
rm result
exit 0
Nella fattispecie, ho creato il file urlencoding.sed per la codifica del testo relativo all'MMS, il cui contenuto è il seguente:
s/%/%25/g
s/ /%20/g
s/ /%09/g
s/!/%21/g
s/"/%22/g
s/#/%23/g
s/$/%24/g
s/&/%26/g
s/'''/%27/g
s/(/%28/g
s/)/%29/g
s/*/%2a/g
s/+/%2b/g
s/,/%2c/g
s/-/%2d/g
s/./%2e/g
s///%2f/g
s/:/%3a/g
s/;/%3b/g
s//%3e/g
s/?/%3f/g
s/@/%40/g
s/[/%5b/g
s//%5c/g
s/]/%5d/g
s/^/%5e/g
s/_/%5f/g
s/`/%60/g
s/{/%7b/g
s/|/%7c/g
s/}/%7d/g
s/~/%7e/g
s/ /%09/g
Ho voluto avvalermi di sed per omogeneità, ciò non significa che tale operazione non sia fattibile attraverso linguaggi di scripting esterni (ad esempio perl).
Inoltre, mediante le seguenti righe di codice:
if grep -q "SendMessage=1" result;then
echo "$data: messaggio inviato" >> $FILELOG
else
echo "$data: il messaggio non e' stato inviato" >> $FILELOG
fi
ho previsto dei controlli (molto basilari) relativi all'esito dell'operazione di inoltro degli MMS, il cui risultato verrà salvato sul file di log (con data e ora).
Qualunque suggerimento per estendere e/o migliorare lo script rimane comunque il benvenuto.
A presto.
09:00
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: mms gratis, bash, script, scripting, vodafone, url-encoding, sed | OKNOtizie |
Facebook
22/11/2011
Reverse engineering sul servizio MMS via Web di Vodafone.it
Ormai da qualche tempo il servizio MMS via Web di Vodafone.it è stato sospeso. Ne è la riprova il fatto che sul sito non esiste più il link che ci consentiva di accedere all'interfaccia per l'invio degli MMS.
Nonostante ciò non mi sono dato per vinto ed ho iniziato ad esaminare il file VodafoneMMS.py di MoioSMS. Grazie a questa analisi ho individuato la URL che identifica l'interfaccia per l'invio degli MMS, ovvero:
http://mmsviaweb.net.vodafoneomnitel.it/WebComposer/web/mms.jsp
Inolte, per poter visualizzare tale pagina è necessario che prima vi logghiate sul sito della Vodafone, in modo da salvare in un cookie l'ID della sessione (JSESSIONID).
Per quanto mi riguarda, però, il problema non è stato risolto. Infatti utilizzavo tale servizio per monitorare alcuni server (gli alert mi arrivavano direttamente sul telefonino sottoforma di MMS). Il client che mi permetteva di inviare i messaggi da bash era MoioSMS (come avrete certamente intuito), progetto open source realizzato da Silvio Moioli e non più mantenuto. Fatto sta che da qualche settimana gli alert hanno cessato di arrivare sul mio telefono cellulare, indi per cui ho deciso di realizzare uno script che svolge le stesse funzioni del client menzionato in precedenza.
Ecco lo script:
#!/bin/bash
echo "Inserisci il destinatario:"
read destinatario
echo "Inserisci l'oggetto del messaggio:"
read oggetto
echo "Inserisci il testo del messaggio:"
read testo
echo "$testo" > text
sed -e "s/ /%20/g" text > encoded
enc=$(cat encoded)
curl -c cookiev.txt -F "username=vostrousername" -F "password=vostrapassword" https://www.vodafone.it/190/trilogy/jsp/login.do 2&>1
curl -b cookiev.txt --data "recipient=$destinatario&subjecttosend=$oggetto&SmilName=&TextName=$enc&ImageName=&AudioName=&nextPage=/web/servletresult.html" http://mmsviaweb.net.vodafoneomnitel.it/WebComposer/web/elaborapop.jsp | grep -o -E '"s*(.*)>(.*)"' > out
sed -n '2p' out > out1
sed -e s/"//g out1 > out2
sed -e "s/ /+/g" out2 > out3
url="http://mmsviaweb.net.vodafoneomnitel.it"
url1=$(cat out3)
url2=$(echo "$url$url1")
curl -b cookiev.txt $url2 2&>1
rm out*
rm cookiev.txt
rm text
rm encoded
exit 0
Come potete notare lo script prevede un minimo di interattività, ovvero richiede l'inserimento del numero del destinatario (munito di prefisso +39), l'oggetto del messaggio ed il testo.
Affinchè il messaggio possa essere inviato correttamente, è necessario che il testo venga sottoposto ad url-encoding. Inoltre, poichè trattasi di uno script versione alfa, ho previsto l'url-encoding solo per gli spazi. La riga di codice che svolge tale funzione è la seguente:
sed -e "s/ /%20/g" text > encoded
A questo punto, grazie a cURL ho proceduto con l'invio delle credenziali per il login sul sito della Vodafone:
curl -c cookiev.txt -F "username=vostrousername" -F "password=vostrapassword" https://www.vodafone.it/190/trilogy/jsp/login.do 2&>1
Una volta loggato (e salvate le info necessarie all'interno di un apposito cookie), ho inoltrato l'MMS vero e proprio:
curl -b cookiev.txt --data "recipient=$destinatario&subjecttosend=$oggetto&SmilName=&TextName=$enc&ImageName=&AudioName=&nextPage=/web/servletresult.html" http://mmsviaweb.net.vodafoneomnitel.it/WebComposer/web/elaborapop.jsp | grep -o -E '"s*(.*)>(.*)"' > out
E qui viene il bello. Infatti cURL non supporta javascript, quindi ogni qualvolta cercavo di inviare un MMS mi beccavo una pagina Web del tipo:
<html><head><title>302 Moved Temporarily</title></head>
<body bgcolor="#FFFFFF">
<p>This document you requested has moved temporarily.</p>
<p>It's now at <a href="/WebComposer/web/invia.jsp?SmilName=x1321909087221&recipient=345*******&subjecttosend=prova">/WebComposer/web/invia.jsp?SmilName=x1321909087221&recipient=345*******&subjecttosend=prova</a>.</p>
</body></html>
ovvero un fantastico redirect HTTP.
Bhè, alla fine non si è rivelato essere un ostacolo insormontabile, è bastato infatti dare in pasto la pagina precedente a grep, in modo da estrapolare il contenuto delle virgolette ("") mediante regex:
grep -o -E '"s*(.*)>(.*)"' > out
Il file out aveva il seguente contenuto:
"#FFFFFF"
"/WebComposer/web/invia.jsp?SmilName=x1321909004082&recipient= 39345*******&subjecttosend=prova"
Fortunatamente sed è venuto nuovamente in mio aiuto:
sed -n '2p' out > out1
sed -e s/"//g out1 > out2
sed -e "s/ /+/g" out2 > out3
Ovvero ho rispettivamente:
1) ricavato la seconda riga del file out, per poi inserirla in out1;
2) rimosso le virgolette;
3) sostituito l'unico spazio vuoto con il carattere + (per il prefisso internazionale).
A formattazione dei dati completata, ho eseguito l'invio definitivo dell'MMS:
curl -b cookiev.txt $url2 2&>1
dove $url2 non è altro che la concatenazione tra le variabili stringa $url ed $url1:
url="http://mmsviaweb.net.vodafoneomnitel.it"
url1=$(cat out3)
url2=$(echo "$url$url1")
Infine, ho rimosso tutti i file temporanei generati durante l'esecuzione dello script.
Per poter eseguire lo script dovete salvarlo in un file testuale, chiamandolo, ad esempio, autovodafone:
nightfly@nightbox:~$ sudo nano autovodafone
Rendete eseguibile il file appena creato:
nightfly@nightbox:~$ sudo chmod +x autovodafone
Generate un file di log (vuoto) nella directory /var/log:
nightfly@nightbox:/var/log$ sudo touch autovodafone.log
Ed avete finito.
Adesso abbiamo il nostro piccolo client bash per l'invio degli MMS Vodafone.
A presto.
PS: tempo permettendo estenderò lo script, realizzando l'URL-encoding di tutti i caratteri speciali e procedendo con l'implementazione di alcuni meccanismi di controllo per identificare l'esito dell'invio.
20:27
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: vodafone, mms, moiosms. bash. scripting, curl, javascript | OKNOtizie |
Facebook
20/11/2011
Eclipse Galileo ed il plugin Axis2 code generator
Stamattina ho provato ad installare il plugin Axis2 code generator 1.6.1 sul mio Eclipse Galileo. Peccato che ad installazione completata, accedendo al wizard di eclipse non era presente alcuna voce Axis 2. Cercando un po' sul Web ho trovato questo 3d:
http://stackoverflow.com/questions/8075585/not-able-to-se...
in cui si afferma che sia la versione 1.6.1 che la versione 1.4.* sono bacate e quindi funzionano male (o non funzionano del tutto).
Proprio per tale motivo ho scaricato la versione 1.7.0 del plugin in questione, direttamente da questo link:
https://builds.apache.org/job/Axis2/lastStableBuild/org.a...
Copiate il *.jar all'interno della directory dropin, riavviate eclipse e tutto funzionerà alla perfezione.
A presto.
PS: la 1.7.0 è una nightly release (versione di test), quindi se qualcosa non dovesse funzionare alla perfezione non preoccupatevi più di tanto.
12:40
Scritto da: nazarenolatella
in Programmazione | Link permanente | Commenti (0)
|
Segnala
| Tag: axis2, apache, jboss, dropin, axis2 code generator, jar, java, eclipse | OKNOtizie |
Facebook
11/11/2011
Backup di un sito Web mediante wget
Qualche giorno fa mi è capitato di dover effettuare il backup di un sito Web senza conoscere le credenziali FTP. Fortunatamente si trattava di un sito sprovvisto di codice lato server, quindi per me è stato piuttosto semplice salvarne una copia in locale.
Per fare tale operazione ho utilizzato il mitico wget, ed in particolare il comando:
nightfly@nightbox:~$ wget -r www.siteexample.it
Tutto il contenuto del sito è stato automaticamente salvato nella directory www.siteexample.it.
Devo ammettere però che ho avuto un po' di fortuna. Infatti, non tutti i server Web consentono liberamente il dump dei loro siti (il termine phishing vi dice qualcosa?). Proprio per impedire tale pratica, molto spesso viene implementato un meccanismo di protezione basato sul riconoscimento del client Web: nel caso in cui il server si accorgesse che è wget a richiedere le pagine del sito, risponderà picche.
Tale controllo risulta comunque facilmente aggirabile. Infatti wget consente lo spoofing del client, che può essere impostato manualmente digitando:
nightfly@nightbox:~$ wget -r -U "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" www.siteexample.it
Invece, nel caso in cui i controlli si basassero anche sui tempi che intercorrono tra la visualizzazione di una pagina e quella successiva, oppure sulla velocità di download delle stesse, basterà utilizzare correttamente le flag --wait e --limit-rate:
nightfly@nightbox:~$ wget --wait=30 --limit-rate=10K -r -U "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" www.siteexample.it
Ed il backup del sito è pronto.
A presto.
09:34
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: wget, web, dump, backup, client web, server web, ftp | OKNOtizie |
Facebook
09/11/2011
Script per il forward automatico della porta SSH sul router Cisco 837
La IOS C837-K9O3Y6-M sviluppata per il router Cisco 837 ha un bug, ovvero è possibile che dopo qualche reload si "dimentichi" di una o più PAT translations che riguardano porte più alte delle well-known (per intenderci, superiori alla 1023).
Nel mio caso, il problema ha iniziato a verificarsi da quando ho deciso di mettere in ascolto SSH su una porta non standard, in modo da risparmiarmi i tentativi di attacco lanciati dagli script kiddie di turno.
Inoltre, per motivi di sicurezza, ho consentito l'accesso via SSH al router solo dagli host della LAN, quindi, nel caso in cui dovessi accedere alla sua configurazione, atterro sul server e da lì mi collego al router.
Ovviamente, se la porta SSH non è forwardata non posso atterrare sul server, dunque l'unica soluzione praticabile consiste nell'andare fisicamente dal cliente e ricreare la regola per il PAT.
E qui viene il bello: poichè mi sono stancato di dover perdere almeno un'ora per andare dal cliente, riconfigurare il tutto e tornarmene a casa, ho deciso di creare il seguente script, il quale si collega al router tre volte al giorno e ricrea la regola per l'SSH.
Ecco lo script:
#!/usr/bin/expect
set password1 "<password1>"
set password2 "<password2>"
spawn ssh -l <username> <IP del router>
expect "*?assword:*"
send "$password1r"
expect ">"
send "enar"
expect "Password:"
send "$password2r"
expect "#"
send "conf tr"
expect "(config)#"
send "no ip nat inside source static tcp <ip> <porta> interface Dialer0 <porta>r"
expect "(config)#"
send "ip nat inside source static tcp <ip> <porta> interface Dialer0 <porta>r"
expect "(config)#"
send "exitr"
expect "#"
send "copy run startr"
expect "?"
send "r"
expect "#"
send "exitr"
expect eof
Come al solito, mancano i backslash prima della r perchè myblog li filtra.
Una volta che avete creato lo script, convertitelo in eseguibile lanciando il comando:
nightfly@nightbox:~$ sudo chmod +x ssh_autoforward
e salvatelo nella directory /usr/bin:
nightfly@nightbox:~$ sudo mv ssh_autoforward /usr/bin
A questo punto potete creare la regola per cron, in modo da schedulare l'esecuzione dello script alle 6, alle 12 ed alle 18:
nightfly@nightbox:~$ sudo nano /etc/crontab
00 06,12,18 * * * root ssh_autoforward
Riavviamo cron:
nightfly@nightbox:~$ sudo service cron restart
ed abbiamo finito.
A presto.
PS: non preoccupatevi se lo script entra in esecuzione mentre siete loggati sul server: la regola per il forward dell'SSH non verrà rimossa poichè la state già utilizzando, quindi niente perdita di connessione.
10:00
Scritto da: nazarenolatella
in Networking | Link permanente | Commenti (0)
|
Segnala
| Tag: bug, ios, cisco 837, cron, script, expect, c837-k9o3y6-m | OKNOtizie |
Facebook
08/11/2011
Abilitare SSH sul router Cisco 827v4
Come molti di voi già sapranno, telnet è un protocollo ormai obsoleto ed anche piuttosto insicuro, in quanto non cifra il flusso di dati. Proprio per questo motivo, ho deciso di abilitare SSH sul mio piccolo home router, dato che l'827 (a differenza del SOHO 77) lo supporta.
Logghiamoci sul router (via telnet o console), entriamo in modalità enable e successivamente digitiamo conf t:
NightRouter>ena
Password:
NightRouter#conf t
Enter configuration commands, one per line. End with CNTL/Z.
NightRouter(config)#
A questo punto, possiamo procedere con la definizione del dominio, digitando:
NightRouter(config)#ip domain name <nomedominio>
Il dominio è necessario per la creazione della coppia di chiavi RSA pubblica/privata che verranno utilizzate da SSH. Per generarle basta lanciare il comando:
NightRouter(config)#crypto key generate rsa
A procedura completata, possiamo settare i parametri relativi ad SSH, quali l'idle timeout ed il numero di tentativi di login errati consentiti:
NightRouter(config)#ip ssh time-out <secondi>
NightRouter(config)#ip ssh authentication-retries <numero tentativi>
I valori consentiti sono rispettivamente da 1 a 120 per l'idle e da 1 a 5 per i tentativi di login errati.
Definiamo adesso un utente locale, al quale verrà dato accesso al router via Secure SHell:
NightRouter(config)#username <username> password <password>
ed infine modifichiamo i perametri relativi alle vty, digitando quanto segue:
NightRouter(config)#line vty 0 4
NightRouter(config-line)#login local
NightRouter(config-line)#transport input ssh
Salviamo la configurazione con un copy run start:
NightRouter#copy run start
ed abbiamo finito.
A presto.
13:42
Scritto da: nazarenolatella
in Sicurezza | Link permanente | Commenti (0)
|
Segnala
| Tag: ssh, login local, username, password, telnet, cisco, soho 77, 827v4, vty | OKNOtizie |
Facebook
07/11/2011
Nomenclatura delle IOS Cisco
Per tutti coloro che fossero alle prese con l'upgrade di una qualche IOS e non sapessero come funziona la complicatissima nomenclatura utilizzata da Cisco, ecco un documento riassuntivo che vi tornerà sicuramente utile.
A presto.
10:03
Scritto da: nazarenolatella
in Networking | Link permanente | Commenti (0)
|
Segnala
| Tag: cisco, ios, nomenclatura, feature | OKNOtizie |
Facebook
03/11/2011
Cisco 827 is up and running
Finalmente, dopo tanto tribolare, il mio Cisco 827 ha iniziato a fare il suo sporco lavoro. Per rendere il tutto un po' più stabile e robusto, ho aggiunto un banco di RAM da 32 MB (in modo da non soffocarlo con le NAT translations) ed ho aggiornato la IOS, passando dalla c827v-y6-mz.121-1.XB (una EARLY DEPLOYMENT che non conosce nemmeno il significato di PPPoE) alla c820-k9osy6-mz.123-5.
Ecco lo sh ver:
NightRouter#sh ver
Cisco Internetwork Operating System Software
IOS (tm) C820 Software (C820-K9OSY6-M), Version 12.3(5), RELEASE SOFTWARE (fc1)
Copyright (c) 1986-2003 by cisco Systems, Inc.
Compiled Tue 28-Oct-03 10:31 by kellythw
Image text-base: 0x80013148, data-base: 0x80A9890C
ROM: System Bootstrap, Version 12.1(1r)XB1, RELEASE SOFTWARE (fc1)
NightRouter uptime is 20 minutes
System returned to ROM by power-on
System restarted at 18:03:31 UTC Thu Nov 3 2011
System image file is "flash:c820-k9osy6-mz.123-5.bin"
This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
Importers, exporters, distributors and users are responsible for
compliance with U.S. and local country laws. By using this product you
agree to comply with applicable laws and regulations. If you are unable
to comply with U.S. and local laws, return this product immediately.
A summary of U.S. laws governing Cisco cryptographic products may be found at:
http://www.cisco.com/wwl/export/crypto/tool/stqrg.html
If you require further assistance please contact us by sending email to
export@cisco.com.
CISCO C827 (MPC855T) processor (revision 0x501) with 31744K/1024K bytes of memory.
Processor board ID JAD04330G9Y (2953292797), with hardware revision 0000
CPU rev number 5
Bridging software.
1 Ethernet/IEEE 802.3 interface(s)
1 ATM network interface(s)
128K bytes of non-volatile configuration memory.
8192K bytes of processor board System flash (Read/Write)
2048K bytes of processor board Web flash (Read/Write)
Configuration register is 0x2102
Adesso il mio SOHO77 può andare meritatamente in pensione.
A presto.
18:29
Scritto da: nazarenolatella
in Networking | Link permanente | Commenti (0)
|
Segnala
| Tag: cisco, 800 series, 827, ram upgrade, ios, sh ver | OKNOtizie |
Facebook





















