《linux系统安全.ppt》

上传人:kms****20 文档编号:51753486 上传时间:2018-08-16 格式:PPT 页数:60 大小:1.61MB
返回 下载 相关 举报
《linux系统安全.ppt》_第1页
第1页 / 共60页
《linux系统安全.ppt》_第2页
第2页 / 共60页
《linux系统安全.ppt》_第3页
第3页 / 共60页
《linux系统安全.ppt》_第4页
第4页 / 共60页
《linux系统安全.ppt》_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《《linux系统安全.ppt》》由会员分享,可在线阅读,更多相关《《linux系统安全.ppt》(60页珍藏版)》请在金锄头文库上搜索。

1、网络与信息安全 系统安全:Linux系统安全潘爱民,北京大学计算机研究所http:/ 容nLinux系统介绍qLinux内核qLinux文件系统nLinux的网络结构nLinux攻防技术n一次针对Linux的入侵过程Linux操作系统n背景q最初由Linus Benedict Torvalds于1991年开发的q1994年3月发布第一个正式版本q内核升级模式n稳定的内核,第二个数字为偶数,例如2.2.14n开发的内核,第二个数字为奇数,例如2.1.14nLinux系统特点q兼容UNIX:API兼容,管理命令和各种工具q源码开放q支持各种硬件平台,支持多CPUqLinux平台上存在大量的应用软件

2、,以及应用开发工具Linux内核n多用户,多任务,分时,软实时处理n不是微内核系统,但具有某些微内核特征nIntel版本:i386的保护模式,特权级q内核态(0)和用户态(3)q中断和系统调用两种特权级的切换nPCB:进程控制块,常驻内存n进程是最基本的调度单元q进程是动态的,每一个进程都有一个进程控制块q没有专门的调度进程,内核中有一个schedule函数完成调度 任务q进程在调度过程中有多种状态进程调度:状态转换图TASK_RUNNINGHolding CPUTASK_UNINTERRUPTIBLETASK_INTERRUPTIBLETASK_ZOMBIETASK_STOPPEDdo_fo

3、rk()schedule()时间片到do_exit()申请资源未果申请资源未果跟踪系统调用所申请资源有效时收到SIG_KILL或 SIG_CONT后 所申请资源有效 或者收到信号时Linux的系统调用n编程接口,与POSIX兼容,C语言函数集合n实现形式与DOS的INT 21H相似qLinux使用int 80hn函数名“sys_xxx”q比如系统调用fork的相应函数sys_fork()n系统调用号和系统调用表n系统调用都转换为Int 80h软中断n所有的系统调用只有一个入口system_calln出口: ret_from_sys_callLinux内存管理n在i386机器上,每个进程有独立的

4、4G虚存空间n32位线性地址利用硬件的分页机制n内核的代码段和数据段被映射到3G以上的空间中n用户态下的代码实际可申请的虚存空间为0-3GBn每个进程用两套段描述符来访问内存,分别用来访问内核态和用户态 下的内存空间n在用户态下,代码不可能访问3G以上的地址空间,如果要访问内核 空间,必须通过系统调用或者中断nLinux对虚存的管理使用vma(virtual memory area)机制n在进程数据结构中,指定了用户空间的上界,在系统调用时,用户指 定的指针不能超过此上界,但是内核代码可以重新设定此上界n页交换机制:缺页中断、页面换入Linux的段选择符情况Linux的模块机制n可动态装载的内

5、核模块(lkm)q一组命令:insmod/rmmod/lsmod/modprobe/n关于模块机制q可以让核心保持比较小的尺寸q动态装载,避免重新启动q模块机制常常用于设备驱动q内核模块一旦加载之后,与原有的核心代码同等q可动态装载的内核模块的一些缺点n可能会导致一定的性能损失,和内存开销n代码不规范的模块可能导致核心崩溃q如果调用系统核心功能时,参数错误,同样会有问题Linux的模块机制原理ninsmod装载模块qLinux内核中有一个模块链表q首先通过一个特权级系统调用来找到核心的输出符号q然后将模块读入虚拟内存,并利用来自核心的输出符号,修 改其未解析的核心例程和资源的引用地址q再次使用

6、特权级系统调用来申请足够的空间来容纳新的核心 模块,并拷贝到此内存空间中q每个模块必须包括初始化例程和注销例程,insmod将调用初 始化代码,并执行一个特权级系统调用将模块的初始化与注 销例程地址传递给核心nrmmod卸载模块q当一个模块不再被引用的时候,它可以被卸载q核心调用注销例程,释放相应的核心资源q从模块链表中移除,它所占用的核心内存被回收内核中的ROOTKITn通过LKM机制,可以在系统内核中插入木马模块n一个典型的以Linux 2.2.x为基础的rootkit knarkq使用insmod knark.o就可以加载到内核中q一旦加载了knark后门之后n可以改变netstat的输

7、出结果n可以改变运行进程的UID和GIDn可以不用SUID就能够获得root访问权限nn还有其他的ROOTKITS,比如adoren内核ROOTKITS的对策q根据每个rootkit的特征进行检测,然后设法删除q预防为主,安装内核检测系统,比如LIDSLinux文件系统nLinux支持多种文件系统,包括ext、ext2、hpfs、vfat 、ntfs、q通过虚拟文件系统VFS ,Linux操作系统可以支持不同类型 的文件系统n文件系统类型管理q文件系统类型的注册途径:n在编译内核时确定n在文件系统作为模块装入时登记nextnext=0nextfile_systemfile_system_typ

