iptables初步总结

原创 2015年07月08日 13:10:46

iptables是Linux中的防火墙,在Linux中可以过滤数据包。下面简单的介绍下iptables的应用。

①iptables在Linux中有五个钩子函数(hook function)

PREROUTING:数据包进入了主机,但是还没有被路由的阶段。

INPUT:数据包进入到主机内部。

FORWARD:数据包将由从本主机转发出去。

POSTROUTING:数据包马上由本级发送出去。

OUTPUT:数据包从本主机发送出去。

②iptables在Linux中的四个链

fileter:可以应用在 INPUT FORWARDOUTPUT上面

nat:可以应用在PREROUTINGPOSTROUTING OUTPUT上面

mangle:可以应用在PREROUTINGPOSTROUTING OUTPUT INPUT FORWARD。

raw:可以应用在PREROUTINGOUTPUT上面。

③iptables通用匹配

-s:指定过滤数据包的源地址。

-d:指定过滤数据包的目标地址。

-p:指定过滤的协议类型。

-i:指定过滤的数据包进入的网卡接口。

-o:指定过滤的数据包流出的网卡接口。

-j:对指定的数据包的动作

I:ACCEPT---------接受指定的数据包。

II:DROP----------丢弃指定的数据包。

III:REJECT-------丢弃指定的数据包。

eg:对192.168.5.1访问192.168.5.10的http数据包进行丢弃的操作

iptables –A INPUT –s 192.168.5.1 –d192.168.5.10 –p tcp --dport 80 –j DROP

eg:对192.168.5.1访问192.168.5.10的http数据包进行接受的动作

iptables –A INPUT –s 192.168.5.1 –d192.168.5.10 –p tcp –doprt 80 –j ACCEPT

iptables –A OUTPUT –s 192.168.5.10 –d192.168.5.1 –p tcp –sport 80 –j ACCEPT

在对接受的数据包进行处理的时候,需要注意的是数据包一来一回的双向处理。

对自定义的iptables规则就行保存

service iptables save

iptables –L –nv  --line-numbers //查看自定义的防火墙规则。

④管理规则

-A:添加一条规则,添加的位置在规则的末尾。

-I:添加一条规则,如果省略添加的位置,默认的添加的位置在规则的最上方。

-D:删除一条规则。

-R:对某条指定的规则进行修改。

对链进行管理:

-F:清空一条链上面的所有的规则。

-P:更改制定链的默认规则。

-N:自定义一条新的空链。

-X:删除一个自定义的空链。

 

 

⑤扩展选项使用

eg:对于http的服务请求,192.168.5.1服务器段进行连接状态的控制

iptables –A INPUT  -d 192.168.5.1 –p tcp –dport 80 –m state–state NEW,ESTABLISHED –j ACCEPT

iptables –A OUTPUT –s 192.168.5.1 –p tcp–sport 80 –m state –state ESTABLISHED –j ACCEPT

//服务器对于INPUT服务器的NEW和ESTABLISHED状态的报文给予响应,对于OUTPUTon服务器的报文只响应ESTABLISHED类型的报文。

eg:多端口的相应

iptables –A INPUT –d 192.168.5.1 –p tcp –m–multiport –destination-ports 21,22,80 –m state –state NEW,ESTABLISHED –jACCEPT

//在INPUT链上给予21,22,80端口并且是NEW或者是ESTABLISHED的报文放行处理。

eg:编写规则,一个IP地址的ssh连接最多可以有三个。当超过三个的时候过5分钟之后在进行连接处理。

iptables –A INPUT –d 192.168.5.1 –p tcp–dport 22 –m connlimit –connlimit-above 3 –j DROP

iptables –A INPUT –d 192.168.5.1 –p tcp–dport 22 –m state –state NEW –m recent –set –name SSH //记录访问ssh的新的连接,记录来源IP地址。

iptables –A INPUT –d 192.168.5.1 –p tcp–dport 22 –m state –state NEW –m recent –update –seconds 300 –hitcount 3 –nameSSH –j DROP //当超过三次之后,300秒内不许连接—seconds和—hitcount 必须和—update一起使用。

eg:在请求http的过程中,如果请求的页面还有H7N9则不允许显示

iptables –A OUTPUT –d 192.168.5.1 –p tcp–dport 80 –m string –algo kmp –string “H7N9” –j DROP

//注意方向是OUTPUT方向。

⑥nat:

DNAT:目标地址转换

SNAT:源地址转换

eg:访问外网时,将192.168.5.0/24地址转化为172.16.10.1

iptables –A POSTROUTING –s 192.168.5.0/24 –jSNAT –to-source 172.16.10.1

iptables –A POSTROUTING –s 192.168.5.0/24 –jSNAT MASQUERADE //如果需要转化的地址是一个动态变化的地址,那么可以使用MASQUERADE来进行自动的转换。

eg:当访问外放的服务器172.16.10.1的时候转换到内网的192.168.5.1进行访问

iptables –A PREROUTING –d 172.16.10.1 –p tcp–dport 80 –j DNAT –to-destination 192.168.5.1

同样可以进行端口映射

iptables –A PREROUTING –d 172.16.10.1 –p tcp–dport 80 –j DNAT –to-destination 192.168.5.1:8080

⑦在打开了iptables的过程中。利用lsmod|grepip 可以查看加载了那些模块。在Linux6.4系统中,在/proc/sys/net/nf_conntrack_max可以查看iptables允许的最大的连接数量。如果一个服务器非常繁忙的话,当连接数量超过了配置文件的数量的时候,那么就会有大量的请求被丢弃。在/proc/net/nf_conntrack中记录了当前连接的状态信息。这些状态信息也可以利用iptstate来查看。

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

利用iptables实现ip转发(实践总结)

用iptables通过IP forward实现。 首先是在内核中打开支持iptables的选项,可以把 Core Netfilter Configuration  ---> IP: Netfilter...
  • Gonefar
  • Gonefar
  • 2013年05月21日 19:27
  • 2407

Iptables学习总结

IPtables学习总结 参考文档:http://linux.ccidnet.com/art/737/20040317/96576_1.html                      ht...
  • onlysis
  • onlysis
  • 2011年12月18日 01:23
  • 1043

iptables总结脚本

# 此脚本是本人学习iptables时编写,并不适用其他机器,仅供学习参考编写策略: 默认策略为ACCEPT, 这里我没有更改默认策略,而是先允许指定的规则通过,然后再DROP所有tcp,udp,...
  • sl1248
  • sl1248
  • 2016年08月29日 09:58
  • 260

iptables加载模块实践总结

给iptables加载模块的方法: 1,首先,要编写出用户态的模块 .so, 这个模块把它放入iptables工具的lib中, 一般这个位置在 /lib/xtables中,如果是手动编译而且没有更改...

netfilter/iptables学习总结(一)

netfilter/iptables iptables命令行

linux的iptables防火墙总结

iptables就是一条条的规则,根据数据包的分析资料对比预先定义的规则内容,若数据包数据域规则内容相同则进行动作,否则就继续吓一跳规则的对比。重点在对比和分析的顺序。所以当规则的排列顺序错误的时候就...
  • sagata
  • sagata
  • 2013年08月29日 16:13
  • 533

iptables总结

1 iptables功能概述 iptables会对网络数据包进行匹配,符合条件的,则根据相应的处理动作来处理。 防火墙,限流限速等功能都可以用iptables完成。t...

iptables--知识总结1

iptables:包过滤型防火墙iptables/netfilter framework: netfilter hooks function 网络过滤器的框架 rule utils:iptables...

iptables--知识总结3(NAT)

nat: SNAT:只修改请求报文的源地址 DNAT:只修改请求报文的目的地址 源地址转换:iptables -t nat -A POSTROUTING -s 172.16.100.21 ! -d 1...

iptables和tc的使用及开发实例总结

iptables tc
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iptables初步总结
举报原因:
原因补充:

(最多只允许输入30个字)