Linux安全小谈(3)
作者:涵涵幸福2010_759 | 来源:互联网 | 2017-11-06 23:38
文章标题:Linux安全小谈(3)。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类
在本文中,我奖为大家介绍Linxu的安全机制(只是简单介绍下,本人太菜,很深的的东东我也写不出,呵呵)
1 PAM机制
PAM是一套共享库,它提供了一个框架和一套编程接口,把认证工作从程序员那里转到ADMIN那里。PAM允许ADMIN在多种认证方式之间进行选择,能够改变本地的认证方法而不需要重新编译有关认证的应用程序。
PAM包括如下功能:
**加密口令
**允许随意Shandow口令
**对用户进行资源限制以防止DOS攻击
**限制用户在特定时间内从特定地点登陆
**引入概念“client plug-in agents”,使PAM支持C/S应用中的机器——机器认证成为可能。
PAM机制为一些更高级的认证方法提供了便利的基础,在此基础上很容易开发出例如智能卡,指纹识别认证等高技术认证方法。
2 入侵检测系统(IDS)
这是一种比较新的技术,现在的服务器很少有安装IDS系统的,LINUX也只有最近发布的新版本才陪上这种工具。管入侵检测系统的历史很短,但发展却很快,目前比较流行的入侵检测系统有Snort、Portsentry、 Lids等。 (以后我会为大家专门介绍入侵检测系统)
利用LINUX本身配备的工具和从INTERNET上DOWN下的工具,可以使LINUX系统具备高级的入侵检测能力,这些能力包括:
**记录入侵企图,当攻击发生时及时通知管理员;
**在规定情况的攻击发生时,采取事先规定的措施;
**发送一些错误信息,比如伪装成其他*作系统,这样攻击者会认为他们正在攻击一个Windows NT 或Solaris系统。(我们可不可以说这是一种网络欺骗技术呢?)
3 加密文件系统
加密文件系统就是将加密服务引入文件系统,从而提高计算机系统的安全性。有太多的理由需要加密文件系统,比如防止硬盘被偷窃、防止未经授权的访问等。目前开发的LINUX中已经有多种加密文件系统,例如 CFS、TCFS、CRYPTFS等,其中比较有代表性的是TCFS,
它通过将加密服务和文件系统紧密集成,使用户感觉不到文件的加密过程。TCFS不修改文件系统的数据结构,备份与修复以及用户访问保密文件的语义也不变。TCFS可以作到让以下用户不可读加密文件:
**合法拥有者以外的用户;
**用户和远程文件系统通信线路上的偷听者;
**文件系统服务器的超级用户。
对于合法用户,访问保密文件与访问普通文件几乎没有区别。
4 安全审计
即使系统管理员十分精明地采取了各种安全措施,但是新漏洞是层出不穷的,攻击者在漏洞被修补之前会迅速抓住机会攻破尽可能多的机器。虽然LINUX不能预测何时主机会受到攻击,但是它可以记录攻击者的行踪。LINUX系统也可以进行检测、记录时间信息和网络连接情况。这些信息将被重定向到日志中备查。日志是Linux安全结构中的一项非常重要的内容,它是提供攻击发生的唯一真实的证据(入侵者往往删除或者伪造日志也就是这个原因)。因为现在的攻击方法多种多样,所以Linux提供网络、主机和用户级的日志信息。LINUX可以记录以下内容:
**记录所有系统和内核信息;
**记录远程用户申请访问哪些文件;
**记录用户可以控制哪些进程;
**记录具体用户使用的每条命令;
**记录每一次网络连接和它们的源IP地址、长度,有时还包括攻击者的用户名和使用的*作系统。
5 强制访问控制
强制访问控制(MAC,这个MAC可不是以台技术里的MAC,大家一定要分清楚),是一种由系统管理员从全系统的角度定义和实施的访问控制,它通过标记系统中的主客体,强制性地限制信息的共享和流动,使不同的用户只能访问到与其有关的、指定范围的信息,从根本上防止信息的失泄密和访问混乱的现象。
传统的MAC实现都是基于TCSEC中定义的MLS策略,但因MLS本身存在着不少缺点(不灵活、兼容性差、难于管理等),研究人员已经提出了多种MAC策略,如DTE、RBAC等。由于LINUX是一种自由*作系统,目前在其上实现强制访问控制的就有好几家,其中比较典型的包括SElinux、RSBAC、MAC等,采用的策略也各不相同。
NSA推出的SELinux安全体系结构称为 Flask,在这一结构中,安全性策略的逻辑和通用接口一起封装在与*作系统独立的组件中,这个单独的组件称为安全服务器。SELinux的安全服务器定义了一种混合的安全性策略,由类型实施 (TE)、基于角色的访问控制 (RBAC) 和多级安全(MLS) 组成。通过替换安全服务器,可以支持不同的安全策略。SELinux使用策略配置语言定义安全策略,然后通过checkpolicy 编译成二进制形式,存储在文件 /ss_policy中,在内核引导时读到内核空间。这意味着安全性策略在每次系统引导时都会有所不同。策略甚至可以通过使用 security_load_policy 接口在系统*作期间更改(只要将策略配置成允许这样的更改)。
RSBAC的全称是Rule Set Based Access Control(基于规则集的访问控制),它是根据Abrams和LaPadula提出的Generalized Framework for Access Control(GFAC)模型开发的,可以基于多个模块提供灵活的访问控制。所有与安全相关的系统调用都扩展了安全实施代码,这些代码调用中央决策部件,该部件随后调用所有激活的决策模块,形成一个综合的决定,然后由系统调用扩展来实施这个决定。RSBAC目前包含的模块主要有MAC、RBAC、ACL等。
6 防火墙
防火墙是在被保护网络和因特网之间,或者在其他网络之间限制访问的一种部件或一系列部件。 LINUX的防火墙有以下功能:
**访问控制,可以执行基于地址,时间和用户的访问控制策略,从而可以杜绝非授权的访问,同时保护内部用户的合法访问不受影响。
**审计,对通过它的网络访问进行记录,建立完备的日志、审计和追踪网络访问记录,并可以根据需要产生报表。
**抗攻击,防火墙系统直接暴露在非信任网络中,对外界来说,受到防火墙保护的内部网络如同一个点,所有的攻击都是直接针对它的,该点称为堡垒机,因此要求堡垒机具有高度的安全性和抵御各种攻击的能力。
**其他附属功能,如与审计相关的报警和入侵检测,与访问控制相关的身份验证、加密和认证,甚至VPN等
########################################################################
########################################################################
补上一篇作为对PAM机制的深入了解:
使用PAM进行统一身份的认证
发布日期:2000-8-8
来源:Bricks Team ; 作者:bricks
PAM是 PLUGGABLE AUTHENTICATION MODULES 的缩写.可插入的认证模块(并不是Linux指的模块)用于实现应用程序的认证机制,是程序员或管理员不需要重新编写或编译程序就可以改变认证机制.
在linux它已经被广泛的应用了, 例如: /etc/securitty /etc/onlogin/etc/ftpusers 实际上都是给它用的.你在登陆的时候的输入密码和你修改密码时也都用的是它./etc/pam.conf和/etc/pam/* 都是它的配置文件.
它最大的优点是它的弹性和可扩充性. 你可以随意修改认证机制, 按你的实际需要来定制系统.你了解后就会非常清楚了.
DESIGN GOALS(设计目标)
(a) 管理员可以选择认证方式, 从简单的密码到智能卡系统.
(b) 可以为不同的程序配置不同的认证机制.如 使telnet使用 S/Key认证.
而本机的 login 缺使用一般的 UNIX password.
(c) 支持程序的显示方式的需求. 如login 需要基于终端的显示, 而dtlogin
需要 X 显示, 而`ftp' 和 `telnet'需要透过网络来认证.
(d) 支持为一个程序配置同时使用多种认证机制.
(e) 可是用户在使用多种认证机制时,不必为同一个密码敲入多次.
(f) 可是用户在认真时需要输入多个密码.
(g) 当底层的认证机制改变时上层软件不需要修改.
(h) 结构为system authentication提供一个 _pluggable_ model.
(i) 必须能满足现有的服务需要.
4. OVERVIEW OF THE PAM FRAMEWORK (纵览PAM的框架)其核心实际上是一些库函数. 你写的应用程序要调用它们.PAM为你提供了一套入口(the front end). 而这套函数互调用 特定认证机制所定义的模块
(the back end).
简单的说是这样的: 你调用一个函数仅仅告诉它你要认正,这就足够了.至于用那一种机制来认证是由配置文件规定的. 你只需要看一看返回值就知道认证是否成功了. 对于开发应用程序的人来说只需要记住几个函数.
ftp telnet login (Applications)
| | |
| | |
+--------+--------+
|
+-----+-----+
| PAM API | <-- pam.conf file
+-----+-----+
|
+--------+--------+
UNIX Kerberos Smart Cards (Mechanisms)
Figure 1: 基本的 PAM 结构PAM的功能被分为四个部分: (1) authentication(认证), (2)account(账号管理), (3) session (对话管理), 和 (4) password (密码管理).这四个东东都是什么呢?
(a) Authentication management:
包括 `pam_authenticate()' 来认证用户, `pam_setcred()' 来设置刷新和销毁用户的 credentials.
(b) Account management:
包括 `pam_acct_mgmt()' 来检查用的账号是否还有效.可以被用来检查用户是否超时或账号是否过期.
(c) Session management:
包括 `pam_open_session()' 和 `pam_close_session()' 用于对话过程的管理. 例如: 可以用来纪录用户的连接时间. 一次telnet过程实际上也是一个session.
(d) Password management:`pam_chauthtok()' 用来修该密码.
程序通过调用
推荐阅读
-
本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ...
[详细]
蜡笔小新 2023-12-12 21:38:57
-
本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ...
[详细]
蜡笔小新 2023-12-13 13:23:48
-
-
本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ...
[详细]
蜡笔小新 2023-12-14 18:16:27
-
本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ...
[详细]
蜡笔小新 2023-12-14 14:01:06
-
本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ...
[详细]
蜡笔小新 2023-12-14 13:59:45
-
本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ...
[详细]
蜡笔小新 2023-12-14 12:43:39
-
本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ...
[详细]
蜡笔小新 2023-12-13 20:24:11
-
本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ...
[详细]
蜡笔小新 2023-12-13 10:00:57
-
本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ...
[详细]
蜡笔小新 2023-12-14 14:44:00
-
VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ...
[详细]
蜡笔小新 2023-12-14 12:55:15
-
本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ...
[详细]
蜡笔小新 2023-12-14 11:31:05
-
本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ...
[详细]
蜡笔小新 2023-12-14 10:06:19
-
本文介绍了Python版Protobuf的安装和使用方法,包括版本选择、编译配置、示例代码等内容。通过学习本教程,您将了解如何在Python中使用Protobuf进行数据序列化和反序列化操作,以及相关的注意事项和技巧。 ...
[详细]
蜡笔小新 2023-12-14 09:27:58
-
本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ...
[详细]
蜡笔小新 2023-12-13 17:45:15
-
转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎 ...
[详细]
蜡笔小新 2023-12-13 16:11:00
-
涵涵幸福2010_759
这个家伙很懒,什么也没留下!