Linux_iptables防火墙学习笔记

文章目录

    • iptables 概述
    • 四表五链
    • iptables 安装启动
    • iptables 配置详解
      • iptables配置文件
      • iptables配置语法
      • iptables常用实例
        • 查看规则
        • 修改默认规则
        • 保存和备份规则
        • 恢复备份的规则
        • 清空规则
        • 放行SSH服务
        • 在ubuntu14.04中iptables规则持久化

iptables 概述

  1. 主机型
    1. 对主机进行保护
  2. 网络型
    1. 系统当作路由时使用,对网络进行保护
  3. iptables是一个用户空间的应用,用来设置内核空间的netfilter
  4. iptables没有守护进程,不能算是真正意义上的服务,应该算是内核提供的功能

四表五链

  1. 数据经过防火墙的流程
    在这里插入图片描述

  2. 四表

    1. filter表
      1. 负责过滤功能,防火墙;内核模块:iptables_filter
    2. nat表
      1. network address translation,网络地址转换功能;内核模块:iptable_nat
    3. mangle表
      1. 拆解报文,做出修改,并重新封装的功能;内核模块:iptable_mangle
    4. raw表
      1. 关闭nat表上雇用的连接追踪机制;内核模块:iptable_raw
  3. 五链

    1. PREROUTING(路由前)
    2. INPUT(数据包入本机)
    3. FORWARD(数据转发)
    4. OUTPUT(数据包出本机)
    5. POSTROUTING(路由后)
  4. 规则

    1. 处理运作
      1. ACCEPT
        1. 允许数据包通过
      2. DROP
        1. 直接丢弃数据包,不给任何回应信息
      3. REJECT
        1. 拒绝数据包通过,返回拒绝的回应信息
      4. SNAT
        1. 源地址转换,解决内网用户用同一个公网地址上网的问题
      5. MASQUERADE
        1. 伪装,是SNAT的一种特殊形式,适用于动态的、临时会变的IP上
      6. DNAT
        1. 目标地址转换
      7. REDRECT
        1. 在本机做端口映射
      8. LOG
        1. 在/var/log/message文件中记录日志信息,继续进行下一条规则

iptables 安装启动

  1. 以CentOS7为例
  2. 禁用selinux和firewalld
    systemctl stop firewalld;systemctl disable firewalld;setenforce 0;sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
    
  3. 安装启动iptables服务
    yum -y install iptables-services;systemctl enable iptables --now;systemctl status iptables
    
  4. 查看内核是否支持iptables
    lsmod|egrep "nat|filter"
    

iptables 配置详解

iptables配置文件

  1. ipv4
    vi /etc/sysconfig/iptables
    
  2. ipv6
    vi /etc/sysconfig/ip6tables
    

iptables配置语法

  1. 语法
    iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 运作]
    
  2. 管理选项
    选项功能备注
    -t 表指定要操作的表默认为filter表
    -A向规则链中添加条目在最后添加
    -D从规则链中删除条目指定条目内容
    -I向规则链中插入条目默认在最前插入
    -R替换规则链中已有的条目
    -L显示规则链中已有的条目
    -F清空规则链中所有条目注意,可能会断SSH
    -Z清空规则链中的数据包计数器和字节计数器
    -N创建新的用户自定义规则链
    -P定义规则链中的默认目标
    -h显示帮助信息
    -p指定要匹配的数据包协议类型
    -s指定要匹配的数据包源ip地址
    -d指定要匹配的数据包目的ip地址
    -j 目标指定动作
    -i 网络接口指定数据包进入本机的网络接口
    -o 网络接口指定数据包要离开本机所使用的网络接口

iptables常用实例

查看规则
  1. 默认为netfilter表,不解析,显示行号
    iptables -nL --line-numbers
    
修改默认规则
  1. 默认为netfilter表,修改INPUT链默认规则为"DROP"
    iptables -P INPUT DROP
    
保存和备份规则
  1. 修改的规则临时生效
  2. 如果要永久生效需要保存配置
  3. 命令
    1. 保存配置
      iptables-save
      
    2. 备份配置
      iptables-save > /mnt/iptables_bak_$(date "+%Y-%m-%d_%H:%M")
      
恢复备份的规则
  1. 命令
    iptables-restore 备份的文件名
    
清空规则
  1. 默认为netfilter表,清空规则,如果默认规则不是ACCEPT,会造成SSH立即断开
    iptables -F
    
放行SSH服务
  1. 源IP:192.168.86.2
  2. 目的IP:192.168.99.202
  3. SSH端口:22
  4. 命令
    iptables -I INPUT -s 192.168.86.2 -d 192.168.99.202 -p tcp --dport 22 -j ACCEPT
    iptables -I OUTPUT -s 192.168.99.202 -d 192.168.86.2 -p tcp --sport 22 -j ACCEPT
    
