惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
J
Java Code Geeks
爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
美团技术团队
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
IT之家
IT之家
博客园_首页
B
Blog RSS Feed
Google DeepMind News
Google DeepMind News
B
Blog
U
Unit 42
Apple Machine Learning Research
Apple Machine Learning Research
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
博客园 - 聂微东
腾讯CDC
A
About on SuperTechFans

灰叶的笔记

Linux逻辑卷2-扩容/常用命令汇总 | 灰叶的笔记 Dockerfile 容器镜像构建 | 灰叶的笔记 Linux 查看内存和实际物理内存大小不一致 | 灰叶的笔记 GCP创建泛域名证书(域名托管在CloudFlare) | 灰叶的笔记 Docker基础指令-镜像相关 | 灰叶的笔记 Docker基础指令-容器相关 | 灰叶的笔记 GCP和AWS使用PCCW专线互联 | 灰叶的笔记 使用 OpenTelemetry 采集日志推送至 GCP Cloud Logging | 灰叶的笔记 vim编辑器常用操作 | 灰叶的笔记 Linux主机是否被入侵的11个排查步骤 | 灰叶的笔记 Ubuntu 安装 Docker-CE | 灰叶的笔记 Fail2Ban-Linux防SSH暴力破解工具 | 灰叶的笔记 公用云Linux快照创建磁盘挂载问题 | 灰叶的笔记 ubuntu 安装图形化桌面 | 灰叶的笔记 Linux逻辑卷 | 灰叶的笔记 UCloud CentOS6.X修改hostname | 灰叶的笔记 软件源安装Dokcer | 灰叶的笔记 Ubuntu系统启用root用户ssh远程登录 | 灰叶的笔记 Windows Server关闭IE增强 | 灰叶的笔记 windows云服务器开启媒体声音 | 灰叶的笔记 MySQL5.7多实例部署 | 灰叶的笔记 nc网络工具 | 灰叶的笔记 WinServer2008云服务器系统盘可压缩空间不足 | 灰叶的笔记 Rocky Linux8.5 UCloud官方镜像进入单用户模式 | 灰叶的笔记 UCloud官方Linux 镜像进入单用户模式汇总 | 灰叶的笔记 Debian10 UCloud官方镜像进入单用户模式 | 灰叶的笔记 CentOS6 UCloud官方镜像进入单用户模式 | 灰叶的笔记 CentOS7/8 UCloud官方镜像进入单用户模式 | 灰叶的笔记 Ubuntu UCloud官方镜像进入单用户模式 | 灰叶的笔记 几个检查本机的网络连接的工具(linux) | 灰叶的笔记
iptables基础命令与filter表相关命令 | 灰叶的笔记
huiye · 2024-07-08 · via 灰叶的笔记

本文主要基于前人的文档总结了下常用的基础命令

基础命令

# iptables -t filter -L -n

-L 列出所有的规则
-t 指定表(filter是默认表,若是查filter可以不用加-t)
-n 直接显示IP地址
-v 显示更多信息
--line 显示行号
-F [链名] 清空指定链

保存规则(若不进行规则保存,重启iptables或者系统后,规则会重置为操作前的规则)
# service iptables save
或者将规则重定向到/etc/sysconfig/iptables文件中即可。
# iptables-save > /etc/sysconfig/iptables
若是centos7及以上的系统需要单独再安装iptables-service服务
# yum install -y iptables-service
使用iptables-restore命令可以从指定文件中重载规则,示例如下。注:文件中的规则将会覆盖现有规则
# iptables-restore < /etc/sysconfig/iptables

filter表

filter表的链:INPUT(处理进入本机的入向数据包)OUTPUT(处理从本机出去的出向数据包)FORWARD(处理经过本机但目的地不是本机的数据包。例如,路由或桥接的数据包)。

# iptables -t filter -A INPUT -j DROP -s 0.0.0.0/0
-t [表] 指定表
-A [链] 指定链追加规则
-D [链] 指定删除的链规则,可以指定行号删除,可以在[链]后面加数字,意为删除第几行
-I [链] 默认插入到第一条(注:越在前面的链,优先级越高),可以在[链]后面加数字,意为插入到第几条
-R [链] 修改链规则,可以指定行号修改,可以在[链]后面加数字,意为修改第几行规则(注:修改时完整规则不可省略,否则修改的规则中的源地址会自动变为0.0.0.0/0)
-j 指定动作,可选:DROP ACCEPT REJECT(注意动作需要为大写)
-p 指定协议,可选:tcp udp udplite icmp esp ah sctp等

-d [ip] 指定目的地址
# iptables -t filter -A OUTPUT -j DROP -p tcp -d 0.0.0.0
-s [ip] 指定来源地址

--doprt [port] 指定目的端口,使用此参数时,必须事先指定了使用哪种协议;可以指定端口范围,例如指定22到30端口: --dport 22:30
# iptables -t filter -A INPUT -j DROP -p tcp --dport 80
--sport [port] 指定来源端口,使用此参数时,必须事先指定了使用哪种协议;可以指定端口范围,例如指定22到30端口: --dport 22:30
注:若需要指定多个离散的端口,需要使用-m multiport扩展模块,dport和sport理论上都是是用了扩展功能,不进行指定多离散端口时,-m可以省略
# iptables -t filter -A OUTPUT -j DROP -p tcp -m multiport --sport 80,3389,22

-P [链] 修改链的默认规则,链后面跟动作,可选:DROP ACCEPT REJECT

-i [网卡] 当本机有多个网卡时,可以使用 -i 选项去匹配报文是通过哪张网卡流入本机的(注:只能作用于PREROUTING链、INPUT链、FORWARD链)
# iptables -t filter -A INPUT -i eth0 -j DOP
-o [网卡] 当本机有多个网卡时,可以使用 -o 选项去匹配报文是通过哪张网卡流出本机的(注:只能作用于FORWARD链、OUTPUT链、POSTROUTING链)

示例:

-s 用于匹配报文的源地址,可以同时指定多个源地址,每个IP用逗号隔开,也可以指定为网段。!为取反

# iptables -t filter INPUT -s 192.168.0.2,192.168.0.10 -j DROP
# iptables -t filter INPUT -s 192.168.0.0/24 -j ACCEPT
# iptables -t filter INPUT ! -s 192.168.0.0/24 -j ACCEPT

-d 用于匹配报文的目标地址,可以同时指定多个目标地址,每个IP用逗号隔开,也可以指定为一个网段

# iptables -t filter INPUT -d 192.168.0.2,192.168.0.10 -j DROP
# iptables -t filter INPUT -d 192.168.0.0/24 -j ACCEPT
# iptables -t filter INPUT ! -d 192.168.0.0/24 -j ACCEPT

-p 用于匹配报文的协议类型,可匹配的协议类型:tcp udp udplite icmp esp ah sctp

# iptables -t filter -I INPUT -p tcp -s 192.168.0.10 -j ACCEPT
# iptables -t filter -I INPUT -p udp -s 192.168.0.10 -j REJECT

-i 用于匹配报文是从哪张网卡流入本机的,只能作用于PREROUTING链、INPUT链、FORWARD链

# iptables -t filter -I INPUT -p tcp -i eth0 -j DROP

-o 用于匹配报文从哪张网卡流出本机,只能作用于FORWARD链、OUTPUT链、POSTROUTING链

# iptables -t filter -I OUTPUT -p tcp -o eth0 -j DROP

参考文档: iptables详解(4):iptables匹配条件总结之一-朱双印博客 (zsythink.net)