计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验

目录

防火墙

linux的内核(kernel)

内核的主要作用: 

硬件-内核-系统-应用程序架构关系图: 

内核的2种两种工作模式:(内核态、用户态)(进程的两种工作状态)

netfilter 和 iptables的关系

netfilter

iptables

firewalld

firewalld和iptables的区别

五虎上将图(iptables工作流程图)(iptables的四表五链)

包过滤防火墙iptables工作在TCP/IP的网络层

iptables的规则链、链结构:

iptables的规则表、表结构:

规则表间的优先顺序 

 规则链间的匹配顺序 

规则链内的匹配顺序 

数据包过滤匹配流程

iptables命令:

iptables命令的语法格式

iptables的注意点:

常用的iptables命令选项包括: 

iptables实现例子:

撰写清除iptables规则的脚本clear_rule.sh 

创建一个计划任务,每隔1分钟执行一次,清除防火墙规则(防止清除防火墙导致无法上网啦)

iptables创建新链

计算机网络中存在的一些条件:

iptables匹配数据包的条件:(通用条件、隐含条件、显式条件)

通用条件匹配

LOG日志实现抓包功能的过程(ping命令抓包的实现)

隐含条件匹配

禁ping的iptables命令: 

显式条件匹配

导入、导出防火墙规则​编辑

开机自动加载我们的iptables规则

实验: 实现设置iptables规则指定端口访问实验

步骤:

实验拓扑图:

open_app.sh

SNAT_DNAT.sh 

最后测试

验证DNAT发布的Web的80端口:

验证DNAT发布的SSH中的2233端口

其他的端口我们能通过内部的linux机器进行测试(192.168.91.80)

iptables总结:


防火墙

防火墙(Firewall)是计算机网络中的一种安全设备或软件,用于监控、过滤和控制网络数据包的流动。它的作用是保护计算机和网络免受未经授权的访问、恶意攻击和未知威胁,提高网络安全性并保护数据的机密性和完整性。

linux系统的防火墙功能是由内核实现的

防火墙:数据过滤机制
包过滤机制是netfilter,管理工具是iptables

netfilter --》阵法(机关) --》八卦阵 、一字长蛇阵、18铜人阵 等  --》是一个软件属于linux内核里的一个小功能

iptables 相当于给阵法传递参数--》告诉阵法如何调整,运转,对数据包进行过滤 --》是一个软件,只是给netfilter传递参数,查看netfilter里的

linux的内核(kernel)

linux的内核官网:The Linux Kernel Archives

内核是操作系统内部最核心的软件,它是位于计算机硬件和应用程序之间的一层软件,起着非常重要的作用。内核负责管理计算机的硬件资源,并提供了一个抽象的接口,使得应用程序可以与硬件交互而不需要了解底层硬件的细节。

内核的主要作用: 

1.对cpu进行管理
2.对进程管理
3.对内存的管理
4.对文件系统管理
5.对网络的管理     --》防火墙
6.对其他硬件的管理

如何查看自己linux机器的内核版本

[root@router ~]# uname  -r
3.10.0-1160.el7.x86_64
[root@router ~]# 

硬件-内核-系统-应用程序架构关系图: 

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第1张图片 计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第2张图片

内核的2种两种工作模式:(内核态、用户态)(进程的两种工作状态)

1.内核态:  内核态的进程可以访问用户空间,管理用户态的进程

2.用户态:  用户态的进程不能随意访问内核态空间

  1. 内核态(Kernel Mode): 内核态是处理器的高特权级别,也称为特权模式或系统态。在内核态下,操作系统内核拥有对计算机硬件和资源的完全访问权限,可以执行所有指令,包括访问和操作系统内存、I/O设备、中断处理等。操作系统内核运行在内核态,它负责管理系统资源、处理中断、进行进程调度、提供系统服务等。在内核态下执行的代码具有更高的权限,可以直接访问所有内存和设备。

  2. 用户态(User Mode): 用户态是处理器的低特权级别,也称为非特权模式或用户态。在用户态下,应用程序和用户进程运行,它们受限于操作系统内核的保护机制,只能访问自己的内存空间和经过授权的资源,无法直接访问硬件设备和其他进程的内存。在用户态下执行的代码没有直接访问硬件的权限,它们必须通过系统调用来请求内核提供的服务和资源,例如文件读写、网络通信等。

