exe_07_iptables

合集下载

iptables的规则

iptables的规则

iptables的规则iptables是一种用于配置Linux内核防火墙规则的工具,它提供了一种对网络流量进行细粒度控制的方式,可以用于保护系统免受网络攻击,限制网络访问,实现网络地址转换等功能。

以下是iptables的一些常用规则:1. 清空规则并设置默认链策略:清空之前的规则,并设置默认链的策略。

2. 屏蔽指定的IP地址:阻止特定IP地址的访问。

3. 允许Ping测试:允许本机发起的Ping请求,以便于检测网络连接。

4. 允许环回访问:允许本机访问自身,以确保本地主机能够访问。

5. 允许SSH连接请求:允许SSH服务器的连接请求,以提供安全的远程登录。

6. 允许HTTP和HTTPS连接请求:允许Web服务的连接请求,以确保网络访问正常。

7. 允许出站DNS连接:允许本机发起的DNS查询请求,以实现域名解析。

8. 允许NIS连接:允许NIS服务的连接请求,以便于实现用户和主机信息的管理。

9. 允许IMAP和IMAPS:允许IMAP和IMAPS服务的连接请求,以确保邮件服务的正常运行。

10. 允许POP3和POP3S:允许POP3和POP3S服务的连接请求,以确保邮件服务的正常运行。

11. 防止DoS攻击:阻止恶意流量,以防止拒绝服务攻击。

12. 转发与NAT:实现网络地址转换,将私有IP地址映射到公共IP 地址。

13. 自定义链记录丢弃的数据包:根据需求定制丢弃特定类型的数据包。

iptables规则分为四个主要的表:filter表、nat表、mangle表和raw 表。

每个表包含多个链,链是规则的集合,用于定义数据包的处理流程。

常见的链包括INPUT(处理输入数据包)、OUTPUT(处理输出数据包)、FORWARD(处理转发数据包)等。

规则定义了数据包的匹配条件以及匹配条件满足时应该执行的动作。

需要注意的是,iptables规则的设置需要根据实际需求进行,以免影响正常网络服务。

在配置规则时,建议参考相关文档和示例,以确保防火墙策略的有效性。

iptables命令参数

iptables命令参数

iptables命令参数iptables命令是Linux系统中用于设置防火墙规则的工具,它允许用户通过在内核中的网络数据包传输路径上添加或删除规则来过滤、修改和重定向网络数据包。

iptables命令有许多参数可以用来指定具体的操作和规则。

下面是一些常用的iptables命令参数:1. -A或--append:添加规则到规则链的末尾。

例如,`iptables -A INPUT -s 192.168.0.1 -j DROP`将会添加一个规则,禁止来自IP地址为192.168.0.1的主机的所有入站连接。

2. -I或--insert:在规则链内指定的位置插入规则。

例如,`iptables -I INPUT3 -s 192.168.0.1 -j DROP`将会在INPUT链的第3个位置插入一个规则,禁止来自IP地址为192.168.0.1的主机的所有入站连接。

3. -D或--delete:从规则链中删除规则。

例如,`iptables -D INPUT -s 192.168.0.1 -j DROP`将会删除INPUT链中所有来自IP地址为192.168.0.1的主机的入站连接的规则。

4. -P或--policy:设置默认策略。

例如,`iptables -P INPUT ACCEPT`将会将INPUT链的默认策略设置为接受所有入站连接。

5. -s或--source:指定源IP地址或地址段。

例如,`iptables -A INPUT -s 192.168.0.0/24 -j DROP`将会添加一个规则,禁止来自192.168.0.0/24网段的主机的所有入站连接。

6. -d或--destination:指定目标IP地址或地址段。

例如,`iptables -AOUTPUT -d 192.168.0.1 -j DROP`将会添加一个规则,禁止所有出站连接到IP地址为192.168.0.1的主机。

7. -p或--protocol:指定要过滤的传输层协议,如TCP、UDP或ICMP。

Linux实验手册-07 iptables

Linux实验手册-07 iptables

完善............................................................................................................................... 5
场景 2:配置状态检查能提高安全性 .................................................................................... 6 2.1. 2.2. 需求............................................................................................................................... 6 实现............................................................................................................................... 7 2.2.1. 2.2.2. 添加 22 及 80 带状态检查的出站规则 ........................................................... 7 配置对 FTP 的支持 ........................................................................................... 8
1. 场景 1:主机的保护
1.1. 需求
场景:有一台 Linux 服务器(192.168.6.200),需要对外提供 Web 服务

iptables简介

iptables简介






-P, --policy chain target 为指定的链 chain 设置策略 target。注意,只有内置的链才允许有策略,用户自定义的 是不允许的。 例子: # iptables -P INPUT DROP -Z, --zero [chain] 把指定链,或者表中的所有链上的所有计数器清零。 例子: # iptables -Z INPUT 上面列出的都是对链或者表的操作,下面我们再来看一下对规则进行操作的基本选项: -p, --protocol [!] proto 指定使用的协议为 proto ,其中 proto 必须为 tcp udp icmp 或者 all ,或者表示某个协 议的数字。如果 proto 前面有“!”,表示对取反。 例子: # iptables -A INPUT -p tcp [...] -j, --jump target 指定目标,即满足某条件时该执行什么样的动作。target 可以是内置的目标,比如 ACCEPT,也可以是用户自定义的链。 例子: # iptables -A INPUT -p tcp -j ACCEPT -s, --source [!] address[/mask] 把指定的一个/一组地址作为源地址,按此规则进行过滤。当后面没有 mask 时, address 是一个地址,比如:192.168.1.1;当 mask 指定时,可以表示一组范围内的 地址,比如:192.168.1.0/255.255.255.0。 例子: # iptables -A INPUT -s 192.168.1.1/24 -p tcp -j DROP





-d, --destination [!] address[/mask] 地址格式同上,但这里是指定地址为目的地址,按此进行过滤。 例如: # iptables -A INPUT -d 192.168.1.254 -p tcp -j ACCEPT -i, --in-interface [!] name 指定数据包的来自来自网络接口,比如最常见的 eth0 。注意:它只对 INPUT, FORWARD,PREROUTING 这三个链起作用。如果没有指定此选项,说明可以来自 任何一个网络接口。同前面类似,“!” 表示取反。 例子: # iptables -A INPUT -i eth0 -o, --out-interface [!] name 指定数据包出去的网络接口。只对 OUTPUT,FORWARD,POSTROUTING 三个链 起作用。 例如: # iptables -A FORWARD -o eth0 --source-port,--sport port[:port] 在 tcp/udp/sctp 中,指定源端口。冒号分隔的两个 port 表示指定一段范围内的所有端 口,大的小的哪个在前都可以,比如: “1:100” 表示从1号端口到100号(包含边界), 而 “:100” 表示从 0 到 100,“100:”表示从100到65535。 例子: # iptables -A INPUT -p tcp --sport 22 -j REJECT --destination-port,--dport port[,port] 指定目的端口,用法和上面类似,但如果要指定一组端口,格式可能会因协议不同而 不同,注意浏览 iptables 的手册页。 例如: # iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables 原理

