Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki 1 do 10 z 12

Temat: Netfliter

  1. #1
    Avatar Ormi
    Ormi jest offline %x-%x-%x-%n
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie Netfliter

    What the fuck się stało z netfilterem w ostatnich wersjach jądra?
    Przykładowy programik, który na starszych 2.6.x działał:
    Kod:
    #include <linux/module.h>
    #include <linux/init.h>
    #include <linux/kernel.h>
    #include <linux/skbuff.h>
    #include <linux/tcp.h>
    #include <linux/ip.h>
    #include <linux/in.h>
    #include <linux/netfilter.h>
    #include <linux/netfilter_ipv4.h>
    
    MODULE_LICENSE("GPL");
    
    static struct nf_hook_ops strukturka ;
    
    unsigned char *brzydale[] = 
    { 
    "\x7f\x00\x00\x01", /* 127.0.0.1 */
    "\x0a\x0a\xfa\x08", /* 10.10.250.8 */
    NULL
    };
    
    unsigned int funkcyjka(unsigned int hooknum,
    			struct sk_buff **sb,
    			const struct net_device *in,
    			const struct net_device *out,
    			int (*okfn)(struct sk_buff *))
    {
    	struct sk_buff *skb = *sb;
    	struct tcphdr *thead; 
    	int n;
    	
    	if(!skb) return NF_ACCEPT;
    	if(!(skb->nh.iph)) return NF_ACCEPT;
    	
    	
    
    	thead = (struct tcphdr *)(skb->data + (skb->nh.iph->ihl * 4)); 
    	for(n=0;brzydale[n]!= NULL;n++) 
    	{ 
    
    if((skb->nh.iph->saddr == *(unsigned int *)brzydale[n]) &&  ((thead->dest) == htons(22))) 
    		{  
    
    		return NF_DROP; 
    		}    
    	}
       	return NF_ACCEPT; 
    }
    
    
    int __init mod_init()
    {
    	
    	strukturka.hook = funkcyjka ;         
    	
    	strukturka.hooknum  = NF_IP_PRE_ROUTING; 
    	strukturka.pf       = PF_INET;
    	strukturka.priority = NF_IP_PRI_FIRST;   
    	
    	nf_register_hook(&strukturka); 
    	
    	return 0;
    }
    
    void __exit mod_exit()
    {
    	nf_unregister_hook(&strukturka); 
    }
    
    module_init(mod_init);
    module_exit(mod_exit);
    Kompilacja:
    Kod:
    [[email protected] Roboczy]# make
    make -C /usr/src/linux SUBDIRS=/home/ormi/Pulpit/Roboczy
    make[1]: Wejście do katalogu `/usr/src/linux'
      CC [M]  /home/ormi/Pulpit/Roboczy/modul4.o
    /home/ormi/Pulpit/Roboczy/modul4.c: In function ‘funkcyjka’:
    /home/ormi/Pulpit/Roboczy/modul4.c:33: error: ‘struct sk_buff’ has no member named ‘nh’
    /home/ormi/Pulpit/Roboczy/modul4.c:37: error: ‘struct sk_buff’ has no member named ‘nh’
    /home/ormi/Pulpit/Roboczy/modul4.c:41: error: ‘struct sk_buff’ has no member named ‘nh’
    /home/ormi/Pulpit/Roboczy/modul4.c: At top level:
    /home/ormi/Pulpit/Roboczy/modul4.c:52: warning: function declaration isn’t a prototype
    /home/ormi/Pulpit/Roboczy/modul4.c: In function ‘mod_init’:
    /home/ormi/Pulpit/Roboczy/modul4.c:54: warning: assignment from incompatible pointer type
    /home/ormi/Pulpit/Roboczy/modul4.c:56: error: ‘NF_IP_PRE_ROUTING’ undeclared (first use in this function)
    /home/ormi/Pulpit/Roboczy/modul4.c:56: error: (Each undeclared identifier is reported only once
    /home/ormi/Pulpit/Roboczy/modul4.c:56: error: for each function it appears in.)
    /home/ormi/Pulpit/Roboczy/modul4.c: At top level:
    /home/ormi/Pulpit/Roboczy/modul4.c:67: warning: function declaration isn’t a prototype
    make[2]: *** [/home/ormi/Pulpit/Roboczy/modul4.o] Błąd 1
    make[1]: *** [_module_/home/ormi/Pulpit/Roboczy] Błąd 2
    make[1]: Opuszczenie katalogu `/usr/src/linux'
    make: *** [modul4.ko] Błąd 2
    :O
    Black Coders | Hacking, Kernel, Linux, Operating Systems, Programming
    I otworzyła studnię Czeluści,
    a dym się uniósł ze studni jak dym z wielkiego pieca,
    i od dymu zaćmiło się słońce i powietrze.
    A z dymu wyszła szarańcza na ziemię,
    i dano jej moc jaką mają ziemskie skorpiony.
    (...)
    I dano jej nakaz aby nie zabijała,
    lecz aby przez pięć miesięcy cierpieli katusze...

  2. #2
    rip
    rip jest offline Banned
    Zarejestrowany
    May 2008
    Postów
    534

    Domyślnie

    co to ma byc?

    i co ma ten smieszny kodzik do jajka

  3. #3
    Avatar Ormi
    Ormi jest offline %x-%x-%x-%n
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie

    To nie ma być super-hiper-mega-extra-wyjebisty program, tylko krótki kod, który prezentuje pewien problem Ale w sumie, to właśnie zauważyłem, że zmieniło się nie coś w Netfilterze, tylko w strukturze sk_buff. Nie zmienia to jednak faktu, że twój złośliwy komentarz raczej nie był potrzebny
    Black Coders | Hacking, Kernel, Linux, Operating Systems, Programming
    I otworzyła studnię Czeluści,
    a dym się uniósł ze studni jak dym z wielkiego pieca,
    i od dymu zaćmiło się słońce i powietrze.
    A z dymu wyszła szarańcza na ziemię,
    i dano jej moc jaką mają ziemskie skorpiony.
    (...)
    I dano jej nakaz aby nie zabijała,
    lecz aby przez pięć miesięcy cierpieli katusze...

  4. #4
    Avatar lukasz6547
    lukasz6547 jest offline Ciasno tu:D
    Zarejestrowany
    Apr 2008
    Postów
    348

    Domyślnie

    pierwsze slysze o tym netfilterze...

  5. #5
    Avatar Ormi
    Ormi jest offline %x-%x-%x-%n
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie

    Pierwszy raz słyszysz o czymś takim jak netfilter czy o takim problemie z nim?
    Black Coders | Hacking, Kernel, Linux, Operating Systems, Programming
    I otworzyła studnię Czeluści,
    a dym się uniósł ze studni jak dym z wielkiego pieca,
    i od dymu zaćmiło się słońce i powietrze.
    A z dymu wyszła szarańcza na ziemię,
    i dano jej moc jaką mają ziemskie skorpiony.
    (...)
    I dano jej nakaz aby nie zabijała,
    lecz aby przez pięć miesięcy cierpieli katusze...

  6. #6
    rip
    rip jest offline Banned
    Zarejestrowany
    May 2008
    Postów
    534

    Domyślnie

    o co ci chodzi.
    o netfilter? czy o nieumiejetnosc obslugi make i czytania bledow.

  7. #7
    Avatar Ormi
    Ormi jest offline %x-%x-%x-%n
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie

    Umiem czytać błędy Widzę, że w programie używam nieistniejących części struktury sk_buff...
    Tylko, że chodzi mi o to, że TEN SAM PROGRAMIK Z IDENTYCZNYM PLIKIEM MAKE DZIAŁA NA STARYCH WERSJACH JĄDRA 2.6.x !
    Chciałbym się tylko dowiedzieć gdzie się podziały te "nieistniejące" pola struktury sk_buff oraz makro "NF_IP_PRE_ROUTING", które powtarzam jeszcze raz - w starszych wersjach jądra 2.6.x były!
    Black Coders | Hacking, Kernel, Linux, Operating Systems, Programming
    I otworzyła studnię Czeluści,
    a dym się uniósł ze studni jak dym z wielkiego pieca,
    i od dymu zaćmiło się słońce i powietrze.
    A z dymu wyszła szarańcza na ziemię,
    i dano jej moc jaką mają ziemskie skorpiony.
    (...)
    I dano jej nakaz aby nie zabijała,
    lecz aby przez pięć miesięcy cierpieli katusze...

  8. #8
    Zarejestrowany
    Sep 2008
    Postów
    6

    Domyślnie

    Polecam jak najbardziej grupę mailingową netfilter-devel (http://lists.netfilter.org/mailman/l...etfilter-devel). Generalnie wystarczy zajrzeć do nagłówków i będzie wszystko wiadomo. Kilka tzw. hintów: zainteresuj się prototypem funkcji hook-a, obecnie wygląda on troszeczkę inaczej, na pewno z pomocą przyjdą Ci takie "cuda" jak: ip_hdr(), tcp_hdr(), skb_header_pointer() aby zrealizować problem przedstawiony powyżej. I na koniec jeszcze:
    Kod:
    enum nf_inet_hooks {
        NF_INET_PRE_ROUTING, /* NF_IP_PRE_ROUTING */
        NF_INET_LOCAL_IN,
        NF_INET_FORWARD,
        NF_INET_LOCAL_OUT,
        NF_INET_POST_ROUTING,
        NF_INET_NUMHOOKS
    };
    Owy plik to netfilter.h, i żeby było jasne do końca:
    Linux poligon 2.6.26.2 #5 Fri Aug 22 14:51:01 EDT 2008 i686 GNU/Linux
    Ostatnio edytowane przez marcin. : 09-01-2008 - 20:05

  9. #9
    Avatar Ormi
    Ormi jest offline %x-%x-%x-%n
    Zarejestrowany
    Jul 2008
    Skąd
    Za twoimi plecami
    Postów
    351

    Domyślnie

    OK. Wielkie dzięki marcin

    Rip, nie można było właśnie tak odpowiedzieć, a nie zaraz się rzucać, że niby "nie umiem czytać błędów"? Nie jestem typem obleśnego lenia, który najpierw pisze na forum, a dopiero potem czyta błędy, które wyrzucił kompilator(jeśli w ogóle je czyta). Ja najpierw sporo razy błędy przeczytam i się zastanowię czy na pewno nie potrafię sobie z problemem poradzić. Więc nie trzeba od razu tak agresywnie reagować, rip. Take it easy
    Black Coders | Hacking, Kernel, Linux, Operating Systems, Programming
    I otworzyła studnię Czeluści,
    a dym się uniósł ze studni jak dym z wielkiego pieca,
    i od dymu zaćmiło się słońce i powietrze.
    A z dymu wyszła szarańcza na ziemię,
    i dano jej moc jaką mają ziemskie skorpiony.
    (...)
    I dano jej nakaz aby nie zabijała,
    lecz aby przez pięć miesięcy cierpieli katusze...

  10. #10
    rip
    rip jest offline Banned
    Zarejestrowany
    May 2008
    Postów
    534

    Domyślnie

    nie powiedzialem ze jestes leniem, ale zapytalem co ma kompilacja i naglowki do jadra systemu !

Strona 1 z 2 12 OstatniOstatni

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj