一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux学习笔记防火墙Iptables使用详解

时间:2016-04-26 编辑:简简单单 来源:一聚教程网

一、Iptables介绍

 

linux的包过滤功能,即linux防火墙,它由netfilter 和 iptables 两个组件组成。

 

netfilter 组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

 

iptables 组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的规则变得容易。

 

二、Iptables结构
iptables -> Tables -> Chains -> Rules

 

tables由chains组成,而chains又由rules组成。iptables 默认有四个表Filter, NAT, Mangle, Raw。

 

三、Iptables格式

 

iptables [ -t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]

 

1、表名

 

Filter、NAT、Mangle、Raw

 

Filter为包过滤功能,不填默认为Filter

 

2、命令选项

 

Linux防火墙Iptables学习笔记

 

3、链名

 

可以根据数据流向来确定具体使用哪个链,在Filter中的使用情况如下:
INPUT链 - 处理来自外部的数据  OUTPUT链 - 处理向外发送的数据  FORWORD链 - 将数据转发到本机的其他网卡设备上

 

4、条件匹配

 

条件匹配分为基本匹配和扩展匹配,扩展匹配又分为隐式扩展和显示扩展。

 

a、基本匹配:

 

Linux防火墙Iptables学习笔记

 

b、隐式扩展:

 

Linux防火墙Iptables学习笔记

 

c、显示扩展

 

Linux防火墙Iptables学习笔记

 

5、目标值

 

数据包控制方式包括4种
ACCEPT:允许数据包通过  DROP:直接丢弃数据包,不给出任何回应信息  REJECT:拒绝数据包通过,必须时会给数据发送端一个响应信息  LOG:在/var/log/messages文件中记录日志信息,然后将数据包传给下一条规则  QUEUE:防火墙将数据包移交到用户空间  RETURN:防火墙停止执行当前链中的后续Rules,并返回到调用链

 

四、Iptables常见命令

 

1、删除现有规则
iptables -F

 

2、查看现有规则
iptables -L (iptables -L -v -n)

 

3、增加一条规则到最后
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

 

4、添加一条规则到指定位置
iptables -I INPUT 2 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

 

5、删除一条规则
iptables -D INPUT 2

 

6、修改一条规则
iptables -R INPUT 3 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

 

7、设置默认策略
iptables -P INPUT DROP

 

8、允许远程主机进行SSH连接
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT  iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

 

9、允许本地主机进行SSH连接
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT  iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state ESTABLISHED -j ACCEPT

 

10、允许HTTP请求
iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT  iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT

 

11、限制ping 某台主机的数据包数,平均2/s个,最多不能超过3个
iptables -A INPUT -i eth0 -d xx.xx.xx.xx -p icmp --icmp-type 8 -m limit --limit 2/second --limit-burst 3 -j ACCEPT

 

12、限制SSH连接速率
iptables -I INPUT 1 -p tcp --dport 22 -d xx.xx.xx.xx -m state --state ESTABLISHED -j ACCEPT  iptables -I INPUT 2 -p tcp --dport 22 -d xx.xx.xx.xx -m limit --limit 2/minute --limit-burst 2 -m state --state NEW -j ACCEPT

 

五、Iptables配置

 

1、删除现有规则
iptables -F

 

2、配置默认链策略
iptables -P INPUT DROP  iptables -P FORWARD DROP  iptables -P OUTPUT DROP

 

3、允许远程和本地主机SSH(参照上面8,9点)

 

4、允许HTTP请求(参照上面10点)

 

六、Iptables抵御常见攻击

 

1、防止syn攻击(限制单个ip的最大syn连接数)
iptables –A INPUT –i eth0 –p tcp --syn -m connlimit --connlimit-above 15 -j DROP

 

2、防止DOS攻击

 

a、利用recent模块抵御DOS攻击
iptables -I INPUT -p tcp -dport 22 -m connlimit --connlimit-above 3 -j DROP

 

b、单个ip对多连接3个会话
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH

 

c、只要是新的连接请求,就把它加入到SSH列表中

 

5分钟内你的尝试次数达到3次,就拒绝提供SSH列表中的这个IP服务。5分钟后即可恢复
iptables -I INPUT -p tcp --dport 22 -m state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP

 

3、防止单个IP访问量过大
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 30 -j DROP

 

4、防止ping攻击
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/m -j ACCEPT

热门栏目