1. Windows7相对于WindowsXP发生的核心变化__ 5
1. Windows10相对于Windows7发生的核心变化__ 8
4. Linux 登录机制与Windows 登陆机制的异同__ 17
一.windowsXP系统登录原理及验证机制.
1、交互式登录
用户通过相应的用户帐号(User Account)和密码在本机进行登录。有些网友认为“交互式登录”就是“本地登录”,其实这是错误的。“交互式登录”还包括“域帐号登录”,而“本地登录”仅限于“本地帐号登录”,详细讲解请参看下文。
这里有必要提及的是,通过终端服务和远程桌面登录主机,可以看作“交互式登录”,其验证的原理是一样的。
在交互式登录时,系统会首先检验登录的用户帐号类型,是本地用户帐号(Local User Account),还是域用户帐号(Domain User Account),再采用相应的验证机制。因为不用的用户帐号类型,其处理方法也不同。
◇ 本地用户帐号
采用本地用户帐号登录,系统会通过存储在本机SAM数据库中的信息进行验证。所以也就为什么Windows2000忘记Administrator密码时可以删除SAM文件的方法来解决。不过对于WindowsXP则不可以,可能是出于安全方面考虑吧。用本地用户帐号登录后,只能访问到具有访问权限的本地资源。(图1)
◇域用户帐号
采用域用户帐号登录,系统则通过存储在域控制器的活动目录中的数据进行验证。如果该用户帐号有效,则登录后可以访问到整个域中具有访问权限的资源。
小提示:如果计算机加入域以后,登录对话框就会显示“登录到:”项目,可以从中选择登录到域还是登录到本机。
2、网络登录
如果计算机加入到工作组或域,当要访问其他计算机的资源时,就需要“网络登录”了。如图2,当要登录名称为Heelen的主机时,输入该主机的用户名称和密码后进行验证。这里需要提醒的是,输入的用户帐号必须是对方主机上的,而非自己主机上的用户帐号。因为进行网络登录时,用户帐号的有效性是由受访主机进行的。
3、服务登录
服务登录是一种特殊的登录方式。平时,系统启动服务和程序时,都是先以某些用户帐号进行登录后运行的,这些用户帐号可以是域用户帐号、本地用户帐号或SYSTEM帐号。采用不同的用户帐号登录,其对系统的访问、控制权限也不同,而且,用本地用户帐号登录,只能访问到具有访问权限的本地资源,不能访问到其他计算机上的资源,这点和“交互式登录”类似。
从上面讲到的原理不难看出,为什么很多电脑文章告诉一般用户,平时使用计算机时要以Users组的用户登录,因为即使运行了病毒、***程序,由于受到登录用户帐号相应的权限限制,最多也只能破坏属于用户本身的资源,而对维护系统安全和稳定性的重要信息无破坏性。
4、批处理登录
批处理登录一般用户很少用到,通常被执行批处理操作的程序所使用。在执行批处理登录时,所用帐号要具有批处理工作的权利,否则不能进行登录。
平常我们接触最多的是“交互式登录”,所以下面笔者讲为大家详细讲解“交互式登录”的原理。
1.交互式登录系统用到的组件
交互登陆方式的核心组件:Winlogon(Winlogon.exe)、GINA(Msgina.dll)(这个DLL用来接收用户和密码)、Local Security Authority(LSA)(LSA以一种安全的方式收到Msgina.dll传送来的用户名和密码,并对其进行处理)、Authentication Package(LSA调用该组件来分别处理本地登陆和网络登陆、Netlogon(Local Computer、Netlogon(Domain Computer)、Authentication Package)、Security Account Manager
·Winlogon的作用:负责进行安全的用户登陆和交互的可执行文件,启动登陆进程。具体完成如下工作:桌面锁定、标准SAS(Secure Attention Sequence)标准动作的识别、SAS标准例程的分发、加载User Profile、控制屏幕保护程序、支持多种网络服务提供者、查找GINA(MSGINA.dll)。
·GINA。是一个被Winlogon进程在启动的前期阶段加载的DLL模块。GINA负责处理SAS事件并激活用户SHELL。作用:可以实现在登陆之前的警告提醒框;显示上一次登陆用户名;自动登陆、允许关机;激活Userinit.exe进程。
在Vista之前2000之后的Windows可以自定义GINA,如:指纹识别登陆。但是Vista中,用户的自定义的GINA将被忽视掉。
LSA(Local Security Authority):Winlogon和GINA调用LSA处理登陆凭据。LSA的验证过程中包括了如下的组件:验证包(Authentication Packages)、SAM和AD。
·NetLogon服务:NetLogon服务验证NTLM的登陆请求,注册、认证和定位域控制器的位置,并提供NT4.0的兼容性、更新主机的DNS记录、定位域控制器。
2.交互式登录-登陆到本机具体执行流程
1、用户首先按Ctrl+Alt+Del组合键。
2、winlogon检测到用户按下SAS键,就调用GINA,由GINA显示登录对话框,以便用户输入帐号和密码。
3、用户输入帐号和密码,确定后,GINA把信息发送给LSA进行验证。
4、在用户登录到本机的情况下,LSA会调用msv1_0.dll这个验证程序包,将用户信息处理后生成密钥,同SAM数据库中存储的密钥进行对比。
5、如果对比后发现用户有效,SAM会将用户的SID(Security Identifier——安全标识),用户所属用户组的SID,和其他一些相关信息发送给LSA。
6、LSA将收到的SID信息创建安全访问令牌,然后将令牌的句柄和登录信息发送给winlogon.exe。
7、winlogon.exe对用户登录稍作处理后,完成了整个登录过程。
2.交互式登录-登陆到域 具体执行流程
登录到域的验证过程,对于不同的验证协议也有不同的验证方法。如果域控制器是Windows NT 4.0,那么使用的是NTLM验证协议,其验证过程和前面的“登录到本机的过程”差不多,区别就在于验证帐号的工作不是在本地SAM数据库中进行,而是在域控制器中进行;而对于Windows2000和Windows2003域控制器来说,使用的一般为更安全可靠的Kerberos v5协议。通过这种协议登录到域,要向域控制器证明自己的域帐号有效,用户需先申请允许请求该域的TGS(Ticket-Granting Service——票据授予
服务)。获准之后,用户就会为所要登录的计算机申请一个会话票据,最后还需申请允许进入那台计算机的本地系统服务。
其过程如下:
1、用户首先按Ctrl+Alt+Del组合键。
2、winlogon检测到用户按下SAS键,就调用GINA,由GINA显示登录对话框,以便用户输入帐号和密码。
3、用户选择所要登录的域和填写帐号与密码,确定后,GINA将用户输入的信息发送给LSA进行验证。
4、在用户登录到本机的情况下,LSA将请求发送给Kerberos验证程序包。通过散列算法,根据用户信息生成一个密钥,并将密钥存储在证书缓存区中。
5、Kerberos验证程序向KDC(Key Distribution Center——密钥分配中心)发送一个包含用户身份信息和验证预处理数据的验证服务请求,其中包含用户证书和散列算法加密时间的标记。
6、KDC接收到数据后,利用自己的密钥对请求中的时间标记进行解密,通过解密的时间标记是否正确,就可以判断用户是否有效。
7、如果用户有效,KDC将向用户发送一个TGT(Ticket-Granting Ticket——票据授予票据)。该TGT(AS_REP)将用户的密钥进行解密,其中包含会话密钥、该会话密钥指向的用户名称、该票据的最大生命期以及其他一些可能需要的数据和设置等。用户所申请的票据在KDC的密钥中被加密,并附着在AS_REP中。在TGT的授权数据部分包含用户帐号的SID以及该用户所属的全局组和通用组的SID。注意,返回到LSA的SID包含用户的访问令牌。票据的最大生命期是由域策略决定的。如果票据在活动的会话中超过期限,用户就必须申请新的票据。
8、当用户试图访问资源时,客户系统使用TGT从域控制器上的Kerberos TGS请求服务票据(TGS_REQ)。然后TGS将服务票据(TGS_REP)发送给客户。该服务票据是使用服务器的密钥进行加密的。同时,SID被Kerberos服务从TGT复制到所有的Kerberos服务包含的子序列服务票据中。
9、客户将票据直接提交到需要访问的网络服务上,通过服务票据就能证明用户的标识和针对该服务的权限,以及服务对应用户的标识。
二. Windows7系统登陆原理及验证机制.
1. Windows7相对于WindowsXP发生的核心变化
windows登录认证在不同的windows版本中有不同的方式。在xp中使用gina.dll,而在win7及以上版本使用Credential Providers。
在 XP 时代,微软提供了 GINA 的接口来让我们对系统登录界面进行定制,在 Win7 以上系统中,微软提供了另外一种接口,就是 Credential Providers, Credential Providers 译为凭据提供者/商。所谓凭据就是提供了一种身份认证的方式,原有的 Windows 身份认证方式就是开机的时候需要你输入密码。而通过微软提供这套接口你可以实现丰富的身份认证方式,比如指纹、USB-Key等任意修改 Windows 系统登录时的界面。比较有名的有些一些应该了解过的产品就是 ThinkPad 的指纹解锁功能,通过验证指纹来解锁计算机,当你了解了实现机制以后,硬件条件允许的情况下,你也可以做一套自己的身份认证系统。
它长什么样子?
在了解它之前我们要看看使用它到底能做什么功能。下图是微软官方提供的例子,显示了所有提供的控件,包括图片、下拉框、文本输入框、密码输入框、超链接按钮等。
组件名称 | 描述 |
Winlogon | 提供交互式登陆的下层基础 |
Logon UI | 提供交互式UI(的渲染) |
Credential providers(密码和智能卡) | 描述凭据信息和序列化凭据 |
LSA | 处理登陆凭据 |
授权包(Authentication packages) | 包括NTLM和Kerberos,与认证服务器通信 |
用户按下SAS的3个键后,Winlogon命令logon UI 显示各个credential provider的选项,Logon UI查询各个 credential provider。 credential provider 可以选择某个某个登陆界面作为默认。枚举完所有的登陆界面后,logon UI显示给用户, 用户选择一个进行登陆,然后logon UI提交凭据信息。
[注]
Windows交互登陆从用户按下Ctrl+ALT+DEL开始,这3个键的组合叫做SAS,防止其他进程或程序使用。Winlogon在Boot的时候注册此SAS,然后Logon UI 生成界面。
一般来说,用户登陆计算机使用的要么是本地账户,要么是域账户的用户名和密码,这些凭据用来验证用户身份。如果是智能卡,那么用户的凭证则存储在卡上,读卡器让计算机与卡的安全芯片交互。在登陆的过程中,用户输入一个PIN码,而不是用户名和密码。
Credential providers是一个用于收集凭据的COM对象,运行在本地系统上下文中。总的来说,Logon UI提供界面,Winlogon提供登陆下层基础,Credential providers与这二者交互,以帮助收集和处理凭据。
credential provider 可以扩展,允许用户通过生物(指纹,声音,视网膜),密码,PIN,智能卡或任何自定义的认证包。企业和IT部门可能为域用户开发和部署自定义的认证机制。
credential provider 不是强制的机制,它是用于采集和序列化凭据的,而LSA和authentication packages才强制安全。
credential provider 可能设计成用于SSO,认证用户到一个安全的网络访问点。
credential provider 也可以设计成用于某个特定程序的凭据采集,或者用于网络资源或加域的认证,以及提供UAC的管理员权限提示。
credential provider必须要被写进注册表,负责:
描述认证所需要的凭据信息。
处理与外部认证方式的通信和逻辑。
打包凭据,用于交互式登陆和网络登陆。
credential provider API 不渲染UI,不描述什么需要渲染。只在安全模式可以用密码credential provider,智能卡只在带有网络的安全模式中可用。
三. Windows10系统登录原理及验证机制.
1. Windows10相对于Windows7发生的核心变化
Windows10操作系统在之前版本的基础上继续完善了登陆机制,也提供了更多的组件来实现不同的登陆方式.但核心调用的组件没有变化. 同样使用 “Winlogin->Credential UI ->LSA->根据不同登陆方式请求不同服务 “ 的模式.但是Credential UI相较于原来版本发生了较大的变化, 并且继续丰富完善了其他组建的功能.
作为可扩展体系结构的一部分,Windows 服务器操作系统实现一组默认身份验证安全支持提供程序,其中包括 Negotiate、Kerberos 协议、NTLM、Schannel (安全通道) 和摘要。 这些提供程序使用的协议允许用户、计算机和服务进行身份验证,并且身份验证过程使授权的用户和服务能够安全地访问资源。
在 Windows 服务器中,应用程序使用 SSPI 对身份验证调用进行身份验证。 因此,开发人员不需要了解特定身份验证协议的复杂性,也不需要在其应用程序中构建身份验证协议。
Windows Server 操作系统包括组成 Windows 安全模型的一组安全组件。 这些组件确保应用程序不需要进行身份验证和授权即可访问资源。 以下各节介绍身份验证体系结构的元素。
本地安全机构
本地安全机构 (LSA) 是受保护的子系统,可对用户进行身份验证并登录到本地计算机。 此外,LSA 在计算机上保留有关本地安全的所有方面的信息 (这些方面统称为本地安全策略) 。 它还提供各种服务,用于在 Sid) (名称和安全标识符之间进行转换。
安全子系统将跟踪计算机系统上的安全策略和帐户。 如果是域控制器,则这些策略和帐户是对域控制器所在的域生效的策略和帐户。 这些策略和帐户存储在 Active Directory 中。 LSA 子系统提供的服务可用于验证对对象的访问权限、检查用户权限以及生成审核消息。
安全支持提供程序接口
(SSPI) 的安全支持提供程序接口是为任何分布式应用程序协议获取用于身份验证、消息完整性、消息隐私和安全服务质量的集成安全服务的 API。
SSPI 是通用安全服务 API 的实现 (GSSAPI) 。 SSPI 提供一种机制,通过该机制,分布式应用程序可以调用多个安全提供程序之一来获取经过身份验证的连接,而无需了解安全协议的详细信息。
1.本地登录和域登录
用户为域登录提供的所有凭据包含本地登录所需的所有元素,例如帐户名称和密码或证书,以及 Active Directory 域信息。 此过程确认用户对用户本地计算机上的安全数据库或 Active Directory 域的标识。 对于域中的用户,无法关闭此强制登录过程。
用户可以通过以下两种方式之一对计算机执行交互式登录:
在本地,当用户具有对计算机的直接物理访问权限,或者计算机是计算机网络的一部分时。
本地登录授予用户访问本地计算机上的Windows资源的权限。 本地登录要求用户在安全帐户管理器中具有用户帐户, (SAM) 本地计算机上。 SAM 以存储在本地计算机注册表中的安全帐户的形式保护和管理用户和组信息。 计算机可以具有网络访问权限,但不是必需的。 本地用户帐户和组成员身份信息用于管理对本地资源的访问。
网络登录授予用户访问本地计算机上的Windows资源的权限,以及凭据访问令牌定义的网络计算机上的任何资源。 本地登录和网络登录都要求用户在安全帐户管理器 (SAM) 本地计算机上拥有用户帐户。 本地用户帐户和组成员身份信息用于管理对本地资源的访问,用户访问令牌定义可在网络计算机上访问的资源。
本地登录和网络登录不足以授予用户和计算机访问和使用域资源的权限。
通过终端服务或远程桌面服务远程 (RDS) ,在这种情况下,登录进一步限定为远程交互。
交互式登录后,Windows代表用户运行应用程序,用户可以与这些应用程序进行交互。
本地登录授予用户访问本地计算机上的资源或网络计算机上的资源的权限。 如果计算机已加入域,则 Winlogon 功能会尝试登录到该域。
域登录授予用户访问本地和域资源的权限。 域登录要求用户在 Active Directory 中具有用户帐户。 计算机必须具有 Active Directory 域中的帐户,并且必须以物理方式连接到网络。 用户还必须具有登录本地计算机或域的用户权限。 域用户帐户信息和组成员身份信息用于管理对域和本地资源的访问。
2. 远程登陆
在Windows中,通过远程登录访问另一台计算机依赖于远程桌面协议 (RDP) 。 由于用户在尝试远程连接之前必须已成功登录到客户端计算机,因此交互式登录过程已成功完成。
RDP 使用远程桌面客户端管理用户输入的凭据。 这些凭据适用于目标计算机,用户必须具有该目标计算机上的帐户。 此外,必须将目标计算机配置为接受远程连接。 将发送目标计算机凭据以尝试执行身份验证过程。 如果身份验证成功,用户将连接到通过使用提供的凭据访问的本地和网络资源。
3. 网络登录
只有在用户、服务或计算机身份验证发生后,才能使用网络登录。 在网络登录期间,该过程不使用凭据输入对话框收集数据。 而是使用以前建立的凭据或其他收集凭据的方法。 此过程将用户标识确认为用户尝试访问的任何网络服务。 除非必须提供备用凭据,否则此过程通常对用户不可见。
若要提供这种类型的身份验证,安全系统包括以下身份验证机制:
Kerberos 版本 5 协议
公钥证书
安全套接字层/传输层安全性 (SSL/TLS)
摘要
NTLM,用于与基于 Microsoft Windows NT 4.0 的系统兼容
有关元素和进程的信息,请参阅上面的交互式登录关系图。
4. 智能卡登录
智能卡可用于仅登录到域帐户,而不是本地帐户。 智能卡身份验证需要使用 Kerberos 身份验证协议。 在 Windows 2000 Server 中,在基于 Windows 的操作系统中,实现了 Kerberos 协议的初始身份验证请求的公钥扩展。 与共享密钥加密相比,公钥加密是不对称的,即需要两个不同的密钥:一个用于加密,另一个用于解密。 一起,执行这两项操作所需的密钥构成私钥/公钥对。
若要启动典型的登录会话,用户必须通过向用户和基础 Kerberos 协议基础结构提供已知信息来证明其身份。 机密信息是派生自用户密码的加密共享密钥。 共享密钥是对称的,这意味着同一密钥用于加密和解密。
使用智能卡而不是密码时,存储在用户的智能卡上的私钥/公钥对将替换为从用户密码派生的共享密钥。 私钥仅存储在智能卡上。 可以向所有者想要交换机密信息的任何人提供公钥。
有关Windows中的智能卡登录过程的详细信息,请参阅智能卡登录在Windows中的工作原理。
5. 生物识别登录
设备用于捕获和生成项目的数字特征,例如指纹。 然后,此数字表示形式与同一项目的示例进行比较,如果成功比较这两个数字表示形式,则会发生身份验证。 可以配置运行在本主题开头的 “应用于” 列表中指定的任何操作系统的计算机,以接受这种登录形式。 但是,如果生物识别登录仅配置为本地登录,则用户在访问 Active Directory 域时需要提供域凭据。
四. Linux 操作系统登陆原理及验证机制.
Linux登录方式分为两种:本地登录和远程登录。本地登录可以使用图形界面和命令行模式(也称字符界面)两种方式;远程登录可以使用SSH、Telnent、VNC、SFTP 4种方式。
常见的远程登录方式有SSH、Telnet、VNC和SFTP 4种。
SSH:SSH(Secure Shell)是一种使用加密技术保护传输数据包的远程登录工具,所有数据包都先经过加密,再进行传输。由于SSH是一种安全性非常高的远程登录工具,因此SSH也是Linux系统中使用最广泛的远程登录方式。
Telnet:Telnet是一个传统的交互式登录工具。与SSH不同的是,Telnet并没有使用加密技术,所有内容都通过明文方式传输。由于其保密性差,因此通常将其应用到能够确认安全的环境下,例如一些私有网络等。
VNC:VNC(Virtual Network Computing,虚拟远程计算机)是由AT&T欧洲实验室开发的一个用于远程控制的开源软件,在Linux系统中主要用于远程桌面控制。
SFTP:SFTP(Secure File Transfer Protocol,安全文件传输协议)是SSH的一部分,主要用来在Linux系统间传送文件。
Linux 本地登录体系架构
附: linux系统启动过程:
大概流程:BIOS->MBR->boot loader->内核->systemd(centos 7)->登陆界面
1、加载BIOS的硬件信息及进行自检,根据设定获取第一个可启动的设备(通常是硬盘)
按下开机电源键,系统先去加载BIOS,并通过BIOS程序去加载CMOS,获取CMOS内设置的值取得主机的各项硬件配置信息,如硬盘、系统时间,CPU与接口设备的沟通频率,设备启动顺序,各周边总线的是否启动PnP(即插即用)等信息,取得这些信息后BIOS会进行开机自检,然后开始执行硬件检测的初始化,并配置PnP设备,之后再定义出设备的启动顺序,接下来就会开始进行启动设备的数据读取了(MBR相关)。
2、读取主引导记录(MBR,Master Boot Record)
读取并执行第一个可开机启动设备内MBR的boot loader。loader的主要功能是识别操作系统的文件格式并将其加载到主存储器中去执行,不同的操作系统的文件格式不一样,所以每种操作系统都有自己的boot loader,每个文件系统都会保留一块启动扇区(boot sector)供操作系统安装boot loader,而通常系统默认都会安装一份loader到它根目录所在的文件系统的启动扇区上。BIOS通过硬件的INT 13中断功能来读取MBR.
在硬盘上第0柱面0磁道1扇区前446字节被称为MBR。系统找到BIOS所指定的硬盘的MBR后,会将其复制到0x7c00地址所在的物理内存中,被复制到物理内存的内容就是boot loader,linux系统就是grub。
3、依据boot loader的设定加载内核(Kernel)
当通过boot loader的管理而开始读取内核文件后,linux会将内核解压到内存中,然后利用内核的功能测试与取得各个周边设备,包括存储设备、cpu、声卡、网卡等。并且内核会以自己的功能重新检测一次硬件,而不一定使用BIOS检测到的硬件信息。到这里内核才开始接管BIOS后的工作,内核文件放在/boot里以vmlinuz开头。
Linux内核是可以通过动态加载内核模块的,内核模块放置在/lib/modules/内,由于模块放在磁盘根目录内,所以在开机过程中内核必须要挂载根目录,才能读取内核模块提供加载驱动程序的功能,在开机过程中根目录是以只读方式来挂载的,因为担心会影响到磁盘内的文件系统。
现在的磁盘大多使用SATA,内核需要加载STAT磁盘驱动程序才能挂载根目录,而SATA的驱动程序在/lib/modules内,这就有点踢皮球的感觉了,于是有了虚拟文件系统(initial RAM Filesystem),一般在/boot/目录下以initramfs开头,这个文件能通过boot loader加载到内存中,解压成一个仿真的根目录,而且这个根目录在内存当中的文件系统能够提供一支可执行的程序,通过该程序加载开机过程中所需要的核心模块,载入完成后,就开始运行systemd了。
4、内核调用systemd程序,以default.target流程开机
Centos7后init程序被systemd取代,systemd是内核加载完、重新检测硬件与驱动程序加载后启动的第一个程序,进程号为1,主要功能是准备软件的执行环境。所有的动作都会通过systemd的默认启动服务集合。
dufault.target是默认目标(systemd使用target而不是runlevels)的链接(graphical是图形化界面):
当取得了/etc/systemd/system/default.target这个默认目标的设定后,系统会链接到/usr/lib/systemd/system/目录下去取得链接对应的目标,7种目标如图:
通过查看/usr/lib/systemd/system/graphical.target跟muti-user.target两个文件的内容,可以知道graphical.target必须要完成muti-user.target之后才能运行,因为运行级别是graphical,还要display-manager.service才行,而muti-user.target必须要完成basic.target等。
使用命令“systemctl list-dependencies graphical.target”,列出系统相关服务的启动流程。
1、 systemd启动sysinit.target初始化及basic.target准备操作系统。sysinit.target初始化要启动的服务大概:文件系统挂载、设备管理器的启动、随机数生成器种子设置、设定终端机(console)字形、日志式登陆文件的使用
、加载额外的核心参数设定、开机过程的讯息传递与动画执行、特殊文件系统的启用。
之后是basic.target,主要工作是启动各种可执行文件的目录路径、通信sockets、定时器等。
2、 systemd启动multi-user.target下各种主机服务以及提供服务器功能的网络服务,在/etc/systemd/system/muti-user.target.wants/目录下可以看到预设要被启动的服务。
3、systemd启动multi-user.target下的/etc/rc.d/rc.local文件,这是在一切初始化工作完成后,Linux系统留给用户进自定义的地方,可以把你想设置和启动的东西的绝对路径放到这里。现在强烈建议创建自己的systemd服务或udev规则。
4、systemd启动multi-user.target下的getty.target及登陆服务。
5、systemd启动graphical.target需要的服务。加载用户管理服务与图形界面管理员,让用户以图形界面登入系统。
登陆过程:
1、在登陆界面输入账号密码回车后,系统会先在/etc/passwd文件内查找是否有所输入的账号,有的话会将账号对应的UID跟GID读取出来,而且该账号的家目录跟shell设置也一并读出。
2、接下来核对存放在/etc/shadow文件中的密码,此文件只有root才有权限打开,而/etc/passwd文件所有人都能读取,不安全,所以将密码存放到shadow文件。在shadow文件内查找对应账号跟UID,核对刚刚输入的密码,正确则进入login shell,读入/etc/profile的配置,执行/.bash_profile、/.bashrc、/etc/bashrc。
一、SSH远程登录
由于大多数发行版都默认安装了SSH且其安全性较高,因此通过SSH远程登录并管理Linux系统已经成为管理员的必备技能之一。
Windows系统中的SSH登录:
在Windows环境中使用SSH登录需要借助一些工具,常用的工具有PuTTY和SecureCRT等。
(1)PuTTY是登录Linux系统最简便的工具之一,拥有体积下巧、操作简单、功能强大等特点,许多Linux管理员都使用PuTTY作为远程登录的工具。
在PuTTY主界面中输入远程Linux系统的IP地址和相应的端口号(默认为22),单机Open按钮即可使用SSH进行登录。
(2)如果需要远程登录的Linux系统较多,通常推荐使用SecureCRT作为远程登录的工具。SecureCRT不仅可以保存多个远程登录连接,还可以将多个登录终端放置在当前窗口的标签页中,非常适合需要登录多个Linux系统的情况。
如果使用SecureCRT工具登录Linux系统,可以在其主界面中单击“新建连接”按钮,然后在新建连接向导中按提示操作即可新建并保存连接。
Linux系统中的SSH登录:
在Linux系统中要使用SSH远程登录到另一个Linux系统,可以使用ssh命令加用户名和IP地址的方法。例如:
#ssh zhu@192.168.1.5
使用exit命令断开远程登录
#exit
提示:在RHEL5.3中可以使用命令 service sshd start (其他操作系统中可以使用 /etc/init.d/sshd start)启动SSH服务;如果系统防火墙阻挡用户访问,可以使用命令 service iptables stop (其他系统中可以使用 /etc/init.d/tptables stop)关闭系统防火墙。
二、Telnet远程登录
虽然Telnet安全性较差,但却具备广泛的应用环境,例如用户可以从路由器、交换机、Windows等设备和系统中使用Telnet进行远程登录。
提示:目前许多Linux发行版默认都不会安装Telnet,因此在使用Telnet远程登录前,还需要添加Telnet服务,并设置防火墙规则。
在Linux系统中使用Telnet远程登录系统时,可以使用telnet命令:
#telnet 192.168.1.5
#exit
在Windows系统中使用Telnet远程登录与Linux系统类似。
三、VNC远程登录
VNC远程登录需要一个名为VNC Viewer的软件,该软件拥有Windows和Linux两个版本(Linux系统中的VNC Viewer需要在图形界面中使用)。
使用VNC远程登录时,在VNC Viewer软件中输入远程主机的IP地址和桌面号,然后单击Connect按钮执行连接(如:172.16.1.232:1表示主机172.16.1.232的1号桌面)。
提示:如果需要在RHEL5.3中设置并开启VNC桌面,可以使用命令vncserver :1(:1表示1号桌面),并设置密码即可启用第一个桌面。但这时的桌面仅是一个终端。
四、SFTP登录
管理员通常都使用远程的方式管理服务器,有时可能需要向服务器传送文件,这些文件可能是一些小的脚步文件,或从互联网上下载的相关程序等。传送文件可以有许多方法,例如FTP、Samba文件服务器、NFS网络文件系统等,其中最简单的方法是用SFTP登录并传送文件。
Windows系统中的SFTP登录:
Windows系统中可以使用的SFTP登录工具有WinSCP和SecureFX,这两个工具的主要作用是从Windows主机远程登录到Linux服务器,并在二者之间进行文件传送。
Linux系统中的SFTP登录:
有时需要在Linux系统间传送文件,在Linux系统中使用SFTP时,可以使用命令sftp:
以root用户身份登录远程服务器
#sftp root@192.168.1.5
使用get命令下载远程服务器的文件
sftp>get /root/a.txt
使用put命令上传本地文件
sftp>put /root/test.txt
使用bye命令退出sftp远程登录
sftp>bye
sftp命令与Linux系统中的ftp命令十分类似,可以参考ftp命令使用sftp。
Linux 操作系统和Windows 操作系统 登陆机制的总体流程设计是类似的, 但是基于两种操作系统不同的底层架构, 具体实现流程是大不相同的. 比如, 对于本地登录的密码验证, Windows 是通过LSA服务来访问SAM数据库进行验证, 而Linux是基于一切皆文件的 访问本地存储的密码文件来验证.