На главную | Русская версия
Description:As I see, in RFC there is no accurate definition of the server answer after 227
message during passive mode connection establishing. The kernel module ip_conntrack_ftp search string,
which is used by most of ftp-servers: Original:void pasv(void) { unsigned char x[6]; startlistening(x); out_puts("227 ="); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[0])); out_puts(","); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[1])); out_puts(","); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[2])); out_puts(","); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[3])); out_puts(","); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[4])); out_puts(","); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[5])); out_puts("\r\n"); } After changing:void pasv(void) { unsigned char x[6]; startlistening(x); out_puts("227 Entering Passive Mode ("); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[0])); out_puts(","); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[1])); out_puts(","); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[2])); out_puts(","); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[3])); out_puts(","); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[4])); out_puts(","); out_put(strnum,fmt_ulong(strnum,(unsigned long) x[5])); out_puts(")\r\n"); } Download:The patch: publicfile-0.52.conntrack-ftp.patch (27.01.03). Was tested only on RH9, but as I see, in the last kernel (2.6.1) nothing was changed. If you have corrections -- write me to article <at> lithium.opennet.ruLinks:
| ||||
articles <at> lithium.opennet.ru | ||||