一次性口令实验server-client部分

 sever
 // sever.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include"stdio.h"
#include "stdlib.h"
#include "string.h"
#include "winsock2.h"
#include<iostream>
#include<fstream>
#include <cstring>
#include "md5.h"
#include "MsgBoxTimeout.h"
#pragma comment(lib,"ws2_32.lib")
void ErrorHandling(char* message);
#define BUF_SIZE 30
using namespace std;
void *memcpy(void *dst, void *src, size_t size);
void ErrorHandling(char* message)
{
	fputs(message,stderr);
	fputc('\n',stderr);
	exit(1);
}

struct inf  //用户存储的信息结构
{
	char uid[50]; //用户名
	//char password[50]; //密码
	char answer[50]; //应答值
	int r;   //随机数
	int N;   //挑战值 
	 
};
inf infor[300];  //最多有300个用户 
int i=0,j,n=0;       //全局变量n,用于表示是目前系统中用户数,目前是五个 
FILE *p;

void update();
void init()    
{

	char uid[50],password[50],answer[50];
	int r,N;
	fstream file; 
	file.open("d:\\lib.txt",ios::in);
	if(!file);
	else
	{
		while(file>>uid>>answer>>r>>N)     //将文件中的uid、password赋值给结构体 
		{
			strcpy(infor[n].uid,uid);
			//strcpy(infor[n].password,password);
			strcpy(infor[n].answer,answer);
			infor[n].r=r;
			infor[n].N=N;
			//cout<<infor[n].uid<<"  "<<infor[n].password<<"  "<<endl;  //读出原来文件的uid、password
			n++;
		}
	}
	file.close();
}