netfilter 和 iptables的关系

netfilter

netfilter位于Linux内核中的包过滤防火墙功能体系

它是Linux防火墙功能的基础,通过在数据包传输过程中进行函数的调用,允许对数据包进行修改、过滤和重定向。

netfilter称为Linux防火墙的“内核态”

iptables

iptables位于/sbin/iptables,是用来管理防火墙的命令工具

为防火墙体系提供过滤规则/策略,决定如何过滤或者处理达到防火墙的数据包

iptables是就是一个用户端的程序,给内核里的netfilter软件提供参数,告诉netfilter如何去过滤数据(哪些数据让它过,哪些不让它过)

iptables是一个防火墙工具--》作用:给linux内核的netfilter软件传递参数

iptables称为Linux防火墙的“用户态”

(人---》iptables ---》netfilter--》data) 

上述两种称呼都可以代表Linux的防火墙

firewalld

firewalld和iptables的区别

参考:细说firewalld和iptables - 爱你爱自己 - 博客园 (cnblogs.com)浅析Firewalld与Iptables_firewalld会扫描网络吗_奋斗吧,青年!的博客-CSDN博客

firewalld也是和iptables一样的防火墙传参工具

firewalld是对iptables进行了封装,换了另外的一套概念和方法,但是底层任然调用的是iptables

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第3张图片

五虎上将图(iptables工作流程图)(iptables的四表五链)

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第4张图片

包过滤防火墙iptables工作在TCP/IP的网络层

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第5张图片

iptables的规则链、链结构:

规则链


规则的作用在于对数据包进行过滤或处理,根据处理时机的不同,各种规则被组织在不同的“链”中
规则链是防火墙规则/策略的集合


默认的5种规则链


    INPUT:处理入站数据包  --》进入你的系统里的应用程序
    OUTPUT:处理出站数据包  --》应用程序的数据离开电脑
    FORWARD:处理转发数据包  --》做路由器使用,转发数据
    POSTROUTING链:在进行路由选择后处理数据包  --》SNAT
    PREROUTING链:在进行路由选择前处理数据包   -->DNAT

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第6张图片

iptables的规则表、表结构:

规则表


具有某一类相似用途的防火墙规则,按照不同处理时机区分到不同的规则链以后,被归置到不同的“表”中
规则表是规则链的集合


默认的4个规则表


    raw表:确定是否对该数据包进行状态跟踪 --》记录我们的数据包以前来过没来过
    mangle表:为数据包设置标记 
    nat表:修改数据包中的源、目标IP地址或端口   --》实现snat和dnat的
    filter表:确定是否放行该数据包(过滤)  --》进入应用程序

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第7张图片

iptables中意思的关键字解释:

chain 链
policy 策略/规则

ACCEPT  接收
DROP  丢弃
REJECT  委婉的拒绝--》不接收数据

