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 防火墙的更多相关文章

  1. CentOS系统配置 iptables防火墙

    阿里云CentOS系统配置iptables防火墙   虽说阿里云推出了云盾服务,但是自己再加一层防火墙总归是更安全些,下面是我在阿里云vps上配置防火墙的过程,目前只配置INPUT.OUTPUT和FO ...

  2. 关闭SELinux和iptables防火墙

    1.关闭SELinux: 编辑SELinux配置文件: [root@Redis selinux]# vim /etc/selinux/config 修改SELINUX配置项为disable SELIN ...

  3. CentOS 7.0,启用iptables防火墙

    CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止fir ...

  4. 编译内核实现iptables防火墙layer7应用层过滤 (三)

    在前面的两篇文章中我们主要讲解了Linux防火墙iptables的原理及配置规则,想博友们也都知道iptables防火墙是工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙.以 ...

  5. [CentOs7]iptables防火墙安装与设置

    摘要 CentOS 7.0默认使用的是firewall作为防火墙,如果改为iptables防火墙,如何操作? 关闭firewall: systemctl stop firewalld.service ...

  6. iptables防火墙作为基本需求的配置

    企业中使用iptables防火墙:(一般不要在命令中输入规则) # Firewall configuration written by system-config-firewall# Manual c ...

  7. [moka同学摘录]iptables防火墙规则的添加、删除、修改、保存

    文章来源:http://www.splaybow.com/post/iptables-rule-add-delete-modify-save.html 本文介绍iptables这个Linux下最强大的 ...

  8. linux 的iptables防火墙

    .a文件就是*.o文件的集合, 是object文件的归档文件, 所以, 用nm -A  ???.a看到的 symbolic符合名称都是 相应的,  包含的  .o文件.... linux 2.4内核中 ...

  9. 使用iptables防火墙限制web的访问PV

    使用iptables防火墙限制web的访问PV #!/bin/bash while true;do awk '{print $1}' /tmp/test/access.log| grep -v &qu ...

  10. Netfilter/iptables防火墙

    http://os.51cto.com/art/201107/273443.htm [51CTO独家特稿]Linux系统管理员们都接触过Netfilter/iptables,这是Linux系统自带的免 ...

随机推荐

  1. BeanUtils.copyProperties() 详解

    BeanUtils.copyProperties会进行类型转换:BeanUtils.copyProperties方法简单来说就是将两个字段相同的对象进行属性值的复制. 如果 两个对象之间存在名称不相同 ...

  2. KingbaseES V8R6运维案例之---wal日志解析DML操作

    案例说明: 通过sys_waldump解析DML操作,获取DML操作的日志条目具体内容. 适用版本: KingbaseES V8R3/R6 一.DML事务操作对应的wal日志文件 # 查看当前onli ...

  3. HandlerInterceptorAdapter和HandlerInterceptor的区别

    其实归根揭底一个是抽象类,一个是接口,HandlerInterceptor是接口,它提供了所有方法,让开发人员必须实现所有方法, 而HandlerInterceptorAdapter是一个抽象类,它提 ...

  4. 数据库锁起来了,把事务清掉sql

    select concat('kill ',id,';') from information_schema.`PROCESSLIST` where state !='executing' 将上述代码执 ...

  5. #dp#D 导出子图

    代码 #include <cstdio> #include <cctype> #include <algorithm> #define rr register us ...

  6. 【中秋国庆不断更】OpenHarmony定义可动画属性:@AnimatableExtend装饰器

    [中秋国庆不断更]OpenHarmony定义可动画属性:@AnimatableExtend装饰器 @AnimatableExtend装饰器用于自定义可动画的属性方法,在这个属性方法中修改组件不可动画的 ...

  7. 数据库操作入门:PyMongo 和 MongoDB 的基本用法

    MongoDB MongoDB是一种流行的NoSQL数据库,它将数据存储在类似JSON的文档中,使数据库非常灵活和可扩展 PyMongo Python需要一个MongoDB驱动程序来访问MongoDB ...

  8. HMS Core手语服务荣获2022中国互联网大会“特别推荐案例”:助力建设数字社会

    11月15日,HMS Core手语服务在2022(第二十一届)中国互联网大会 "互联网助力经济社会数字化转型"案例评选活动中,荣获"特别推荐案例". 经过一年多 ...

  9. C++读取配置文件ini

    一.设置 ini 保存位置 // 保存到 appdata 中 LPCWSTR GetIniPath() { WCHAR buffer[MAX_PATH]; BOOL result = SHGetSpe ...

  10. spring boot 手动value和自动注入配置的区别[五]

    前言 前面两篇中,写道我们注入配置的方式,是通过是注解的方式完成,如下: @ConfigurationProperties(prefix ="person") 这意味着: 我们写一 ...