当前位置: 首页 > article >正文

【实战中提升自己】内网安全部署之dot1x部署 本地与集成AD域的主流方式(附带MAC认证)

 1  dot1x部署【用户名密码认证,也可以解决私接无线AP等功能】         

说明:如果一个网络需要通过用户名认证才能访问内网,而认证失败只能访问外网与服务器,可以部署dot1x功能。它能实现的效果是,当内部用户输入正常的用户名与密码后,可以正常访问内部的网络与外网,没任何限制,如果不是内部人员登陆电脑,输入不了正确的用户名密码,那么只给访问外网,到Guest VLAN。

 「模拟器、工具合集」复制整段内容
链接:https://docs.qq.com/sheet/DV0xxTmFDRFVoY1dQ?tab=7ulgil
(1)开启dot1x功能[boss]dot1x enable(2)接口开启dot1x功能【注意关闭MAC-AUREN】[boss]dot1x enable interface Ethernet 0/0/1 to 0/0/7[boss]dot1x port-method port interface Ethernet 0/0/1 to 0/0/7
(3)定义认证失败的VLAN[boss]authentication guest-vlan 40 interface Ethernet 0/0/1 to 0/0/7说明:当用户没用通过后,就划入到对应的VLAN 40里面,我们可以对VLAN 40做策略,只允许访问Internet。
(4)定义本地用户[boss]aaa[boss-aaa]local-user test password cipher test[boss-aaa]local-user test service-type 8021x
(5)开启重新认证功能[boss]dot1x reauthenticate interface Ethernet 0/0/1 to 0/0/7[boss]dot1x timer reauthenticate-period 60 :这里定义重新认证功能为1分钟,这里为了实现实验效果,平时可以定义的久点。可以解决当用户失败后不需要一直处于Guest VLAN中,可以进行重新认证。

(6)客户开启dot1x功能【测试】

图片

开启该功能

图片

特意认证失败【密码输入错误】

图片

可以看到获取到VLAN 40的地址池了。

图片

这里当一分钟过后,即可重新认证,输入正确的密码

图片


 

图片

图片

已经正确获取到地址了,

图片

访问内网没任何问题,外网也是没问题的。

(7)为什么可以杜绝接入无线AP或者路由器。
说明:因为对于每个接口都是需要用户名密码通过的,平时一些杜绝技术,比如端口安全,只能限制一个MAC地址通过,但是现在的路由器什么的 都可以直接克隆MAC地址的。

图片

另外,路由器默认开启了NAT,所以从内部所有的流量都转换到WAN口的,也就是同一个IP地址,固定的MAC地址,所以端口安全 或者其他技术都杜绝不了,当dot1x的功能的话,目前路由器这些还不支持,所以这次可以拒绝。

(8)总结
说明:部署dot1x也是根据需求来决定,如果需要详细的控制内部用户访问,在登陆的时候需要用户名认证,或者其他认证,都可以进行。

[boss]aaa[boss-aaa]local-user test access-limit 1

该功能可以实现,一个帐号只允许一在线。

 2  使用Radius进行认证【外边数据库或者是AD】          

说明:在有时候,在某些数据库中有用户名了,比如AD环境,可以利用本身有的用户数据可以直接调用访问。
(1)AD与IAS安装
说明:这部分就不截图演示了,具体的可以参考dot1x项目那块,有详细的讲解【其他案例课程中】

(2)在交换机上面定义Radius服务器
Radius服务器定义

[boss]radius-server template dot1x[boss-radius-dot1x]radius-server authentication 192.168.2.253 1812[boss-radius-dot1x]radius-server shared-key simple test[boss-radius-dot1x]undo radius-server user-name domain-included

说明:定义了一个Radius服务,包括服务器地址,密钥,最后一句话可以后续在分析。

(3)定义认证模板​​​​​​​

[boss]aaa[boss-aaa]authentication-scheme dot1x[boss-aaa-authen-dot1x]authentication-mode radius local

