+ -
当前位置:首页 → 问答吧 → netfilter sk_buff tcphdr 端口屏蔽问题??

netfilter sk_buff tcphdr 端口屏蔽问题??

时间:2010-11-07

来源:互联网

我是想屏蔽某些端口 (21)
  1. static unsigned char *deny_port = "\x15\x00";//port 21


  2.    struct sk_buff *sb = skb;
  3.    struct tcphdr  *tcph;
  4.   
  5.       tcph=tcp_hdr(sb);
  6.      if(tcph->source==*(__be16 *)deny_port)
  7.       {
  8.        printk(KERN_INFO "Packet from port 21 Droped\n");
  9.    return NF_DROP;
  10.       }

复制代码
然后我测试连接21端口
#nc -v xx.xx.xx.xx 21
没有成功,还是连接上了,端口没被屏蔽
然后我用printk查看具体端口号
插入三天printk


printk(KERN_INFO "Packet from source port %d \n",tcph->dest);
printk(KERN_INFO "Packet from dest port %d \n",tcph->source);
printk(KERN_INFO "Packet from match port %d \n",*(__be16 *)deny_port);
  1.    struct sk_buff *sb = skb;
  2. struct tcphdr  *tcph;
  3.    
  4.       tcph=tcp_hdr(sb);

  5. printk(KERN_INFO "Packet from source port %d \n",tcph->dest);
  6. printk(KERN_INFO "Packet from dest port %d \n",tcph->source);
  7. printk(KERN_INFO "Packet from match port %d \n",*(__be16 *)deny_port);

  8.      if(tcph->source==*(__be16 *)deny_port)
  9.       {
  10.        printk(KERN_INFO "Packet from port 21 Droped\n");
  11.    return NF_DROP;
  12.       }
复制代码
打印结果如下
命令
nc -v xx.xx.xx.xx 21


[14004.353389] Packet from source port 5376 //源端口
[14004.353394] Packet from dest port 1934 //目的端口
[14004.353397] Packet from match port 21  //我要批评的端口
[14004.431504] Packet from source port 5376
[14004.431508] Packet from dest port 1934
[14004.431510] Packet from match port 21


这是什么原因呢?

作者: Linux386   发布时间: 2010-11-07

0x1500 == 0x0015
对楼主极度无语

作者: beyond_touch   发布时间: 2010-11-07