linux防火墙iptables

参考:https://zhuanlan.zhihu.com/p/441089738

介绍

防火墙是计算机的重要功能之一,可以有效保护计算机安全。对防火墙的配置和管理是运维的主要工作之一。

iptables是linux计算机常用的防火墙。可以配置实现ip、端口等规则的过滤。

结构

iptables分为表Tables、链Chains、规则Rules三个层次。

iptables有Filter, NAT, Mangle, Raw四种内建表。

表tables

  1. Filter表
    Filter是iptables的默认表,它有以下三种内建链(chains):

INPUT链 – 处理来自外部的数据。

OUTPUT链 – 处理向外发送的数据。

FORWARD链 – 将数据转发到本机的其他网卡设备上。

  1. NAT表
    NAT表有三种内建链:

PREROUTING链 – 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。

POSTROUTING链 – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。

OUTPUT链 – 处理本机产生的数据包。

  1. Mangle表
    Mangle表用于指定如何处理数据包。它能改变TCP头中的QoS位。Mangle表具有5个内建链(chains):

PREROUTING
OUTPUT
FORWARD
INPUT
POSTROUTING
4. Raw表

Raw表用于处理异常,它具有2个内建链:

PREROUTING chain

OUTPUT chain

规则

规则的关键知识点:

Rules包括一个条件和一个目标(target)

如果满足条件,就执行目标(target)中的规则或者特定值。

如果不满足条件,就判断下一条Rules。

目标值(Target Values)
在target里指定的特殊值:

ACCEPT – 允许防火墙接收数据包

DROP – 防火墙丢弃包

QUEUE – 防火墙将数据包移交到用户空间

RETURN – 防火墙停止执行当前链中的后续Rules,并返回到调用链(the calling chain)中。

命令

清除规则

iptables --flush
或者
iptables -F

iptables -t nat -F

永久生效

service iptables save

# 重启iptables服务
service iptables stop
service iptables start

追加

iptables -A chain firewall-rule

-A chain – 指定要追加规则的链
firewall-rule – 具体的规则参数

# 1.清空所有iptables规则
iptables -F

# 2.接收目标端口为22的数据包
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

# 3.拒绝所有其他数据包
iptables -A INPUT -j DROP
posted @ 2022-06-06 16:44  黑白猫123  阅读(79)  评论(0编辑  收藏  举报