当前位置: 技术问答>linux和unix
请帮忙解释一下这个规则:ipchains -A input -j DENY -i eth0 -s 192.168.0.0/16
来源: 互联网 发布时间:2015-01-27
本文导语: 请帮忙解释一下这个规则:ipchains -A input -j DENY -i eth0 -s 192.168.0.0/16 主要是防止ip欺骗,具体是怎们解释和实现的? 1、-i eth0是表示来自eth0这个网卡的数据吗? 2、192.168.0.0/16表示哪些地址范围?是怎么计算的?...
请帮忙解释一下这个规则:ipchains -A input -j DENY -i eth0 -s 192.168.0.0/16
主要是防止ip欺骗,具体是怎们解释和实现的?
1、-i eth0是表示来自eth0这个网卡的数据吗?
2、192.168.0.0/16表示哪些地址范围?是怎么计算的?
3、它所起的作用是什么?
ipchains -A input -j DENY -i eth0 -s 192.168.0.0/16
主要是防止ip欺骗,具体是怎们解释和实现的?
1、-i eth0是表示来自eth0这个网卡的数据吗?
2、192.168.0.0/16表示哪些地址范围?是怎么计算的?
3、它所起的作用是什么?
ipchains -A input -j DENY -i eth0 -s 192.168.0.0/16
|
在eth0 port,deny所有来自192.168.0.0/16这个网段的数据包,并把这条策略添加到input policy里。
-i eth0:指这条policy应用在哪个网卡上
192.168.0.0/16:/16是指子网掩码为255.255.0.0,这样就把192.168.0.0作成了一个网段(正常的C类地址是192.168.0.0/24,这样只有254台主机,不包括192.168.0.0 and 192.168.0.255)
-i eth0:指这条policy应用在哪个网卡上
192.168.0.0/16:/16是指子网掩码为255.255.0.0,这样就把192.168.0.0作成了一个网段(正常的C类地址是192.168.0.0/24,这样只有254台主机,不包括192.168.0.0 and 192.168.0.255)
|
贴个demo给你研究
-------------------------------
#!/bin/sh
echo "Starting ipchains firewall rules..."
# 清除先前的所有防火墙规则
/sbin/ipchains -F forward
/sbin/ipchains -F input
/sbin/ipchains -F output
# 默认拒绝转发,能自由的输入/输出
/sbin/ipchains -P forward DENY
/sbin/ipchains -P input ACCEPT
/sbin/ipchains -P output ACCEPT
# 设定防火墙外部网卡接口(eth0)的永久IP地址
external_interface=202.96.199.133
# 接受所有在本地环路接口上的进出包
/sbin/ipchains -A input -j ACCEPT -i lo
/sbin/ipchains -A output -j ACCEPT -i lo
# 阻止任何外部网络直接与内部网络直接通讯
/sbin/ipchains -A input -j DENY -i eth0 -s 192.168.0.0/16
/sbin/ipchains -A input -j DENY -i eth0 -d 192.168.0.0/16
/sbin/ipchains -A output -j DENY -i eth0 -s 192.168.0.0/16
/sbin/ipchains -A output -j DENY -i eth0 -d 192.168.0.0/16
# 阻止任何进出防火墙外部接口的包宣称是来自它本身
/sbin/ipchains -A input -j DENY -i eth0 -s $external_interface/32
/sbin/ipchains -A output -j DENY -i eth0 -d $external_interface/32
# 阻止任何包宣称是来自本地环路接口
/sbin/ipchains -A input -j DENY -i eth0 -s 127.0.0.0/8
/sbin/ipchains -A input -j DENY -i eth0 -d 127.0.0.0/8
/sbin/ipchains -A output -j DENY -i eth0 -s 127.0.0.0/8
/sbin/ipchains -A output -j DENY -i eth0 -d 127.0.0.0/8
# 禁止任何来自外部的广播包,不论是去往哪里
/sbin/ipchains -A input -j DENY -i eth0 -s 255.255.255.255
/sbin/ipchains -A input -j DENY -i eth0 -d 0.0.0.0
/sbin/ipchains -A input -j DENY -i eth0 -s 240.0.0.0/3
# 转发在内部网段内的经过防火墙内部接口的包
/sbin/ipchains -A forward -j ACCEPT -i eth1 -s 192.168.0.0/24 -d 192.168.0.0/24
# 设置IP伪装规则
echo "1" > /proc/sys/net/ipv4/ip_forward
注: 也可以通过设置/etc/sysconfig/network文件启动IP转发,改那一行
FORWARD_IPV4=true即可,这样就不必设置上面的echo行了。
# 设置IP伪装规则,内部网络机器经过防火墙时进行伪装
/sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.0.0/24
注:如果仅仅希望让部分用户进行IP伪装,你也可以个别设置:
/sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.0.3/32
/sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.0.23/32
----------------------------------
over. 看懂了吗? 看不懂再问。
-------------------------------
#!/bin/sh
echo "Starting ipchains firewall rules..."
# 清除先前的所有防火墙规则
/sbin/ipchains -F forward
/sbin/ipchains -F input
/sbin/ipchains -F output
# 默认拒绝转发,能自由的输入/输出
/sbin/ipchains -P forward DENY
/sbin/ipchains -P input ACCEPT
/sbin/ipchains -P output ACCEPT
# 设定防火墙外部网卡接口(eth0)的永久IP地址
external_interface=202.96.199.133
# 接受所有在本地环路接口上的进出包
/sbin/ipchains -A input -j ACCEPT -i lo
/sbin/ipchains -A output -j ACCEPT -i lo
# 阻止任何外部网络直接与内部网络直接通讯
/sbin/ipchains -A input -j DENY -i eth0 -s 192.168.0.0/16
/sbin/ipchains -A input -j DENY -i eth0 -d 192.168.0.0/16
/sbin/ipchains -A output -j DENY -i eth0 -s 192.168.0.0/16
/sbin/ipchains -A output -j DENY -i eth0 -d 192.168.0.0/16
# 阻止任何进出防火墙外部接口的包宣称是来自它本身
/sbin/ipchains -A input -j DENY -i eth0 -s $external_interface/32
/sbin/ipchains -A output -j DENY -i eth0 -d $external_interface/32
# 阻止任何包宣称是来自本地环路接口
/sbin/ipchains -A input -j DENY -i eth0 -s 127.0.0.0/8
/sbin/ipchains -A input -j DENY -i eth0 -d 127.0.0.0/8
/sbin/ipchains -A output -j DENY -i eth0 -s 127.0.0.0/8
/sbin/ipchains -A output -j DENY -i eth0 -d 127.0.0.0/8
# 禁止任何来自外部的广播包,不论是去往哪里
/sbin/ipchains -A input -j DENY -i eth0 -s 255.255.255.255
/sbin/ipchains -A input -j DENY -i eth0 -d 0.0.0.0
/sbin/ipchains -A input -j DENY -i eth0 -s 240.0.0.0/3
# 转发在内部网段内的经过防火墙内部接口的包
/sbin/ipchains -A forward -j ACCEPT -i eth1 -s 192.168.0.0/24 -d 192.168.0.0/24
# 设置IP伪装规则
echo "1" > /proc/sys/net/ipv4/ip_forward
注: 也可以通过设置/etc/sysconfig/network文件启动IP转发,改那一行
FORWARD_IPV4=true即可,这样就不必设置上面的echo行了。
# 设置IP伪装规则,内部网络机器经过防火墙时进行伪装
/sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.0.0/24
注:如果仅仅希望让部分用户进行IP伪装,你也可以个别设置:
/sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.0.3/32
/sbin/ipchains -A forward -j MASQ -i eth0 -s 192.168.0.23/32
----------------------------------
over. 看懂了吗? 看不懂再问。
|
规则定出来当然就是有意义的啊,这条规则可以拒绝的特定机器发过来的包,这不就是意义吗??
spoofing是欺骗攻击,ip 欺骗你没听过吗?这里应该不是为了防止ip spoofing,因为你用的是192。168 是私网地址,除非你的私网很大,又有特定的服务,或者有信任关系等等,不过看来你没有。所以这条规则大概是机主对这个网段的人(192.168.0.0)的人比较不满,不想和他们联系吧。
spoofing是欺骗攻击,ip 欺骗你没听过吗?这里应该不是为了防止ip spoofing,因为你用的是192。168 是私网地址,除非你的私网很大,又有特定的服务,或者有信任关系等等,不过看来你没有。所以这条规则大概是机主对这个网段的人(192.168.0.0)的人比较不满,不想和他们联系吧。