9、iptables 防火墙
1.iptables 基础规则
1.1.Linux 包过滤防火墙
netfilter
位于 Linux 内核中的包过滤功能体系
称为 Linux 防火墙的 “内核态”
iptables
位于 /sbin/iptables,用来管理防火墙规则的工具
称为 Linux 防火墙的 “用户态”
1.2.包过滤的工作层次
主要是网络层,针对 IP 数据包,体现在对包内IP地址、端口等信息的处理上

1.3.iptables 的表、链结构
规则链
规则的作用:对数据包进行过滤或处理
链的作用:容纳各种防火墙规则
链的分类依据:处理数据包的不同时机
默认包括 5 种规则链
INPUT:处理入站数据包
OUTPUT:处理出站数据包
FORWARD:处理转发数据包
POSTROUTING链:在进行路由选择后处理数据包(在做 NAT 时有用)
PREROUTING链:在进行路由选择前处理数据包(在做 NAT 时有用)
规则表
表的作用:容纳各种规则链
表的划分依据:防火墙规则的作用相似
默认包括 4 个规则表
raw 表:确定是否对该数据包进行状态跟踪(PREROUTING、OUTPUT)
mangle 表:为数据包设置标记(PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD)
nat 表:修改数据包种的源、目标 IP 地址或端口(PREROUTING、POSTROUTING、OUTPUT)
filter 表:确定是否放行该数据包(过滤)(INPUT、FORWARD、OUTPUT)
1.4.数据包过滤的匹配流程
规则表之间的顺序:raw -> mangle -> nat -> filter
规则链之间的顺序:
入站:PREROUTING -> INPUT
出站:OUTPUT -> POSTROUTING
转发:PREROUTING -> FORWARD -> POSTROUTING
规则链内的匹配顺序:
按顺序依次检查,匹配即停止(LOG 策略例外)
若找不到相匹配的规则,则按该链的默认策略处理(默认策略是允许,如果修改为拒绝,就成白名单了)
访问的是服务器自身,则经过 input 到 output 走