(4)关联域

图片

可以看到AD的域是ccieh3c.taobao.com,那么我们可以定义这样一个域名。​​​​​​

[boss]aaa[boss-aaa]domain ccieh3c.taobao.com[boss-aaa-domain-ccieh3c.taobao.com]authentication-scheme dot1x[boss-aaa-domain-ccieh3c.taobao.com]radius-server dot1x

说明:定义了一个域,然后关联了认证策略与Radius服务器,该功能的意思就是,当匹配该域的时候,就按下面的策略进行认证,交给Radius服务器。

(5)定义AAA 客户端与默认策略

图片


 

图片


 

图片

图片

该策略用来测试用的,而下面这个用来做MD5认证用的。

图片


 

图片

图片

(6)测试AAA服务器是否正常

图片


 

图片

图片

有错误的日志。

图片

可以看到提示说Windows默认不支持CHAP方式存储密码,不可逆的,所以我们必须允许该策略。

图片


 

图片


 

图片


 

图片

图片

在IAS服务器中刷新下组策略,也可以重启下。

图片

可以看到现在已经OK了,但是注意的是可以看到在test的时候我们加了域名,之前定义的Domain,比如 test@ccieh3c.taobao.com。

图片

已经成功了。

undo radius-server user-name domain-included 这句话的意思是,当用户输入test@ccieh3c.taobao.com,匹配上Domain,那么就会用该Domain下的认证策略进行策略,也就是用Radius服务器上面的。另外在发送给Radius服务器的时候,会去掉@后面的ccieh3c.taobao.com,直接发送test给IAS服务器,这个功能适合与独立服务器,也适合域的服务器。

(7)用户测试

图片

可以看到有对应的用户名信息了。

(8)定于默认Domain
[boss]domain ccieh3c.taobao.com
说明:定义为默认域的作用是,如果用户直接用test的访问,那么这样的话,就自动调用ccieh3c.taobao.com下。

(9)如果是MAC认证调用Radius认证。
说明:如果使用MAC地址开始认证的话,则可以定义

图片

注意需要关闭密码安全性策略功能,否则不能定义用户名与密码一样的。另外还需要允许策略

图片

关闭即可。
[boss]mac-authen domain ccieh3c.taobao.com :这里还需要定义从该域认证

(10)MAC测试

图片

已经通过了

图片

相关文章:

【实战中提升自己】内网安全部署之dot1x部署 本地与集成AD域的主流方式(附带MAC认证)

1 dot1x部署【用户名密码认证,也可以解决私接无线AP等功能】 说明:如果一个网络需要通过用户名认证才能访问内网,而认证失败只能访问外网与服务器,可以部署dot1x功能。它能实现的效果是,当内部用户输入正常的…...

[matlab]南海地形眩晕图代码