int _tmain(int argc, _TCHAR* argv[])
{
	WSADATA wsaData;
	SOCKET hServSock,hClntSock;
	FILE * fp,*p;
	char buf[BUF_SIZE] ;
	char buf2[BUF_SIZE];
	char buf3[BUF_SIZE] ;
	char ans[200]={'\0'};
	char answer[50];
	int readCnt;
     int m=0,t=0 ;
	SOCKADDR_IN servAddr,clntAddr;
	int clntAddrSz;

	system("taskkill /f /t /im       D: \\一次性口令实验\\cs\\sever\\Debug\\client.exe");
	system("taskkill /f /t /im       D:\\ 一次性口令实验\\cs\\sever\\Debug\\sever.exe");
	system("taskkill /f /t /im       D: \\一次性口令实验\\ reg\\Debug\\reg.exe");

    init();
	if (argc!=2)
	{
		printf( "Usage:%s<port>\n",argv[0]);
		exit(1);
	}
	if (WSAStartup(MAKEWORD(2,2),&wsaData)!=0)

		ErrorHandling("WSAStartup() error!");

	

	hServSock=socket(PF_INET,SOCK_STREAM,0);

	memset(buf,0,sizeof(buf));
	 memset(buf2,0,sizeof(buf2));
	 memset(buf3,0,sizeof(buf3));
	memset(&servAddr,0,sizeof(servAddr));
	servAddr.sin_family=AF_INET;
	servAddr.sin_addr.s_addr=htonl(INADDR_ANY);
	servAddr.sin_port=htons(atoi(argv[1]));

	bind(hServSock,(SOCKADDR*)&servAddr,sizeof(servAddr));
	listen(hServSock,5);
	clntAddrSz=sizeof(clntAddr);
	hClntSock=accept(hServSock,(SOCKADDR*)&clntAddr,&clntAddrSz);
	recv(hClntSock,(char*)buf,BUF_SIZE,0);
	fp=fopen("d:\\sever用户名.txt","wt+");
	fprintf(fp,"%s",buf);
	fclose(fp);	

	for(i=0;i<n;i++)           //循环逐一匹配寻找用户名 
	{
		if(strcmp(infor[i].uid,buf)==0)
		{
			fp=fopen("d:\\s随机数.txt","wt+");
			fprintf(fp,"%d",infor[i].r);
			fclose(fp);

			fp=fopen("d:\\s挑战值.txt","wt+");
			fprintf(fp,"%d",infor[i].N);
			fclose(fp);
			break;
		}
		 

	}

    p=fopen("d:\\s随机数.txt","rb");
	while(1)
	{
		if (feof(p)) break;
	fscanf(p,"%s",buf2);
	send(hClntSock,(char*)buf2,BUF_SIZE,0);
	}
	fclose(fp);	

	fp=fopen("d:\\s挑战值.txt","rb");
	while(1)
	{
		if (feof(fp)) break;
		fscanf(fp,"%s",buf3);
		send(hClntSock,(char*)buf3,BUF_SIZE,0);
	}
	fclose(fp);	
	 
	 
		recv(hClntSock,(char*)ans,200,0);
		strcpy(answer,MD5String(ans));
		
	for(i=0;i<n;i++)           //循环逐一匹配寻找用户名 
  {
			
	if(strcmp(infor[i].uid,buf)==0)
	{

	if(strcmp(infor[i].answer,answer)==0)
	{
		
		if(infor[i].N<=1)
		{
			ShellExecute(NULL, "open","cmd.exe", "/c   D:\\ 一次性口令实验\\chongzhi\\chongzhi\\Debug\\chongzhi.exe",NULL, 0);
			system("taskkill /f /t /im       D:\\ 一次性口令实验\\ chongzhi\\chongzhi\\Debug\\chongzhi.exe");
			break;
		}
		else
		{
			strcpy(infor[i].answer,ans);
			MessageBox(NULL,TEXT("用户认证成功!"),TEXT("提示"),MB_OK | MB_SYSTEMMODAL);
			infor[i].N=infor[i].N-1; 
			update();
			break;

		  }
		 		
	     }
	     
	   }			 
					
	}
	if(i==n)
	{
		MessageBox(NULL,TEXT("用户认证失败!"),TEXT("提示"),MB_OK | MB_SYSTEMMODAL);
		//break;
		fp=fopen("d:\\认证失败次数.txt","r+");
		fscanf(fp,"%d",&m);
		++m;
		fclose(fp);
		fp=fopen("d:\\认证失败次数.txt","wt+");
		fprintf(fp,"%d",m);
		fclose(fp);
	}

	fp=fopen("d:\\认证失败次数.txt","r+");
	fscanf(fp,"%d",&t);
	fclose(fp);
	if(t>=3)
	{
		
		 //UINT uiFlags =  MB_SETFOREGROUND | MB_SYSTEMMODAL | MB_ICONINFORMATION;
		//MessageBoxTimeout(NULL, _T(" 认证失败次数过多,请10s以后再试."),
			//_T("MessageBoxTimeout "), uiFlags, 0, 10000);
		MessageBox(NULL,TEXT("认证失败次数过多,请10s以后再试"),TEXT("提示"), MB_OK|MB_SYSTEMMODAL);
		Sleep(10000);
		t=0;
		fp=fopen("d:\\认证失败次数.txt","wt+");
		fprintf(fp,"%d",t);
		MessageBox(NULL,TEXT("现在可重新尝试"),TEXT("提示"),MB_OK | MB_SYSTEMMODAL);
		
		fclose(fp);
	}

		


	closesocket(hClntSock);closesocket(hServSock);
	WSACleanup();
	system("pause");
	return 0;
}


