iptables 防火墙配置

文章目录

  • iptables 防火墙配置
    • 规则链的分类–五链
    • 处理的动作
    • iptables 常用参数和作用
    • iptables 防火墙配置
      • 查看规则链
      • 清空规则链
      • 设置默认规则将流入的流量丢弃
      • 允许ICMP协议流量通过
      • 删除默认策略
      • 允许所以流量通过
      • 设置将所有流入22端口的流量全部拒绝
      • 允许指定网段的22端口通过
      • 设置某个端口的流量全部拒绝(UDP,TCP)
      • 在input链中添加某个IP拒绝访问某个端口
      • 禁用指定的端口范围内的TCP数据包进入服务器
      • 保存规则

iptables 防火墙配置

防火墙就是堵和通的作用。

iptables :包过滤防火墙,是内核防火墙netfilter的管理工具。它可以让系统管理员根据自己的需求定义网络流量的过滤规则,以保护服务器和网络免受潜在的安全威胁。

防火墙是一种位于网络与主机之间的安全屏障,它可以监控和控制进出网络的数据流量。通过 iptables,管理员可以创建一系列规则来控制数据包的流动。每个规则由匹配条件(如源 IP 地址、目标 IP 地址、端口等)和操作指令组成。当数据包经过 Linux 内核时,iptables 会按照预先定义的规则集进行匹配和处理。根据规则的定义,iptables 可以允许、拒绝、丢弃或重定向数据包,以实现对流量的精确控制。

规则链的分类–五链

在进行路由选择前处理的数据包:PREROUTING

处理流入的数据包:INPUT

处理流出的数据包:OUTPUT

处理转发的数据包:FORWARD

在进行路由选择后处理的数据包:POSTROUTING

处理的动作

ACCEPT:允许流量通过。

REJECT:拒绝流量通过,(流量拒绝会通知,会返回流量的拒绝信息)

LOG:记录日志信息。

DROP:拒绝流量通过,丢弃 (直接把流量丢弃,不会返回任何值)

iptables 常用参数和作用

参数作用
-P设置默认策略
-F清空规则链
-L查看规则链
-A在规则链的末尾加入新的规则
-I num在规则链的头部加入新的规则
-D num删除某一条规则链
-s匹配来源的ip/MASK
-d配置目标地址
-i 网卡名称匹配这块网卡流入的数据
-o 网卡名称匹配这块网卡流出的数据
-p匹配协议,例如:TCP,UDP,ICMP
–dport num匹配目标端口号
–sport num匹配来源端口号
-j指定匹配到数据包后的动作,如 ACCEPT、DROP、REJECT等。

实验环境:redhat8 ip:192.168.188.186

在redhat8有iptables和firewalld,这里我们停掉firewalld。

systemctl stop firewalld		# 关闭firewalld防火墙systemctl status firewalld		# 查看firewalld防火墙状态

在这里插入图片描述

设置firewalld为开启不启动。

systemctl disable firewalld

image-20230910144541377

iptables 防火墙配置

查看规则链

iptables -L

image-20230910144941262

清空规则链

iptables -F

image-20230910145137370

由于我们没有配置规则链,所以本来就是空的。

设置默认规则将流入的流量丢弃

iptables -P INPUT DROP

image-20230910145629008

在输入命令后,发现无法输入命令了已经,因为我是通过SSH连接到redhat8中的,流量属于流入的流量,通过设置默认规则后,将流入的流量全部禁掉了,所以无法使用SSH连接了。

并且主机也无法使用ping命令ping通redhat8了。

image-20230910150011882

允许ICMP协议流量通过

iptables -I INPUT -p icmp -j ACCEPT

image-20230910150819617

source表示源,不管从任何地方来的ICMP协议都允许通过。

测试网络连通性,发现可以ping通。

image-20230910150844452

虽然可以ping通,但是SSH还是无法连接不,因为没有设置允许TCP协议流量通过。(SSH协议用的是TCP协议)

删除默认策略

iptables -D INPUT 1

image-20230910151252103

可以看到模式是DROP

说明1 表示规则的编号,这里指的是第 1 条规则。

允许所以流量通过

iptables -P INPUT ACCEPT

image-20230910151750375

这样SSH就可以连接了

image-20230910152141826

设置将所有流入22端口的流量全部拒绝

iptables -A INPUT -p tcp --dport 22 -j REJECT

image-20230910153138656

命令执行后,SSH就无法连接了。

查看配置的规则

image-20230910153356076

允许指定网段的22端口通过

iptables -I INPUT -s 192.168.188.0/24 -p tcp --dport 22 -j ACCEPT

该命令的含义是进入22端口所有的TCP流量只能允许192.168.188.0网段通过。

image-20230910154457295

注意防火墙的匹配规则是从上往下进行匹配的

说明:流量进入后,先匹配第一个规则,查看是否属于192.168.188.0该网段的,如果属于则同意通过。如果不是192.168.188.0该网段的,就会拒绝所有,也就是匹配到了第二个规则。这里设置的效果和白名单一样。

设置某个端口的流量全部拒绝(UDP,TCP)

