Linux------iptables防火墙常用命令

iptables的表、链结构

  • 规则链

    • 规则的作用:对数据包进行过滤或处理
    • 链的作用:容纳各种防火墙规则
    • 链的分类依据:处理数据包的不同时机
  • 默认包括5种规则链

    • INPUT:处理入站数据包
    • OUTPUT:处理出站数据包
    • FORWARD:处理转发数据包
    • POSTROUTING链: 在进行路由选择后处理数据包
    • PREROUTING链:在进行路由选择前处理数据包
  • 规则表

    • 表的作用:容纳各种规则链
    • 表的划分依据:防火墙规则的作用相似
  • 默认包括4个规则表

    • raw表:确定是否对该数据包进行状态跟踪
    • mangle表:为数据包设置标记
    • nat表:修改数据包中的源、目标IP地址或端口
    • filter表:确定是否放行该数据包(过滤)
  • 默认的表、链结构示意图

在这里插入图片描述

数据包过滤的匹配流程

  • 规则表之间的顺序

    • raw- > mangle >nat > filter
  • 规则链之间的顺序

    • 入站: PREROUTING→INPUT
    • 出站: OUTPUT→POSTROUTING
    • 转发: PREROUTING> FORWARD>POSTROUTING
  • 规则链内的匹配顺序

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

匹配流程示意图

在这里插入图片描述

**注意:**CentOS 7默认使用firewalld防火墙,若想使用iptables防火墙, 必须先关闭firewalld防火墙

iptables安装

  • 关闭firewalld防火墙
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
  • 安装iptables防火墙
[root@localhost ~]# yum -y install iptables iptables-services
  • 设置iptables开机启动
[root@localhost ~]# systemctl start iptables.service
[root@localhost ~]# systemctl enable iptables.service

iptables的基本语法

  • 语法构成
    • iptables -t 表名 选项 链名 条件 -j 控制类型
[root@localhost ~]# iptables -t filter -I INPUT -p icmp-j REJECT
  • 注意事项

    • 不指定表名时,默认指filter表
    • 不指定链名时,默认指表内的所有链
    • 除非设置链的默认策略,否则必须指定匹配条件
    • 选项、链名、控制类型使用大写字母,其余均为小写
  • 数据包的常见控制类型

    • ACCEPT:允许通过
    • DROP:直接丢弃,不给出任何回应
    • REJECT:拒绝通过,必要时会给出提示
    • LOG:记录日志信息,然后传给下一条规则继续匹配
  • 常用管理选项汇总

类别 选项 用途
添加新的规则 -A 在链的末尾加一条规则
添加新的规则 -I 在链的开头(或指定序号)插入一条规则
查看规则列表 -L 列出所有的规则条目
查看规则列表 -n 以数字形式显示地址、端口等信息
查看规则列表 -v 以更详细的方式显示规则信息
查看规则列表 –line-numbers 查看规则时,显示规则的序号
删除、清空规则 -D 删除链内指定序号(或内容)的一条规则
删除、清空规则 -F 删除所有的规则
设置默认策略 -P 为指定的链设置默认规则

规则的匹配条件

常见的通用匹配条件

  • 协议匹配:-p 协议名
  • 地址匹配:-s 源地址 -d 目的地址
  • 接口匹配:-i 入站网卡 -o出站网卡

常用的隐含匹配条件

  • 端口匹配:–sport 源端口 --dport 目的端口
  • ICMP类型匹配: --icmp-type ICMP 类型

示例:

iptables -I INPURT -p icmp -j DROP
iptables -A INPUT -i ens33 -s 192.168.0.0/16 -j DROP
iptables -A FORWARD -s 192.168.4.0/24 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j DROP

注释: 8:请求 、 0:回显 、3:不可达

常用的显示匹配条件

多端口匹配:

  • -m multiport --sports 源端口列表
  • -m multiport --dports 目的端口列表

IP范围匹配:

  • -m iprange --src-range IP范围

MAC地址匹配:

  • -m mac -mac-source MAC地址

状态匹配:

  • -m state --state 连接状态

示例

iptable -A INPUT -p tcp -m multiport --dports 25,80,110 -j ACCEPT
iptable -A FORWARD -p tcp -m iprange --src-range 192.168.4.21-192.168.4.28 -j ACCEPT
iptable -A INPUT -m mac --mac-source 00:0c:29:c0:55:3f -j ACCEPT
iptable -A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT

常见的连接状态:

NEW ------------ 与任何连接无关的
ESTABLISHED ------------ 响应请求或者已建立连接的
RELATED ------------ 与已有连接有相关性的,如FTP数据连接

总结:
iptables防火墙默认包括4个表,5种链

iptables的基本语法

iptables常用管理选项

  • A、I、L、n、v、 --line-numbers、D、F、P

iptables规则匹配条件

  • 通用匹配、隐含匹配、显示匹配

猜你喜欢

转载自blog.csdn.net/weixin_48190875/article/details/107823656