在ubuntu14.04中iptables规则持久化
  1. 修改规则–保存规则为文件–制作开启启动脚本,自动载入文件中规则
  2. 脚本
    #!/bin/bash
    # 修改规则(略)
    # 查看规则
    iptables -nL --line-numbers
    # 保存规则到文件
    sudo mkdir /etc/iptables
    sudo iptables-save > /etc/iptables/rules.v4
    # 制作开机脚本
    sudo iptables-save > /etc/iptables/rules.v4
    cat >> /etc/network/if-pre-up.d/iptables << EOF
    #!/bin/sh
    /sbin/iptables-restore < /etc/iptables/rules.v4
    EOF
    sudo chmod +x /etc/network/if-pre-up.d/iptables
    ```![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/dc4e35de8b4143d5b023fd88c9864e8b.png#pic_center)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/623434.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

020——SPI模块驱动开发(基于DAC芯片和I.MX6uLL)

目录 一、 SPI简介 二、 Linux中的SPI 2.1 SPI控制器数据结构 2.2 SPI设备数据结构 2.3 SPI设备驱动 2.4 接口函数 2.4.1 函数原型 2.4.2 函数解析 2.5 SPI驱动框架 2.6 SPI控制器驱动程序 2.7 SPI设备驱动程序 三、 DAC实例 3.1 实验过程 3.2 驱动程序 3.3 应…

Redis--16--Spring Data Redis

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Spring Data Redishttps://spring.io/projects/spring-data-redis 1.依赖2.RedisTemplate3.案例 序列化1.默认是 JdkSerializationRedisSerializer2.添加Redis配置文…

MySQL基础-----约束详解

目录 一. 概述: 二.约束演示&#xff1a; 三.外键约束&#xff1a; 3.1介绍&#xff1a; 3.2外键约束语法&#xff1a; 3.3删除&#xff0c;更新行为&#xff1a; 一. 概述: &#x1f9d0;&#x1f9d0;概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制…

抖店创业日记:24年的抖音电商市场,“慢”比“快”更重要~

我是王路飞。 今天是2024年4月16日。 距离我坚持做抖店10年的目标&#xff0c;还有6年2个月的时间。 做抖店之前&#xff0c;我做过天猫、京东、快手等平台&#xff0c;随着时间的推移&#xff0c;愈加感觉到一个真理&#xff1a;只要不下牌桌&#xff0c;就永远不会失去机会…

Kubernetes(K8S)集群搭建-node节点配置

1.开始操作之前要先关闭防火墙&#xff0c;SELinux&#xff0c;swap分区 关闭防火墙 sudo systemctl stop firewalld禁用SELinux sudo setenforce 0 # 临时禁用 sudo sed -i s/^SELINUXenforcing$/SELINUXper…

【位运算 试填法】【推荐】3022. 给定操作次数内使剩余元素的或值最小

算法可以发掘本质&#xff0c;如&#xff1a; 一&#xff0c;若干师傅和徒弟互有好感&#xff0c;有好感的师徒可以结对学习。师傅和徒弟都只能参加一个对子。如何让对子最多。 二&#xff0c;有无限多1X2和2X1的骨牌&#xff0c;某个棋盘若干格子坏了&#xff0c;如何在没有坏…

element-ui container 组件源码分享

今日简单分享 container 组件的源码实现&#xff0c;从以下两个方面来讲解&#xff1a; 1、container 组件的页面结构 2、container 组件的属性 一、container 组件的页面结构 二、container 组件的属性 1、container 部分的 direction 属性&#xff0c;子元素的排列方向&am…

恒驰喜讯 | 荣耀加冕,十九载并肩瑞星,共守信息安全防线

近日&#xff0c;作为北京瑞星网安技术股份有限公司&#xff08;以下简称“瑞星”&#xff09;的核心合作伙伴&#xff0c;上海恒驰信息系统有限公司&#xff08;以下简称“恒驰信息”&#xff09;荣获瑞星2023年度“华中区域销售冠军奖”和“华东区域忠诚合作奖”两项表彰。 2…

我的五星工作神器Apps

大家好呀&#xff01;&#x1f44b; 今天我要来种草五款让我工作如鱼得水的神奇App&#xff0c;每一款都是我亲自试用&#xff0c;绝对良心推荐哦&#xff01;赶紧拿出小本本记下来吧&#xff01;&#x1f4dd; 1️⃣【亿可达】——软件连接器 它是一款自动化工具&#xff0c;…

非监督学习的模型为条件概率分布P(z|x)和p(x|z)的区别

在无监督学习中&#xff0c;假设X是输入空间&#xff0c;Z是输出的隐式结构空间&#xff0c;要学习的模型非概率模型情况可以表示为函数zg(x)&#xff0c;概率模型情况下表示为条件概率分布P&#xff08;z|x&#xff09;或p(x∣z)&#xff0c;它们 都可以用来描述数据中的潜在结…

Window安装Redis

安装Redis-Service 下载并安装最新版Redis-windows &#xff1a; https://github.com/redis-windows/redis-windows 安装Redis-Manager Another Redis Desktop Manager 是一款优秀Redis桌面(GUI)管理客户端 参考链接 https://redis.io/

java的volatile

在Java中&#xff0c;线程之间对内存写入操作的可见性是一个重要的问题&#xff0c;因为每个线程都有自己的工作内存&#xff0c;并且线程之间共享主内存。当一个线程修改了共享变量的值&#xff0c;其他线程并不一定能立即看到这个修改&#xff0c;这就是所谓的可见性问题。 例…