[matlab]南海地形眩晕图代码 请ChatGPT帮写个南海地形眩晕图代码 图片 图片 代码 .rtcContent { padding: 30px; } .lineNode {font-size: 12pt; font-family: "Times New Roman", Menlo, Monaco, Consolas, "Courier New", monospace; font-style: n…...

Web安全和渗透测试--day6--sql注入--part 1

场景: win11家庭版,edge浏览器 , sqlin靶场 定义: SQL 注入(SQL Injection)是一种常见的网络安全攻击方式,攻击者通过在 Web 应用程序中输入恶意的 SQL 代码,绕过应用程序的安全机…...

大模型在胆管结石(无胆管炎或胆囊炎)预测及治疗方案制定中的应用研究

目录 一、引言 1.1 研究背景与意义 1.2 研究目的 1.3 国内外研究现状 二、胆管结石相关理论基础 2.1 胆管结石概述 2.2 临床表现与诊断方法 2.3 传统治疗方法 三、大模型技术原理与应用优势 3.1 大模型基本原理 3.2 在医疗领域的应用潜力 3.3 用于胆管结石预测的可…...

MIT6.S081-lab4

MIT6.S081-lab4 注:本篇lab的前置知识在《MIT6.S081-lab3前置》 1. RISC-V assembly 第一个问题 Which registers contain arguments to functions? For example, which register holds 13 in main’s call to printf? 我们先来看看main干了什么: …...

精通 Spring Cache + Redis:避坑指南与最佳实践

Spring Cache 以其优雅的注解方式,极大地简化了 Java 应用中缓存逻辑的实现。结合高性能的内存数据库 Redis,我们可以轻松构建出响应迅速、扩展性强的应用程序。然而,在享受便捷的同时,一些常见的“坑”和被忽视的最佳实践可能会悄…...

[SpringBoot]快速入门搭建springboot

默认有spring基础,不会一行代码一行代码那么细致地讲。 SpringBoot的作用 Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的。就像我们整个SSM框架时,就常常会碰到版本导致包名对不上、Bean非法参数类型的一系列问题(原出…...

理解.NET Core中的配置Configuration

什么是配置 .NET中的配置,本质上就是key-value键值对,并且key和value都是字符串类型。 在.NET中提供了多种配置提供程序来对不同的配置进行读取、写入、重载等操作,这里我们以为.NET 的源码项目为例,来看下.NET中的配置主要是有…...

C++面试八股文:智能指针

一、了解哪些智能指针? 回答:智能指针是用于管理动态分配的内存,行为类似于指针,但又具有自动管理内存的能力,所以称为智能指针。 首先说一下 auto_ptr和unique_ptr,它们都是独占式指针,同一时…...

nohup命令使用说明

文章目录 如何在后台运行程序呢?如何正常运行代码重定向呢?nohup: ignoring input 如何在后台运行程序呢? 使用nohup命令即可, nohup python dataset/ReferESpatialDataset.py >>dataset_20250417.log 2>&1 &n…...

MYSQL “Too Many Connections“ 错误解决

1.查询当前连接数 show status like "Threads_connected"; 2.查询数据库最大连接数 show variables like "max_connections" 3.查询所有活动连接 show processlist; 4.根据查询结果观察是否有长时间未被释放的连接 参数解释 : 字段说明id连接的唯一…...

Linux `init 6` 相关命令的完整使用指南

Linux init 6 相关命令的完整使用指南—目录 一、init 系统简介二、init 6 的含义与作用三、不同 Init 系统下的 init 6 行为1. SysVinit(如 CentOS 6、Debian 7)2. systemd(如 CentOS 7、Ubuntu 16.04)3. Upstart(如 …...

【外研在线-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…...

【NLP 63、大模型应用 —— Agent】

人与人最大的差距就是勇气和执行力,也是唯一的差距 —— 25.4.16 一、Agent 相关工作 二、Agent 特点 核心特征: 1.专有场景(针对某个垂直领域) 2.保留记忆(以一个特定顺序做一些特定任务,记忆当前任务的前…...

React 打包

路由懒加载 原本的加载方式 #使用lazy()函数声明的路由页面 使用Suspense组件进行加载 使用CDN优化...

2025.4.14-2025.4.20学习周报

目录 摘要Abstract1. 文献阅读1.1 模型架构1.2 实验分析1.3 代码实践 总结 摘要 在本周阅读的论文中,作者提出了一种名为MGSFformer的空气质量预测模型。模型通过残差去冗余模块可以有效解耦多粒度数据间的信息重叠;时空注意力模块采用并行建模策略&…...

Spring 微服务解决了单体架构的哪些痛点?

1. 部署困难 (Deployment Difficulty & Risk) 单体痛点: 整体部署: 对单体应用的任何微小修改(哪怕只是一行代码),都需要重新构建、测试和部署整个庞大的应用程序。部署频率低: 由于部署过程复杂且风险高,发布周期通常很长&a…...

【1】云原生,kubernetes 与 Docker 的关系

Kubernetes?K8s? Kubernetes经常被写作K8s。其中的数字8替代了K和s中的8个字母——这一点倒是方便了发推,也方便了像我这样懒惰的人。 什么是云原生? 云原生: 它是一种构建和运行应用程序的方法,它包含&am…...

Kubernetes控制平面组件:APIServer 限流机制详解

云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…...

springboot全局异常捕获处理

一、需求 实际项目中,经常抛出各种异常,不能直接抛出异常给前端,这样用户体验相当不好,用户看不懂你的Exception,对于一些sql异常,直接抛到页面上也不安全。所以有没有好的办法解决这些问题呢,当然有了&am…...

Flask(1): 在windows系统上部署项目1

1 前言 学习python也有段时间了,最近一个小项目要部署,正好把过程写下来。 在程序的结构上我选择了w/s模式,相比于c/s模式,无需考虑客户端的升级;框架我选择了flask,就是冲着轻量级去的,就是插件…...

【文献阅读】EndoNet A Deep Architecture for Recognition Tasks on Laparoscopic Videos

关于数据集的整理 Cholec80 胆囊切除手术视频数据集介绍 https://zhuanlan.zhihu.com/p/700024359 数据集信息 Cholec80 数据集 是一个针对内窥镜引导 下的胆囊切除手术视频流程识别数据集。数据集提供了每段视频中总共7种手术动作及总共7种手术工具的标注,标…...

基于springboot的个人财务管理系统的设计与实现

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了六年的毕业设计程序开发,开发过上千套毕业设计程序,没有什么华丽的语言&#xff0…...

Linux系统编程---孤儿进程与僵尸进程

1、前言 在上一篇博客文章已经对Linux系统编程内容进行了较为详细的梳理,本文将在上一篇的基础上,继续梳理Linux系统编程中关于孤儿进程和僵尸进程的知识脉络。如有疑问的博客朋友可以通过下面的博文链接进行参考学习。 Linux系统编程---多进程-CSDN博客…...

简单使用MCP

简单使用MCP 1 简介 模型上下文协议(Model Context Protocol,MCP)是由Anthropic(产品是Claude)推出的开放协议,它规范了应用程序如何向LLM提供上下文。MCP可帮助你在LLM之上构建代理和复杂的工作流。 从…...

Semaphore的核心机制

在 Java 中,Semaphore 通过 许可计数器 和 同步队列 的机制实现并发线程数的限制。以下是其核心实现原理和步骤的详细分析: 一、核心机制 许可计数器(Permits) • 初始化时指定的许可数(如 new Semaphore(3)&#xff0…...

计算机视觉与深度学习 | RNN原理,公式,代码,应用

RNN(循环神经网络)详解 一、原理 RNN(Recurrent Neural Network)是一种处理序列数据的神经网络,其核心思想是通过循环连接(隐藏状态)捕捉序列中的时序信息。每个时间步的隐藏状态 ( h_t ) 不仅依赖当前输入 ( x_t ),还依赖前一时间步的隐藏状态 ( h_{t-1} ),从而实现…...

Keil MDK 编译问题:last line of file ends without a newline

问题与处理策略 问题描述 ..\..\User\main.c(38): warning: #1-D: last line of file ends without a newline} ..\..\User\main.c: 1 warning, 0 errors问题原因 这是文件末尾缺少换行符警告 处理策略 在文件(main.c)的最后一行按回车键添加一个空…...

MySQL:9.表的内连和外连

9.表的内连和外连 表的连接分为内连和外连 9.1 内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,之前查询都是内连 接,也是在开发过程中使用的最多的连接查询。 语法: select 字段 from 表1 inner join 表2 on 连接…...

C++栈操作集合

数组 #include <bits/stdc.h> using namespace std;class sss{ private:int a[1000];int curr -1; public:void push(int);void pop();int top();bool empyt();int size(); };int main() {sss n;while(true){int a;cout<<"1.添加\n2.删除-\n3.显示栈顶\n4.储…...