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。
iptables 口诀

iptables 口诀iptables 是一款常用的 Linux 系统防火墙工具,它通过配置规则来控制网络数据包的传输和转发,实现网络流量的安全管理。
为了方便记忆和理解 iptables 的使用方法,我们可以借助以下口诀来帮助记忆。
下面将会介绍这个口诀以及对应的详细解释。
一、清空规则:iptables -F这个口诀的意思是清空所有的防火墙规则。
当我们需要重新设置规则时,可以使用该命令将现有的规则清空。
二、允许本地回环:iptables -A INPUT -i lo -j ACCEPT这个口诀的意思是允许本地回环地址的访问。
本地回环地址是指主机本身的 IP 地址,通过这个规则可以保证主机自身的服务可以正常运行。
三、允许已建立的连接:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT这个口诀的意思是允许已建立的连接通过防火墙。
防火墙默认会拦截所有的连接请求,但是对于已经建立的连接,我们需要允许它们通过防火墙。
四、允许 ICMP 协议:iptables -A INPUT -p icmp -j ACCEPT这个口诀的意思是允许 ICMP 协议的数据包通过防火墙。
ICMP 协议用于网络诊断和错误报告,允许它可以帮助我们更好地了解网络的状态和问题。
五、允许 SSH 连接:iptables -A INPUT -p tcp --dport 22 -j ACCEPT这个口诀的意思是允许 SSH 连接通过防火墙。
SSH 是一种安全的远程登录协议,通过这个规则可以允许从外部网络安全地登录到主机。
六、允许 HTTP 和 HTTPS 访问:iptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPT这个口诀的意思是允许 HTTP 和 HTTPS 的访问通过防火墙。
iptables的用法

iptables的用法iptables是Linux系统中防火墙工具,用于配置、管理和过滤网络流量。
它可以用于设置各种规则,以控制网络传输,过滤入站和出站流量,并允许或拒绝特定的网络连接。
以下是iptables的常见用法:1. 查看当前的iptables规则:```iptables -L```2. 清除当前的iptables规则:```iptables -F```3. 允许特定IP地址的访问:```iptables -A INPUT -s <IP_ADDRESS> -j ACCEPT```4. 禁止特定IP地址的访问:```iptables -A INPUT -s <IP_ADDRESS> -j DROP```5. 允许特定端口的访问:```iptables -A INPUT -p tcp --dport <PORT_NUMBER> -j ACCEPT```6. 允许特定协议的访问:```iptables -A INPUT -p <PROTOCOL> -j ACCEPT```7. 配置端口转发:```iptables -t nat -A PREROUTING -p tcp --dport <SOURCE_PORT> -j DNAT --to-destination<DESTINATION_IP>:<DESTINATION_PORT>```8. 配置端口映射:```iptables -t nat -A POSTROUTING -p tcp -d <DESTINATION_IP> --dport<DESTINATION_PORT> -j SNAT --to-source <SOURCE_IP>```以上只是iptables的一些常见用法,它还提供了更多高级功能和选项,可以根据具体需求进行配置和使用。
iptables四表五链