iptables 原理

iptables 原理介绍iptables是一个用于配置Linux内核防火墙的工具。

它是在Linux操作系统中实现防火墙功能的重要组件。

通过iptables,我们可以定义一系列的规则,来过滤网络数据包并进行转发。

本文将深入探讨iptables的原理和工作流程。

iptables 工作原理iptables的工作原理可以分为三个步骤:输入、处理和输出。

当一个数据包进入防火墙时,iptables首先根据一系列的规则进行输入过滤,然后对数据包进行处理,最后再根据规则进行输出过滤。

下面将对每个步骤进行详细说明。

输入过滤输入过滤是iptables的第一步。

当一个数据包进入防火墙时,iptables会按照预定义的规则表对数据包进行匹配。

规则表是由多个链组成的,每个链包含多条规则。

如果数据包与某个规则匹配,那么iptables会根据规则定义的动作来处理数据包,比如允许数据包通过或者丢弃数据包。

如果数据包与规则表中的规则都不匹配,那么iptables会根据默认策略来处理数据包。

处理数据包处理数据包是iptables的第二步。

在这一步,iptables会根据规则表中的匹配规则对数据包进行处理。

处理过程中,iptables会修改数据包的头部信息,比如源IP地址、目的IP地址、源端口、目的端口等。

iptables也可以对数据包进行连接追踪,以便后续的数据包可以根据连接状态进行处理。

输出过滤输出过滤是iptables的最后一步。

当经过处理后的数据包准备离开防火墙时,iptables会在输出链中寻找匹配的规则。

如果找到匹配的规则,iptables会根据规则定义的动作来处理数据包。

如果没有找到匹配的规则,那么iptables会根据默认策略来处理数据包。

iptables规则表由多个链组成,每个链由一系列规则构成。

根据数据包的流向和处理过程,iptables定义了几个重要的链,包括INPUT、FORWARD、OUTPUT等。

下面将对这些链进行详细介绍。

iptables详解及一些常用规则

iptables详解及一些常用规则

iptables详解及⼀些常⽤规则iptables简介netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防⽕墙,与⼤多数的Linux软件⼀样,这个包过滤防⽕墙是免费的,它可以代替昂贵的商业防⽕墙解决⽅案,完成封包过滤、封包重定向和⽹络地址转换(NAT)等功能。

iptables基础规则(rules)其实就是⽹络管理员预定义的条件,规则⼀般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。

规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、⽬的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。

当数据包与规则匹配时,iptables就根据规则所定义的⽅法来处理这些数据包,如放⾏(accept)、拒绝(reject)和丢弃(drop)等。

配置防⽕墙的主要⼯作就是添加、修改和删除这些规则。

iptables和netfilter的关系:这是第⼀个要说的地⽅,Iptables和netfilter的关系是⼀个很容易让⼈搞不清的问题。

很多的知道iptables却不知道netfilter。

其实iptables只是Linux防⽕墙的管理⼯具⽽已,位于/sbin/iptables。

真正实现防⽕墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。

iptables传输数据包的过程①当⼀个数据包进⼊⽹卡时,它⾸先进⼊PREROUTING链,内核根据数据包⽬的IP判断是否需要转送出去。

②如果数据包就是进⼊本机的,它就会沿着图向下移动,到达INPUT链。

数据包到了INPUT链后,任何进程都会收到它。

本机上运⾏的程序可以发送数据包,这些数据包会经过OUTPUT链,然后到达POSTROUTING链输出。

③如果数据包是要转发出去的,且内核允许转发,数据包就会如图所⽰向右移动,经过FORWARD链,然后到达POSTROUTING链输出。

iptables重置规则

iptables重置规则

iptables重置规则在网络安全领域中,iptables是一种非常重要的工具,它可以用于配置Linux系统的防火墙规则。

通过使用iptables,管理员可以控制系统对网络流量的访问和传输,从而提高系统的安全性。

本文将介绍如何使用iptables重置规则,以确保系统的安全性和稳定性。

我们需要了解什么是iptables。

iptables是Linux系统中的防火墙工具,它可以控制网络流量的传输,并根据管理员的配置规则来决定是否允许或拒绝某个连接。

通过使用iptables,管理员可以限制特定IP地址或端口的访问,阻止潜在的攻击者入侵系统。

要重置iptables规则,我们首先需要了解当前系统的规则设置。

可以使用以下命令查看当前系统的iptables规则:```iptables -L```该命令将显示当前系统的所有规则,包括允许和拒绝的连接。

管理员可以根据需要对这些规则进行修改或删除。

要重置iptables规则,可以使用以下命令:```iptables -F```该命令将清除所有当前的iptables规则,并将系统的防火墙设置为默认状态。

这意味着所有的连接都将被允许,系统将不再对流量进行过滤。

重置iptables规则可能会对系统的安全性产生一定的影响,因此在执行此操作之前,管理员应该仔细考虑,并确保系统的其他安全措施已经完善。

在重置iptables规则后,管理员可以根据实际需求重新配置规则。

可以使用以下命令添加新的规则:```iptables -A <链名> -p <协议> --dport <端口号> -j <动作>```其中,<链名>是要添加规则的链的名称,可以是INPUT、OUTPUT 或FORWARD;<协议>是要限制的流量的协议,如TCP、UDP或ICMP;<端口号>是要限制的端口号;<动作>是要对流量采取的措施,如ACCEPT(允许)或DROP(拒绝)。

iptables查看或添加规则

iptables查看或添加规则

iptables查看或添加规则iptables是一个用于Linux系统的防火墙工具,可以用于查看和管理网络数据包的流量。

它可以防止未经授权的访问,保护计算机和网络的安全。

一、查看iptables规则使用以下命令可以查看当前系统的iptables规则:```iptables -L```这个命令会列出当前系统中所有的iptables规则,包括输入、输出和转发规则。

每个规则包含了源IP地址、目标IP地址、协议类型、端口号等信息。

这些规则是按照优先级顺序排列的,从上到下依次检查,直到找到与数据包匹配的规则。

如果想查看某个特定链的规则,可以使用以下命令:```iptables -L <chain_name>```其中,<chain_name>是链的名称,比如INPUT、OUTPUT或FORWARD。

二、添加iptables规则使用以下命令可以添加iptables规则:```iptables -A <chain_name> -p <protocol> --dport <port> -j <target>```其中,<chain_name>是要添加规则的链的名称,比如INPUT、OUTPUT或FORWARD;<protocol>是要过滤的协议类型,比如tcp、udp;<port>是要过滤的端口号;<target>是规则匹配时要执行的操作,比如ACCEPT、DROP。

