编译书本上的防火墙有错误
作者:turneerpelliccia_291 | 来源:互联网 | 2017-07-22 03:40
编译书本上的防火墙有错误--Linux通用技术-Linux编程与内核信息,下面是详情阅读。
//user_firewall.c
#ifndef __KERNEL__
#define __KERNEL__
#endif
#ifndef MODULE
#define MODULE
#endif
#include
#include
#include
#include
#include
#include
#include
#include
static unsigned int user_firewall(unsigned int hooknum, struct sk_buff **skb,const struct net_device *in,
const struct net_device *out,int(*okfn)(struct sk_buff *))
{
struct iphdr *iph;
struct tcphdr *tcph;
struct udphdr *udph;
__u32 sip;
__u32 dip;
__u16 sport;
__u16 dport;
iph=(*skb)->nh.iph;
sip=iph->saddr;
dip=iph->daddr;
if(iph->ihl!=5)
{//检查校验和
printk("IP packet with packet from %d.%d.%d.%d to %d.%d.%d.%d\n",NIPQUAD(sip),NIPQUAD(dip));
}
if(iph->protocol==6)
{tcp协议
tcph=(struct tcphdr *)((__u32 *)iph+iph->ihl);
sport=tcph->source;
dport=tcph->dest;
printk("Source port:::%d\n",ntohs(tcph->source));
printk("Dest port:::%d\n",ntohs(tcph->dest));
if((tcph->syn)&&(sport==dport)&&(sip==dip))
{
printk("maybe land attack\n");
}
if(ntohs(tcph->dest)==139&&tcph->urg)
{
printk("maybe winnuke a from %d.%d.%d.%d to %d.%d.%d.%d\n",NIPQUAD(sip),NIPQUAD(dip));
}
}
else if(iph->protocol==17)
{//udp协议
udph=(struct udphdr *)((__u32 *)iph+iph->ihl);
sport=udph->source;
dport=udph->dest;
printk("Source port:::%d\n",ntohs(udph->source));
printk("Dest port:::%d\n",ntohs(udph->dest));
//........................................
}
else
{
printk("unknown protocol %d packet from %d.%d.%d.%d to %d.%d.%d.%d\n",iph->protocol,NIPQUAD(sip),NIPQUAD(dip));
}
return NF_ACCETR;
}
static struct nf_hook_ops iplimitfilter=
{
{NULL,NULL},
user_firewall,
PF_INET,
NF_IP_PRE_ROUTING,
NF_IP_PRI_FILTER-1
};
int init_module(void)
{
return nf_register_hook(&iplimitfilter);
}
void cleanup_module(void)
{
nf_unregister_hook(&iplimitfilter);
}
书上说使用:gcc -O -c -Wall user_firewall.c
但出现很多头文件的错误,我的内核版本是2.4
推荐阅读
-
1、Ipv4只能用于内网,外网只能用2、DNS:把域名解析成ip地址3、MAC地址就是物理地址(网卡序列号) IP地址:电脑序列号4、不同电脑,微信之间互相通信,靠的是端口; ...
[详细]
蜡笔小新 2023-10-17 22:21:58
-
概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ...
[详细]
蜡笔小新 2023-10-17 19:16:37
-
-
三、寻找恶意IP并用iptables禁止掉找出恶意连接你的服务器80端口的IP,直接用iptables来drop掉它;这里建议写脚本来运行, ...
[详细]
蜡笔小新 2023-10-17 13:01:54
-
市场最糟糕的时候已经过去,以太坊合并前不太会看到新的低点;但仍需来自关注宏观市场的不确定风险。撰文:Ansem ...
[详细]
蜡笔小新 2023-10-17 11:26:43
-
IP、ARP、TCP、UDP、ICMP、DNS、路由协议、DHCP协议的缺陷,容易受到的攻击,以及防御措施1、IP协议1.1、介绍: ...
[详细]
蜡笔小新 2023-10-17 11:18:55
-
1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ...
[详细]
蜡笔小新 2023-10-17 10:34:08
-
文章目录前言一、域名系统概述二、因特网的域名结构三、域名服务器1.根域名服务器2.顶级域名服务器(TLD,top-leveldomain)3.权威(Authoritative)域名 ...
[详细]
蜡笔小新 2023-10-17 02:59:43
-
1、概述:NFS(NetworkFileSystem)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享 ...
[详细]
蜡笔小新 2023-10-17 01:55:01
-
网络通信相关概念的讲解–网络协议分层(经典五层模型)在我们了解HTTP相关内容之前我们先来了解一下“网络协议分层”相关内容,因为这个是我们了解HTTP相关内容的前提条件;大家有一 ...
[详细]
蜡笔小新 2023-10-16 19:05:54
-
定义#definePCAP_OPENFLAG_PROMISCUOUS1 定义适配器是否必须进入混杂模式。#definePCAP_OPENFLAG_DATATX_UDP2 ...
[详细]
蜡笔小新 2023-10-16 17:20:39
-
一、TCP与UDP(转载)1、TCP1.1定义TCP(TransmissionControlProtocol)传输控制协议。是一种可靠的、面向连接的协议(eg:打电话)、传输效率低 ...
[详细]
蜡笔小新 2023-10-16 14:46:35
-
IPv4向IPv6迁移有多种途径,在选择具体的迁移方式时,当前环境中运行的应用是否支持IPv6是重要的考量因素之一,同时在编写新的应用时,需要考虑新编写的应用不仅可以适应当前主流的IPv4环境, ...
[详细]
蜡笔小新 2023-10-16 14:30:17
-
我们在前面的工作中已经实现了ISA2006的代理服务器功能,接下来我们要实现ISA的访问控制功能。很多公司都有控制员工访问外网的需求,例如有的公司不允许 ...
[详细]
蜡笔小新 2023-10-16 11:15:44
-
实验2:OpenvSwitch虚拟交换机实践一、实验目的能够对OpenvSwitch进行基本操作;能够通过命令行终端使用OVS命令操作OpenvSwitch交换机,管理流表;能够通 ...
[详细]
蜡笔小新 2023-10-16 11:01:33
-
本文目录一览:1、怎么用python算p值和t检验 ...
[详细]
蜡笔小新 2023-10-16 08:28:38
-
turneerpelliccia_291
这个家伙很懒,什么也没留下!