On Sat, 6 Aug 2005, Minh Tran wrote:

I was looking around for the files of Kernel code where SYN messages are sent, so we can simply inject some code to send back a reset messages or ignore the SYN requests. I was looking at the function ioctl() which takes fd of the tcp socket. As i track the function down, there is also another call to the dev_ioclt() function where all parameters are passed down. However, i was not sucessful with finding out the description of this dev_ioclt() function. I am having a bit of trouble in finding out the way of injecting code in the kernel to deal with SYN packets. I am thinking of using ipfw to either reset or drop SYN packets.

Would anyone have some hints on the clean way of injecting some code to deal with SYN packets or could you give me some ideas on which files i should look at? I really appreciate that. I saw some promising files in src/sys/netinet but they are not all clear in my mind.

TCP packet input processing occurs in src/sys/netinet/tcp_input.c:tcp_input(). This is a very large function, so you will want to search for the following line, which precedes responsible for the processing of SYN packets that will form new connections:

        if (so->so_options & SO_ACCEPTCONN) {

FreeBSD makes use of a combined syncache/syncookie mechanism, so you're probably also interested in tcp_syncache.c.

Robert N M Watson
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to