iptables -A INPUT -p tcp --dport 80 -j REJECT
iptables -A INPUT -p udp --dport 80 -j REJECT

image-20230910155854397

在input链中添加某个IP拒绝访问某个端口

iptables -A INPUT -p tcp -s 192.168.188.1 --dport 8080 -j REJECT

image-20230910160545834

这样192.168.188.1这个ip地址就无法访问8080端口。

在redhat8中部署http服务

python3 -m http.server 8080

image-20230910161115976

然后在真实机中无法访问

image-20230910161150043

在新开启的kali中可以访问

image-20230910161231173

禁用指定的端口范围内的TCP数据包进入服务器

iptables -A INPUT -p tcp --dport 8000:9000 -j REJECT

image-20230910161912096

保存规则

在重启虚拟机后设置的规则都会消失,所以我们需要保存设置好的规则。

在Redhat8中使用的命令

iptables-save

在Centos7/Redhat7中使用的命令

service iptables save

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

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

相关文章

【日积月累】SpringBoot启动流程

目录 SpringBoot启动流程 1.前言2.构造一个SpringApplication的实例,完成初始化的工作SpringApplication实例构造完之后调用run方法,启动SpringApplication3.SpringBoot启动代码SpringBootConfigurationComponentScanEnableAutoConfiguration 总结参考…

自动驾驶多任务框架Hybridnets——同时处理车辆检测、可驾驶区域分割、车道线分割模型部署(C++/Python)

一、多感知任务 在移动机器人的感知系统,包括自动驾驶汽车和无人机,会使用多种传感器来获取关键信息,从而实现对环境的感知和物体检测。这些传感器包括相机、激光雷达、雷达、惯性测量单元(IMU)、全球导航卫星系统&am…

Java经典问题解答(9题)

文章目录 1、通关jwt靶场的其中任意两关(该题与Java无关)启动环境第4关第5关第7关 2、java是如何跨平台通信的3、java为什么需要类名和文件名一致4、main函数的作用是什么5、.class文件和.java是什么关系6、java在编写函数的时候void是什么意思7、java声…

IAM、EIAM、CIAM、RAM、IDaaS 都是什么?

后端程序员在做 ToB 产品或者后台系统时,都不可避免的会遇到账号系统、登录系统、权限系统、日志系统等这些核心功能。这些功能一般都是以 SSO 系统、RBAC 权限管理系统等方式命名,但这些系统合起来有一个专有名词:IAM。 IAM IAM 是 Identi…

Linux UDP编程流程

文章目录 UDP编程流程UDP协议无连接的特点UDP协议数据报的特点 UDP编程流程 UDP 提供的是无连接、不可靠的、数据报服务。服务器端和客户端没有什么本质上的区别。编程流程如下: socket()用来创建套接字,使用 udp 协议时,选择数据报服务 SOC…

小白如何选择阿里云服务器配置?CPU内存带宽系统盘选择

阿里云服务器配置选择_CPU内存/带宽/存储配置_小白指南,阿里云服务器配置选择方法包括云服务器类型、CPU内存、操作系统、公网带宽、系统盘存储、网络带宽选择、安全配置、监控等,阿小云分享阿里云服务器配置选择方法,选择适合自己的云服务器…

PCL 约束Delaunay三角网(C++详细过程版)

目录 一、算法原理二、代码实现三、结果展示1、原始点云2、普通Delaunay3、约束Delaunay本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 首先提取边界点,然后根据边界点构建约束,最后在约束边界内构建Del…

flink 写入数据到 kafka 后,数据过一段时间自动删除

版本 flink 1.16.0kafka 2.3 流程描述: flink利用KafkaSource,读取kafka的数据,然后经过一系列的处理,通过KafkaSink,采用 EXACTLY_ONCE 的模式,将处理后的数据再写入到新的topic中。 问题描述&#xff1…

学习jQuery库的第一天

简介 什么是 jQuery ? jQuery 是一个广泛使用的 JavaScript 库。它简化了网页开发中常见的许多任务,例如 HTML 文档遍历、操作 HTML 元素、处理事件、动画效果、Ajax 网络请求等。通过使用 jQuery,开发人员可以更加高效地编写跨浏览器兼容的…

竞赛 基于机器视觉的火车票识别系统

文章目录 0 前言1 课题意义课题难点: 2 实现方法2.1 图像预处理2.2 字符分割2.3 字符识别部分实现代码 3 实现效果最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 基于机器视觉的火车票识别系统 该项目较为新颖,适合作为竞赛…

C++模版基础

代码地址 gitgithub.com:CHENLitterWhite/CPPWheel.git 专栏介绍 本专栏会持续更新关于STL中的一些概念,会先带大家补充一些基本的概念,再慢慢去阅读STL源码中的需要用到的一些思想,有了一些基础之后,再手写一些STL代码。 (如果你…

RabbitMQ常见问题

一、RabbitMQ如何保证消息不丢失? 这是面试时最喜欢问的问题,其实这是个所有MQ的一个共性的问题,大致的解 决思路也是差不多的,但是针对不同的MQ产品会有不同的解决方案。而RabbitMQ 设计之处就是针对企业内部系统之间进行调用设…