2.iptables 基本语法
语法:iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型]
eg:iptables -t filter -I INPUT -p icmp -j REJECT #禁 ping
注意:
不指定表名时,默认指 filter 表
不指定链名时,默认指表内的所有链
除非设置链的默认策略,否则必须指定匹配条件
选项、链名、控制类型使用大写字母,其余均为小写
2.1.数据包常见控制类型
ACCEPT:允许通过
DROP:直接丢弃,不给出任何回应
REJECT:拒绝通过,必要时会给出提示
LOG:记录日志信息,然后传给下一条规则继续匹配
2.2.iptables 管理选项
添加新的规则:
-A:在链的末尾追加一条规则
-I:在链的开头(或指定序号后一行)插入一条规则
eg:
iptables -t filter -A INPUT -p tcp -j ACCEPT
iptables -I INPUT -p udp -j ACCEPT
iptables -I INPUT 2 -p icmp -j ACCEPT
查看规则列表:
-L:列出所有的规则条目
-n:以数字形式显示地址、端口等信息
-v:以更详细的方式显示规则信息
--line-numbers:查看规则时,显示规则的序号
eg:iptables -n -L INPUT(iptables -nL INPUT)
删除、清空规则:
-D:删除链内指定序列号(或内容)的一条规则
-F:清空所有的规则(-t:指定清空某个规则表的规则)
eg:
iptables -D INPUT 3
iptables -t nat -F
设置默认策略:
-P:为指定的链设置默认规则
eg:iptables -t filter -P OUTPUT ACCEPT(默认策略要么是 ACCEPT,要么是 DROP)
9、iptables 防火墙的更多相关文章
- CentOS系统配置 iptables防火墙
阿里云CentOS系统配置iptables防火墙 虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FO ...
- 关闭SELinux和iptables防火墙
1.关闭SELinux: 编辑SELinux配置文件: [root@Redis selinux]# vim /etc/selinux/config 修改SELINUX配置项为disable SELIN ...
- CentOS 7.0,启用iptables防火墙
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fir ...
- 编译内核实现iptables防火墙layer7应用层过滤 (三)
在前面的两篇文章中我们主要讲解了Linux防火墙iptables的原理及配置规则,想博友们也都知道iptables防火墙是工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙.以 ...
- [CentOs7]iptables防火墙安装与设置
摘要 CentOS 7.0默认使用的是firewall作为防火墙,如果改为iptables防火墙,如何操作? 关闭firewall: systemctl stop firewalld.service ...
- iptables防火墙作为基本需求的配置
企业中使用iptables防火墙:(一般不要在命令中输入规则) # Firewall configuration written by system-config-firewall# Manual c ...
- [moka同学摘录]iptables防火墙规则的添加、删除、修改、保存
文章来源:http://www.splaybow.com/post/iptables-rule-add-delete-modify-save.html 本文介绍iptables这个Linux下最强大的 ...
- linux 的iptables防火墙
.a文件就是*.o文件的集合, 是object文件的归档文件, 所以, 用nm -A ???.a看到的 symbolic符合名称都是 相应的, 包含的 .o文件.... linux 2.4内核中 ...
- 使用iptables防火墙限制web的访问PV
使用iptables防火墙限制web的访问PV #!/bin/bash while true;do awk '{print $1}' /tmp/test/access.log| grep -v &qu ...
- Netfilter/iptables防火墙
http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免 ...
随机推荐
- 【Java面试题】Mybatis
五.MyBatis 40)谈谈 MyBatis Mybatis 是一个半自动化的 ORM 框架,它对 jdbc 的操作数据库的过程进行封装,使得开发者只需要专注于 SQL 语句本身,而不用去关心注册驱 ...
- Redis 19 SpringBoot集成
概述 SpringBoot 整合 Redis 是使用 SpringData 实现的. SpringData 是与 SpringBoot 齐名的顶级项目,整合了对常用数据库的模板型操作. 在 Sprin ...
- Python生成测试数据--Faker的使用方法
# 官方文档:https://faker.readthedocs.io/en/master/index.html # 安装:pip install Faker from faker import Fa ...
- sql 语句系列(月份的第一天和最后一天)[八百章之第二十章]
前言 插播一个,从给定日期值里面提取年月日时分秒. 之所以写这个是因为使用频率太高. mysql: select DATE_FORMAT(CURRENT_TIMESTAMP,'%k') hr, DAT ...
- js 词法作用域
前言 什么是作用域? 作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域. 白话文:作用域就是变量在哪块 ...
- iOS的cer、p12格式证书解析监控
之前博客写过直接解析ipa包获取mobileprovision文件来监控APP是否过期来,但APP的推送证书还没有做, 大家都知道,iOS的推送证书不会放到ipa包里,只能通过直接解析p12或cer. ...
- ST语言
CODESYS平台的ST语言笔记 前言: 基于汇川plc软件,底层是CODESYS平台.这回ST语言正儿八经要用 所以要学,做笔记是为了梳理加深基础要点印象,顺便分享交流学习.codesys平台包括汇 ...
- 国内首家!百度智能云宣布支持Llama3全系列训练推理
继18日Llama3的8B.70B大模型发布后,百度智能云千帆大模型平台19日宣布在国内首家推出针对Llama3全系列版本的训练推理方案,便于开发者进行再训练,搭建专属大模型,现已开放邀约测试. 目前 ...
- three.js使用Instanced Draw+Frustum Cull+LOD来渲染大场景(开源)
大家好,本文使用three.js实现了渲染大场景,在移动端也有较好的性能,并给出了代码,分析了关键点,感谢大家~ 关键词:three.js.Instanced Draw.大场景.LOD.Frustum ...
- 力扣570(MySQL)-至少有5名直接下属的经理(简单)
题目: Employee 表包含所有员工和他们的经理.每个员工都有一个 Id,并且还有一列是经理的 Id. 给定 Employee 表,请编写一个SQL查询来查找至少有5名直接下属的经理.对于上表,您 ...