iptables四表五链⼀、什么是iptables iptables是Linux的防⽕墙管理⼯具⽽已,真正实现防⽕墙功能的是Netfilter,我们配置了iptables规则后Netfilter通过这些规则来进⾏防⽕墙过滤等操作 Netfilter模块: 它是主要的⼯作模块,位于内核中,在⽹络层的五个位置(也就是防⽕墙四表五链中的五链)注册了⼀些钩⼦函数,⽤来抓取数据包;把数据包的信息拿出来匹配各个各个链位置在对应表中的规则:匹配之后,进⾏相应的处理ACCEPT、DROP等等。
下⾯这张图很明了的说明了Netfilter和iptables之间的关系⼆、四表五链(重要) 四表五链: 链就是位置:共有五个进路由(PREROUTING)、进系统(INPUT) 、转发(FORWARD)、出系统(OUTPUT)、出路由(POSTROUTING); 表就是存储的规则;数据包到了该链处,会去对应表中查询设置的规则,然后决定是否放⾏、丢弃、转发还是修改等等操作。
2.1. 具体的四表filter表——过滤数据包Nat表——⽤于⽹络地址转换(IP、端⼝)Mangle表——修改数据包的服务类型、TTL、并且可以配置路由实现QOSRaw表——决定数据包是否被状态跟踪机制处理2.2. 具体的五链INPUT链——进来的数据包应⽤此规则链中的策略OUTPUT链——外出的数据包应⽤此规则链中的策略FORWARD链——转发数据包时应⽤此规则链中的策略PREROUTING链——对数据包作路由选择前应⽤此链中的规则(所有的数据包进来的时侯都先由这个链处理)POSTROUTING链——对数据包作路由选择后应⽤此链中的规则(所有的数据包出来的时侯都先由这个链处理)2.3. 四表五链之间的关系三、iptables语法参数3.1.iptables语法格式iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]3.2.iptables常⽤参数-P 设置默认策略:iptables-P INPUT (DROP|ACCEPT)-F 清空规则链-L 查看规则链-A 在规则链的末尾加⼊新规则-I num 在规则链的头部加⼊新规则-D num 删除某⼀条规则-s 匹配来源地址IP/MASK,加叹号"!"表⽰除这个IP外。
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是一个强大的Linux防火墙工具,可以用来配置、管理网络规则,控制网络流量和保护系统安全。
通过添加规则,可以限制或允许特定的网络连接和通信。
以下是iptables加规则的相关参考内容,涵盖了常见的使用场景和示例:1. 设置默认规则:iptables有三个默认规则:ACCEPT(接受)、DROP(丢弃)和REJECT(拒绝)。
例如,设置默认规则为DROP:`iptables -P INPUT DROP`、`iptables -P FORWARD DROP`、`iptables -P OUTPUT DROP`。
2. 允许特定IP或IP范围:通过添加规则,可以允许特定的IP或IP范围通过防火墙。
例如,允许IP为192.168.0.1通过防火墙:`iptables -A INPUT-s 192.168.0.1 -j ACCEPT`。
3. 允许特定端口:可以通过添加规则来允许特定的端口通过防火墙。
例如,允许TCP协议的端口22通过防火墙:`iptables -A INPUT -p tcp --dport 22 -j ACCEPT`。
4. 防止SYN Flood攻击:SYN Flood攻击是一种常见的DoS(拒绝服务)攻击,使用大量虚假的TCP连接请求,耗尽系统资源。
可以通过限制每秒钟接受的新的TCP连接请求数量来防止SYN Flood攻击:```iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT iptables -A INPUT -p tcp --syn -j DROP```5. 设置反向链:反向链用于处理出站连接的流量,可以通过添加规则来配置。
例如,允许本地主机连接到外部网络:`iptables -A OUTPUT -j ACCEPT`。
6. 防止DDoS攻击:DDoS(分布式拒绝服务)攻击是一种通过使用多个计算机或设备来同时发送大量请求,使目标系统负载过载的攻击方式。
iptables永久保存规则

iptables永久保存规则
在Linux系统中,如果您想要iptables规则永久保存,可以按照如下步骤操作:
1. 在命令行下输入以下命令来保存iptables规则:
$ sudo /sbin/service iptables save
这将把iptables规则保存为一个文件,文件名通常是
/etc/sysconfig/iptables。
2. 如果您想要手动编辑iptables规则,请先备份当前规则:$ sudo /sbin/iptables-save > iptables-backup.txt
3. 现在您可以编辑iptables规则文件了(通常是
/etc/sysconfig/iptables)。
请注意,修改完规则后,需要通过以下命令使规则生效:
$ sudo /sbin/service iptables restart
或者
$ sudo /sbin/iptables-restore < /etc/sysconfig/iptables
这样就能够将新的iptables规则加载到系统中了。
4. 最后,为了确保iptables规则在系统启动时自动加载,您需
要编辑/etc/rc.local文件,并在文件末尾添加以下一行:
/sbin/service iptables start
保存文件并重启系统,新的iptables规则应该已经生效了。
iptables开启与关闭

