javaでTCPレベルのフィルタリングを行いたいのですが、
JNIを使用しないでも実現できまるのでしょうか?

具体的にはローカルマシンが送受信しているTCPデータを
プログラムとOSの間に入って読み取れればと思っています。