On Wed, Apr 07, 2010 at 10:27:54AM +0200, Matteo Sgalaberni wrote:
> Inserire una regola di firewall è una opzione ma non fa quello che
> voglio io in quanto non voglio un timeout ma voglio che il client o il
> server pensino che la connessione è su ma quando spediscono si trovano
> il socket con la connessione rotta sotto e devono decidere di fare
> qualcosa...
Beh, se fai mandare un reset invece che ignorare il pacchetto via
iptables, e' esattamente cosi'; senza contare che devi anche valutare
che potrebbe andare in timeout, quindi sono due opzioni da tenere buone
entrambe.
> Ho provato con ettercap che ha la funzione "kill connection" e cutter,
> ma niente, non la buttano giù (in realtà sembra che non mandino nemmeno
> niente sulla rete) Ho provato anche a riprodurre a mano un pacchetto
Direi un problema del tuo ettercap, normalmente funge (aka, almeno i
pacchetti in uscita dovresti vederli); stai usando interfacce
particolarmente strane?
> forgiato che manda un FIN/RST ma niente....
Devi seguire la connessione e mandare il numero di sequenza corretto per
il reset, non basta ip:porta.
> I test li ho fatti in loopback... ma anche in lan fa uguale...
Uhm, dovrebbe funzionare il loopback, ma ti consiglio, come base, di
vedere se riesci a mandare in plain ethernet, cosi' semplifichi il
tutto.
> Mi viene il dubbio che il kernel "protegga" lo stack TCP da questo tipo
> di storie...
Nope
> Idee e suggerimenti?
Prova con un altro terminatore di connessione; direi tcpkill di dsniff
dovrebbe fare al caso tuo, ma ce n'e' altri ancora.
IIRC dovresti anche avere la possibilita' di farlo "localmente" (btw, ma
kill -9 client dovrebbe anche essere molto appropriato, eh)
bye,
K.
|