快速业务通道

Linux iptables防火墙详解 配置抗DDOS攻击策略实战

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-06

Linux iptables防火墙详解 配置抗DDOS攻击策略实战

Linux 内核中很早就实现了网络防火墙功能,在不同的Linux内核版本中,使用了不同的软件实现防火墙功能.
在2.0内核中,防火墙操作工具叫:ipfwadm
在2.2内核中,防火墙操作工具叫:ipchains
在2.4以后的内核,防火墙操作工具叫:iptables

ipfwadm 和 ipchains 比较老,已成历史版本,本章主要介绍Iptables


一、iptable 操作命令参数详解

-A
APPEND,追加一条规则(放到
例如:
iptables -A INPUT -j ACCEPT
允许所有访问本机 IP 的数据包通过


-I
INSERT,插入一条规则
例如:
iptables -I INPUT -j DROP
在 filter 表的 INPUT 链里插入一条规则(插入成第 1 条)


-D
DELETE,删除一条规则
iptables -D INPUT 3(按号码匹配)
删除 filter 表 INPUT 链中的第三条规则(不管它的内容是什么)


-R
REPLACE,替换一条规则
例如:
iptables -R INPUT 9 -j ACCEPT
将原来编号为 9 的规则内容替换为“-j ACCEPT”


-P
POLICY,设置某个链的默认规则
例如:
iptables -P INPUT DROP
设置 filter 表 INPUT 链的默认规则是 DROP


-F
FLUSH,清空规则
例如
iptables -F
清空 filter 表中的所有规则

-p
protocol 比对通讯协议
例如
iptables -A INPUT -p tcp
比对通讯协议类型是否相符

-s
src, source
例如
iptables -I INPUT -s 172.16.0.201 -j DROP
用来比对封包的来源 IP,可以比对单机或网络,比对网络时请用数字来表示屏蔽,例屏蔽:172.16.0.201 IP访问,所有数据都将丢弃


--tcp-flags 比对 TCP
例如
iptables -p tcp --tcp-flags SYN,FIN,ACK SYN
TCP状态旗号包括:SYN(同步)、ACK(应答)、FIN(结束)、RST(重设)、URG(紧急)、PSH(强迫推送)
等均可使用于参数中,除此之外还可以使用关键词 ALL 和 NONE 进行比对


--icmp-type
例如:
iptables -A INPUT -p icmp --icmp-type 8
用来比对 ICMP 的类型编号,可以使用代码或数字编号来进行比对. 案例ICMP类型是:8


-m limit --limit
例如
iptables -A INPUT -m limit --limit 3/sec
用来比对某段时间内封包的平均流量,上面的例子是用来比对每秒平均流量是否超过一次 3 个封包.


配置文件位置:
/etc/sysconfig/iptables

iptables 管理服务命令
开启 service iptables start
关闭 service iptables stop
重起 service iptables restart

二、案例讲解

本例中的规则将会阻止来自某一特定IP范围内的数据包,该IP地址范围被管理员怀疑有大量恶意攻击者在活动
如何判断服务是否受攻击?
1.ping测试服务是否丢掉? 掉包几钟可能原因: 你服务受攻击、机房上层线路受攻击、互联网上某个路由不稳定、机器服务/硬件问题(较少)
2.可以搭建流量检查服务来监控服务网络流量 如:Cacti 、MRTG 2种较出名的流量监控 ,但都不是实时的!一般5分钟探测一次
3.在linux上可以用一些脚本代码来监控网卡的实时流量、


查看实时流量脚本
用vi创建个脚本文件,将以下代码复制进去.赋予权限,运行脚本监测

#!/bin/bash
while [ "1" ]
do
eth=$1
RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk ''{print $2}'')
TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk ''{print $10}'')
sleep 1
RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk ''{print $2}'')
TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk ''{print $10}'')
clear
echo -e "t RX `date %k:%M:%S` TX"
RX=$((${RXnext}-${RXpre}))
TX=$((${TXnext}-$

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号