Linux_iptables防火墙学习笔记

news2024/11/27 14:35:01

文章目录

    • 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.coloradmin.cn/o/1599644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Element-Ui的Form表单:Label文本两端对齐,且必填项的*不影响布局

1. HTML 结构 首先&#xff0c;确保你的 HTML 或 Vue 模板中有一个 el-form 组件&#xff0c;类似下面这样&#xff1a; <div id"app"><el-form :model"form" label-width"100px"><el-form-item label"用户名">&l…

Linux系统(centos,redhat,龙芯,麒麟等)忘记密码,怎么重置密码

Linux系统&#xff08;centos,redhat,龙芯&#xff0c;麒麟等&#xff09;忘记密码&#xff0c;怎么重置密码&#xff0c;怎么设置新的密码 今天在操作服务器时&#xff0c;DBA忘记了人大金仓数据库的kingbase密码&#xff0c;他的密码试了好多遍&#xff0c;都不行。最后只能…

JCVI-筛选blast最佳结果(生物信息学工具-015)

通常&#xff0c;大家会问我们经过了NR注释&#xff0c;SwissProt注释&#xff0c;那么如何进行&#xff0c;如何挑选最佳比对结果&#xff1f; 同理&#xff0c;存在一个问题&#xff0c;如何挑选最佳的blast比对结果&#xff1f;什么事最优的同源序列&#xff1f; 唐海宝老…

jenkins构建微信小程序并展示二维码

测试小程序的过程中&#xff0c;很多都是在回头和前端开发说一句&#xff0c;兄弟帮我打一个测试版本的测试码&#xff0c;开发有时间的情况下还好&#xff0c;就直接协助了&#xff0c;但是很多时候他们只修复了其中几个bug&#xff0c;其他需要修复的bug代码正在编写&#xf…

ENSP-旁挂式AC

提醒&#xff1a;如果AC不能成功上线AP&#xff0c;一般问题不会出在AC上&#xff0c;优先关注AC-AP线路上的二层或三层组网的三层交换机 拓扑图 管理VLAN&#xff1a;99 | 业务VLAN&#xff1a;100 注意点&#xff1a; 1.连接AP的接口需要打上pvid为管理vlan的标签 2.AC和…

引导和服务(2)

服务 1.systemd服务的简要介绍 &#xff08;1&#xff09;对比5 6 可以解决依赖关系并行启动 &#xff08;2&#xff09;按需启动 &#xff08;3&#xff09;自动解决依赖关系 负责在系统启动或运行时&#xff0c;激活系统资源&#xff0c;服务器进程和其它进程 2.System…

React-hooks:useReducer初始化函数 和 初始值 区别

useReducer 用法&#xff1a; const [state, dispatch] useReducer(reducer, initState, init?);其中&#xff0c;initialArg 为初始值&#xff08;必传&#xff09;&#xff0c;init 为初始函数&#xff08;可选&#xff09;。 当没有 init 参数时&#xff0c;state的初始…

Day56 动态规划 part16

Day56 动态规划 part16 583. 两个字符串的删除操作 我的思路&#xff1a; 感觉跟前两天子序列差不多&#xff0c;但是又有差别 这次是求删减最小次数&#xff0c;状态转移方程是比小 另外要注意初始化&#xff0c; 当i 0时&#xff08;word2为空&#xff09;&#xff0c;wor…

全球最新国内外18个热门风景视频素材网站推荐

寻找最新的高清风景视频素材&#xff1f;这里有国内外共18个热门网站&#xff0c;精心整理供您选择。 国内资源&#xff1a; 蛙学网&#xff1a;免费提供多种无版权视频素材&#xff0c;资源丰富。新GG网&#xff1a;需QQ登录&#xff0c;提供丰富的视频模板&#xff0c;通过…

从零开始写 Docker(十一)---实现 mydocker exec 进入容器内部

