Sponsored Content
Operating Systems Linux C, LKM, netfilter, PF_PACKET and ARP. Post 302494379 by Zykl0n-B on Monday 7th of February 2011 04:43:26 AM
Old 02-07-2011
Man! I didn't know about Linux Socket Filter, but it looks strange and difficult like hell:
Code:
struct sock_filter macfilter[] =
    {
        BPF_STMT(BPF_LD + BPF_W + BPF_ABS, 2),                      // A <- P[2:4]
        BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0xffffffff, 0, 2),  // if A != 0xffffffff GOTO LABEL
        BPF_STMT(BPF_LD + BPF_H + BPF_ABS, 0),                      // A <- P[0:2]
        BPF_JUMP(BPF_JMP + BPF_JEQ + BPF_K, 0x0000ffff, 2, 0), // if A == 0xffff GOTO ACCEPT
        // LABEL
        BPF_STMT(BPF_LD + BPF_B + BPF_ABS, 0),                      // A <- P[0:1]
        BPF_JUMP(BPF_JMP + BPF_JSET + BPF_K, 0x01, 0, 1),           // if !(A & 1) GOTO REJECT
        // ACCEPT
        BPF_STMT(BPF_RET, 1514),                                    // accept packet
        // REJECT
        BPF_STMT(BPF_RET, 0),                                       // reject packet
    };

I can't even imagine what does that piece of code. :S
But, with this LSF interface, can i "catch/intercept" the ARP message and deceide if DROP it or PASS to the host, BEFORE it takes effect on the host?

I thought it had to be a LKM to do so.

Btw, thank you, fpmurphy, Excellent reference links.!
Zykl0n-B
 

9 More Discussions You Might Find Interesting

1. Programming

Help in extending netfilter

Hi everybody, I have to write a module for matching in netfilter , extending the netfilter but I'm facing some problems can somebody guide me in that. I know that I need to write matching module working in kernel space and a program in userspace. I went through the HOWTO on netfilter-hacking but... (0 Replies)
Discussion started by: Trusted Penguin
0 Replies

2. Programming

Problem in registering new netfilter target module

Friends I'm facing a big problem trying to extend the netfilter. Somone please help me with your quick reply (any hint) as I've to meet a deadline. My problem is that I've written a new netfilter target module and its corresponding userspace program for iptables to change the packet type of a... (0 Replies)
Discussion started by: Rakesh Ranjan
0 Replies

3. Programming

extending netfilter...plz help

Hello friends i'm trying to extend iptables to include a target by which we can change the packet type field of a packet. For this i created a kernel module and a userspace extension. Now i face the problem that when i try to invoke iptable with the target i created i get an error message saying... (1 Reply)
Discussion started by: Rakesh Ranjan
1 Replies

4. IP Networking

netfilter connection tracking

hi, i'm using tcpreplay to send a traffic trace to my wireless interface (the trace is been captured by the same interface). It seems as netfilter can't trace connections. Is it possible? (0 Replies)
Discussion started by: littleboyblu
0 Replies

5. Cybersecurity

Netfilter conntracking for P2P protocols (edonkey, bittorent...)

Hi everyone, I would like to allow multi users to access P2P networks, so I wonder if there's a way to tracking these kind of protocols with netfilter, and also compatibility with nat, like the module conntrack_ftp seems to do with the FTP protocol. Thanks guys. (0 Replies)
Discussion started by: nekkro-kvlt
0 Replies

6. Linux

netfilter / iptables

HI, Is the Netfilter and IPtables same? Thanks & Regards Arun (1 Reply)
Discussion started by: Arun.Kakarla
1 Replies

7. UNIX for Advanced & Expert Users

problem with netfilter hook function struct skbuff *sock is null..

iam trying to built a firewall.so i have used netfilter for it. in function main_hook sock_buff is returning null and in my log file continuously "sock buff null" is printed plse help to solve this problem.. (using print_string iam printing strings on current terminal (terminal we ping)) ... (1 Reply)
Discussion started by: pavan6754
1 Replies

8. Cybersecurity

Experience with libvirt netfilter API

Hi all, I would like to get some ideas and opinions on matter of libvirt netfilter application in KVM environment. I am looking for some easy way to control it with an API and possible experience with that and its performance in real life application. Thanks for all ideas (0 Replies)
Discussion started by: smoofy
0 Replies

9. Cybersecurity

How to use Netfilter properly with IPv6?

Hello, on a PC with Debian 8 I try to use a Bash script with Netfilter rules so that only traffic goes in and out that is wanted. For that I set all 3 default policies to "drop". The machine uses DHCP to get its IP, gateway and DNS. And I never checked so I was quite surprised that my... (1 Reply)
Discussion started by: SInt
1 Replies
Paranoid::Network::Socket(3pm)				User Contributed Perl Documentation			    Paranoid::Network::Socket(3pm)

NAME
Paranoid::Network::Socket - Socket wrapper for seemless IPv6 support VERSION
$Id: Socket.pm,v 0.3 2012/05/29 21:38:37 acorliss Exp $ SYNOPSIS
# use Socket; # no longer needed use Paranoid::Network::Socket; use Paranoid::Network::Socket qw(:crlf); $ipv6_enabled = has_ipv6(); DESCRIPTION
This module is a wrapper for Socket(3) and Socket6(3), and is meant to be used in lieu of using those packages directly. Doing so removes any of the version dependent support issues on Perl and its bundled Socket(3) where IPv6 is concerned. Starting in Perl 5.12 the beginnings of IPv6 support emerged in the bundled Socket(3) module, but full IPv6 support didn't arrive until 5.14. Prior versions of Perl required the use of the external Socket6(3) module (available on CPAN). With this module IPv6 support, if available, is brought in automatically at runtime, regardless of where that support is provided. It also makes a default export of inet_pton and inet_ntop, something that Socket(3) only does on request. Finally, this module provides a has_ipv6 function which will return whether your Perl has full IPv6 support. Full support is determined by the presence of sockaddr_in6. All of the regular tag sets provided by either Socket modules are supported by this module. SUBROUTINES
/METHODS has_ipv6 $ipv6_enabled = has_ipv6(); Returns a boolean value denoting whether or not this module has full IPv6 support. DEPENDENCIES
o Socket o Socket6 (optional) BUGS AND LIMITATIONS
AUTHOR
Arthur Corliss (corliss@digitalmages.com) LICENSE AND COPYRIGHT
This software is licensed under the same terms as Perl, itself. Please see http://dev.perl.org/licenses/ for more information. (c) 2005, Arthur Corliss (corliss@digitalmages.com) perl v5.14.2 2012-05-29 Paranoid::Network::Socket(3pm)
All times are GMT -4. The time now is 07:06 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy