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来查看。

 

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

相关文章推荐

HTML——温故而知新

HTML 1.软件的结构:            C/S(Client  Server)结构的软件:        &#...

UML初步总结

UML作为一个支持软件卡法的工具非常有效的提高了我们的软件开发效率。作为初学者,在UML视频看过后对它的认识总结为了一张思维导图。 1.UML具体讲解了相关的概念和UML的组成,UML(Un...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

IBatis——初步总结

IBatis是持久层的框架,也就是我们说的Dao层框架,关注数据库操作以及和Java对象之间的关联,我们将这样的框架也称之为ORM(Object/Relaction Mapping)框架.而这里映射...

Modbus初步总结

初学stm32一段时间,接到调试freemodbus协议的任务,c基础不是很好,表示压力很大,不过最近终于有了原形,整理如下:     调试modbus最简单的工具莫过于modbus调试精灵,傻瓜式...

iptables总结

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

iptables小总结

1、iptables四表五链四个表: filter:用于过滤 nat:用于nat功能(端口映射,地址映射等) mangle:用于对特定数据包的修改 raw:一般不让iptables做数据包的链接跟踪处...

Iptables学习总结

IPtables学习总结 参考文档:http://linux.ccidnet.com/art/737/20040317/96576_1.html             ...

linux中iptables总结

无论如何,iptables是一个需要特别谨慎设置的东西,万一服务器不在你身边,而你贸然设置导致无法SSH,那就等着被老板骂吧,呵呵。。。 一下内容是为了防止这种情况发生而写的,当然很初级,不过一般服...

iptables总结脚本

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

【xml】xml初步总结

xml在百度百科上的解释是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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