例如,要添加一个允许所有TCP流量通过80端口的规则,可以使用以下命令:```iptables -A INPUT -p tcp --dport 80 -j ACCEPT```这个命令将在INPUT链中添加一个规则,允许所有TCP流量通过80端口。

三、保存iptables规则为了避免系统重启后iptables规则丢失,需要将当前的规则保存到文件中。

iptables配置操作方法步骤

iptables配置操作方法步骤

iptables配置操作方法步骤防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。

下面小编就为大家带来一篇iptables配置(/etc/sysconfig/iptables)操作方法。

小编觉得挺不错的,现在就分享给大家,也给大家做个参考。

一起跟随小编过来看看吧具体步骤iptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A OUTPUT -p tcp --sport 22 -j ACCEPT#保存sudo /etc/rc.d/init.d/iptables save或sudo service iptables save#重启iptablessudo service iptables restart#查看sudo iptables --line-numbers -n -L#关闭防火墙sudo service iptables stopsudo chkconfig iptables offsudo service ip6tables stopsudo chkconfig ip6tables offsudo setenforce 0sudo getenforce#查看 vi /etc/selinux/config 确保以下内容SELINUX=disabled#查看是否是关闭。

sudo chkconfig iptables --list补充阅读:防火墙主要使用技巧一、所有的防火墙文件规则必须更改。

尽管这种方法听起来很容易,但是由于防火墙没有内置的变动管理流程,因此文件更改对于许多企业来说都不是最佳的实践方法。

如果防火墙管理员因为突发情况或者一些其他形式的业务中断做出更改,那么他撞到枪口上的可能性就会比较大。

Linux命令高级技巧使用iptables命令配置和管理防火墙规则

Linux命令高级技巧使用iptables命令配置和管理防火墙规则

Linux命令高级技巧使用iptables命令配置和管理防火墙规则Linux系统中有许多命令可以使用,其中iptables命令是用于配置和管理防火墙规则的重要工具。

本文将介绍一些使用iptables命令的高级技巧,帮助读者更好地理解和使用这个命令。

一、iptables命令简介iptables是一个用于IPv4包过滤和控制Linux内核防火墙服务的用户空间工具。

它可以进行网络地址转换(NAT)、数据包过滤、端口重定向等操作,是保护计算机系统免受恶意攻击的重要工具。

二、iptables命令基本语法iptables命令的基本语法如下所示:iptables [选项] [链] [规则规格]其中,选项是可选的,用于指定不同的功能;链用于指定规则要应用的链,例如INPUT、FORWARD、OUTPUT等;规则规格用于指定具体的防火墙规则。

三、iptables命令常用选项1. -A:追加一条规则到某个链的末尾2. -I:向某个链中的指定位置插入一条规则3. -D:从某个链中删除一条规则4. -P:设置某个链的默认策略5. -L:列出某个链中的所有规则6. -F:清除某个链中的所有规则四、iptables命令高级技巧1. 配置端口转发使用iptables命令可以轻松实现端口转发,将外部请求转发到内部服务器。

例如,要将外部的SSH请求转发到内部服务器的SSH端口,可以使用如下命令:iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 内部服务器IP地址:22这样,外部用户连接到本机的22端口时,请求将被转发至内部服务器的22端口。

2. 过滤IP地址通过iptables命令,可以方便地过滤特定的IP地址或IP地址段。

例如,要拒绝来自某个IP地址的所有请求,可以使用如下命令:iptables -A INPUT -s 某个IP地址 -j DROP这样,来自该IP地址的请求将被直接拒绝。

Linux命令高级技巧使用iptables命令进行网络防火墙的高级配置和管理

Linux命令高级技巧使用iptables命令进行网络防火墙的高级配置和管理

Linux命令高级技巧使用iptables命令进行网络防火墙的高级配置和管理Linux命令高级技巧:使用iptables命令进行网络防火墙的高级配置和管理在现代网络环境下,网络安全已经成为了一个非常重要的议题。

为了保护网络的安全性,人们采取了各种手段,其中防火墙是最重要的一项。

在Linux系统中,iptables命令是一种非常强大的工具,可以用于配置和管理网络防火墙。

本文将介绍iptables命令的高级技巧,以帮助读者更好地使用它来保护自己的网络。

一、iptables简介iptables是一个基于Linux内核的防火墙软件,可以通过过滤和转发数据包来实现网络的安全访问控制。

它是Linux系统中最重要的网络安全工具之一,具有强大的功能和灵活的配置选项。

iptables命令可以通过创建规则来过滤和修改数据包,从而实现对网络流量的控制。

二、iptables的基本用法1. 查看当前iptables规则使用以下命令可以查看当前系统的iptables规则:```shelliptables -L```该命令将列出当前系统中所有的iptables规则。

2. 添加和删除规则可以使用iptables命令来添加和删除iptables规则。

下面是一些常用的命令示例:```shelliptables -A INPUT -s 192.168.0.0/24 -j ACCEPT```这个命令将允许来自192.168.0.0/24网段的所有数据包进入系统。

"-A"参数表示添加规则,"-s"参数指定数据包的源地址,"-j ACCEPT"表示接受数据包。

如果要删除一条规则,可以使用以下命令:```shelliptables -D INPUT -s 192.168.0.0/24 -j ACCEPT```该命令将删除上述添加的规则。

3. 修改默认规则默认情况下,iptables会阻止所有未匹配规则的数据包。

iptables命令详解附实例

iptables命令详解附实例
-s 192.168.0.0/16 匹配来自 192.168.0.0/16 网络的数据包
-d:匹配目的地址,可以是 IP、NET、DOMAIN,也可以空
例如:
-d 202.106.0.20 匹配去往 202.106.0.20 的数据包
-d 202.106.0.0/16 匹配去往 202.106.0.0/16 网络的数据包
例如:
iptables -t filter -A INPUT -j DROP
在 filter 表的 INPUT 链里追加一条规则(作为最后一条规则)
匹配所有访问本机 IP 的数据包,匹配到的丢弃
-I 链名 [规则号码]
INSERT,插入一条规则
例如:
iptables -I INPUT -j DROP
注意:
当数据包没有被规则列表里的任何规则匹配到时,按此默认规则处理
-F [链名]
FLUSH,清空规则
例如:
iptables -F INPUT
清空 filter 表 INPUT 链中的所有规则
iptables -t nat -F PREROUTING
清空 nat 表 PREROUTING 链中的所有规则
注意:
1、-F 仅仅是清空链中规则,并不影响 -P 设置的默认规则
2、-P 设置了 DROP 后,使用 -F 一定要小心!!!
3、如果不写链名,默认清空某表里所有链里的所有规则
-[vxn]L
-L 列出规则
·流入、流出接口(-i、-o)
·来源、目的地址(-s、-d)
·协议类型 (-p)
·来源、目的端口(--sport、--dport)

