个人理解在acg图片下面
iptables四表
filter表:负责过滤功能,防火墙;内核模块:iptables_filter
filter表是iptables防火墙中的一个表,用于过滤掉不符合规则的数据包。在filter表中可以定义多个链,如INPUT、OUTPUT、FORWARD等,每个链可以有多条规则,用于对数据包进行过滤和转发操作。对于经过一个接口的数据包,iptables会根据规则表中的规则进行匹配,符合规则的数据包将被允许通过,不符合规则的数据包则会被拦截或丢弃。filter表常用于设置网络安全策略,防止未授权的访问和攻击。
当iptables过滤器表中的规则检查一个数据包时,数据包会根据它的目标地址和端口来匹配预定义的链中的一个链。
预定义的链有三种:
INPUT:用于控制到达本机的数据包的处理方式。
INPUT 链用于控制到达本机的数据包的处理。当一个数据包到达本机时,内核将该数据包与 INPUT 链中的每个规则进行匹配,以确定该数据包是否应该接受并被处理。输入链通常包括以允许来自可信来源的数据包。例如,允许来自本地网络或特定 IP 地址的数据包。拒绝来自不可信来源的数据包。例如,拒绝来自未知或不受信任的 IP 地址的数据包。允许与已经建立的连接相关的数据包通过。例如,允许来自已连接的客户端或服务器的数据包通过。拒绝与已经终止的连接相关的数据包通过。例如,拒绝来自已经关闭的连接的数据包。允许 ICMP 数据包通过。这些数据包用于网络故障排除和其他网络管理任务。允许某些特定类型的流量通过,例如 DNS 查询或 DHCP 请求。这些规则可以根据特定的需求进行配置,以确保只有经过授权的数据包被接受并被处理。
FORWARD:用于控制通过本机的数据包的处理方式。
OUTPUT:用于控制从本机发出的数据包的处理方式。
这些预定义的链是iptables过滤器表的基础,它们可以使用iptables命令和规则进行修改。用户可以添加自定义链,也可以将自定义链添加到预定义的链中。预定义的链可以通过iptables规则进行过滤和修改,以控制网络流量的流动方式。
个人理解就是iptables本身就不是防火墙,他就是一个命令行工具,filter表就是干嘛的呢,写个规则,区分是不是自己人的数据的,里面有三个士兵设了关卡-INPUT是干嘛的呢就像关卡查身份证。连接到一个远程服务器就像到城池里面,INPUT 链就像一个守门的,检查进入城池里的人(检查进入服务器的所有数据包),然后看文书(规则)去看你是不是我们本地人,是不是我们邀请的客人,是不是经商的(根据过滤规则来决定是否允许这些数据包通过,如果通过就将它们传递给相应的服务进行处理。)
例如,当你从一个远程客户端连接到 SSH 服务时,INPUT 链会检查这个连接请求,如果通过过滤规则,就允许 SSH 数据包通过,然后将这个请求传递给 SSH 服务进行处理,建立连接。啥意思呢?ssh请求有点像城池里商会的人,然后有个文书(密钥或者密码)然后就进城去ssh服务那边(就是去商会报道)。