热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux安全基础

文章标题:Linux安全基础。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  一、系统简介
  Linux是一个真正意义上的免费的操作系统,起初是由Linus Torvalds出于个人爱好,在业余时间写成的一个操作系统,后来放到了INTERNET上而逐步演变成今天的Linux。今天的Linux,吸引了全世界成千上万的程序员,他们在不同的国家和地区来共同开发和完善这一免费的操作系统。 Linux继承了UNIX系统的特点,它的发展凝聚了世界各地无数开发人员的大量心血,体现了一种信息世界的共建、共享和共荣的精神。
  
  二、基本概念
  1、用户和用户组
  Linux有很强的用户管理机制,它是通过用户和用户组这两个概念来实现的。
  用户是指可以登录到系统的帐号。Linux是一个多用户的操作系统,它允许
  多个用户同时登录到系统,Linux给每一个系统帐号一个用户ID,来区别不同的
  用户。
  同时Linux还通过用户组来为同一个组的用户分配权限,每一个组也有一个
  组ID,来区别不同的组。
  2、文件与目录许可权限
  文件和目录的属性决定了文件和目录的被访问权限,即谁能存取或执行该文件。
  使用命令ls -l将显示文件类型及文件许可权限等。
  如:
  
  文件类型
  文件拥有者(u)许可权限
  文件组拥有者(g) 许可权限
  
  其他用户(o)许可权限
  - rwx rwx rwx 1 root root 437428 Sep 15 21:21 vi
  (图一)
  (图一)用三元组表示文件许可权限,第一个三元组是拥有文件的用户(u),第二个三元组是拥有文件的组(g),第三个三元组是其他用户(o)。
  Linux就是通过这种方法来对文件的许可权限进行管理,系统根据每个文件的许可权限来判断每个用户对每个文件的操作权限。
  在整个系统中有一个用户不受限于这个限制,即root用户,系统的超级用户,它可以更改任何一个文件的许可权限。普通用户也可以使用chmod来改变属于他自己的文件和目录的许可权限。
  除了上面介绍的rwx三种许可权限外还有两种特殊的权限:s和t。s位出现在组三元组或拥有者三元组的第三位,也就是x位,它表示此文件是可执行文件,并且在文件执行时,以文件所有者的ID可文件组ID运行,而不是用运行命令的用户的ID来运行。可执行脚本被置s位,存在一种潜在的危险,特别是文件拥有者或组拥有者是root的文件。t这一符号在其他用户三元组中的第三位置,通常,如果在目录上的其他用户三元组中指定了执行和可写许可权限时,任何用户无论所有权及许可权限都可删除该目录中任何文件,使用这种设置可防止用户而不是拥有删除或修改目录中的文件。
  三、系统认证
  Linux系统目前采用一种全新的认证方式,即:可插式认证模块(PAM: Pluggable Authentication Modules)。
  PAM是由Sun提出的一种认证机制。它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。
  
  
  系统管理员通过PAM配置文件来制定认证策略,即指定什么服务该采用什么样的认证方法;应用程序开发者通过在服务程序中使用PAM API而实现对认证方法的调用;而PAM服务模块(service module)的开发者则利用PAM SPI(Service Module API)来编写认证模块(主要是引出一些函数pam_sm_xxxx( )供libpam调用),将不同的认证机制(比如传统的UNIX认证方法、Kerberos等)加入到系统中;PAM核心库(libpam)则读取配置文件,以此为根据将服务程序和相应的认证方法联系起来。
  通过使用PAM这种认证方式,可以使整个系统的认证有更大的灵活性,系统管理员可以根据需要来调整认证模块,根据不同的安全级别来配置系统环境。
  四、安全shell
  在通常的系统管理中,系统管理员常常通过telnet登录到系统,对系统进行配置管理。但这种方式下,系统的用户名和口令在整个网络中的传输是明文,很容易被窃取,SSH(secure shell)是一个客户-服务器应用,它通过加密,通过基于RSA机制的主机认证以及用户认证中的多种选项提供安全的通信。它提供rlogin,rsh和rcp的替代程序。它也提供加密的X窗口系统连接和加密的TCP会话连接。
  下面的图说明整个ssh在认证连接过过程中的流程:
  
  
  通过使用ssh有效地保证了用户数据在整个通信过程中的安全,保证了内容的私密性。
  五、用ipchains过滤数据包
  在通常的系统安装中,系统对外开放所有服务端口,我们利用ipchains可以把系统配置成一个基于主机的防火墙,通过适当配置可以有效的限制、保护系统以及控制局域网范围内的访问。
  防火墙是阻止非授权用户进入、离开、穿过网络的系统。Linux的ipchains命令可以建立规则,为进入、离开、穿过系统的数据流提供可选的限制,从而提供比较安全的防火墙功能。
  Linux ipchains实现包过滤防火墙功能,网络上的每一个包都根据规则过滤。使用ipchains的内核分析每一个包,查找指定的源、目标IP地址及端口,或指定的ICMP类型及代码。
  整个ipchains的包过滤流程如下图所示:
  
  ipchains在每一个数据包到来之前,都会根据规则检查每一个IP包的包头,进 行有效的过滤。同时它也对每一个从本机出去的包进行检查,保证每一个出去 和进来的包,符合规则。
  除了把ipchains配置成基于主机的防火墙外,还可以把ipchains配置成一个基于网络的防火墙,用ipchains来保护一个网段。
  六、系统日志
  Linux使用日志来记录用户的动作和系统的一些错误信息。Linux下有两个重要的日志守护程序:syslog和klogd。
  syslog是以守护进程运行,在启动时他从/etc/syslog.conf文件中读取不同的选项,根据不同的应用程序把相关信息记录到相应的日志文件中。
  klogd是一个内核日志记录程序,它记录内核出现的任何错误和异常。
  下图是日志信息流的过程。
  
推荐阅读
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 本文详细介绍如何通过修改配置文件来隐藏Apache、Nginx和PHP的版本号,从而增强网站的安全性。我们将提供具体的配置步骤,并解释这些设置的重要性。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
author-avatar
minggute_111
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有