void update()
{

	FILE *fp;
	fp = fopen("d:\\lib.txt","w+");//打开模式可以换成其他
	for(j=0;j<n;j++)
	{
		fprintf(fp,"%s %s  %d %d \n",infor[j].uid,infor[j].answer,infor[j].r,infor[j].N);//就这么简单用fprintf函数写数据
	}
	fclose(fp);
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CISCO交换机配置AAA、802.1X以及VACL CISCO交换机配置AAA、802.1X以及VACL 一 启用AAA、禁用Telnet 以及启用 ssh 1.启用aaa身份验证,以进行SSH访问: Switch# conf t Switch(config)# aaa new-model 2.配置主机名 Switch(config)# hostname sw1 3.配置本地用户名口令,以便在带外服务器不可用时能够访问交换机 sw1(config)# username cisco password cisco 4.配置SSH sw1(config)# ipdomain-name cisco.com sw1(config)# crypto key generate rsa 5.配置交换机,使得只能通过SSH以带内方式访问交换机 sw1(config)# line vty 0 15 sw1(config-line)# transport input ssh sw1(config-line)# exit sw1(config)# exit 二 配置vty的aaa身份验证方式,首先使用radius 服务器,如果服务器不可用,使用本地用户名口令数据库 sw1(config)# aaa authentication login TEST group radius line sw1(config)# line vty 0 15 sw1(config-line)# login authentication TEST sw1(config-line)# exit 三 在接口上配置802.1x 1.为radius身份验证启用802.1x sw1(config)# aaa authentication dot1x default group radius 2.全局启用802.1x sw1(config)#dot1x system-auth-control 3.在接口上配置802.1x sw1(config)# int range fa0/2 - 10 sw1(config-if-range)# swtichport access vlan 10 sw1(config-if-range)# dot1x port-control auto 四 配置vacl以丢弃所有通过tcp端口8889进入的桢 1.配置一个acl,以判断数据包是否通过tcp端口8889进入: sw1(config)# access-list 100 permit tcp any any eq 8889 2.配置vlan访问映射表: sw1(config)# vlan access-map DROP_WORM 100 sw1(config-access-map)# match ip address 100 sw1(config-access-map)# action drop sw1(config-access-map)# exit 3.将vlan访问表应用于合适的vlan sw1(config)#vlan filter DROP_WORM vlan 10-20 802.1x工程笔记 在某网络测试时,工作笔记。 一、802.1x协议起源于802.11协议,后者是标准的无线局域网协议,802.1x协议的主要目的是为了解决无线局域网用户的接入认证问题。现在已经开始被应用于一般的有线LAN的接入。为了对端口加以控制,以实现用户级的接入控制。802.1x就是IEEE为了解决基于端口的接入控制(Port-Based Access Control)而定义的一个标准。 1、802.1X首先是一个认证协议,是一种对用户进行认证的方法和策略。 2、802.1X是基于端口的认证策略(这里的端口可以是一个实实在在的物理端口也可以是一个就像VLAN一样的逻辑端口,对于无线局域网来说个“端口”就是一条信道) 3、802.1X的认证的最终目的就是确定一个端口是否可用。对于一个端口,如果认证成功那么就“打开”这个端口,允许文所有的报文通过;如果认证不成功就使这个端口保持“关闭”,此时只允许802.1X的认证报文EAPOL(Extensible Authentication Protocol over LAN)通过。 二、802.1X的认证体系分为三部分结构: Supplicant System,客户端(PC/网络设备) Authenticator System,认证系统 Authentication Server System,认证服务器 三、认证过程 1、认证通过前,通道的状态为unauthorized,此时只能通过EAPOL的802.1X认证报文;2、认证通过时,通道的状态切换为authorized,此时从远端认证服务器可以传递来用户的信息,比如VLAN、CAR参数、优先级、用户的访问控制列表等等; 3、认证通过后,用户的流量就将接受上述参数的监管,此时该通道可以通过任何报文,注意只有认证通过后才有DHCP等过程。 4、Supplicant System- Client(客户端)是—需要接入LAN,及享受switch提供服务的设备(如PC机),客户端需要支持EAPOL协议,客户端必须运行802.1X客户端软件,如:802.1X-complain、Windows XP等 四、配置 1、先配置switch到radius server的通讯 全局启用802.1x身份验证功能 Switch# configure terminal Switch(config)# aaa new-model Switch(config)# aaa authentication dot1x {default} method1[method2...] 指定radius服务器和密钥 switch(config)#radius-server host ip_add key string 2、在port上起用802.1x Switch# configure terminal Switch(config)# interface fastethernet0/1 Switch(config-if)# switchport mode access Switch(config-if)# dot1x port-control auto Switch(config-if)# end 802.1x的安全机制 编者按:IEEE 802.1x作为一种新生的链路层验证机制协议,其原理、组成、工作进程以及功能等到底如何呢?本文揭示了这项协议在网络安全方面的运行机理及其突出应用。 虽然大多数组织的IT基础设施已经加强了边界防御,但其内部仍然容易受到攻击。这种脆弱性具体表现为内部用户可未经授权访问或者恶意破坏关键的IT资源。作为全面的“深层防御”安全架构的一部分,关键内部基础设施的访问权只能提供给授权用户。 局域网(LAN)历来是大门敞开。IEEE 802.1x这项最新标准定义了为LAN实施访问控制的机制,允许授权用户进来,而把非授权用户拒之门外。因此,有了802.1x,LAN便不再是一道敞开的门,其本身也成为安全架构和政策执行的一个重要部分,并有助于消除来自组织内部的安全威胁。 802.1x验证机制及其优点 IEEE 802.1x是一种链路层验证机制协议,控制着对网络访问端口即网络连接点的访问,如实施在无线接入点的物理交换端口或逻辑端口。通过控制网络访问,用户可以在多层安全架构部署第一道防线。在连接设备得到验证之前,网络访问权完全被禁止。得到验证之后,用户可以被提供第2层交换机通常提供的服务以外的附加服务。这些服务包括第3层过滤、速率限制和第4层过滤,而不仅仅是简单的“开/关(on/off)”服务。 链路层验证方案的一个优点是,它只要求存在链路层连接,客户端(在802.1x中称为请求者)不需要分配供验证用的第3层地址,因而降低了风险。此外,链路层验证涉及了所有能够在链路上工作的协议,从而不必为每种协议提供网络层验证。802.1x还能够使执行点尽可能地接近网络边缘,因此可以针对连接设备的特定需求定制细粒度访问规则。 IEEE 802.1x的组成 IEEE 802.1x定义了下列逻辑单元: 网络访问端口:即网络上的连接点,它可能是物理端口,也可能是逻辑端口。 请求者:连接到网络、请求其服务的设备,通常是终端站。请求者是请求验证的设备,但也有可能是一种网络设备。 验证者:为验证服务提供便利的网络单元,验证者实际上并不提供验证服务,它充当请求者和验证服务器之间的代理,并且充当政策执行点。 端口访问实体:参与验证过程的固件。请求者和验证者都拥有端口访问实体(PAE)单元,请求者的PAE负责对验证信息请求做出响应,验证者的PAE负责与请求者之间的通信,代理授予通过验证服务器验证的证书,并且控制端口的授权状态。 验证服务器:提供向验证者申请验证服务的实体,它根据证书提供授权,既可以同验证者放在一起,也可以放在远地。 扩展验证协议(EAP) 由于使用了扩展验证协议(EAP),802.1x在请求者和验证者之间采用的实际验证机制相当灵活。EAP原先是为点对点(PPP)链路上的应用而定义的, 在因特网工程任务组的请求评论文档(RFC)2284中得到了明确定义。 基于以上所述,IEEE定义了一种封装模式,允许EAP通过LAN传输,EAP over LAN(EAPoL)于是应运而生。各种验证服务都可以通过这种协议运行,包括用户名/口令、Kerberos、数字证书、一次性口令和生物检测术等服务。EAP数据包在请求者和验证者之间的链路层上传输,并通过验证者与验证服务器之间的IP/RADIUS连接。 EAP本身并不为流量传输明确规定任何保护机制,如加密等。相反,EAP内运行的验证协议(在RFC 2284当中定义为验证类型)为安全操作提供了数据的机密性和完整性。验证类型的一个例子就是EAP传输层安全(EAP-TLS),它利用了在RFC 2246中明确定义的传输层协议(TLS)。 受控端口和不受控端口 802.1x标准定义了两种逻辑抽象:受控端口和不受控端口。这两种端口都连接到网络访问端口上。受控端口提供了访问请求者所用的网络服务的功能,根据验证操作成功与否实现打开或关闭操作。不受控端口始终处于连接状态,为验证服务的进行提供了始终连通的状态。受控端口需验证通过后才处于连接状态,从而提供给请求者网络服务。 802.1x的工作过程 802.1x的工作相当简单。值得注意的是请求者和验证者之间的流量通过EAPoL传输,验证者与验证服务器之间的流量则通过RADIUS传输。 开始时,受控端口处于中断状态,所以请求者无法访问LAN本身。请求者向验证者发出EAPoL起始消息,或者验证者会向请求者发出EAP请求身份消息。请求者接到请求身份消息后,就会把证书提供给验证者,然后验证者进行封装后把RADIUS数据包里面的消息发送给验证服务器。 RADIUS服务器随后向请求者发出质问请求,该请求由验证者充当代理。请求者对质问做出响应后,验证者又一次充当数据通过验证服务器的代理。验证服务器确认证书后,就会做出请求者可不可以使用LAN服务的决定。只要让受控端口由中断状态转换到连接状态,即可实现这一步。 增强授权功能 因为802.1x只明确规定了基本的开/关功能,其他功能甚少,大多数安全专家提到了AAA,即验证、授权和审计,而802.1x仅仅提供了最基本的验证功能,即开/关。部分厂商于是提供了另一层保护,因为许多组织需要比“开/关”所能够实现的更高一级的细粒度。厂商为受控端口增添逻辑以提高保真度,从而大大增强了授权功能。这种所谓的授权服务可以提供高保真度的第2、第3和第4层过滤功能,而且可以进行扩展,以获得动态自我配置的数据包过滤防火墙。授权服务可以提供如下的一些服务: ● 第2层协议过滤,去除了网络中不接受的第2层协议。 ● 第3层过滤,对提供特定单元访问权的网络执行逻辑视图。 ● 第4层过滤,禁止不允许的协议进入网络。 ● 速率限制,控制可能有害的信息进入网络的速率。 如果利用为每个端口进行编程的授权服务,就能针对特定用户或用户级制订相应的细粒度安全策略,为它们提供仅供访问所需服务的功能,其它服务一概禁止。 举一例,即使网络管理员能访问SNMP,会计部门的人却没有理由同样能访问。如果有可能确定一个用户属于哪个组,那么在验证期间就可以实施特定的授权策略。就本例而言,SNMP访问权应该授予网络管理组的成员,不然需收回权限,从而防止网络管理员之外的人无意或恶意对网络设备乱加配置。 CISCO交换机配置AAA、802.1X以及VACL 一 启用AAA、禁用Telnet 以及启用 ssh 1.启用aaa身份验证,以进行SSH访问: Switch# conf t Switch(config)# aaa new-model 2.配置主机名 Switch(config)# hostname sw1 3.配置本地用户名口令,以便在带外服务器不可用时能够访问交换机 sw1(config)# username cisco password cisco 4.配置SSH sw1(config)# ipdomain-name cisco.com sw1(config)# crypto key generate rsa 5.配置交换机,使得只能通过SSH以带内方式访问交换机 sw1(config)# line vty 0 15 sw1(config-line)# transport input ssh sw1(config-line)# exit sw1(config)# exit 二 配置vty的aaa身份验证方式,首先使用radius 服务器,如果服务器不可用,使用本地用户名口令数据库 sw1(config)# aaa authentication login TEST group radius line sw1(config)# line vty 0 15 sw1(config-line)# login authentication TEST sw1(config-line)# exit 三 在接口上配置802.1x 1.为radius身份验证启用802.1x sw1(config)# aaa authentication dot1x default group radius 2.全局启用802.1x sw1(config)#dot1x system-auth-control 3.在接口上配置802.1x sw1(config)# int range fa0/2 - 10 sw1(config-if-range)# swtichport access vlan 10 sw1(config-if-range)# dot1x port-control auto 四 配置vacl以丢弃所有通过tcp端口8889进入的桢 1.配置一个acl,以判断数据包是否通过tcp端口8889进入: sw1(config)# access-list 100 permit tcp any any eq 8889 2.配置vlan访问映射表: sw1(config)# vlan access-map DROP_WORM 100 sw1(config-access-map)# match ip address 100 sw1(config-access-map)# action drop sw1(config-access-map)# exit 3.将vlan访问表应用于合适的vlan sw1(config)#vlan filter DROP_WORM vlan 10-20 802.1x工程笔记 在某网络测试时,工作笔记。 一、802.1x协议起源于802.11协议,后者是标准的无线局域网协议,802.1x协议的主要目的是为了解决无线局域网用户的接入认证问题。现在已经开始被应用于一般的有线LAN的接入。为了对端口加以控制,以实现用户级的接入控制。802.1x就是IEEE为了解决基于端口的接入控制(Port-Based Access Control)而定义的一个标准。 1、802.1X首先是一个认证协议,是一种对用户进行认证的方法和策略。 2、802.1X是基于端口的认证策略(这里的端口可以是一个实实在在的物理端口也可以是一个就像VLAN一样的逻辑端口,对于无线局域网来说个“端口”就是一条信道) 3、802.1X的认证的最终目的就是确定一个端口是否可用。对于一个端口,如果认证成功那么就“打开”这个端口,允许文所有的报文通过;如果认证不成功就使这个端口保持“关闭”,此时只允许802.1X的认证报文EAPOL(Extensible Authentication Protocol over LAN)通过。 二、802.1X的认证体系分为三部分结构: Supplicant System,客户端(PC/网络设备) Authenticator System,认证系统 Authentication Server System,认证服务器 三、认证过程 1、认证通过前,通道的状态为unauthorized,此时只能通过EAPOL的802.1X认证报文;2、认证通过时,通道的状态切换为authorized,此时从远端认证服务器可以传递来用户的信息,比如VLAN、CAR参数、优先级、用户的访问控制列表等等; 3、认证通过后,用户的流量就将接受上述参数的监管,此时该通道可以通过任何报文,注意只有认证通过后才有DHCP等过程。 4、Supplicant System- Client(客户端)是—需要接入LAN,及享受switch提供服务的设备(如PC机),客户端需要支持EAPOL协议,客户端必须运行802.1X客户端软件,如:802.1X-complain、Windows XP等 四、配置 1、先配置switch到radius server的通讯 全局启用802.1x身份验证功能 Switch# configure terminal Switch(config)# aaa new-model Switch(config)# aaa authentication dot1x {default} method1[method2...] 指定radius服务器和密钥 switch(config)#radius-server host ip_add key string 2、在port上起用802.1x Switch# configure terminal Switch(config)# interface fastethernet0/1 Switch(config-if)# switchport mode access Switch(config-if)# dot1x port-control auto Switch(config-if)# end 802.1x的安全机制 编者按:IEEE 802.1x作为一种新生的链路层验证机制协议,其原理、组成、工作进程以及功能等到底如何呢?本文揭示了这项协议在网络安全方面的运行机理及其突出应用。 虽然大多数组织的IT基础设施已经加强了边界防御,但其内部仍然容易受到攻击。这种脆弱性具体表现为内部用户可未经授权访问或者恶意破坏关键的IT资源。作为全面的“深层防御”安全架构的一部分,关键内部基础设施的访问权只能提供给授权用户。 局域网(LAN)历来是大门敞开。IEEE 802.1x这项最新标准定义了为LAN实施访问控制的机制,允许授权用户进来,而把非授权用户拒之门外。因此,有了802.1x,LAN便不再是一道敞开的门,其本身也成为安全架构和政策执行的一个重要部分,并有助于消除来自组织内部的安全威胁。 802.1x验证机制及其优点 IEEE 802.1x是一种链路层验证机制协议,控制着对网络访问端口即网络连接点的访问,如实施在无线接入点的物理交换端口或逻辑端口。通过控制网络访问,用户可以在多层安全架构部署第一道防线。在连接设备得到验证之前,网络访问权完全被禁止。得到验证之后,用户可以被提供第2层交换机通常提供的服务以外的附加服务。这些服务包括第3层过滤、速率限制和第4层过滤,而不仅仅是简单的“开/关(on/off)”服务。 链路层验证方案的一个优点是,它只要求存在链路层连接,客户端(在802.1x中称为请求者)不需要分配供验证用的第3层地址,因而降低了风险。此外,链路层验证涉及了所有能够在链路上工作的协议,从而不必为每种协议提供网络层验证。802.1x还能够使执行点尽可能地接近网络边缘,因此可以针对连接设备的特定需求定制细粒度访问规则。 IEEE 802.1x的组成 IEEE 802.1x定义了下列逻辑单元: 网络访问端口:即网络上的连接点,它可能是物理端口,也可能是逻辑端口。 请求者:连接到网络、请求其服务的设备,通常是终端站。请求者是请求验证的设备,但也有可能是一种网络设备。 验证者:为验证服务提供便利的网络单元,验证者实际上并不提供验证服务,它充当请求者和验证服务器之间的代理,并且充当政策执行点。 端口访问实体:参与验证过程的固件。请求者和验证者都拥有端口访问实体(PAE)单元,请求者的PAE负责对验证信息请求做出响应,验证者的PAE负责与请求者之间的通信,代理授予通过验证服务器验证的证书,并且控制端口的授权状态。 验证服务器:提供向验证者申请验证服务的实体,它根据证书提供授权,既可以同验证者放在一起,也可以放在远地。 扩展验证协议(EAP) 由于使用了扩展验证协议(EAP),802.1x在请求者和验证者之间采用的实际验证机制相当灵活。EAP原先是为点对点(PPP)链路上的应用而定义的, 在因特网工程任务组的请求评论文档(RFC)2284中得到了明确定义。 基于以上所述,IEEE定义了一种封装模式,允许EAP通过LAN传输,EAP over LAN(EAPoL)于是应运而生。各种验证服务都可以通过这种协议运行,包括用户名/口令、Kerberos、数字证书、一次性口令和生物检测术等服务。EAP数据包在请求者和验证者之间的链路层上传输,并通过验证者与验证服务器之间的IP/RADIUS连接。 EAP本身并不为流量传输明确规定任何保护机制,如加密等。相反,EAP内运行的验证协议(在RFC 2284当中定义为验证类型)为安全操作提供了数据的机密性和完整性。验证类型的一个例子就是EAP传输层安全(EAP-TLS),它利用了在RFC 2246中明确定义的传输层协议(TLS)。 受控端口和不受控端口 802.1x标准定义了两种逻辑抽象:受控端口和不受控端口。这两种端口都连接到网络访问端口上。受控端口提供了访问请求者所用的网络服务的功能,根据验证操作成功与否实现打开或关闭操作。不受控端口始终处于连接状态,为验证服务的进行提供了始终连通的状态。受控端口需验证通过后才处于连接状态,从而提供给请求者网络服务。 802.1x的工作过程 802.1x的工作相当简单。值得注意的是请求者和验证者之间的流量通过EAPoL传输,验证者与验证服务器之间的流量则通过RADIUS传输。 开始时,受控端口处于中断状态,所以请求者无法访问LAN本身。请求者向验证者发出EAPoL起始消息,或者验证者会向请求者发出EAP请求身份消息。请求者接到请求身份消息后,就会把证书提供给验证者,然后验证者进行封装后把RADIUS数据包里面的消息发送给验证服务器。 RADIUS服务器随后向请求者发出质问请求,该请求由验证者充当代理。请求者对质问做出响应后,验证者又一次充当数据通过验证服务器的代理。验证服务器确认证书后,就会做出请求者可不可以使用LAN服务的决定。只要让受控端口由中断状态转换到连接状态,即可实现这一步。 增强授权功能 因为802.1x只明确规定了基本的开/关功能,其他功能甚少,大多数安全专家提到了AAA,即验证、授权和审计,而802.1x仅仅提供了最基本的验证功能,即开/关。部分厂商于是提供了另一层保护,因为许多组织需要比“开/关”所能够实现的更高一级的细粒度。厂商为受控端口增添逻辑以提高保真度,从而大大增强了授权功能。这种所谓的授权服务可以提供高保真度的第2、第3和第4层过滤功能,而且可以进行扩展,以获得动态自我配置的数据包过滤防火墙。授权服务可以提供如下的一些服务: ● 第2层协议过滤,去除了网络中不接受的第2层协议。 ● 第3层过滤,对提供特定单元访问权的网络执行逻辑视图。 ● 第4层过滤,禁止不允许的协议进入网络。 ● 速率限制,控制可能有害的信息进入网络的速率。 如果利用为每个端口进行编程的授权服务,就能针对特定用户或用户级制订相应的细粒度安全策略,为它们提供仅供访问所需服务的功能,其它服务一概禁止。 举一例,即使网络管理员能访问SNMP,会计部门的人却没有理由同样能访问。如果有可能确定一个用户属于哪个组,那么在验证期间就可以实施特定的授权策略。就本例而言,SNMP访问权应该授予网络管理组的成员,不然需收回权限,从而防止网络管理员之外的人无意或恶意对网络设备乱加配置。 发表于: 2010-03-01,修改于: 2010-03-01 08:56 已浏览168次,有评论0条 推荐 投诉
NET命令指令集 (1)NET VIEW 作 用:显示域列表、计算机列表或指定计算机的共享资源列表。 命令格式:net view [\\computername | /domain[omainname]] 参数介绍: 键入不带参数的net view显示当前域的计算机列表。 \\computername 指定要查看其共享资源的计算机。 /domain[omainname]指定要查看其可用计算机的域 简单事例 net view \\YFANG查看YFANG的共享资源列表。 net view /domain:LOVE查看LOVE域中的机器列表。 (2)NET USER 作 用:添加或更改用户帐号或显示用户帐号信息。该命令也可以写为 net users。 命令格式:net user [username [password | *] [options]] [/domain] 参数介绍: 键入不带参数的net user查看计算机上的用户帐号列表。 username添加、删除、更改或查看用户帐号名。 password为用户帐号分配或更改密码。 *提示输入密码。 /domain在计算机主域的主域控制器中执行操作。 简单事例: net user yfang查看用户YFANG的信息 (3)NET USE 作用:连接计算机或断开计算机与共享资源的连接,或显示计算机的连接信息。 命令格式:net use [devicename | *] [\\computername\sharename[\volume]] [password | *]] [/user:[domainname\]username] [[/delete] | [/persistent:{yes | no}]] 参数介绍: 键入不带参数的net use列出网络连接。 devicename指定要连接到的资源名称或要断开的设备名称。 \\computername\sharename服务器及共享资源的名称。 password访问共享资源的密码。 *提示键入密码。 /user指定进行连接的另外一个用户。 domainname指定另一个域。 username指定登录的用户名。 /home将用户连接到其宿主目录 /delete取消指定网络连接。 /persistent控制永久网络连接的使用。 简单事例: net use e: \\YFANG\TEMP将\\YFANG\TEMP目录建立为E盘 net use e: \\YFANG\TEMP /delete断开连接 (4)NET TIME 作 用:使计算机的时钟与另一台计算机或域的时间同步。 命令格式:net time [\\computername | /domain[:name]] [/set] 参数介绍: \\computername要检查或同步的服务器名。 /domain[:name]指定要与其时间同步的域。 /set使本计算机时钟与指定计算机或域的时钟同步。 下面的这4个参数是相关的,所以一起介绍 (5)Net Start 作 用:启动服务,或显示已启动服务的列表。 命令格式:net start service (6)Net Pause 作 用:暂停正在运行的服务。 命令格式:net pause service (7)Net Continue 作 用:重新激活挂起的服务。 命令格式:net continue service (8)NET STOP 作 用:停止 Windows NT 网络服务。 命令格式:net stop service 参数介绍:我们来看看这些服务都是什么 alerter(警报)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值