首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐
2025年5月16日 星期五 9:54am

【Linux】一步一步学Linux——iptables命令(186)

  • 23-11-18 13:20
  • 4513
  • 12973
blog.csdn.net

00. 目录

文章目录

    • 00. 目录
    • 01. 命令概述
    • 02. 命令格式
    • 03. 常用选项
    • 04. 参考示例
    • 05. 附录

01. 命令概述

iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

02. 命令格式

格式: iptstate [选项] [参数]
  • 1

03. 常用选项

-t<表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

格式详解

iptables命令选项输入顺序

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
  • 1

表名包括:

  • raw:高级功能,如:网址过滤。
  • mangle:数据包修改(QOS),用于实现服务质量。
  • net:地址转换,用于网关路由器。
  • filter:包过滤,用于防火墙规则。

规则链名包括:

  • INPUT链:处理输入数据包。
  • OUTPUT链:处理输出数据包。
  • PORWARD链:处理转发数据包。
  • PREROUTING链:用于目标地址转换(DNAT)。
  • POSTOUTING链:用于源地址转换(SNAT)。

动作包括:

  • accept:接收数据包。
  • DROP:丢弃数据包。
  • REDIRECT:重定向、映射、透明代理。
  • SNAT:源地址转换。
  • DNAT:目标地址转换。
  • MASQUERADE:IP伪装(NAT),用于ADSL。
  • LOG:日志记录。

04. 参考示例

4.1 清除已有iptables规则

[root@localhost ~]# iptables -F 
[root@localhost ~]# 
  • 1
  • 2

4.2 删除指定的用户自定义链

[root@localhost ~]# iptables -X 
[root@localhost ~]# 
  • 1
  • 2

删除指定的用户自定义链。这个链必须没有被引用,如果被引用,在删除之前你必须删除或者替换与之有关的规则。如果没有给出参数,这条命令将试着删除每个非内建的链。

4.3 把所有链的包及字节的计数器清空

[root@localhost ~]# iptables -Z
[root@localhost ~]# 
  • 1
  • 2

4.4 允许本地回环接口(即运行本机访问本机)

[root@localhost ~]# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
[root@localhost ~]# 
  • 1
  • 2

4.5 允许已建立的或相关链的通行

[root@localhost ~]# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@localhost ~]# 
  • 1
  • 2

4.6 允许所有本机向外的访问

[root@localhost ~]# iptables -A OUTPUT -j ACCEPT
[root@localhost ~]# 
  • 1
  • 2

4.7 允许访问22端口

[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# 
  • 1
  • 2

4.8 允许访问80端口

[root@localhost ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[root@localhost ~]# 
  • 1
  • 2

4.9 允许ftp服务的21端口

[root@localhost ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
[root@localhost ~]# 
  • 1
  • 2

4.10 允许FTP服务的20端口

[root@localhost ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
[root@localhost ~]# 
  • 1
  • 2

4.11 禁止其他未允许的规则访问

[root@localhost ~]# iptables -A INPUT -j REJECT
[root@localhost ~]# 
  • 1
  • 2

4.12 禁止其他未允许的规则访问

[root@localhost ~]# iptables -A FORWARD -j REJECT
[root@localhost ~]# 
  • 1
  • 2

4.13 屏蔽单个IP的命令

[root@localhost ~]# iptables -I INPUT -s 172.16.0.88 -j DROP          
[root@localhost ~]# 
  • 1
  • 2

4.14 封整个段即从172.16.0.1到172.16.0.254的命令

[root@localhost ~]# iptables -I INPUT -s 172.16.0.0/24 -j DROP
[root@localhost ~]# 
  • 1
  • 2

4.15 封整个段即从172.16.0.0到172.16.255.254的命令

[root@localhost ~]# iptables -I INPUT -s 172.16.0.0/16 -j DROP
[root@localhost ~]# 
  • 1
  • 2

4.16 封整个段即从172.0.0.0到172.255.255.254的命令

[root@localhost ~]# iptables -I INPUT -s 172.0.0.0/8 -j DROP
[root@localhost ~]# 
  • 1
  • 2

4.17 查看已添加的iptables规则

[root@localhost ~]# iptables -L -n -v
Chain INPUT (policy ACCEPT 158 packets, 17668 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 106 packets, 19752 bytes)
 pkts bytes target     prot opt in     out     source               destination         
[root@localhost ~]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4.18 删除已添加的iptables规则

将所有iptables以序号标记显示,执行:

[root@localhost ~]# iptables -L -n --line-numbers

  • 1
  • 2

比如要删除INPUT里序号为9的规则

[root@localhost ~]# iptables -D INPUT 9

  • 1
  • 2

4.19 清空 filter表INPUT所有规则

[root@localhost ~]# iptables  -F INPUT
[root@localhost ~]# 
  • 1
  • 2

4.20 设置filter表INPUT默认规则是 DROP

[root@localhost ~]# iptables -P INPUT DROP
[root@localhost ~]# 
  • 1
  • 2

05. 附录

参考:【Linux】一步一步学Linux系列教程汇总

注:本文转载自blog.csdn.net的沧海一笑-dj的文章"https://blog.csdn.net/dengjin20104042056/article/details/100096398"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top