当前位置:操作系统 > Unix/Linux >>

使用iptables设定一些安全防护功能(3)

作者: kenduest (小州)

  防止 sync flood 攻击的设定:

  iptables -N synfoold

  iptables -A synfoold -p tcp --syn -m limit --limit 1/s -j RETURN

  iptables -A synfoold -p tcp -j REJECT --reject-with tcp-reset

  iptables -A INPUT -p tcp -m state --state NEW -j synfoold

  这个方式对于一个很忙碌的站台来说,这个设定方式会不会有不良影响呢?

  测试过一个很忙碌的站台用这个设定,老实说并不好....

  所以也许可以调整时间与次数的触发值。

  防止 Ping of Death :

  iptables -N ping

  iptables -A ping -p icmp --icmp-type echo-request -m limit --limit \

  1/second -j RETURN

  iptables -A ping -p icmp -j REJECT

  iptables -I INPUT -p icmp --icmp-type echo-request -m state --state NEW \

  -j ping

  这里只有把 icmp 的 echo request 部份拒绝掉,可以视情况再调整。

  或者是直接设定主机不响应 echo request 。

  /proc/sys/net/ipv4/icmp_echo_ignore_all

  补充心得

  iptables 机制是逐条检查...

  但是假设当一个封包要通过时,第一条规则已经放行通过,封包的命运已经定下来,剩余规则就不会再检查,就算剩余规则中有要挡下这个封包时也无效!

  例:

  规则 1 : 放行所有 80 port 的封包

  规则 2 : 拒绝 210.58.221.241 80 port 封包

  规则 3 ........

  像这样子时,根本无法挡下 210.58.221.241 80 port 封包...

  因为第 1 条规则已经先放行所有 80 port 的封包了,所以该封包早就先通过了......

  正确的写法应该将规则 1 与规则 2 互换.....

  ※ 引述《AceLan (小蛋蛋)》之铭言:

  > [root@babu netfilter]# pwd

  > /lib/modules/2.4.13-7mdk/kernel/net/ipv4/netfilter

  > [root@babu netfilter]# ls

  > ip_conntrack.o.gz ipchains.o.gz ipt_mark.o.gz

  > ip_conntrack_ftp.o.gz ipfwadm.o.gz ipt_multiport.o.gz

  > ip_conntrack_h323.o.gz ipt_LOG.o.gz ipt_owner.o.gz

  > ip_conntrack_irc.o.gz ipt_MARK.o.gz ipt_state.o.gz

  > ip_conntrack_talk.o.gz ipt_MASQUERADE.o.gz ipt_tcpmss.o.gz

  > ip_nat_ftp.o.gz ipt_MIRROR.o.gz ipt_tos.o.gz

  > ip_nat_h323.o.gz ipt_REDIRECT.o.gz ipt_unclean.o.gz

  > ip_nat_irc.o.gz ipt_REJECT.o.gz iptable_filter.o.gz

  > ip_nat_talk.o.gz ipt_TCPMSS.o.gz iptable_mangle.o.gz

  > ip_queue.o.gz ipt_TOS.o.gz iptable_nat.o.gz

  > ip_tables.o.gz ipt_limit.o.gz

  > ip_vs/ ipt_mac.o.gz

  > 东西好多 我在 iptables 主站里没有找到相关的资料

  > (http://netfilter.samba.org/)

  > 只是很好奇各个模块的功能 有 ip_ 开头 ipt_ & iptable_ 开头的

  > 这些模块有什么不同呢?

  iptables_ 开头,是给 iptables -t xxxx 的。比方:

  iptables -t nat ...

  iptables -t mangle .....

  ipt_ 开头的,是 -j xxxx 使用的。比方:

  iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT ....

  ip_conntrack 开头的是一些纪录/追踪通讯协议的运作,然后适时修改封包

  内容让特定通讯协议可以正常工作。

  ip_nat_ 开头的是解决一些常见服务在 nat 环境可能无法使用的情况。

  ip_conntrack* 与 ip_nat_* 这些 module 一般要使用 modprobe 来加载。

  ip_tables 是主要提供 iptables 功能的核心。ip_queue 是可以让封包过滤

  传输丢给使用层的应用程序来处理。

  

上一个:使用iptables设定一些安全防护功能(2)
下一个:Linux安全吗?

更多Unix/Linux疑问解答:
路由原理介绍
子网掩码快速算法
改变网络接口的速度和协商方式的工具miitool和ethtool
Loopback口的作用汇总
OSPF的童话
增强的ACL修改功能
三层交换机和路由器的比较
用三层交换机组建校园网
4到7层交换识别内容
SPARC中如何安装Linux系统(2)
SPARC中如何安装Linux系统(1)
用Swatch做Linux日志分析
实战多种Linux操作系统共存
浅析Linux系统帐户的管理和审计
Linux2.6对新型CPU的支持(2)
电脑通通透
玩转网络
IE/注册表
DOS/Win9x
Windows Xp
Windows 2000
Windows 2003
Windows Vista
Windows 2008
Windows7
Unix/Linux
苹果机Mac OS
windows8
安卓/Android
Windows10
如果你遇到操作系统难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,