如何使用iptables命令在Linux中配置防火墙和网络转发

如何使用iptables命令在Linux中配置防火墙和网络转发

如何使用iptables命令在Linux中配置防火墙和网络转发由于网络安全的重要性日益凸显,配置防火墙和网络转发成为Linux系统管理员必备的技能之一。

在Linux系统中,iptables命令提供了灵活的方式来配置防火墙规则和网络转发设置。

本文将介绍如何使用iptables命令来完成这些任务。

一、什么是iptables命令iptables是Linux操作系统中一个非常强大的防火墙工具,它可以通过管理网络数据包的流动来控制网络访问权限。

iptables命令可以根据预先定义的规则集过滤网络数据包,拒绝无效或危险的连接,从而保护系统的安全性。

二、基本概念与术语在开始使用iptables命令之前,我们需要了解一些基本的概念和术语。

1. 表(Table):iptables命令使用表来组织和管理规则。

常用的表有:filter、nat和mangle等。

2. 链(Chain):每个表都包含多个链,链是规则的组合。

常用的链有:INPUT、FORWARD和OUTPUT等。

3. 规则(Rule):规则是iptables命令的基本单位,它定义了针对网络数据包的动作和匹配条件。

4. 动作(Action):动作定义了对匹配到的数据包的处理方式,常见的动作有:ACCEPT、DROP和REJECT等。

5. 匹配条件(Match):匹配条件定义了规则在应用到数据包时需要满足的条件。

常见的匹配条件有:source、destination和protocol等。

三、配置防火墙规则配置防火墙规则是保护系统安全的第一步。

使用iptables命令可以轻松地添加、修改和删除防火墙规则。

1. 查看当前防火墙规则首先,我们需要查看当前的防火墙规则,可以使用以下命令:```iptables -L```该命令将列出当前的防火墙规则,包括表、链、规则和动作等信息。

2. 添加规则要添加一个防火墙规则,可以使用以下命令:```iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT```该命令将允许来自192.168.0.0/24网段的TCP连接访问本地的SSH 服务。

iptables防火墙用法

iptables防火墙用法

iptables是一种Linux下的防火墙工具,它可以对网络数据包进行过滤、修改和转发等操作,以实现网络安全和数据传输控制的功能。

下面是iptables的一些常用用法:1. 添加规则:iptables -A INPUT -p tcp --dport 22 -j ACCEPT这条命令将添加一条规则,允许TCP协议的数据包通过端口22(SSH 默认端口)。

其中,-A表示添加规则,INPUT表示规则应用于输入链,-p tcp指定协议为TCP,--dport 22指定目标端口为22,-j ACCEPT表示接受该数据包。

2. 删除规则:iptables -D INPUT -p tcp --dport 22 -j ACCEPT这条命令将删除之前添加的允许TCP协议的数据包通过端口22的规则。

其中,-D表示删除规则,其他参数与添加规则时相同。

3. 禁止访问特定IP地址:iptables -A INPUT -s 192.168.0.100 -j DROP 这条命令将禁止来自IP地址为192.168.0.100的数据包通过防火墙。

其中,-s指定源IP地址,-j DROP表示丢弃该数据包。

4. 允许访问特定IP地址:iptables -A INPUT -s 192.168.0.100 -j ACCEPT这条命令将允许来自IP地址为192.168.0.100的数据包通过防火墙。

其中,-s指定源IP地址,-j ACCEPT表示接受该数据包。

5. 清除所有规则:iptables -F这条命令将清除所有iptables规则。

其中,-F表示清空所有链的规则。

6. 保存规则:service iptables save这条命令将保存当前iptables规则到文件中,以便在系统重启后恢复。

其中,service表示调用系统服务,iptables表示要操作的防火墙服务,save表示保存规则。

这只是iptables的一些常用用法示例,实际上iptables还有更多功能和选项可以使用。

iptables 工作原理

iptables 工作原理

iptables 工作原理iptables 是 Linux 系统上的一个强大的防火墙工具。

它通过对网络数据包的过滤和处理,来实现安全策略的设定和网络流量控制。

iptables 的工作原理如下:1. 数据包流经网络接口时,会首先经过iptables 防火墙规则链。

这些链包括INPUT(入站数据包)、OUTPUT(出站数据包)和FORWARD(转发数据包)。

2. 在每个链中,iptables 会按照预先设定的规则集来处理数据包流量。

每个规则都包含一系列的匹配条件和对应的动作。

3. 当一个数据包到达 iptables,首先会进入 INPUT 链。

iptables 会按照规则集中的条件逐一匹配,直到找到一个匹配的规则。

4. 如果存在匹配规则,iptables 将对应的动作应用于数据包。

这些动作可以是接受(ACCEPT)数据包、丢弃(DROP)数据包、拒绝(REJECT)数据包等。

5. 如果数据包没有匹配到任何规则,iptables 将会根据默认策略继续处理数据包。

默认策略可以是接受或丢弃数据包。

6. 类似地,出站数据包将会进入 OUTPUT 链,转发数据包将会进入 FORWARD 链。

iptables 会根据这些链中的规则逐一匹配并应用动作。

7. 在规则集中,iptables 支持各种条件的匹配,如目标 IP 地址、端口号、协议类型、数据包长度等。

它还支持网络地址转换(NAT)、端口转发、连接状态追踪等高级功能。

通过有效地配置 iptables 规则,可以实现对网络流量的细粒度控制,保护网络免受恶意攻击,并确保网络的稳定和安全运行。

iptables常用规则

iptables常用规则

iptables常用规则iptables是一个用于Linux系统的防火墙工具,它可以帮助我们设置和管理网络流量的过滤规则。

通过使用iptables,我们可以实现对网络连接的控制和管理,保护我们的服务器和网络环境的安全。

下面将介绍一些常用的iptables规则。

1. 允许指定IP地址的访问iptables -A INPUT -s 192.168.1.100 -j ACCEPT这条规则允许来自IP地址为192.168.1.100的主机的所有访问。

-A 表示添加一条规则,-s表示源IP地址,-j表示接受。

2. 允许指定端口的访问iptables -A INPUT -p tcp --dport 80 -j ACCEPT这条规则允许TCP协议的80端口的访问。

--dport表示目标端口。

3. 拒绝所有的访问iptables -P INPUT DROP这条规则将默认输入链的策略设置为拒绝所有的访问。

-P表示设置默认策略,DROP表示拒绝。

4. 允许已建立的连接通过iptables -A INPUT -m state --state ESTABLISHED,RELATED -jACCEPT这条规则允许已建立的连接和相关的连接通过。

-m state表示使用状态模块,--state表示连接状态,ACCEPT表示接受。

5. 允许回环接口的访问iptables -A INPUT -i lo -j ACCEPT这条规则允许回环接口的访问。