本文为从零开始写 Docker 系列第十一篇&#xff0c;实现类似 docker exec 的功能&#xff0c;使得我们能够进入到指定容器内部。 完整代码见&#xff1a;https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识&#xff1a; 核心原理&…

Java --- 类与对象

上篇内容给大家带来了Java的语句与数组的相关内容&#xff0c;那么本期内容比较重要&#xff0c;需要读者们掌握Java面向对象编程的根本&#xff0c;通过这篇博客来让读者浅入理解Java类的一些基本操作。 目录 一.特点&#xff1a; 二.成员变量&#xff1a; 三.访问修饰符&a…

工作流引擎项目解析

API 编辑 在Camunda中&#xff0c;API的继承关系主要体现在各个服务接口之间。以下是Camunda中一些常见服务接口的继承关系&#xff1a; ProcessEngineServices 接口&#xff1a; RepositoryService&#xff1a; 负责管理流程定义和部署。 RuntimeService&#xff1a; 负责管…

微信人脉扩张!多号批量自动加好友,你get到了吗?

微信是我们在拓展社交圈和寻找商业机会时&#xff0c;与更多的人建立联系的重要渠道。但是&#xff0c;手动一个个添加好友显然费时费力&#xff0c;这时候&#xff0c;微信管理系统的批量自动加好友功能就成为了微信人脉扩张的神器。 通过微信管理系统&#xff0c;我们可以轻…

思维导图ai生成软件分享5款好用的!

思维导图ai生成软件分享5款好用的&#xff01; 在快节奏的信息时代&#xff0c;思维导图作为一种有效的思维整理工具&#xff0c;越来越受到人们的青睐。它能够将复杂的思维过程可视化&#xff0c;帮助我们更好地梳理思路、规划工作。近年来&#xff0c;随着人工智能技术的飞速…

【笔记】探索生成范式:大型语言模型在信息提取中的作用

探索生成范式&#xff1a;大型语言模型在信息提取中的作用 摘要介绍 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴与支持 ~ &#x1f680; 欢迎一起踏上探险之旅&#xff0c;挖掘无限可能&#xff0c;共同成长&am…

实验六 智能手机互联网程序设计(微信程序方向)实验报告

实验目的和要求 请完成创建图片库应用&#xff0c;显示一系列预设的图片。 提供按钮来切换显示不同类别的图片。 二、实验步骤与结果&#xff08;给出对应的代码或运行结果截图&#xff09; 1.WXML <view> <button bindtap"showAll">所有图片</but…

闲不住,手写一个数据库文档生成工具

shigen坚持更新文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 个人IP&#xff1a;shigen 逛博客的时候&#xff0c;发现了一个很有意思的文章&#xff1a;数据库表结构导…

记录一下我hive连不上DataGrip的问题

用户名和密码都没问题&#xff0c;但报如下这个错误 原因&#xff1a;是因为我在linux上没启hiveserver2服务 解决&#xff1a; [atguiguhadoop102 hadoop]$ hiveserver2 which: no hbase in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8…

Kotlin从0到1,让你一周快速上手!!

声明 大家好&#xff0c;这里是懒羊羊学长&#xff0c;如果需要pdf版以及其他资料&#xff0c;请加入群聊。群里每天更新面经、求职资料&#xff0c;经验分享等&#xff0c;大家感兴趣可以加一下。 Kotlin 声明1.Kotlin基础2. Kotlin函数3.Kotlin进阶4.Kotlin集合5.Kotlin高…

YOLC: You Only Look Clusters for Tiny Object Detection in Aerial Images

摘要 由于以下因素&#xff0c;从航拍图像中检测物体面临着重大挑战&#xff1a;1&#xff09;航拍图像通常具有非常大的尺寸&#xff0c;通常有数百万甚至数亿像素&#xff0c;而计算资源有限。2&#xff09;物体尺寸较小导致有效信息不足&#xff0c;无法进行有效检测。3&am…