iptables开启与关闭1) 重启后生效开启: chkconfig iptables on关闭: chkconfig iptables off2) 即时生效,重启后失效开启: service iptables start关闭: service iptables stop需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,修改/etc/sysconfig/iptables 文件,添加以下内容:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT一、开启SSH以root用户登录Linux,打开终端,运行:/etc/init.d/sshd restrat二、关闭防火墙1.在终端运行 setup2,.选择 firewall 回车3.按tab键切换到disablede项,然后按空格键选择,然后再按tab键切换到ok,按空格件选择4.按tab键切换到quit,按空格件选择1、ps -ef |grep ssh看看进程是不是存在。
2、netstat -anp |grep ssh看看端口是不是默认22还有,你在windows下telnet 他的22端口。
看看提示是什么?还有不要关闭,再你linux系统里面运行netstat -an |grep 你的ip看看建立连接没删除虚拟网卡ifconfig eth1 downrm /etc/sysconfig/network-scripts/eth1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
…… OUTPUT链
……
PREROUTING链 …… POSTROUTING链 ……
……
PREROUTING 链 …… POSTROUTING 链 …… OUTPUT 链
INPUT 链 ……
FORWARD 链 …… OUTPUT 链
INPUT 链
…… OUTPUT 链
……
6
防火墙的分类
状态检测型防火墙:可以动态地根据实际应用需 求,自动生成或删除包过滤规则 这种防火墙不但能根据数据包的源地址、目标地 址、协议类型、源端口、目标端口等对数据包进 行控制,而且能记录通过防火墙的连接状态,直 接对包里的数据进行处理
7
防火墙的分类
状态检测型防火墙:
8
防火墙体系结构
网关防火墙:
设置规则内容:
-A:在链尾追加一条新的规则 [root@localhost ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT -I:在指定位置(或链首)插入一条新的规则 [root@localhost ~]# iptables -I INPUT -p udp -j ACCEPT
按顺序依次进行检查,找到相匹配的规则即停止 (LOG策略会有例外) 若在该链内找不到相匹配的规则,则按该链的默认策 略处理
18
数据包过滤匹配流程
网络A 本机的应用进程
路 由 选 择
网络B raw:OUTPUT mangle:OUTPUT
入站数据流向
mangle:INPUT filter:INPUT
默认的5种规则链
INPUT:处理入站数据包 OUTPUT:处理出站数据包 FORWARD:处理转发数据包 POSTROUTING链:在进行路由选择后处理数据包 PREROUTING链:在进行路由选择前处理数据包
15
iptables的规则表、链结构
规则表
具有某一类相似用途的防火墙规则,按照不同处理时 机区分到不同的规则链以后,被归置到不同的“表” 中 规则表是规则链的集合
28
隐含条件匹配
TCP标记匹配
使用“--tcp-flags 检查范围 被设置的标记”的形式 如“--tcp-flags SYN,RST,ACK SYN”表示检查SYN、 RST、ACK这3个标记,只有SYN为1时满足条件
[root@localhost ~]# iptables -I INPUT -i eth1 -p tcp - -tcp-flags SYN,RST,ACK SYN -j REJECT [root@localhost ~]# iptables -I INPUT -i eth1 -p tcp - -syn -j REJECT
19
管理和设置iptables规则
iptables命令的语法格式
iptables [-t 表名] 管理选项 [链名] [条件匹配] [-j 目 标动作或跳转]
几个注意事项
不指定表名时,默认表示filter表 不指定链名时,默认表示该表内所有链 除非设置规则链的缺省策略,否则需要指定匹配条件
20
iptables命令的管理选项
列表查看规则
num target
1 2 3
-L:列表查看各条规则信息 prot opt source destination --line-numbers :查看规则信息时显示规则的行号 ACCEPT udp -- anywhere anywhere -n:以数字形式显示 IP地址、端口等信息 ACCEPT icmp -- anywhere anywhere ACCEPT tcp -- anywhere anywhere -v:显示数据包个数、字节数等详细信息
4
防火墙的分类
代理型防火墙:主要工作在OSI的应用层。代理 服务在确认客户端连接请求有效后接管连接,代 为向服务器发出连接请求 代理型防火墙可以允许或拒绝特定的应用程序或 服务,还可以实施数据流监控、过滤、记录和报 告功能
Internet
防火墙 局域网
5
防火墙的分类
代理服务器通常具有高速缓存功能 代理型防火墙的最大缺点是速度较慢
[root@localhost ~]# iptables -A INPUT -i eth0 -p icmp --icmp-type EchoRequest -j DROP [root@localhost ~]# iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT
-N:创建一条新的规则链 [root@localhost ~]# iptables -t raw -L -X:删除自定义的规则链
Chain PREROUTING (policy ACCEPT)
其他 ……
……
Chain OUTPUT (policy ACCEPT) -h :查看 iptables 命令的使用帮助 Chain TCP_PACKETS (0 references) target prot opt source destination
24
通用条件匹配
协议匹配
使用“-p 协议名”的形式 协议名可使用在“/etc/protocols”文件中定义的名称 常用的协议包括tcp、udp、icmp等
地址匹配
使用“-s ~]# 源地址”、 “-d -p 目标地址”的形式 [root@localhost iptables -I INPUT icmp -j REJECT
系统管理员Ⅲ
配置IPTABLES防火墙
知识要点
Linux防火墙的概念 iptables的规则链 iptables工作流程 iptables的命令语法 iptables的脚本编写 iptables实现SNAT和DNAT ssh端口转发
3
防火墙的分类
包过滤型防火墙:工作在OSI参考模型的网络层 ,它根据数据包头源地址、目的地址、端口号和 协议类型等标志确定是否允许数据包通过
[root@localhost ~]# iptables -A INPUT -i eth1 -s 172.16.0.0/12 -j DROP
使用“-i 网络接口名”、 “-o 网络接口名”的形式, [root@localhost ~]# iptables -A FORWARD -o eth1 -d 61.35.4.3 -j DROP 分别对应接收、发送数据包的网络接口
默认的4个规则表
raw表:确定是否对该数据包进行状态跟踪 mangle表:为数据包设置标记 nat表:修改数据包中的源、目标IP地址或端口 filter表:确定是否放行该数据包(过滤)
16
iptables的规则表、链结构
iptables 防火墙默认的规则表、链结构
raw 表 mangle 表 nat 表 filter 表 第1条规则 第2条规则 第3条规则 ……
FORWARD 链
17
数据包过滤匹配流程
规则表间的优先顺序
依次为:raw、mangle、nat、filter
规则链间的匹配顺序
入站数据:PREROUTING、INPUT 出站数据:OUTPUT、POSTROUTING 转发数据:PREROUTING、FORWARD、 POSTROUTING
规则链内的匹配顺序
22
小结
请思考:
iptables包含了哪几个规则表,各自的作用是什么? iptables使用了哪几种规则链,各自的含义是什么? iptables在转发数据包时,经过了哪几个表、哪几种链 内的规则进行匹配? iptables命令的基本语法格式包括哪些组成部分? 设置iptables规则时,若未指定表名,默认对应的是哪 个规则表?
26
阶段实验1
需求描述
配置入站链默认拒绝,其它链都是允许 允许入站接口是本地回环接口的任何数据 允许所有客户机访问Linux服务器的samba共享 允许响应所有客户机的dns请求 只允许一台客户机ping通服务器
27
隐含条件匹配
ICMP类型匹配
使用“--icmp-type ICMP类型”的形式 ICMP类型可以使用类型字符串或者对应的数值,例如 Echo-Request、Echo-Reply
—— 习惯上,上述2种称呼都可以代表Linux防火墙
13
Linux防火墙概述
包过滤防火墙工作在TCP/IP的网络层
客户程序
上层程序
服务程序
应用层
传输层 网络层
应用代理
传输层 网络层
应用层
传输层 网络层
链路层
外部网络
链路层
网络层防火墙
链路层
受保护网络
14
iptables的规则表、链结构
规则链
规则的作用在于对数据包进行过滤或处理,根据处理 时机的不同,各种规则被组织在不同的“链”中 规则链是防火墙规则/策略的集合
21
iptables命令的管理选项
清除规则
-D:删除指定位置或内容的规则 [root@localhost ~]# iptables -D INPUT 2 -F:清空规则链内的所有规则 [root@localhost ~]# iptables -F
[root@localhost ~]# iptables -t nat -F 自定义规则链 [root@localhost ~]# iptables -t raw -N TCP_PACKETS
地址可以是单个 IP地址、网络地址(带掩码长度) [root@localhost ~]# iptables -A FORWARD -p ! icmp -j ACCEPT
[root@localhost 接口匹配 ~]# iptables -A FORWARD -s 192.168.1.11 -j REJECT