-i表示输入接口,lo表示回环接口。

6. 允许某个网段的访问iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT这条规则允许192.168.0.0/24网段的访问。

/24表示子网掩码为255.255.255.0。

7. 拒绝某个IP地址的访问iptables -A INPUT -s 192.168.1.200 -j DROP这条规则拒绝来自IP地址为192.168.1.200的主机的所有访问。

iptables命令使用详解

iptables命令使用详解

iptables命令使⽤详解iptables命令使⽤详解iptables的主要功能是实现对⽹络数据包进出设备及转发的控制。

当数据包需要进⼊设备、从设备中流出或者经该设备转发、路由时,都可以使⽤iptables进⾏控制。

环境操作系统:CentOS7.3ip地址:172.16.55.71.iptables中的“四表五链”及“堵通策略”A.“四表”是指,iptables的功能——filter, nat, mangle, raw. filter, 控制数据包是否允许进出及转发(INPUT、OUTPUT、FORWARD),可以控制的链路有input, forward, output nat, 控制数据包中地址转换,可以控制的链路有prerouting, input, output, postrouting mangle,修改数据包中的原数据,可以控制的链路有prerouting, input, forward, output, postrouting raw,控制nat表中连接追踪机制的启⽤状况,可以控制的链路有prerouting, output 注:在centos7中,还有security表,不过这⾥不作介绍B.“五链”是指内核中控制⽹络的NetFilter定义的五个规则链,分别为 PREROUTING, 路由前 INPUT, 数据包流⼊⼝ FORWARD, 转发管卡 OUTPUT, 数据包出⼝ POSTROUTING, 路由后C.堵通策略是指对数据包所做的操作,⼀般有两种操作——“通(ACCEPT)”、“堵(DROP)”,还有⼀种操作很常见REJECT.谈谈REJECT和DROP之间的区别,Ming写了⼀封信,向Rose⽰爱。

Rose如果不愿意接受,她可以不回应Ming,这个时候Ming不确定Rose 是否接到了信;Rose也可以同样写⼀封信,在信中明确地拒绝Ming。

前⼀种操作就如同执⾏了DROP操作,⽽后⼀种操作就如同REJECT 操作。

iptables工作原理

iptables工作原理

iptables工作原理
iptables是一个用于Linux系统中的防火墙工具,它基于规则集来管理网络数据包的流动。

iptables工作原理主要包括以下几个步骤:
1. 数据包的进入:当一个数据包到达Linux系统时,iptables 首先会检查这个数据包是否与任何现有连接匹配,如果匹配,则会根据连接表中的状态进行相应的处理,如允许通过或丢弃等。

2. 数据包的检查:如果数据包没有与任何现有连接匹配,iptables会将数据包逐一与规则集中的规则进行匹配。

规则集中的规则按照优先级顺序依次进行检查,直到找到与数据包匹配的规则。

3. 规则匹配:iptables根据规则中定义的一系列条件来判断数据包是否与规则匹配。

这些条件可以包括源IP地址、目标IP 地址、协议类型、端口号等。

4. 规则执行:如果数据包与某个规则匹配,iptables会根据规则中定义的操作来执行相应的动作,如允许通过、丢弃、重定向等。

5. 数据包的操作:根据规则执行的结果,iptables对数据包进行相应的操作。

如果允许通过的话,数据包将继续传输到目标地址;如果丢弃的话,数据包将被丢弃,不再传输;如果重定向的话,数据包将被重新定向到指定的地址。

通过以上步骤,iptables可以根据用户的配置来管理网络数据包的流动,从而实现防火墙的功能。

这些配置可以在命令行中使用iptables命令来操作,也可以保存在配置文件中,以便系统重新启动后自动加载。

简述iptables的工作流程

简述iptables的工作流程

iptables是一个Linux系统下用于对数据包进行过滤、网络位置区域转换和基于端口的转发的工具。

它是一个非常强大的防火墙工具,在网络安全领域被广泛应用。

iptables的工作流程可以简单地分为以下几个步骤:1. 数据包到达网络接口时,首先会经过内核中的网络栈进行处理,然后被传递到iptables进行过滤和处理。

2. 第一步是数据包经过PREROUTING链,在此链中可以进行的操作包括目标位置区域转换(DNAT)、端口转发等。

3. 经过PREROUTING链之后,数据包会被传递到FORWARD链,该链用来处理不是发往本机的数据包,而是需要转发给其他主机的数据包。

4. 当数据包经过FORWARD链之后,如果通过了过滤规则的检查,那么就会被传递到POSTROUTING链,这个链可以进行源位置区域转换(SNAT)等操作。

5. 数据包会传递到OUTPUT链,用来处理发出本机的数据包。

6. 在经过以上的过滤链之后,数据包的处理就完成了。

总结来说,iptables的工作流程是先经过PREROUTING链或OUTPUT链处理进出本机的数据包,然后再经过FORWARD链进行转发的处理。

在每个链中,都可以根据设定的规则对数据包进行过滤或进行位置区域和端口的转换操作,从而保障网络的安全和合理的数据传输。

iptables工作流程清晰,功能强大,是Linux系统网络安全的重要工具。

iptables作为Linux下的防火墙解决方案,具有非常广泛的应用。

它能够根据网络数据包的源位置区域、目标位置区域、端口号等信息进行灵活的过滤和转发操作,从而有效地保护计算机和网络免受恶意攻击和未经授权的访问。

下面将进一步扩展探讨iptables的工作流程和其在网络安全中的重要性。

1. iptables的工作原理iptables是建立在Linux内核网络层的防火墙工具,可以通过命令行或配置文件来设置和管理防火墙规则,以控制数据包的流向和处理方式。

iptables用法和介绍

iptables用法和介绍

