[其它课程]第7章 Linux基础编程&amp网络安全.ppt
《[其它课程]第7章 Linux基础编程&amp网络安全.ppt》由会员分享,可在线阅读,更多相关《[其它课程]第7章 Linux基础编程&amp网络安全.ppt(73页珍藏版)》请在三一文库上搜索。
1、第7章 Linux程序设计基础 7.1 概述 7.1.1 Linux编程 Linux软件开发一直在Internet环境下讲行。这个环境是全球 性的,编程人员来自世界各地。只要能够访问Web站点,就可 以启动一个以Linux为基础的软件项目。Linux开发工作经常是 在Linux用户决定共同完成一个项目时开始的。当开发工作完成 后,该软件就被放到Internet站点上,任何用户都可以访问和 下载它。由于这个活跃的开发环境,新的以Linux为基础的软件 功能日益强大,而且呈现爆炸式的增长态势。 大多数Linux软件是经过自由软件基金会(Free Software Foundation)提供的GNU
2、(GNU 即 GNUs not UNIX)公开 认证授权的,因而通常被称作GNU软件。GNU软件免费提供给 用户使用,并被证明是非常可靠和高效的。许多流行的Linux实 用程序如C编译器、shell和编辑器都是GNU软件应用程序。 Linux程序需要首先转化为低级机器语言即所谓的二进制代 码以后,才能被操作系统执行。例如编程时,先用普通的编 程语言生成一系列指令,这些指令可被翻译为适当的可执行 应用程序的二进制代码。这个翻译过程可由解释器一步步来 完成,或者也可以立即由编译器明确地完成。shell编程语言 如BASH、TCSH、GAWK、Perl、Tcl和Tk都利用自己的解 释器。用这些语言编
3、制的程序尽管是应用程序文件,但可以 直接运行。编译器则不同,它将生成一个独立的二进制代码 文件然后才可以运行。 1GNU风格 (1)函数返回类型说明和函数名分两行放置,函数起始字符和函 数开头左花括号放到最左边。 (2)尽量不要让两个不同优先级的操作符出现在相同的对齐方式 中,应该附加额外的括号使得代码缩进可以表示出嵌套。 (3)按照如下方式排版do-while语句: (4)每个程序都应该以一段简短的说明其功能的注释开头。 (5)请为每个函数书写注释,说明函数是做什么的,需要哪些入 口参数,参数可能值的含义和用途。如果用了非常见的、非标准 的东西,或者可能导致函数不能工作的任何可能的值,应该进
4、行 特殊说明。如果存在重要的返回值,也需要说明。 (6)不要声明多个变量时跨行,每一行都以一个新的声明开头。 (7)当一个if中嵌套了另一个if-else时,应用花括号把if-else括 起来。 (8)要在同一个声明中同时说明结构标识和变量或者结构标识和 类型定义(typedef)。先定义变量,再使用。 7.1.2 Linux编程风格 (9)尽量避免在if的条件中进行赋值。 (10)请在名字中使用下划线以分割单词,尽量使用小写;把 大写字母留给宏和枚举常量,以及根据统一惯例使用的前缀。 例如,应该使用类似ignore_space_change_flag的名字;不要 使用类似iCantReadT
5、his的名字。 (11)用于表明一个命令行选项是否给出的变量应该在选项含义 的说明之后,而不是选项字符之后被命名。 2Linux 内核编程风格 (1)Linux内核缩进风格是8个字符。 (2)Linux内核风格采用K return 0; 接下来就要使用 Autoconf 及 Automake 来产生Makefile文件,步骤如下: (1)autoscan 产生一个configure.in的模板,执行 autoscan 后会产生一个 configure.scan 的文件,可以用它做为configure.in文件的模板: (2)编辑configure.scan文件,如下所示,并且把文件名改成 co
6、nfigure.in (3)执行aclocal和autoconf ,分别会产生 aclocal.m4 及 configure 两个文件: (4)编辑Makefile.am文件,内容如下: (5)执行automake -add-missing ,Automake 会根据 Makefile.am产生 一些文件,包含最重要的Makefile.in: (6)最后执行 ./configure : 现在你的目录下已经产生了一个Makefile文件,执行make命令就可以开始 编译hello.c 成执行文件,最后执行./hello: # make gcc -DPACKAGE=“hello“ -DVERSIO
7、N=“1.0“ -I. -I. -g -O2 -c hello.c gcc -g -O2 -o hello hello.o # ./hello Hello! GNU! 第8章 网络安全 8.1 计算机网络安全基础知识 8.1.1 网络安全的含义 网络安全从其本质上来讲就是网络上的信息安全,其所涉及的领域相 当广泛。这是因为在目前的公用通信网络中存在着各种各样的安全漏 洞和威胁。从广义来说,凡是涉及到网络上信息的保密性、完整性、 可用性、真实性和可控性的相关技术和理论,都是网络安全所要研究 的领域。下面给出网络安全的一个通用定义: 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护, 不受
8、偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠 正常地运行,网络服务不中断。 因此,网络安全在不同的环境和应用中会得到不同的解释。 (1)运行系统安全,即保证信息处理和传输系统的安全。包括计算 机系统机房环境的保护,法律、政策的保护,计算机结构设计上的安 全性考虑,硬件系统的可靠安全运行,计算机操作系统和应用软件的 安全,数据库系统的安全,电磁信息泄露的防护等。它侧重于保证系 统正常的运行,避免因为系统的崩溃和损坏而对系统存储、处理和传 输的信息造成破坏和损失,避免由与电磁泄漏,产生信息泄露,干扰 他人(或受他人干扰),本质上是保护系统的合法操作和正常运行。 (2)网络上系统信息的安
9、全。包括用户口令鉴别、用户存取权限控 制、数据存取权限、方式控制、安全审计、安全问题跟踪、计算机病 毒防治、数据加密等。 (3)网络上信息传播的安全,即信息传播后的安全。包括信息过滤 等。它侧重于防止和控制非法、有害的信息进行传播后的后果。避免 公用通信网络上大量自由传输的信息失控。它本质上是维护道德、法 律或国家利益。 (4)网络上信息内容的安全,即讨论的狭义的“信息安全”。它侧 重于保护信息的保密性、真实性和完整性。避免攻击者利用系统的安 全漏洞进行窃听、冒充和诈骗等有损于合法用户的行为。它本质上是 保护用户的利益和隐私。 计算机网络安全的含义是通过各种计算机、网络、密码技术和信息安 全技
10、术,保护在公用通信网络中传输、交换和存储信息的机密性、完 整性和真实性,并对信息的传播及内容具有控制能力。网络安全的结 构层次包括:物理安全、安全控制和安全服务。 可见,计算机网络安全主要是从保护网络用户的角度来进行的,是针 对攻击和破译等人为因素所造成的对网络安全的威胁。而不涉及网络 可靠性、信息的可控性、可用性和互操作性等领域。 8.1.2 网络安全的特征 网络安全应具有以下四个方面的特征: (1)保密性是指信息不泄露给非授权的用户、实体或过程,或供其利用 的特性。 (2)完整性是指数据未经授权不能进行改变的特性,即信息在存储或传 输过程中保持不被修改、不被破坏和丢失的特性。 (3)可用性
11、是指可被授权实体访问并按需求使用的特性,即当需要时应 能存取所需的信息。网络环境下拒绝服务、破坏网络和有关系统的正常 运行等都属于对可用性的攻击。 (4)可控性是指对信息的传播及内容具有控制能力。 8.1.3 对网络安全的威胁 与网络连通性相关的有三种不同类型的安全威胁: (1)非授权访问(Unauthorized Access)指一个非授权用户的入侵。 (2)信息泄露(Disclosure of Information)指造成将有价值的和高度机 密的信息暴露给无权访问该信息的人的所有问题。 (3)拒绝服务(Denial of Service)指使系统难以或不能继续执行任务的 所有问题。 8.
12、1.4 网络安全的关键技术 从广义上讲,计算机网络安全技术主要有: (1)主机安全技术: (2)身份认证技术: (3)访问控制技术: (4)密码技术: (5)防火墙技术: (6)安全审计技术: (7)安全管理技术: 8.1.5 Linux系统的网络安全策略 1简介 随着InternetIntranet网络的日益普及,采用Linux网络操作系统 作为服务器的用户也越来越多,这一方面是因为Linux是开放源代码 的免费正版软件,另一方面也是因为较之微软的Windows NT网络操作 系统而言,Linux系统具有更好的稳定性、效率性和安全性。在 InternetIntranet的大量应用中,网络本身
13、的安全面临着重大的挑 战,随之而来的信息安全问题也日益突出。以美国为例,据美国联邦 调查局(FBI)公布的统计数据,美国每年因网络安全问题所造成的 经济损失高达75亿美元,而全球平均每20秒钟就发生一起Internet计 算机黑客侵入事件。一般认为,计算机网络系统的安全威胁主要来自 黑客攻击和计算机病毒2个方面。那么黑客攻击为什么能够经常得逞 呢?主要原因是很多人,尤其是很多网络管理员没有起码的网络安全 防范意识,没有针对所用的网络操作系统,采取有效的安全策略和安 全机制,给黑客以可乘之机。 由于网络操作系统是用于管理计算机网络中的各种软硬件资源,实 现资源共享,并为整个网络中的用户提供服务,
14、保证网络系统正常运 行的一种系统软件。如何确保网络操作系统的安全,是网络安全的根 本所在。只有网络操作系统安全可靠,才能保证整个网络的安全。因 此,详细分析Linux系统的安全机制,找出可能存在的安全隐患,给出 相应的安全策略和保护措施是十分必要的。 2Linux网络操作系统的基本安全机制 Linux网络操作系统提供了用户帐号、文件系统权限和系统日志文件 等基本安全机制,如果这些安全机制配置不当,就会使系统存在一定 的安全隐患。因此,网络系统管理员必须小心地设置这些安全机制。 (1)Linux系统的用户帐号 (2)Linux的文件系统权限 (3)合理利用Linux的日志文件 3Linux网络系
15、统可能受到的攻击和安全防范策略 Linux操作系统是一种公开源码的操作系统,因此比较容易受到来自 底层的攻击,系统管理员一定要有安全防范意识,对系统采取一定的 安全措施,这样才能提高Linux系统的安全性。对于系统管理员来讲 特别是要搞清楚对Linux网络系统可能的攻击方法,并采取必要的措 施保护系统。 (1)Linux网络系统可能受到的攻击类型 “拒绝服务”攻击 、“口令破解”攻击 、“欺骗用户”攻击、 “扫描程序和网络监听”攻击 。 (2)Linux网络安全防范策略 仔细设置每个内部用户的权限 、确保用户口令文件 /etc/shadow的安全 、加强对系统运行的监控和记录 、合理划分子网
16、和设置防火墙 、定期对Linux网络进行安全检查 、制定适当的数据备 份计划确保系统万无一失 。 4加强对Linux网络服务器的管理,合理使用各种工具 (1)利用记录工具,记录对Linux系统的访问 (2)慎用Telnet服务 (3)合理设置NFS服务和NIS服务 (4)小心配置FTP服务 (5)合理设置POP-3和Sendmail等电子邮件服务 (6)加强对WWW服务器的管理,提供安全的WWW服务 (7)最好禁止提供finger 服务 8.1.6 Linux网络安全工具 1sudo sudo是系统管理员用来允许某些用户以root身份运行部分/全部系统命 令的程序。一个明显的用途是增强了站点的
17、安全性,如果用户需要每 天以root身份做一些日常工作,经常执行固定的几个只有root身份才 能执行的命令,那么用sudo是非常适合的。 下面以Redhat 9.0为例,介绍sudo的安装及设置过程: 一般情况下,Redhat 9.0中都已经缺省安装了当前较新的版本sudo- 1.6.6-3。如果你的系统中没有安装,你能从下面的地址中下载for Redhat Linux的rpm package。 ftp:/ftp.rediris.es/sites/ at/RPMS/sudo-1.6.6-3.i386.rpm 执行#rpm -ivh sudo* 进行安装,然后用/usr/sbin/visudo编
18、辑 /etc/sudoers文件。 sudoers这个文件是由一个选择性的主机别名(host alias)节区, 一个选择性的指令别名(command alias)节区以及使用者说明 (user specification)节区所组成的。所有的指令别名或主机别名必 须需以自己的关键字作为开始(Host_Alias/Cmnd_Alias)。 使用者说明节区格式: 使用者 接取群组 : 接取群组 . 接取群组 := 主机象征 = op指令象征 ,op指令象征 . 主机象征 := 一个小写的主机名称或主机别名。 指令象征 := 一个指令或指令别名。 op := 逻辑的 ! 否定运算元。 主机别名节区
19、格式: Host_Alias 主机别名 = 主机列表 Host_Alias := 这是一个关键字。 主机别名 := 一个大写的别名。 主机列表 := 以逗号间隔的一些主机名称。 指令别名节区格式: Cmnd_Alias 指令别名 = 指令列表 Cmnd_Alias := 这是一个关键字。 指令别名 := 一个大写的别名。 指令列表 := 以逗号间隔的一些指令。 所有在“#”符号后面的文字都会被当作是注解。 太长的行可以 使用倒斜线“”字符来分成新的行。保留的别名“ALL”在 “Host,Cmnd_Alias”里都可以使用。不要用“ALL”来定义一个 别名,这个别名无效。注意到“ALL”暗示全部
20、的主机和指令。 可以使用这个语法从整个范围中减掉一些项目: user host=ALL,!ALIAS1,!/etc/halt. 2Sniffit sniffit 是一个有名的网络端口探测器,可以配置它在后台运行,以检 测哪些TCP/IP端口上用户的输入/输出信息。最常用的功能是可以用 它来检测系统的23(telnet)和110(pop3)端口上的数据传送以轻松得 到系统的登录口令和mail帐号密码,当然,sniffit基本上是被破坏者 所利用的工具。 sniffit 的主页在 http:/reptile.rug.ac.be/coder/sniffit/sniffit.html 用户能从那里下载
21、最新的版本,用户在根目录运行: #tar xvfz sniff* 解开所有文件到对应目录后,先仔细阅读其中的README.FIRST文件, 可能有些版本需要预先进行编译才能使用。用户能运行sniffit -i以 交互式图形界面查看所有在指定网络接口上的输入/输出信息。例如 :为了得到所有用户通过某接口a.b.c.d接收邮件时所输入的pop3帐 号和密码,用户能运行: #sniffit -p 110 -t a.b.c.d & #sniffit -p 110 -s a.b.c.d & 记录文件放在目录/usr/doc/sniffit*下面:log file根据访问者的 IP地址,随机用高端端口号和
22、用来检测的网络接口IP地址和检测端口 来命名。它利用了TCP/IP协议天生的虚弱性,因为普通的telnet和 pop3所传的用户名和密码信息都是明文,不带任何方式的加密。 因 此对telnet/ftp,可以用ssh/scp来替代。sniffit检测到的ssh/scp信 息基本上是一堆乱码,因此不需要担心ssh所传送的用户名和口令信 息会被第三方所窃取。 3、nmap nmap 是用来对一个比较大的网络进行端口扫描的工具,它能检测 该服务器有哪些TCP/IP端口目前正处于打开状态。可以运行它来确保 已经禁止掉不该打开的不安全的端口号。nmap的主页在 http:/www.insecure.org
23、/nmap/index.html 8.2 防火墙技术 8.2.1 什么是防火墙 防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公 共网)或网络安全域之间的一系列部件的组合,是不同网络或网络 安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许 、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力 。防火墙是提供信息安全服务,实现网络和信息安全的基础设施。 在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器 ,有效地监控了内部网和Internet之间的任何活动,保证了内部网 络的安全,如图8-1。 图8-1 防火墙逻辑位置示意图 使用防火墙地作用如下: (1)防火墙是
24、网络安全的屏障 (2)防火墙可以强化网络安全策略 (3)对网络存取和访问进 行监控审计 (4)防止内部信息的外泄 8.2.2 防火墙的三种类型 1数据包过滤型防火墙 数据包过滤(Packet Filtering)技术是在网络层对数据包进行选择,选择 的依据是系统内设置的过滤逻辑,被称为访问控制表(Access Control Table)。通过检查数据流中每个数据包的源地址、目的地址、所用的端 口号、协议状态等因素,或它们的组合来确定是否允许该数据包通过 。数据包过滤防火墙逻辑简单,价格便宜,易于安装和使用,网络性 能和透明性好,通常安装在路由器上。路由器是内部网络与Internet连 接必不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 其它课程 其它课程第7章 Linux基础编程&amp网络安全 其它 课程 Linux 基础 编程 ampamp 网络安全
链接地址:https://www.31doc.com/p-2003151.html