【Linux】一步一步学Linux——iptables命令(186)
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)相关推荐
- 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么
Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到win ...
- LINUX学习之路(学LINUX必看)
很多同学接触Linux不多,对Linux平台的开发更是一无所知.而现在的趋势越来越表明,作为一 个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段.下来我将会结 ...
- linux学习需要什么基础,学linux需要什么基础?
近几年来,随着计算机网络的发展,越来越多的人学习 linux.对于想要从事运维工作或者从事智能开发方面的同学来说,学习 linux 是必要的.linux 的学习并不简单,那么这篇文章 w3cschoo ...
- 分享--linux 学习之路(学linux必看)
很多同学接触Linux不多,对Linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员, 掌握Linux是一种很重要的谋生资源与手段. 下来我将 ...
- 英语不好学linux运维难吗,学Linux系统难吗?学好Linux运维需要多久
随着近年来经济的快速发展,企业对Linux人才的需求也越来越高.许多人认为,Linux是一个非常简单的行业,然而,Linux行业是一个综合了云计算.Linux运维.Linux开发.Linux编程等多方 ...
- 不会linux的php难找工作,学linux系统难吗
这是 Linux初学者经常会问的问题,其实Linux和Windows一样都属于操作系统,对于大部分人来说,对Windows操作系统十分熟悉,而对Linux操作系统没有使用过,所以觉得很难,其实,只要熟 ...
- linux lamp实验报告,新手学Linux--构建lamp
本人前不久开始学习Linux,俗话说得好,好记性不如烂笔头,于是决定将平日所学所做实验,记录下来,以备回顾.由于本人是个初学者,所以借鉴了很多网上的资料,但在此处写出来的都是经过本人思考和多次实验的记 ...
- Linux其实没那么难学
互联网技术总是更新迭代的,因为2020年的一场疫情,影响着中国乃至整个世界,就在这一年,网络直播,远程办公,在线教育等等的互联网产物进入了众多人的世界,当然,这其中离不开程序员的功劳. 李开复曾经说过 ...
- 大学生为什么要学Linux?Linux有什么优点?
前言 Linux是一种自由和开放源码的类UNIX操作系统.Linux有必要学吗?学Linux有什么作用,学Linux能干什么?Linux最大的作用就是提高效率.当你习惯在Linux命令行下工作,再回到 ...
最新文章
- SpringCloud学习--微服务架构
- C++/C--set常见用法详解【转载】
- python3 之 天天生鲜 项目 缓存cache
- 使用Python批量提取并保存docx文档中的图片
- Android——列表选择框(Spinner)
- 226.翻转二叉树 (力扣leetcode) 博主可答疑该问题
- Redis开发与运维教程
- 2022年最佳的9种逆向工程工具[持续更新]
- 看图找茬找不同小程序源码
- 软件项目经理应具备的素质和条件_IT项目经理必须具备的能力
- 百度地图 创建应用
- 免费老牌php空间,Alwaysdata.com老牌稳定法国PHP免费空间
- 什么是埋点?简述埋点的操作流程
- 道高一尺 魔高一丈(使用插件订火车票)
- window.open打开新标签页面
- 海尔对话 Unity:作为数字转型的高阶形态,数字孪生发展前景不可逆
- Android获取天气预报Demo
- word怎么取消目录
- 傅里叶变换短时傅里叶变换小波变换
- u盘什么品牌质量好?这几款可以试试
热门文章
- 巧用EditPlus包含VS2010网站项目资源
- 平台服务器测试3—接口测试工具实现
- 进军中国软件,踏上寻找自我价值之路的菜鸟
- 对集合变量定义赋值_SpringBoot配置加载原理(自定义加载配置)
- 玛纽尔扫地机器人怎样_扫地机器人怎样选?科沃斯超能王VS云鲸对比测试,看完你就懂了...
- Java黑皮书课后题第3章:**3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形。编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内
- Java黑皮书课后题第2章:2.9(物理:加速度)平均加速度定义为速度的变化量除以这个变化所用的时间,编写程序,提示用户输入以米/秒为单位的起始速度v0,以米/秒为单位的终止速度v1,显示平均加速度
- java一维数组的特点,数据结构:java数组特点以及声明数组类
- 梦断代码阅读笔记02
- 程序员面试100题之二:跳台阶问题(变态跳台阶)