iptables⽤法和介绍参考视频:/video/BV12f4y1q73o?from=search&seid=11667345261719018642&spm_id_from=333.337.0.01.阿⾥云故障案例搭建keepalived推出havip,19年⽆法使⽤只能使⽤阿⾥云⾃⼰推出的slb负载均衡2.阿⾥云的iptables防⽕墙屏蔽/放⾏端⼝ IP 都可以正常使⽤ iptables共享上⽹端⼝转发/映射⽆法使⽤阿⾥云NAT⽹关,可以实现iptables共享上⽹端⼝转发/映射⽆法使⽤3.阿⾥云云盾故障导致⽤户使⽤什么命令,云盾就删除什么命令时刻备份好数据防⽕墙⼀些名词容器:存放东西表(table):存放链的容器链(chain):存放规则的容器规则(policy):准许或拒绝规则Netfilter 表(tables)链(chain)规则(policy)⼀栋楼楼⾥的房⼦房⼦⾥的柜⼦柜⼦⾥的⾐服,摆放规则⼀:iptables1.iptables⼯作流程1).防⽕墙是层层过滤的,实际是按照配置规则的顺序从上⽽下,从前到后进⾏过滤的2).如果匹配上规则,即明确表⽰是阻⽌还是通过,数据包就不再向下匹配新的规则3).如果规则中没有明确表明是阻⽌还是通过,也就是没有匹配规则,向下进⾏匹配,直到匹配默认规则得到明确的阻⽌还是通过4).防⽕墙的默认规则是所有规则执⾏完才执⾏的注意:屏蔽规则都是放在最上⾯2.表与链简介:iptables 是 4表五链4表: filter表 nat表 raw表 mangle表filter表:负责过滤功能,防⽕墙;内核模块:iptables_filternat表: network address translation,⽹络地址转换功能;内核模块:iptable_natmangle表拆解报⽂,做出修改,并重新封装的功能;iptable_mangleraw表:关闭nat表上启⽤的连接追踪机制;iptable_raw1)filter表防⽕墙:屏蔽或允许端⼝ IPfilter表强调:主要和主机⾃⾝有关,真正负责主机防⽕墙功能的(过滤流⼊流出的数据包) filter表⽰iptanles默认使⽤的表,这个表定义了三个链(chains)企业⼯作场景:主机防⽕墙INPUT 负责过滤所有⽬标地址是本机地址的数据包通俗来说:就是过滤主机的数据包FORWARD 负责转发流经主机的数据包,起转发的作⽤,和NAT关系很⼤ LVS NAT模式,net.ipv4.ip_forward=0OUTPU 处理所有源地址是本机地址的数据包通俗讲:就是处理从主机发出去的数据包2)nat表实现nat功能实现共享上⽹(内⽹服务器上外⽹)端⼝映射ip映射nat 负责⽹络地址转换的,即来源与⽬的IP地址和port的转换应⽤:和主机本⾝⽆关,⼀般⽤于局域⽹共享上⽹或者特殊的端⼝转换服务相关⼯作场景:1.⽤于企业路由(zebra)或⽹关(iptables),共享上⽹(POSTROUTING)2.做内部外部IP地址⼀对⼀映射(dmz),硬件防⽕墙映射IP到内部服务器,ftp服务(PREROUTING)3.WEB,单个端⼝的映射,直接映射80端⼝(PREROUTING)这个表定义了3个链,nat功能相当于⽹络的acl控制,和⽹络交换机acl类似OUTPUT 和主机放出去的数据包有关,改变主机发出数据包的⽬的地址PREROUTING 在数据包到达防⽕墙时,进⾏路由判断之前执⾏的规则,作⽤是改变数据包的⽬的地址,⽬的端⼝等(端⼝转发)PORTROUTING 在数据包离开防⽕墙时,进⾏路由判断之后执⾏的规则,作⽤是改变数据包的⽬的地址,⽬的端⼝等⽣产应⽤:局域⽹共享上⽹查看是否加载iptables相关模块到内核[root@node1 ~]# lsmod | egrep 'filter|nat|ipt'iptable_filter 16384 1iptable_nat 16384 1nf_nat 40960 2 iptable_nat,xt_MASQUERADEnf_conntrack 147456 4 xt_conntrack,nf_nat,nf_conntrack_netlink,xt_MASQUERADEip_tables 28672 2 iptable_filter,iptable_natlibcrc32c 16384 3 nf_conntrack,nf_nat,xfs其中iptables_filter和iptables_nat为核⼼,缺少就⽆法使⽤[root@node1 ~]# systemctl stop firewalld[root@node1 ~]# systemctl disable firewalld然后开启iptables[root@node1 ~]# systemctl start iptables[root@node1 ~]# systemctl enable iptables[root@node1 ~]# iptables -nL 说明:-n是把服务名字转换为端⼝,-L是列出,iptables默认是filter表Chain INPUT (policy ACCEPT)target prot opt source destinationACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0ACCEPT all -- 0.0.0.0/0 0.0.0.0/0ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT)target prot opt source destinationREJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT)target prot opt source destination3.iptables命令参数参数含义-L 显⽰表中的所有规则-n 不要把端⼝或ip反向解析为名字-t 指定表不指定默认为filter表-A append追加,加⼊准许类规则-D delete删除 -D INPUT 1-I insert拒绝类规则放在所有规则最上⾯拒绝类参数含义-p 协议protocal tcp/udp/icmp/all--dport ⽬标端⼝ dest destination 指定端⼝加上协议-p tcp--sport 源端⼝ source 源-s --source 源ip-d --destination ⽬标ip-m 指定模块 multiport(指定多个端⼝)-i input 输⼊的时候从哪个⽹卡进来-o ouput 输出的时候从那个⽹卡出去参数含义-j 满⾜条件后的动作:DROP/ACCEPT/REJECTDROP PEJECT 都是拒绝DROP 会把数据丢掉,不会返回信息给⽤户PEJECT 拒绝返回拒绝信息参数含义-F flush 清除所有规则,不会处理默认规则-X 删除⽤户⾃定义的链-Z 链的计数器清零(数据包计数器与数据包字节计数器)4.配置filter表规则正式配置之前先备份,再清空规则[root@node1 ~]# iptables -F 清除所有规则,不会处理默认规则[root@node1 ~]# iptables -X 删除⽤户⾃定义的链[root@node1 ~]# iptables -Z 链的计数器清零(数据包计数器与数据包字节计数器)[root@node1 ~]# iptables -nL 清空之后的样⼦,然后再进⾏配置Chain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination案例:禁⽌访问22端⼝[root@node1 ~]# iptables -A INPUT -p tcp --dport 22 -j DROP说明:-A 后⾯写链名(追加,允许类规则⽤A) INPUT是链名 -p是添加tcp协议 --dport是⽬标端⼝ -j就是说明后⾯是允许还是拒绝-p 协议tcp/udp/icmp(ping命令拒绝访问)/all--dport ⽬标端⼝,指定端⼝加上协议 -p tcp--sport 源端⼝查看iptables表的顺序[root@node1 ~]# iptables -nL --line-number[root@node1 ~]# iptables -D INPUT 1说明:-D 后⾯写链名(删除类规则⽤D) 1是规则表的序号5.屏蔽某个ip[root@node1 ~]# iptables -I INPUT -s 192.168.20.22 -j DROP说明:-I -s 后⾯加IP 由于禁⽌的是IP所以不需要加端⼝[root@node1 ~]# iptables -nLChain INPUT (policy ACCEPT)target prot opt source destinationDROP all -- 192.168.20.22 0.0.0.0/0Chain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination[root@node1 ~]# iptables -D INPUT 1 删除规则表的禁⽌192.168.20.21的这⾏6.禁⽌某个⽹段连⼊(禁⽌192.168.20.0/24⽹段访问8888端⼝)iptables -I INPUT -s 192.168.20.0/24 -p tcp --dport 8888 -j DROP7.只允许某个⽹段连⼊(允许192.168.20.0⽹段)allow 192.168.20.0/24;deny all;⽅法1:利⽤!进⾏排除iptables -I INPUT ! -s 192.168.20.0/24 -j DROP⽅法2:修改链默认规则,修改为拒绝"添加准许"先配置好规则准许规则再修改默认规则[root@node1 ~]# iptables -A INPUT -s 192.168.20.0/24 -j ACCEPT说明:-A 后⾯写链名(追加,允许类规则⽤A)INPUT是链名 ACCEPT(允许的意思)意思是说:防⽕墙规则允许192.168.20.0⽹段访问然后再修改默认规则[root@node1 ~]# iptables -P INPUT DROP说明:-P是修改默认规则的参数,INPUT链内容就改为DROP[root@node1 ~]# iptables -nLChain INPUT (policy DROP)target prot opt source destinationACCEPT all -- 192.168.20.0/24 0.0.0.0/0ACCEPT all -- 192.168.10.0/24 0.0.0.0/0Chain FORWARD (policy ACCEPT)target prot opt source destinationChain OUTPUT (policy ACCEPT)target prot opt source destination8.匹配⽹络连接状态(TCP/IP连接状态)-m state --stateNEW:已经或将启动新的连接ESTABLISHED:已经建⽴的连接RELATED:正在启动的新连接INVALID:⾮法或⽆法识别的连接UNTRACKED:表⽰报⽂未被追踪,⽆法找到[root@node1 ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT[root@node1 ~]# iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT9.拒绝多个端⼝访问[root@node1 ~]# iptables -I INPUT -p tcp -m multiport --dport 2222,12306 -j DROP说明:-m是指定模块 multiport是指定多个端⼝ 2222,12306是指两个端⼝[root@node1 ~]# iptables -I INPUT -p tcp -m multiport --dport 1024:2048 -j DROP说明:1024:2048是指从1024端⼝到2048端⼝都拒绝访问10.匹配ICMPICMP:控制报⽂协议 ping⼀般⽤于禁ping虽然被禁ping但不影响访问⽅法1):通过防⽕墙禁ping[root@node1 ~]# iptables -I INPUT -p icmp --icmp-type 8 -j DROP说明:--icmp-type 8 icmp有很多类型禁ping是第8个⽅法2):通过修改内核禁ping[root@node1 ~]# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 临时修改[root@node1 ~]# echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all 恢复修改将net.ipv4.icmp_echo_ignore_all=1 写⼊到/etc/sysctl.conf 永久修改然后输⼊[root@node1 ~]# sysclt -p 使其⽣效11.限制并发及速率-m limit 限制模块-m ;limt --limt 10/minute #每分钟只能有10个数据包,每秒6个-m ;limt --limt n/{second/minute/hour}说明:指定时间内的请求速率 'n'为速率,后⾯为时间分别为:秒分时-m limit --limit 10/minute --limit-burst 5 #每6秒释放⼯牌给别⼈使⽤--limit-burst[n]说明:在同⼀时间内允许通过的请求'n'为数字,不指定默认为5案例:[root@node1 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT 先允许22端⼝[root@node1 ~]# iptables -A INPUT -p icmp -m limit --limit 10/minute --limit-burst 5 -j ACCEPT[root@node1 ~]# iptables -P INPUT DROP12.防⽕墙规则的保护与恢复iptables-save 默认输出到屏幕iptables-restore写⼊到/etc/sysconfig/iptables案例:iptables-save > /etc/sysconfig/iptables 保存到⽂件中iptables-restore < /etc/sysconfig/iptables 恢复防⽕墙策略filter表⼩结封IP 端⼝⽹段禁⽌ping限制速度和并发iptables filter表所有功能可以在云服务器中使⽤13.实际⽣产⽤法iptables 配置⽅式可以远程访问22端⼝[root@node1 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT[root@node1 ~]# iptables -A INPUT -p tcp -m multiport --dport 443,80 -j ACCEPT[root@node1 ~]# iptables -A INPUT -s 192.168.20.0/24 -j ACCEPT说明:这⾥还可以添加vpn⽹段例:172.16.1.0/241)设置允许本机lo 通讯规则允许本机回环lo接⼝数据流量流出与流⼊[root@node1 ~]# iptables -A INPUT -i lo -j ACCEPT[root@node1 ~]# iptables -I OUTPUT -o lo -j ACCEPT[root@node1 ~]# iptables -P INPUT DROP[root@node1 ~]# iptables -P FORWARD DROP[root@node1 ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT[root@node1 ~]# iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT⼆:nat1:1)共享上⽹[root@node1 ~]# iptables -t nat -A POSTROUTING -s 192.1683.20.0/24 -j SNAT --to-source 10.0.0.50(公⽹)说明:修改的是POSTROUTING(数据包离开防⽕墙时)链源地址为192.168.20.0/24 经过防⽕墙处理修改为10.0.0.50(公⽹)[root@node1 ~]# echo 'net.ipv4.icmp_echo_ignore_all = 0' >> /etc/sysctl.conf[root@node1 ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf2)端⼝映射/转发[root@node1 ~]# iptables -t nat -A PREROUTING -d 10.0.0.50 -p tcp --dport 9001 -j DNAT --to-destination 192.168.20.21:22 3)IP转发[root@node1 ~]# iptables -t nat -A PREROUTING -d 10.0.0.50 -p tcp -j DNAT --to-destination 192.168.20.212.nat故障排查1)先看⼀下防⽕墙规则iptables -t nat -nL2)ip⽹关配置查询⽹关ip r或者route -n3)内核转发是否配置在/etc/sysctl.conf⽂件中net.ipv4.ip_forward = 1echo '1' > /proc/sys/net/ipv4/ip_forward4)nat表总结实现共享上⽹(内⽹服务器上外⽹)端⼝转发/映射nat功能在云服务器上⽆法使⽤替代品叫:NAT⽹关三:总结1.禁⽌来⾃10.0.0.188 IP地址访问80端⼝请求iptables -I INPUT -s 10.0.0.188 -p tcp --dport 80 -j DROP2.如何使命令在执⾏的时候永久⽣效?iptables-save/etc/sysconfig/iptables3.实现把访问10.0.0.3:80的请求转到192.168.20.21:80iptables -t nat -A PREROUTING -d 10.0.0.3 -P tcp --dport 80 -j DNAT --to-destination 192.168.20.21:80 4.实现192.168.20.0/24段所有主机通过1xx.3x.5x.2xx外⽹IP共享上⽹iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -j SNAT --to-destination 1xx.3x.5x.2xxiptables -t nat -A PORTROUTING -s 192.168.20.0/24 -j SNAT MASQUERADE。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编写规则的常用参数
iptables
-L 列出所有的规则
-n 以数值的方式显示规则
-A 追加一条新的规则,默认就是在最后追加
-I 插入一条新的规则,默认就是在最前面插入一条规则
-D 删除一条规则
-v 显示统计数据,一般结合 -L使用
清空规则
-X 删除自定义的链
-Z 清空统计数据
-P 定义默认策略
Iptables
1、包过滤防火墙
根据数据包的源端口、目的端口、源IP、目的IP、协议等过滤(四层防火墙)
2、应用代理防火墙
工作在应用层,能够检测数据包的内容时候合法,但处理效率比较慢
3、状态检测防火墙
Iptables的两个组件:
netfilter \ iptables
判断操作系统是否支持iptables的防护:
实例14、
实现只开放ssh服务
[root@dns 12]# iptables -P INPUT DROP
[root@dns 12]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@dns 12]# iptables -A INPUT -i lo -j ACCEPT
17、开放工作在主动模式下的ftp服务
主动模式: 控制命令的数据包传输使用21端口,普通数据的数据包传输的时候,就是ftp服务器使用20端口主动连接客户端的>1024的端口。
被动模式:控制命令的数据包传输使用21端口,普通数据的数据包传输的时候,就是客户端主动告诉服务器打开某个端口(>1024),然后客户端主动连接服务器的这个端口。
先删除不起作用的规则:
# iptables -t filter -D INPUT -p icmp -i lo -j ACCEPT 《---最笨的方法
或者
# iptables -L -n --line-number
# iptables -D INPUT 2来自重新把规则放到正确的位置
# iptables -t filter -I INPUT -p icmp -i lo -j ACCEPT
iptabls -A OUTPUT -p tcp --dport 80 -d -j DROP
>>>>>>>>
实例11、通过硬件地址实现拦截
# iptables -P INPUT ACCEPT
# iptables -A INPUT -m mac --mac-source 00:25:86:8e:aa:4e -p tcp --dport 80 -j DROP
实现是开放ssh服务的同时,能够远程登录别人的电脑
方法一:
继续添加一条规则
[root@dns 12]# iptables -A INPUT -p tcp --sport 22 -j ACCEPT
方法二:
[root@dns 12]# iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@dns 12]# iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@dns 12]# iptables -A INPUT -i lo -j ACCEPT
16、只允许本机查询外部的DNS服务器,别的服务都不允许
使用到了 iprange的模块
实例13、记录日志,把远程登录到本机的信息都记录到/var/log/messages
# iptables -A INPUT -p tcp --dport 22 -j LOG --log-level notice --log-prefix "Iptables : "
# iptables -A INPUT -p tcp --dport 22 -j DROP <---先记录日志再拒绝访问
数据包的四种状态
NEW 新的数据包,也就是想要建立连接所发送的第一个数据包
ESTABLISHED 已经建立通讯的数据包,数据包是完整有效。
RELATED 在已经建立的通讯的基础上相关的数据包。
INVALID 无效的数据包
引入状态检测规则的好处:
1、能够让本机成为各种服务的客户端
2、提高iptables工作效率
[root@dns 12]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
[root@dns 12]# iptables -A INPUT -i lo -j ACCEPT
综合实例:
本机需要开放的服务有: ssh 、 web 、 ftp (被动模式) 、DNS 、能够接受邮件、能够发送邮件。
iptables -t raw -F
iptables -t raw -X
iptables -t raw -Z
实例4、允许ping 127.0.0.1 和 允许 ping 10.1.1.0/24,其他服务都拒绝
(1)[root@dns ccna]# iptables -A INPUT -i lo -p icmp -j ACCEPT
1187 iptables -P INPUT DROP
1188 iptables -A INPUT -p tcp --dport 21 -j ACCEPT
1189 iptables -A INPUT -p tcp --dport 20 -j ACCEPT
18、开放工作在被动模式下的ftp服务
实例3、规则管理
保存规则
service iptables save
/etc/sysconfig/iptables
清空规则
iptables -F 默认清空filter表的规则,下面的所有命令只是临时清空规则,不会更改/etc/sysconfig/iptables的规则数据
iptables -t filter -F
默认策略什么时候用DROP,什么时候用ACCEPT?
如果规则里面都是一些允许访问的规则(-j ACCEPT),为了实现只开放某个些服务的目标,这个时候使用的默认策略 DROP
相反,就选取ACCEPT
实例12、定义连续IP
# iptables -A INPUT -p tcp --dport 80 -m iprange --src-range 10.1.1.140-10.1.1.254 -j DROP
链: 把多个处理相同类型的规则组合在一起
PREROUTING 处理路由前的数据包
INPUT 处理传输给本身的数据包,方向是传入
FORWARD 处理不是发给本身的数据包,这些数据包是传输给别的主机的
OUTPUT 处理传出的数据包
POSTROUTING 处理路由之后的数据包
拦截的动作
ACCEPT , DROP ,REJECT , LOG ,SNAT ,MASQUERADE , DNAT
-p 指定数据包的协议类型
-j 后面指定处理的动作
为了允许ping 127.0.0.1能够成功,添加一下规则:
# iptables -t filter -A INPUT -p icmp -i lo -j ACCEPT
你会发现最终还是无法ping通,这是因为规则是分先后的,先匹配最上面的规则,一匹配就停止继续往下匹配,我们要这样处理:
iptables -P INPUT DROP
当前的规则还不能让自己ssh到自己的
实例7、定义连续端口
# iptables -P INPUT DROP
# iptables -A INPUT -p tcp --dport 20:100 -j ACCEPT
实例8、定义多端口,引出“模块”的概念
# iptables -P INPUT DROP
实例10、拒绝本机访问色情网站
# iptables -P INPUT ACCPET
# iptables -A INPUT -p tcp --sport 80 -s -j DROP
<<<<<<<<
假如本机机器作为网关,或者代理服务器,需要拒绝客户访问
实例15、本机只开发web服务,其他服务一概拒绝,但本机可以访问外部一些资源,例如,本机可以访问外部的互联网,可以远程登录别人的电脑等等。允许本机lo的所有通信。
[root@dns 12]# iptables -P INPUT DROP
[root@dns 12]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-t 指定添加的规则处理哪个表
-F 清空某个表的所有规则,但不会改变默认策略
实例1、
显示所有规则
# iptables -L -n
# iptables -L -n -v
实例2、禁止ping的数据包通过(禁止ping别人,也禁止别人ping你)
# iptables -t filter -A INPUT -p icmp -j DROP
[root@dns 12]# modprobe ip_conntrack_ftp
[root@dns 12]# iptables -P INPUT DROP
[root@dns 12]# iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@dns 12]# iptables -P INPUT DROP
[root@dns 12]# iptables -A INPUT -p udp --sport 53 -j ACCEPT
[root@dns 12]# iptables -A INPUT -p tcp --sport 53 -j ACCEPT
相关文档
最新文档