27/01/2012
Ntop ed HTTPS
Da un po' di tempo a questa parte ho deciso di rendere raggiungibili i miei server Web solo mediante il protocollo HTTPS. Una volta fatto ciò, ho riscontrato (con mio enorme dispiacere) che l'interfaccia Web di ntop (in ascolto sulla porta 3000 TCP) non era più utilizzabile.
Proprio per questo motivo (e per non cambiare la regola di forwarding sul mio router e sui miei 2 firewall), ho deciso di effettuare qualche modifica al demone in questione.
In particolare, ho fatto in modo che ntop rimanesse in ascolto sulla porta 3000, accettando però connessioni HTTPS.
Ecco la modifica nello specifico:
start-stop-daemon --start --quiet --name $NAME --exec $DAEMON --
-d -L -u $USER -w 0 -W 3000 -P $HOMEDIR
ovvero ho disabilitato l'ascolto su HTTP (-w 0) ed abilitato l'ascolto su HTTPS (-W 3000).
Il file da modificare è /etc/init.d/ntop.
A modifiche completate si può procedere con un riavvio del demone, digitando:
nightfly@nightbox:/etc/init.d$ sudo service ntop restart
ed abbiamo finito.
Enjoy.
16:48
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: ntop, network top, http, https, daemon, tcp 3000 | OKNOtizie |
Facebook
23/01/2012
Creare uno spazio FTP condiviso tra due utenti
Qualche giorno fa ho dovuto creare una directory FTP condivisa tra me ed un mio collega, da utilizzare come punto di riferimento per l'upload/download delle pagine Web che stiamo realizzando.
Ecco la procedura:
per prima cosa occorre creare un gruppo, denominato gruppoweb, in cui inserire il nostro nome utente e quello utilizzato dal nostro collega.
Nella fattispecie, il comando da lanciare è il seguente:
nightfly@nightbox:~$ sudo groupadd gruppoweb
Successivamente è necessario aprire in scrittura il file /etc/group aggiungendo la seguente entry:
gruppoweb:x:1006:vostroutente,utentecollega
Dopodichè si devono apportare delle piccole modifiche al file di configurazione del demone FTP attivo sulla nostra Linux box (assumendo che si tratti di vsftpd). Tali modifiche riguardano il parametro umask e l'aggiunta della direttiva file_open_mode (il cui valore di default è 0666):
file_open_mode=0777
local_umask=0002
Così facendo tutti i file caricati mediante FTP avranno come permessi di default 775.
A modifica completata riavviamo il demone vsftpd:
nightfly@nightbox:~$ sudo service vsftpd restart
Infine, occorre scaricare un piccolo applicativo in grado di lanciare un determinato comando al verificarsi di un evento (trigger) nella directory da esso monitorata. Tale software prende il nome di incrond:
nightfly@nightbox:~$ sudo apt-get install incrond
Ad installazione avvenuta si dovrà rimuovere il file /etc/incron.allow (poichè insicuro, dato che per default tutti gli utenti possono utilizzare incrond):
nightfly@nightbox:~$ sudo rm /etc/incron.allow
e successivamente tale file dovrà essere ricreato con privilegi di root:
nightfly@nightbox:~$ su root
Password:
root@nightbox:/home/nightfly# nano /etc/incrond
aggiungendo la direttiva:
root
A modifica completata soltanto root potrà utilizzare incrond.
Ora dobbiamo fare in modo che ad ogni modifica di una pagina preesistente oppure ad ogni upload di un nuovo file, venga lanciato il comando chown per definire il gruppo proprietario, ovvero gruppoweb.
Configuriamo dunque tale regola su incrond, lanciando il comando:
root@nightbox:/home/nightfly# incrontab -e
e successivamente modificando il file appena aperto nel seguente modo:
/var/www/dirshared/ IN_MODIFY,IN_CREATE chown :gruppoweb -R $@
dove la wildcard $@ rappresenta la directory monitorata (ovvero /var/www/dirshared).
Verifichiamo che la configurazione sia stata aggiornata digitando:
root@nightbox:/home/nightfly# incrontab -l
ed abbiamo finito.
A presto.
PS: sicuramente vi starete chiedendo perchè non ho creato un unico utente per accedere allo spazio FTP condiviso... bhè la risposta è semplice: perchè voglio controllare (e loggare) le operazioni effettuate da ciascun utente.
15:22
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: incrond, ftp, vsftpd, umask, default permissions, directory sharing | OKNOtizie |
Facebook
16/01/2012
Logwatch: analisi automatica dei log file di sistema
Ottenere dei report giornalieri che tengano conto degli "eventi" che hanno interessato i nostri server è certamente una comodità. Infatti, grazie ad essi, non è più necessario analizzare singolarmente i file di log relativi alle diverse applicazioni attive sulle nostre macchine, ma basta una rapida occhiata per accorgersi di eventuali anomalie.
Un'applicazione che riesce a generare una reportistica di questo tipo, a partire dai vari file di log, prende il nome di logwatch. In particolare, trattasi di un semplice script perl, la cui installazione è a dir poco banale e la cui configurazione è piuttosto immediata.
Per installarlo sulla nostra Linux box Debian basta digitare il comando:
nightfly@nightbox:~$ sudo apt-get install logwatch
Ad installazione completata possiamo dedicarci alla configurazione di questo comodo e potente applicativo.
Per fare ciò occorre editare il file /usr/share/logwatch/default.conf/logwatch.conf:
nightfly@nightbox:~$ sudo nano /usr/share/logwatch/default.conf/logwatch.conf
Il nostro intento è quello di ottenere dei report da inviare alla nostra mailbox, la cui formattazione dovrà essere realizzata mediante il linguaggio di markup HTML:
Output = mail
Format = html
MailTo = vostro.indirizzo@email.it
In questo modo, ogniqualvolta digiteremo il comando logwatch da CLI, tale software provvederà ad inviarci il report desiderato.
Per automatizzare tale procedura, è sufficiente posizionarsi nella directory /etc/cron.daily/ per poi modificare il file 00logwatch, il cui contenuto dovrà essere:
#!/bin/bash
#Check if removed-but-not-purged
test -x /usr/share/logwatch/scripts/logwatch.pl || exit 0
#execute
/usr/sbin/logwatch --mailto vostro.indirizzo@email.it
Salviamo il file appena modificato ed abbiamo finito.
Siamo ora pronti a ricevere dei report giornalieri relativi allo stato dei servizi attivi sui nostri server.
A presto.
12:01
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: logwatch, log, log analysis, report, cron | OKNOtizie |
Facebook
10/01/2012
Swatch: esecuzione di più istanze all'avvio del server
Affinchè possano essere eseguite più istanze di swatch all'avvio del server, in modo da tenere d'occhio file di log differenti, occorre utilizzare una sintassi di questo tipo (da inserire all'interno del file /etc/rc.local):
#Swatch
swatch -c /etc/swatch.conf -t /var/log/apache2/ssl_access.log &
swatch -c /etc/swatchftp.conf -t /var/log/vsftpd.log &
In particolare, la & posta alla fine di ciascun comando, permette di eseguire il processo in background, dando dunque la possibilità di lanciare più istanze contemporaneamente.
Alla prossima.
10:00
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| OKNOtizie |
Facebook
19/12/2011
Swatch: configurazione per il monitoraggio dei server Web
Di seguito riporto la configurazione del mio Swatch, in grado di tenere sotto controllo ciò che accade sul server Web (Apache) che attualmente ho in gestione:
ignore /nagios-plugins/
#HTTP Forbidden
watchfor /403/
echo
mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Access Forbidden
#HTTP Not Found
watchfor /404/
echo
mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Not Found
#HTTP Internal Server Error
watchfor /500/
echo
mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Internal Server Error
#HTTP OK
watchfor /200/
echo
mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: Hit OK
Poichè sul server è presente anche nagios che ogni tanto effettua dei check sull'HTTPS, ho dovuto utilizzare la entry ignore /nagios-plugins/, evitando così di ricevere un'email ad ogni controllo.
Inoltre, sul server Web è presente l'autentica .htaccess, quindi ho messo sotto monitoraggio anche le hit andate a buon fine, in modo da poter verificare quale utente ha effettuato l'accesso alle aree riservate. Ciò è stato possibile anche grazie al fatto che sul server non vi è una grande mole di richieste. In caso contrario avrei certamente evitato una configurazione del genere, pena il rischio di beccarmi un ban sullo smarthost.
Infine, non ho ritenuto opportuno controllare gli errori HTTP 401 (Unauthorized), in quanto tale funzione è svolta egregiamente da fail2ban.
A presto.
10:32
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: apache, swatch, simple watchdog, https, http, nagios, .htaccess, http 401, http 200 | OKNOtizie |
Facebook
18/12/2011
Swatch: un sistema di logging proattivo per ambienti Unix-like
Un sistemista degno di questo nome dedica diverse ore della sua attività lavorativa alla lettura dei log. Ovviamente, poichè tale operazione spesso viene svolta dopo un po' di tempo dalla generazione dei log stessi, è di fondamentale importanza utilizzare dei sistemi di logging proattivi, in grado cioè di "avvertire" l'amministratore del verificarsi di un qualche tipo di anomalia.
Di software del genere ne esistono a miolioni ma in questo post ho deciso di concentrarmi su swatch per via della sua facilità d'uso e della sua flessibilità.
Infatti, grazie a swatch sarà possibile monitorare i diversi file di log generati sui nostri server, alla ricerca delle entry di nostro interesse.
Per installarlo è sufficiente lanciare il comando:
nightfly@nightbox:~$ sudo apt-get install swatch
Ad installazione completata verrà creato un file di configurazione all'interno della nostra home dir, il cui nome sarà .swatchrc.
Personalmente credo che per ragioni di sicurezza swatch debba utlizzare un file di configurazione accessibile in lettura ma non in scrittura (ovvero che non possa essere modificato da utenti illegittimi), appartenente a root. Inoltre, consiglio di salvare il file in questione all'interno della directory /etc (per omogeneità).
Generiamo quindi il file di configurazione, il cui nome sarà swatch.conf:
nightfly@nightbox:~$ sudo nano /etc/swatch.conf
in cui inseriremo un'unica regola, poichè ci troviamo ancora in fase di test:
#HTTP Forbidden
watchfor /401/
echo
mail addressess=vostro.indirizzo@email.it,subject=Failed Authentication
Grazie a questa entry, swatch ci avviserà via email ogniqualvolta si accorgerà che qualcuno ha provato a visualizzare una sezione riservata del sito Web presente sul nostro server (protetta mediante .htaccess).
Per fare in modo che swatch invii un'email immediatamente dopo aver individuato un determinato evento, occorre modificare il file /usr/share/perl5/Swatch/Actions.pm sostituendo:
if (! $args{'MAILER'} ) {
foreach my $mailer (qw(/usr/lib/sendmail /usr/sbin/sendmail)) {
$args{'MAILER'} = $mailer if ( -x $mailer );
}
if ($args{'MAILER'} ne '') {
$args{'MAILER'} .= ' -oi -t -odq';
}
}
con
if (! $args{'MAILER'} ) {
foreach my $mailer (qw(/usr/lib/sendmail /usr/sbin/sendmail)) {
$args{'MAILER'} = $mailer if ( -x $mailer );
}
if ($args{'MAILER'} ne '') {
$args{'MAILER'} .= ' -oi -t -odb';
}
}
Nel caso in cui decideste di non effettuare la modifica indicata in precedenza, swatch invierà le email dopo un lasso di tempo prefissato.
In alternativa, potete utilizzare i comandi bash per inviare gli alert alla vostra casella email. Per fare ciò, dovete creare una configurazione del tipo:
watchfor /401/
exec echo 'SWATCH HOME: HTTP access forbidden: $_' | mail -iv -s "SWATCH HOME: Failed HTTP Authentication" vostro.indirizzo@email.it
Lanciamo quindi swatch con l'opzione -t (tail), ovvero in monitoraggio costante del file di log che andremo a specificare. Dovremo inoltre indicare qual è il file di configurazione a cui tale software dovrà riferirsi:
nightfly@nightbox:~$ swatch -c /etc/swatch.conf -t /var/log/apache2/ssl_access.log &
La & finale consente di lanciare il processo in background. Esiste anche l'opzione --daemon ma a quanto pare non accetta flag aggiuntive, quali -c o -t e monitorizza soltanto il file /var/log/messages.
Purtroppo swatch non consente di monitorare più file con un'unica istanza, quindi per fare ciò è necessario lanciare più istanze di tale programma, possibilmente utilizzando file di configurazione diversi a seconda del log che si intende tenere sotto osservazione.
Infine, è possibile mandare in esecuzione tale applicativo ad ogni avvio del nostro sistema operativo, semplicemente inserendo la seguente direttiva:
swatch -c /etc/swatch.conf -t /var/log/apache2/ssl_access.log
all'interno del file /etc/rc.local.
Fine del post, a presto.
12:33
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: swatch, logging, unix, perl, mail, alert | OKNOtizie |
Facebook
15/12/2011
autovodafone versione 0.3: esecuzione senza privilegi di root e riduzione del numero di file temporanei
Dopo le versioni 0.1 e 0.2 di autovodafone, ecco la versione 0.3 ulteriormente ottimizzata rispetto alle precedenti:
#!/bin/bash
#File di log
FILELOG=/var/log/autovodafone
data=$(date)
echo "Inserisci il destinatario:"
read destinatario
if [[ ! $destinatario =~ "+39" ]]; then
destinatario="+39$destinatario"
fi
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 -e s/"//g -e "s/ /+/g" -e "2p" out > out1
url="http://mmsviaweb.net.vodafoneomnitel.it"
url1=$(cat out1)
url2=$(echo "$url$url1")
curl -b cookiev.txt $url2 > result
if grep -q "SendMessage=1" result;then
echo "messaggio inviato"
echo "$data: messaggio inviato" >> $FILELOG
else
echo "il messaggio non e' stato inviato"
echo "$data: il messaggio non e' stato inviato" >> $FILELOG
fi
rm out*
rm cookiev.txt
rm text
rm encoded
rm result
exit 0
In particolare, mediante il comando:
sed -n -e s/"//g -e "s/ /+/g" -e "2p" out > out1
ho ridotto il numero di file temporanei, grazie all'utilizzo ottimizzato di sed (espressioni multiple).
Per poter eseguire lo script senza i privilegi di root, dovete prima identificare il proprietario dei seguenti file:
autovodafone
urlencoding.sed
/var/log/autovodafone
e nel caso in cui ce ne fosse bisogno, potete modificare il loro owner mediante il comando:
nightfly@nightbox:~$ sudo chwon vostrouser:vostrogruppo nomefile
A questo punto l'esecuzione dello script senza privilegi di root dovrebbe filare liscia.
Bye.
Aggiornamento
Il servizio Vodafone MMS gratis da Web non esiste più (ne è la riprova il timeout che ci becca ad ogni tentativo di contattare la URL http://mmsviaweb.net.vodafoneomnitel.it). Per maggiori informazioni potete consultare questo 3d.
20:52
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: mms gratis, vodafone mms, sed, root, chown, regex | OKNOtizie |
Facebook
12/12/2011
Script bash per l'aggiornamento delle blacklist utilizzate da squidGuard: versione 0.2
In questo post ho riportato l'esempio di uno script che si occupa dell'aggiornamento relativo alle blacklist utilizzate da squidGuard. Tale script è stato ulteriormente migliorato, in modo da riportare informazioni più dettagliate all'interno dell'email che vi verrà inviata dopo l'update.
Ecco il codice:
#!/bin/bash
logfile=/var/log/squidguardupdate.log
destinatario=vostro.indirizzo@email.it
ROOT_UID=0
if [ "$UID" -ne "$ROOT_UID" ];then
ERRORE1="Errore 1: Devi essere root per eseguire lo script"
echo $ERRORE1
echo "$(date) $ERRORE1" >> $logfile
exit 1
fi
wget http://squidguard.mesd.k12.or.us/blacklists.tgz
tar -xvf blacklists.tgz
cd blacklists/
cp -R * /var/lib/squidguard/db
cd /home/vostrousername/cartelladelloscript
squidGuard -d -C all &> result
chown proxy:proxy -R /var/lib/squidguard/db
squid -k reconfigure
sleep 5
ps aux | grep squidGuard >> result
if grep -q "squidGuard" result ;then
echo "Update Riuscito" >> result
else
echo "Update Non Riuscito" >> result
fi
rm blacklists.tgz
cat result | mail -iv -s "HOME: Le blacklist di squidGuard sono state aggiornate correttamente" $destinatario;
rm result
exit 0
Nella fattispecie, ho fatto in modo che successivamente all'aggiornamento delle blacklist venisse controllato lo stato di esecuzione di squidGuard, semplicemente lanciando un ps aux | grep squidGuard.
L'output di questo comando verrà inserito all'interno dell'email e se squidGuard è effettivamente presente tra i processi in esecuzione, sarà aggiunta la dicitura Update Riuscito.
Fatene buon uso.
A presto.
10:00
Scritto da: nazarenolatella
in SO: Linux | Link permanente | Commenti (0)
|
Segnala
| Tag: squid, squidguard, blacklists update, mail, report | 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