8、e虚拟文件系统(VFS)n是物理文件系统与服务之间的一个接口层,只存在于内存中n定义了关于各种特殊文件系统的公共接口抽象性qSuper_block、inode、文件操作函数入口q把所有的文件系统映射到同一个层次结构中,通过super_block与 inode中的关联关系来实现,如下图所示n处理面向文件系统的通用操作n把针对文件系统的操作映射到相关的物理文件系统n许多复杂的cache机制,提高了文件系统的访问效率qVFS inode cacheqVFS directory cacheqBuffer cacheqrooti_mounti_sbs_coverd s_mountedext2文件系统n这

9、是Linux系统专用的文件系统n文件也是分块存储,以块为整单位数据块三次间接块二次间接块一次间接块12个直接块数据块数据块数据块数据块数据块.组0组1组Ns_blockfs描述符 块位图 inode位图 inode表数据块n数据结构qext2_super_blockqext2_inode: 内含一个 32位的文件访问控制 表和一个32位的目录 访问控制表Linux文件系统的安全性nLinux文件系统安全模型与两个属性相关q文件的所有者(ownership)n文件所有者的idn文件所有者所在用户组的idq访问权限(access rights)n10个标志q第1个标志:d(目录), b(块系统设备

10、), c(字符设备), .(普通文件)q第2-4个标志:所有者的读、写、执行权限q第5-7个标志:所有者所在组的读、写、执行权限q第8-10个标志:其他用户的读、写、执行权限n用chmod修改权限:字符方式和数字方式Linux文件的安全性nSUID程序q正常情况下,一个程序在运行的时候,它的进程将属于当前 用户q但是,对于SUID程序,它的进程不属于启动用户,而是属于 该程序的所有者用户q通常,SUID/SGID程序中的bug往往是入侵的基础nmount和fstab命令q用mount装载文件系统的时候,可以使用一些选项控制文件 系统的安全性,对于装载FAT系统比较有意义。qumash=Nqui

11、d=Nqgid=NLinux文件系统安全性n权限管理的不灵活q只能对所有者、所有者所在组和其他用户分配权限 ,无法做到进一步的细致化nPOSIX ACLs for Linux软件包q内核补丁,可以做到用ACL来管理权限n需要重新编译内核,下载补丁:http:/acl.bestbits.atq两个命令:setfacl、getfacln真正删除文件q工具wipeLinux用户管理n用户文件/etc/passwdqShadow password: /etc/shadown此文件只对root可读n让用户拥有单独的组, 而不是加入到共享的 users组中qgroupaddn创建用户:useraddn改口

12、令:passwdn管理口令的有效期qchageLinux中crypt口令加密方案ncrypt()是一个口令加密函数,它基于DES算法。我们可以认为这是 一个单向加密操作n函数原型: char *crypt(const char *key, const char *salt); *salt是两个字符,每个字符可从a-zA-Z0-9./中选出来n算法qUNIX标准算法使用DES加密算法,用key对一个常量进行加密,获 得一个13字节的密文编码输出,其中包括salt的两个字符from Red Hat Linux 6.2nSalt的作用q同样的口令产生不同的密文q增加了穷举空间n建议使用更为安全的MD

13、5算法Linux中Kerberos认证协议的支持n建立KDCq下载和安装Kerberos 5q配置Kerberosq启动服务n管理Kerberosqkadmin,管理Kerberos数据库n使用Kerberosqkinit,获得一个ticketqklist,列出所有的ticketsqkpasswd, 修改口令qkdestroy, 删除一个ticketq使用支持Kerberos的网络应用,例如ftp, telnet, 等PAM(Pluggable Authentication Modules)n一种可插入的认证机制n针对一个服务,指定一些认证相关的动作,放到 /etc/pam.conf文件中,或

14、者放到/etc/pam.d/下与服务 同名的配置文件中q每一行包含一个模块类型、一个控制级别、一个模块: service module-type control-flag module argsq例如 passwd password required pam_cracklib.so type=user retry=3 passwd password required pam_pwdb.so use_authtokPAM结构图logintelnetftp用户认证管理(auth) 帐户管理(account) 会话管理(session) 口令管理(password)PAM 配置文件管理员PAM AP

15、IUNIX认证Kerberos认证S/Key认证PAM SPIPAM核心库系统服务PAM服务模块Linux内核安全性nLinux内核机制存在的一些潜在缺陷q超级用户的特权可能会被滥用q系统文档不安全q系统内核可以比较容易地插入模块q内核中,进程不受保护Linux对网络的支持nLinux从UNIX继承了在网络方面的优势nLinux自身的发展也是与Internet息息相关的n介绍内容qLinux网络层次nLinux协议栈qLinux网络配置q内核防火墙Linux中网络的层次结构BSD SocketsINET SocketsTCPUDPIPPPPSLIPEthernetARPUserKernelNe

16、twork ApplicationsSocket InterfaceProtocol LayersNetwork DevicesAppletalkIPXBSD Socketn一个通用的接口qA part of VFS inodeqA socket can be operated just the same as a file by system call read(), write(), lseek()n一个套接字描述一个通讯连接的一端,两个通讯程序中各自有 一个套接字来描述它们自己那一端。n每一类型的套接字有它自己的通信寻址方法。Linux支持下列套 接字地址族或域qUNIX Unix 域套接字 qINET Internet地址族支持通过TCP/IP协议的通信qAX25 Amateur radio X25 qIPX N

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号