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)
    
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS基础:margin属性4种值类型,4个写法规则详解

你好&#xff0c;我是云桃桃。 一个希望帮助更多朋友快速入门 WEB 前端的程序媛。大专生&#xff0c;一枚程序媛&#xff0c;感谢关注。回复 “前端基础题”&#xff0c;可免费获得前端基础 100 题汇总&#xff0c;回复 “前端工具”&#xff0c;可获取 Web 开发工具合集 268篇…

pnpm 使用 workspace 报错 ERR_INVALID_THIS

有时候真的感觉如果有一个老师指路&#xff0c;那么遇到的坑真的会少很多。 错误示例&#xff1a; GET https://registry.npmjs.org/rollup%2Fplugin-typescript error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.原因是什么&#xff1f;原因就是 pnpm 的…

Web中使用Weblogic用户

WebLogic用户&#xff0c;组设置 1. 登录weblogic console, domain结构中选择Security Realms&#xff0c;显示安装时默认创建的Realm &#xff1a; myrealm 2. 点击myrealm, 选择 users and Group&#xff0c; 追加用户和组 选择既存的权限组追加到新规的组中&#xff0c;赋予…

pyenv-win管理windows上多个版本python

pyenv是一款管理多个python版本的工具&#xff0c;可以便捷的切换使用的python版本&#xff0c;但是不支持windows环境&#xff0c;在windows环境需要使用pyenv-win pyenv-win安装 官方介绍的安装方式比较多&#xff0c;在此主要记录一下我习惯的安装方式 下载pyenv-win,可以…

2024-04-15_[UPnP]:详细解析

UPnP 一、论文阅读 1.2 Theory 1.2.1 Geometry of the absolute pose problem α i f i v i R p i t , i 1.. n . \alpha_i \mathbf{f}_i \mathbf{v}_i \mathbf{R} \mathbf{p}_i \mathbf{t} ,i1..n. αi​fi​vi​Rpi​t,i1..n. 其中&#xff1a; P i ∈ R 3 P_i \i…

javaWeb项目-闲置二手物品交易平台功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、Spring Boot框架 …

PHP:IntelliJ IDEA 配置 PHP 开发环境及导入PHP项目

在创建PHP项目之前我们需要安装PHP插件&#xff0c;安装步骤如下&#xff1a;Windows&#xff1a;IntelliJ IDEA Ultimate 安装 PHP 插件-CSDN博客 1、导入已有PHP项目&#xff0c;导入之后选择&#xff0c;File > Setting 选择对应 CLL Interpreter&#xff0c;如果没有操…

麒麟服务器操作系统安装TFTP服务

原文链接&#xff1a;麒麟服务器操作系统安装TFTP服务 Hello&#xff0c;大家好啊&#xff01;今天我们将讨论如何在麒麟服务器操作系统上安装和配置TFTP&#xff08;Trivial File Transfer Protocol&#xff09;服务。TFTP是一种简单的文件传输协议&#xff0c;通常用于无盘工…

9. Spring Boot 日志文件

本篇文章源码位置延续上个章节&#xff1a;SpringBoot_demo 本篇文章内容源码位于上述地址的com/chenshu/springboot_demo/logging包下 1. 日志的作用 发现和定位问题&#xff1a; 日志是程序的重要组成部分&#xff0c;它在系统、程序出现错误或异常时提供诊断和解决问题的线…

07 SQL进阶 -- 集合运算 -- 表的加减法

1. 表的加减法 1.1 什么是集合运算 集合在数学领域表示“各种各样的事物的总和”, 在数据库领域表示记录的集合. 具体来说,表、视图和查询的执行结果都是记录的集合, 其中的元素为表或者查询结果中的每一行。 在标准 SQL 中, 分别对检索结果使用 UNION, INTERSECT, EXCEPT 来…

使用 Tranformer 进行概率时间序列预测实战

使用 Transformers 进行概率时间序列预测实战 通常&#xff0c;经典方法针对数据集中的每个时间序列单独拟合。然而&#xff0c;当处理大量时间序列时&#xff0c;在所有可用时间序列上训练一个“全局”模型是有益的&#xff0c;这使模型能够从许多不同的来源学习潜在的表示。…

神经网络学习笔记——大白话直观理解!

B站梗直哥、梗直哥丶的个人空间-梗直哥丶个人主页-哔哩哔哩视频 什么是神经网络模型?神经网络模型是一种由大量互相连接的神经元构成的算法模型,它受到生物神经元网络的启发,擅长对输入数据进行分类和模式识别。 神经网络模型最擅长的就是个各种分类问题。 神经网络模型最擅…

RN向上向下滑动组件封装(带有渐变色)

这段组件代码逻辑是出事有一个View和下面的块,下面的块也就是红色区域可以按住向上向下滑动,当滑动到屏幕最上面则停止滑动,再向上滑动的过程中,上方的View的背景色也会有个渐变效果,大概逻辑就是这样 代码如下 import React, {useEffect, useRef, useState} from react; impo…

第18天:信息打点-APP资产知识产权应用监控静态提取动态抓包动态调试

第十八天 本课意义 1.如何获取到目标APP信息 2.如何从APP信息中提取资产 一、Web&备案信息&单位名称中发现APP 1.通过查询网站去查询APP信息 https://www.xiaolanben.com/ https://aiqicha.baidu.com/ https://www.qimai.cn/ https://app.diandian.com/ 2.其他…

嵌入式学习day16-22(2024.04.06-13)

文章目录 C语言网络编程socket主机与网络字节序转换inet_addr、inet_aton&#xff08;ip转换&#xff09;inet_ntoa 网络字节序转换为IP字符串端口转换为网络字节序网络字节序转换为端口atoi &#xff08;字符串转换为整数&#xff09; UDP通信流程UDP多进程并发服务器服务端客…

沐风老师3DMAX物品摆放插件ObjectPlacer安装和使用方法详解

3DMAX物品摆放插件ObjectPlacer安装和使用教程 3DMAX物品摆放插件ObjectPlacer&#xff0c;一键在曲面上摆放对象&#xff0c;如摆放家具物品、种植花草树木、布设电线杆交通标志等。它的功能是将对象与几何体对象&#xff08;网格、多边形、面片或NURBS&#xff09;的面法线对…

RISCV指令集体系简读之RV32I

RV32I 指令格式 用于寄存器-寄存器操作的R类型指令用于短立即数和访存load操作的I型指令用于访存store操作的s型指令用于条件跳转操作的B类型指令用于长立即数的U型指令用于无条件跳转的J型指令 特点&#xff1a; 所有指令都是32bits&#xff0c; 简化了指令解码&#xff1b;…

LangChain学习笔记与样程

LangChain 是一个开源的机器学习工具库&#xff0c;专门用于构建和部署基于语言的应用程序。这个库提供了一系列工具和接口&#xff0c;使开发者能够轻松地整合和使用大型语言模型&#xff0c;例如 OpenAI 提供的 GPT。LangChain 的核心特点包括模块化设计、灵活性和易用性&…

linnux文件服务

1.FTP:文件传输协议。 基础:控制端口(身份验证) command 21/tcp 数据端口: data 20/tcp FTP Server默认配置:yum -y install vsftpd (安装vsftpd&#xff09; touch /var/ftp/abc.txt(创建文件) systemctl start vsftpd(启动文件&#xff09; systemctl …