[root@router ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

规则表间的优先顺序 

 规则表间的优先顺序
    依次为:raw、mangle、nat、filter 

 规则链间的匹配顺序 

 规则链间的匹配顺序
    入站数据:PREROUTING、INPUT
    出站数据:OUTPUT、POSTROUTING
    转发数据:PREROUTING、FORWARD、POSTROUTING

规则链内的匹配顺序 

规则链内的匹配顺序
    按顺序依次进行检查,找到相匹配的规则即停止(LOG策略会有例外)
    若在该链内找不到相匹配的规则,则按该链的默认策略处理

数据包过滤匹配流程

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第8张图片其中的路由选择表达的意思就是查看我们数据包里面的IP包头内目的地址网段跟我们本机器的网段是否一样,如果一样就会走INPUT链去,使数据访问本机,如果不一样,就会走FORWARD链,直接进行路由转发了

iptables命令:

iptables命令的语法格式

iptables  -t nat -L -n -v --line
(-t nat -L 表示展示nat表内的内容 -n表示以数字的形式显示 -v表示展示详细内容 --line 表示可以看到规则编号)

iptables的注意点:

当不指定表名的时候,默认表示filter表

不指定链名,默认表示该表内所有链

常用的iptables命令选项包括: 

常用的iptables命令选项包括:

  1. -A:添加一条规则。
  2. -D:删除一条规则。
  3. -I:插入一条规则到指定位置。
  4. -P:设置默认策略(如ACCEPT或DROP)。
  5. -L:列出规则。
  6. -F:清空规则表。
  7. -N:创建一个用户定义的链。
  8. -X:删除一个用户定义的链。

iptables实现例子:

1、允许特定IP地址的连接到SSH端口(例如,允许IP地址为192.168.1.100的主机连接到SSH端口22):
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT

2、拒绝来自特定IP地址的HTTP访问(例如,拒绝IP地址为10.0.0.5的主机访问HTTP端口80):
iptables -A INPUT -p tcp --dport 80 -s 10.0.0.5 -j DROP

3、将HTTP请求转发到本地Web服务器(例如,将外部端口8080映射到本地端口80):
iptables -A PREROUTING -t nat -p tcp --dport 8080 -j DNAT --to-destination 127.0.0.1:80
iptables -A FORWARD -p tcp -d 127.0.0.1 --dport 80 -j ACCEPT

4、删除filter表内的第一条规则
iptables -t filter  -D INPUT 1

5、允许其他用户访问我的22号端口
iptables  -A INPUT  -p tcp --dport 22 -j ACCEPT

撰写清除iptables规则的脚本clear_rule.sh 

[root@goweb iptables]# cat clear_rule.sh 
#!/bin/bash

iptables='/usr/sbin/iptables'    # 写绝对路径,防止没有找到iptables服务
$iptables -P INPUT ACCEPT     # 设置INPUT链默认为ACCEPT     
$iptables -F -t filter        # 清空filter表内所有防火墙规则
$iptables -t nat -F           # 清空nat表内所有防火墙规则

[root@goweb iptables]# 

创建一个计划任务,每隔1分钟执行一次,清除防火墙规则(防止清除防火墙导致无法上网啦)

[root@goweb iptables]# crontab -l
*/1 * * * *  bash /iptables/clear_rule.sh
[root@goweb iptables]# 

计划任务里很大的一个坑:调用的脚本里,如果有些命令不使用绝对路径会导致命令查找不到,从而不能被执行

iptables创建新链

创建SC这条链(默认情况会保存在filter表内),并在自定义的规则链里添加规则

[root@router ~]# iptables -t filter   -N SC            在filter表内创建SC链
[root@router ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
LOG        icmp --  anywhere             anywhere             LOG level warning

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain SC (0 references)
target     prot opt source               destination         
[root@router ~]# 
[root@router ~]# iptables  -t filter  -A SC -p tcp --dport 8090 -j DROP 在自定义的规则链里添加规则
[root@router ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
LOG        icmp --  anywhere             anywhere             LOG level warning

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain SC (0 references)
target     prot opt source               destination         
DROP       tcp  --  anywhere             anywhere             tcp dpt:8090
[root@router ~]# 

[root@router ~]# iptables -t filter -A INPUT  -p tcp -j SC  这是INPUT链引用SC自定义链	
[root@router ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
LOG        icmp --  anywhere             anywhere             LOG level warning
SC         tcp  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain SC (1 references)
target     prot opt source               destination         
DROP       tcp  --  anywhere             anywhere             tcp dpt:8090
[root@router ~]# 

计算机网络中存在的一些条件:

传输层: 
    tcp  udp  ---》源端口和目的端口
网络层:
    ip  icmp  arp  ospf rip  
    ip: 源ip和目的ip
    icmp: 
        请求报文  8
        响应报文  0
数据链路层:
    源mac和目的mac

iptables匹配数据包的条件:(通用条件、隐含条件、显式条件)

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第9张图片

通用条件匹配

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第10张图片

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第11张图片

LOG日志实现抓包功能的过程(ping命令抓包的实现)

LOG 抓包的过程
[root@router ~]# vim /etc/rsyslog.conf 

kern.*                                                 /var/log/sctest.log  #修改这一行
[root@router ~]# service rsyslog restart  #刷新日志服务
Redirecting to /bin/systemctl restart rsyslog.service
[root@router ~]# 
/var/log/sctest.log 是内核日志记录的文件
[root@router ~]# iptables  -I INPUT  -p icmp  -j LOG --log-prefix "fengdeyong"  --log-level 4     #添加规则

在其他电脑上ping 该服务器 , 发现禁止ping了
C:\Users\san'chuang>ping  192.168.2.169
正在 Ping 192.168.2.169 具有 32 字节的数据:
请求超时。
请求超时。
请求超时。
请求超时。

192.168.2.169 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),
C:\Users\san'chuang>   

[root@router ~]# tail -f /var/log/sctest.log   #在自己的机器上查看内核的日志文件
Aug  3 16:09:55 router kernel: fengdeyongIN=ens33 OUT= MAC=00:0c:29:27:30:f9:00:e0:4c:24:b5:81:08:00 SRC=192.168.2.142 DST=192.168.2.169 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=5991 PROTO=ICMP TYPE=8 CODE=0 ID=1 SEQ=22 
Aug  3 16:09:59 router kernel: fengdeyongIN=ens33 OUT= MAC=00:0c:29:27:30:f9:00:e0:4c:24:b5:81:08:00 SRC=192.168.2.142 DST=192.168.2.169 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=6020 PROTO=ICMP TYPE=8 CODE=0 ID=1 SEQ=23 
Aug  3 16:10:04 router kernel: fengdeyongIN=ens33 OUT= MAC=00:0c:29:27:30:f9:00:e0:4c:24:b5:81:08:00 SRC=192.168.2.142 DST=192.168.2.169 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=6038 PROTO=ICMP TYPE=8 CODE=0 ID=1 SEQ=24 
Aug  3 16:10:09 router kernel: fengdeyongIN=ens33 OUT= MAC=00:0c:29:27:30:f9:00:e0:4c:24:b5:81:08:00 SRC=192.168.2.142 DST=192.168.2.169 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=6040 PROTO=ICMP TYPE=8 CODE=0 ID=1 SEQ=25 

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第12张图片

因此我们可以知道log能帮我记录信息,但是不能帮助我们处理信息。

隐含条件匹配

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第13张图片

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第14张图片

禁ping的iptables命令: 

[root@router ~]# iptables  -I INPUT  -p icmp --icmp-type 8 -j DROP  
禁止别人ping我们的服务器,但是我们可以ping别人

显式条件匹配

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第15张图片

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第16张图片

导入、导出防火墙规则计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第17张图片

[root@router nat]#iptables-save >/etc/sysconfig/iptables  #导入规则

[root@router nat]# iptables-restore 

开机自动加载我们的iptables规则

开机执行iptables脚本

修改/etc/rc.local,添加命令到文件的末尾

首先需要执行/lianxi/713/iptables.sh脚本,使iptables中生成规则链

bash /lianxi/713/iptables.sh

修改权限 

[root@sc 713]# chmod +x /etc/rc.d/rc.local
[root@sc 713]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 11月  9 2019 /etc/rc.local -> rc.d/rc.local
[root@sc 713]#

iptables-restore实现规则导入

修改/etc/rc.local,添加命令到文件的末尾

命令:iptables-restore < /lianxi/713/iptables.rule

实验: 实现设置iptables规则指定端口访问实验

步骤:


    1.搭建一台linux服务器,开启ssh和MySQL和nginx服务
    2.使用防火墙iptables规则,允许192.168.0.*(你的windows机器)访问sshd服务,允许192.168.2.12~192.168.2.100这个ip地址段主机访问本机的8080端口
    3.允许192.168.0.13和192.168.0.14访问mysql服务(3306端口)
    4.web服务所有的人都可以访问
    5.允许ping服务器,允许dns域名查询
    6.其他的端口都不允许访问
    7.记录所有ping本机的信息到日志文件
    8.保证开机自动使用这个脚本里的规则

实验拓扑图:

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第18张图片

设置只有端口22  53  67  3306  80 443端口可以访问

例如:打开22号端口

#open ssh
iptables -t filter  -A INPUT  -p tcp  --dport  22 -j ACCEPT

在我们的业务服务器上

open_app.sh

[root@goweb iptables]# cat open_app.sh 
#!/bin/bash

#open ssh
iptables -t filter  -A INPUT  -p tcp  --dport  22 -j ACCEPT

#open dns
iptables -t filter  -A INPUT  -p udp  --dport 53 -s 192.168.91.0/24 -j ACCEPT

#open dhcp 
iptables -t filter  -A INPUT  -p udp   --dport 67 -j ACCEPT

#open http/https
iptables -t filter  -A INPUT -p tcp   --dport 80 -j ACCEPT
iptables -t filter  -A INPUT -p tcp   --dport 443 -j ACCEPT

#open mysql
iptables  -t filter  -A INPUT -p tcp  --dport 3306  -j ACCEPT

#default policy DROP
iptables  -t filter  -P INPUT DROP #设置默认规则,如果不是从如上的端口访问进来的数据,就都会被iptables丢弃(DROP)

# drop icmp request
iptables -t filter  -A INPUT -p icmp  --icmp-type 8 -j DROP #设置默认规则,禁止别的机器ping你
[root@goweb iptables]# 

在我们的路由器上进行

配置网关服务器(路由器)的SNAT和DNAT策略:SNAT_DNAT.sh 

SNAT_DNAT.sh 

[root@router nat]# cat SNAT_DNAT.sh 
#!/bin/bash

#enable  routing
echo 1 >/proc/sys/net/ipv4/ip_forward

############# stop firewall and clear iptables rule
service firewalld  stop
systemctl disable firewalld

iptables -F
iptables -t nat -F

###########enable SNAT
#iptables -t nat  -A POSTROUTING  -s 192.168.91.0/24  -o ens33  -j SNAT  --to-source  192.168.2.169
iptables -t nat  -A POSTROUTING  -s 192.168.91.0/24  -o ens33  -j MASQUERADE
#内网来的192.168.91.0网段过来的ip地址全部伪装(替换)为ens33接口的公网ip地址,好处就是不需要考虑ens33接口的ip地址是多少,你是哪个ip地址,我就伪装成哪个ip地址

###########enable DNAT
#open ssh 2233 --->192.168.91.80 2233   目的是发布SSH
iptables  -t nat -A PREROUTING   -d  192.168.2.169  -i ens33  -p tcp  --dport 2233 -j DNAT  --to-destination 192.168.91.128:22

#open web 80     目的是发布web服务器
iptables  -t nat -A PREROUTING  -d 192.168.2.169 -i ens33  -p tcp --dport 80 -j DNAT  --to-destination 192.168.91.128:80

[root@router nat]# 

最后测试

验证DNAT发布的Web的80端口:

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第19张图片

验证DNAT发布的SSH中的2233端口

计算机网络day16 防火墙 - iptables - netfilter - iptables的四表五链 - iptables命令 - iptables的匹配条件 - iptables端口实验_第20张图片

其他的端口我们能通过内部的linux机器进行测试(192.168.91.80)

iptables总结:

iptables的条件:
		1.协议:tcp  udp  icmp
			-p   protocol  小写的p
			-p  icmp   --icmp-type  8    ping请求报文
			-p  icmp   --icmp-type  0    ping响应报文
		2.端口号:
			-p  tcp   --sport
			-p  tcp   --dport
			-p  udp   --sport
			-p  udp   --dport
			 -p tcp --sport 20:80
			 iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
		3.ip地址
			-s  source
			-d  destination
iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
		4.mac地址
		5.状态
		6.其他
			-i  in-interface
			-o  out-interface

iptables -I INPUT -i ens33 -p tcp --tcp-flags  SYN,RST,ACK  SYN -j REJECT
ens33接口上不接收tcp三次握手的第一个包--》不允许新的连接产生了

[root@localhost ~]# iptables -A FORWARD -m mac --mac-source 00:0C:29:27:55:3F -j DROP
[root@localhost ~]# iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
[root@localhost ~]# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP


常见的数据包处理方式
ACCEPT:放行数据包
DROP:丢弃数据包
REJECT:拒绝数据包,给一个回复
LOG:记录日志信息,并传递给下一条规则处理  --》相当于抓包
用户自定义链名:传递给自定义链内的规则进行处理

SNAT:修改数据包的源地址信息
DNAT:修改数据包的目标地址信息
MASQUERADE 实现snat功能,不需要经常换公网ip地址
自定义链

[root@web-server ~]# iptables -t filter -N sanchuang 新建链
[root@web-server ~]# iptables -t filter -A sanchuang -p tcp --dport 22 -j ACCEPT  增加规则

[root@web-server ~]# iptables -A INPUT -p tcp  --dport 22 -j  sanchuang  通过INPUT链给sanchuang链导流,然后会根据sanchuang链里的规则进行匹配

你可能感兴趣的:(计算机网络)