00. 目录

文章目录

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

01. 命令概述

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

02. 命令格式

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

03. 常用选项

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

格式详解

iptables命令选项输入顺序

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

表名包括:

  • 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 ~]#

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

[root@localhost ~]# iptables -X
[root@localhost ~]#

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

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

[root@localhost ~]# iptables -Z
[root@localhost ~]#

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

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

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

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

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

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

4.7 允许访问22端口

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

4.8 允许访问80端口

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

4.9 允许ftp服务的21端口

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

4.10 允许FTP服务的20端口

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

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

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

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

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

4.13 屏蔽单个IP的命令

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

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 ~]#

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 ~]#

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 ~]#

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 ~]#

4.18 删除已添加的iptables规则

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

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

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

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

4.19 清空 filter表INPUT所有规则

[root@localhost ~]# iptables  -F INPUT
[root@localhost ~]#

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

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

05. 附录

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

【Linux】一步一步学Linux——iptables命令(186)相关推荐

  1. 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么

    Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...

  2. LINUX学习之路(学LINUX必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...

  3. linux学习需要什么基础,学linux需要什么基础?

    近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...

  4. 分享--linux 学习之路(学linux必看)

    很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...

  5. 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久

    随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...

  6. 不会linux的php难找工作,学linux系统难吗

    这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...

  7. linux lamp实验报告,新手学Linux--构建lamp

    本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...

  8. Linux其实没那么难学

    互联网技术总是更新迭代的,因为2020年的一场疫情,影响着中国乃至整个世界,就在这一年,网络直播,远程办公,在线教育等等的互联网产物进入了众多人的世界,当然,这其中离不开程序员的功劳. 李开复曾经说过 ...

  9. 大学生为什么要学Linux?Linux有什么优点?

    前言 Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到 ...

最新文章

  1. SpringCloud学习--微服务架构
  2. C++/C--set常见用法详解【转载】
  3. python3 之 天天生鲜 项目 缓存cache
  4. 使用Python批量提取并保存docx文档中的图片
  5. Android——列表选择框(Spinner)
  6. 226.翻转二叉树 (力扣leetcode) 博主可答疑该问题
  7. Redis开发与运维教程
  8. 2022年最佳的9种逆向工程工具[持续更新]
  9. 看图找茬找不同小程序源码
  10. 软件项目经理应具备的素质和条件_IT项目经理必须具备的能力
  11. 百度地图 创建应用
  12. 免费老牌php空间,Alwaysdata.com老牌稳定法国PHP免费空间
  13. 什么是埋点?简述埋点的操作流程
  14. 道高一尺 魔高一丈(使用插件订火车票)
  15. window.open打开新标签页面
  16. 海尔对话 Unity:作为数字转型的高阶形态,数字孪生发展前景不可逆
  17. Android获取天气预报Demo
  18. word怎么取消目录
  19. 傅里叶变换短时傅里叶变换小波变换
  20. u盘什么品牌质量好?这几款可以试试

热门文章

  1. 巧用EditPlus包含VS2010网站项目资源
  2. 平台服务器测试3—接口测试工具实现
  3. 进军中国软件,踏上寻找自我价值之路的菜鸟
  4. 对集合变量定义赋值_SpringBoot配置加载原理(自定义加载配置)
  5. 玛纽尔扫地机器人怎样_扫地机器人怎样选?科沃斯超能王VS云鲸对比测试,看完你就懂了...
  6. Java黑皮书课后题第3章:**3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形。编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内
  7. Java黑皮书课后题第2章:2.9(物理:加速度)平均加速度定义为速度的变化量除以这个变化所用的时间,编写程序,提示用户输入以米/秒为单位的起始速度v0,以米/秒为单位的终止速度v1,显示平均加速度
  8. java一维数组的特点,数据结构:java数组特点以及声明数组类
  9. 梦断代码阅读笔记02
  10. 程序员面试100题之二:跳台阶问题(变态跳台阶)