由 Snoopy 在 03-13-2003 18:47 发表:
如何伪造ip????
我是局域网下的,,,请问下面的是什么意思呢???
echo "1">/proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_masq_cuseeme.o
/sbin/modprobe ip_masq_ftp.o
/sbin/modprobe ip_masq_irc.o
/sbin/modprobe ip_masq_quake.o
/sbin/modprobe ip_masq_user.o
/sbin/modprobe ip_masq_vdolive.o
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -j MASQ -i ppp0 -s 192.168.1.0/24
伪造ip是不是使用iptables就可以现实??
大家帮帮我好吗???
And then in the evening light, when the bars of freedom fall
I watch the two of you in the shadows on the wall
How in the darkness steals some of the choices from my hand
Then will I begin to under
由 eTony 在 03-13-2003 18:52 发表:
这是通过ipchains代理上网
Seeking Freedom,pure Freedom!
http://211.92.88.40/~tony/
由 Snoopy 在 03-13-2003 19:01 发表:
代理就是伪造ip啊????艾,,,,,,,,
虽然我tcp/ip不是很懂,我提个问题好了,比如我发个数据包到对方
当到第三次握手时,,对方返回确认数据的时候,发现对方的ip已经
没有人使用,,,,,,我的是这个意思,,,麻烦大家帮帮我,,谢谢
And then in the evening light, when the bars of freedom fall
I watch the two of you in the shadows on the wall
How in the darkness steals some of the choices from my hand
Then will I begin to under
由 eTony 在 03-13-2003 19:18 发表:
???
不懂
Seeking Freedom,pure Freedom!
http://211.92.88.40/~tony/
由 eTony 在 03-13-2003 19:20 发表:
这和ipchains 有什么关系??
Seeking Freedom,pure Freedom!
http://211.92.88.40/~tony/
由 eTony 在 03-13-2003 19:41 发表:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE
好像是这样
Seeking Freedom,pure Freedom!
http://211.92.88.40/~tony/
由 Snoopy 在 03-13-2003 21:41 发表:
我记得dooom曾经跟我说过点,,,,但当时听不懂
你上面这两行命令是什么意思来的???
And then in the evening light, when the bars of freedom fall
I watch the two of you in the shadows on the wall
How in the darkness steals some of the choices from my hand
Then will I begin to under
由 Snoopy 在 03-13-2003 22:15 发表:
ipchains -A forward -s 10.0.0.0/8 -d 192.168.0.0/24 -j MASQ
ipmasqadm portfw -a -L 192.168.0.88 -R 10.0.0.1
这是什么意思???麻烦大家帮我看看好吗??
iptables这些用法我还没掌握..........
And then in the evening light, when the bars of freedom fall
I watch the two of you in the shadows on the wall
How in the darkness steals some of the choices from my hand
Then will I begin to under
由 Snoopy 在 03-15-2003 19:01 发表:
找了这篇文章,但还是看不怎么懂,,,,,,,不错的文章,可惜我,,,,,
1. 概述
ICMP协议有两种类型: 查询报文和差错报文.其格式如下:
[图1.1]
查询报文中,Type是查询类型;Code值为0没有使用;Checksum是ICMP头和数据的校验和;Identifier用于标识发包的session,一般填为进程的Id;Sequence标识同一session中的不同包,序列号每次加1;Data中的数据因Type的不同而不同.地址伪装中处理的查询报文类型以及其应答报文的类型为:
ICMP_ECHO,ICMP_ECHOREPLY;
ICMP_TIMESTAMP,ICMP_TIMESTAMPREPLY;
ICMP_INFO_REQUEST,ICMP_INFO_REPLY;
ICMP_ADDRESS,ICMP_ADDRESSREPLY.
[图1.2]
差错报文中,Type是差错类型;Code是差错类型中的子类型;Checksum是ICMP头和数据的校验和.其数据部分包含出错包的IP头(包括选项)和IP数据的前八个字节.地址伪装只处理三种协议(ICMP,TCP,UDP)的差错包,并且只处理三种类型的差错报文,如下:
ICMP_DEST_UNREACH,ICMP_SOURCE_QUENCH,ICMP_TIME_EXCEEDED.
2. ICMP协议的地址伪装
下面分析伪装和解伪装两个过程对ICMP包的处理,并引用下图所示的环境进行分析:
[图2.1]
在FW上配置A到B的地址伪装,B到A的端口转发规则如下:
ipchains -A forward -s 10.0.0.0/8 -d 192.168.0.0/24 -j MASQ
ipmasqadm portfw -a -L 192.168.0.88 -R 10.0.0.1
分析所涉及的几个不同的情形是:
(1) A到B的ICMP查询报文,B返回成功的应答报文.
(2) A到B的ICMP查询报文,B返回失败的差错报文.
(3) A到B的TCP或UDP请求,B返回失败的差错报文.
(4) B到A的ICMP查询报文,这种情况没有处理.
(5) B到A的TCP或UDP请求,A返回失败的差错报文.
2.1. ip_fw_masquerade
ip_fw_masquerade处理A到B的查询报文和差错报文.首先在ip_fw_masquerade中判断协议类型是否是ICMP,如果是,则调用函数ip_fw_masq_icmp.在这个函数中,对查询报文和差错报文的处理过程不同,下面分两种情况讨论.
2.1.1. 查询报文
a: 判断ICMP的类型是否是查询报文类型:
ICMP_ECHO,ICMP_TIMESTAMP,ICMP_INFO_REQUEST,
ICMP_ADDRESS.如果不是,跳过下面的处理.如果是,到下一步.
b: 在伪装结构的哈希表中查找相应的伪装结构是否已创建(ip_masq_out_get),查找时用icmp_id(查询报文中的Identifier)代替源端口;用icmp_hv_req(查询报文中的Code加Type左移八位)代替目的端口.如果查找不成功,创建新的伪装结构,如图:
[图2.2]
c: 将IP头中的源地址替换为伪装地址: iph->saddr = ms->maddr.ICMP头中的Identifier替换为伪装端口 icmph->un).echo.id = ms->mport.以上两步需要重新计算IP头和ICMP头和数据的校验和.
2.1.2. 差错报文
对差错报文的处理可以分为两类来讨论.第一类是ICMP查询报文的差错报文(差错报文不会产生新的差错报文,否则会造成死循环);第二类是TCP/UDP的差错报文.在处理之前首先判断差错报文的类型是否是系统可以处理的类型:
ICMP_DEST_UNREACH,ICMP_SOURCE_QUENCH,ICMP_TIME_EXCEEDED. 如果不是,直接返回0.
2.1.2.1. ICMP的差错报文
a: 找到差错报文中包含的原IP头,查看其协议是否是ICMP,如果不是,跳过下一步的处理.
b: 在伪装结构的哈希表中查找是否有差错报文中原查询报文对应的伪装结构(这个结构应该在ip_fw_demasquerade中创建). 这里查找所使用的地址是原查询报文的地址,所以源地址/目的地址与正常的查找是相反的.如果没有找到相应的结构,返回0.
c: 然后修改IP头中的源地址:iph->saddr = ms->maddr;
原IP头中的目的地址: ciph->daddr = ms->maddr;
和原查询报文中的Identifier: (cicmph->un).echo.id = ms->mport. 以上的修改要重新计算IP头和ICMP头和数据的校验和.
2.1.2.2. TCP/UDP的差错报文
a: 找到差错报文中包含的原IP头,查看协议是否是TCP或UDP,如果不是,返回0.
b: 在伪装结构的哈希表中查找是否有与差错报文中的原TCP或UDP包对应的伪装结构(这个结构应该在ip_fw_demasquerade中创建). 这里查找所使用的地址和端口是原TCP或UDP包中的地址和端口,所以源地址/源端口和目的地址/目的端口与正常的查找是相反的.如果没有找到相应的结构,返回0.
c: 然后修改IP头中的源地址:iph->saddr = ms->maddr;
原TCP或UDP包中的目的地址和目的端口:
ciph->daddr = ms->maddr; pptr[1] = ms->mport. 以上的修改要重新计算IP头和ICMP头和数据的校验和.
2.2. ip_fw_demasquerade
ip_fw_demasquerade处理B到A查询报文和差错报文.对ip_fw_demasquerade的分析也采用与分析ip_fw_masquerade相同的分类来进行.首先在ip_fw_demasquerade中判断协议类型是否是ICMP,如果是,则调用ip_fw_demasq_icmp来处理.
2.2.1. 查询报文
a: 首先判断查询报文的类型是否是系统可以处理的类型: ICMP_ECHOREPLY,ICMP_TIMESTAMPREPLY,ICMP_INFO_REPLY, ICMP_ADDRESSREPLY(这