Linux安全性分析

2024-06-11

Linux安全性分析(精选八篇)

Linux安全性分析 篇1

Linux是一种32位或64位操作系统, 它是自由的, 类似UNIX, 源代码开放, 对Internet进行了优化, 能运行于各类硬件平台, 包括Intel (X86) 和RISC处理器。

1. Linux最大的特点是它的自由性

(1) 可以免费得到Linux。Linux的源代码开放。

(2) Linux提供了无限广阔的技术发挥空间, 可以修改它甚至按照自己的需要来塑造整个操作系统。

(3) Linux提供了许多免费编程语言、编译器及相关的开发工具。如PHP嵌入式编程语言、Python面向对象的脚本语言、Qt交叉平台工具箱、SQL结构化查询语言、TCL/Tk脚本语言/GUI工具箱以及实用信息抽取与报告语言Perl……

2. Linux非常类似于Unix

3. Linux存在的问题

由于Linux的开放性和普及性, 它的升级非常快, 但升级会改变系统的基本工作特征。

(1) Linux的内核升级丰富了功能, 有时却牺牲了稳定性。

(2) Linux的内核升级影响了兼容性, 先前编译的软件在新系统下可能无法工作。

(3) Linux的桌面不存在标准, 两个GUI桌面环境KDE和GNOME相互竞争。

(4) Linux的升级导致它具有多重管理工具, 对一个相同的任务可以有多种方式来完成, 会带来麻烦。

4. Linux是一个卓越的独立系统, 可以用于多个领域

(二) Linux的安全性分析及解决方案

1. 用户帐号

(1) root

Linux是一个多用户操作系统, 任何时候都可以有多个用户登录到Linux机器上, 而且它们中的每一个都可以同时多次登录。

总是以root登录是非常危险的, 首先, 在执行shell命令时很容易因为打字错误而引起灾难性后果。

此外, 如果以root运行某个存在漏洞的软件, 则这一漏洞将影响到这个系统。

(2) 解决方案

●为执行非root任务创建非root用户

●为使用系统的每个人创建单独的用户。

●管理用户权限时给文件个目录设置适当的许可。使用umask来设置默认许可。

2. Linux用户安全

(1) 口令攻击

口令攻击是个一般性术语, 它描述多种行为, 包括任何破解、破译或删除口令的行为, 或者任何绕过口令安全机制的其他方法。

解决方案:

1) 对于非隐藏系统, 先暂时把它关闭, 安装shadow套件, 并相应迁移用户和组。把口令策略设为每60~90天过期, 提前5天警告以及1周锁定。在升级之前, 检查现有的软件以确保它们跟shadow套件兼容。

2) 安装主动口令检查软件, 强制实施最大量规则并使用10万词汇量以上的字典。

3) 把机器再度对一般用户开放。并让他们创建新口令。

4) 每月运行一次Crack, 并使用能搜集到的内容最广的词汇表 (可以通过at命令使这个过程自动化) 。

5) 密切关注开发商和安全列表动态, 以了解可能会暴露口令的新的攻击手段。

6) 确保每个用户为他能访问的每个主机都创建一个新的、唯一的口令。

7) 至少要为用户进行最基本的口令安全培训。

(2) 数据攻击

如果信息安全对你或者组织来说很重要, 那将应该考虑实施一种数据加密方式。网络遭攻击的可能性比想象的大得多, 如果前沿的系统安全防线被攻破, 数据加密将是仅存的防范方式, 它可以保护机器上的信息不被入侵者窃取。

简单的加密可由对称密码或私钥密码完成, 而公钥算法则为安全通信提供了更加有利的手段。

3. Linux网络安全

(1) 恶意代码

恶意代码是:

1) 非法代码 (包含在一个合法程序中) , 它所执行的功能对用户来说是未知的 (而且很可能也是不受欢迎的)

2) 被内置的非法代码改变的合法程序, 这个代码执行的功能未知 (而且很可能也是不受欢迎的)

3) 任何程序, 外表象是在执行人们所要求的和必要的功能, 但由于其中含有非法代码, 它所执行的功能对用户来说是未知的 (而且很可能也是不受欢迎的) 。

4) 任何被设计为隐藏自身并破坏数据的非法代码。

恶意代码的种类多种多样, 最普通的类型是特洛伊和病毒。

解决方案:

恶意代码是个严重的安全威胁, 则而事实上这完全可以避免。如果Linux主机运行了象Tripwire这样的工具, 那么检测攻击将变得轻而易举。然而, 只有在Linux安装案秤后立即安装Tripwire, 才会达到最大的功效。

1) 检测恶意代码

产生一个全部文件的检验列表以便日后检查它们在如下方面的变化:最后一次修改日期、创建日期、大小

2) Tripwire工具

Tripwire是一个灵活易用的文件完整性检测工具。可以通过网络连接工作, 因此可以在安装过程中为整个网络生成数字指纹数据库。

Tripwire由C语言编写而成, 开发过程中充分考虑了移植性, 不加任何修改就可以把它编译为大多数平台的版本。

Tripwire带有宏处理语言, 因此可以完成一定的任务。

(2) 嗅探器和电子窃听

真正的黑客攻击通常不会自露行踪或炫耀成就, 他们只是安装好秘密的监视工具, 神不知鬼不觉地搜集网络信息。

这些工具就是嗅探器, 它们被用来搜集各类网络上传播的信息。许多嗅探器只对从通用协议中抽区出用户名和口令感兴趣, 还有些嗅探器则紧盯着信用卡号和失效日期。嗅探器简直无所不能, 它可以捕捉给定线路的所有网络通信, 也可以应用高级模式匹配技术来记录特定类型的信息。解决方案:

嗅探器带来的是严重的安全威胁, 这主要是由于它们不容易被检测出来。防范嗅探的最好手段是安全的拓扑结构和高强度的加密技术。

1) ifconfig

Ifconfig可以快速检查本地主机是否有接口处于混乱模式, 该用具能够配置网络接口的参数。

为运行ifconfig, 可在提示符下键入ifconfig命令

2) 交换机

交换机对网络通信的内容要进行查验。输入到交换机的数据包将只被定向到目标计算机所连的端口上, 交换机通过存储一份连接到各个端口的MAC地址表来完成这项操作。当交换机接收到数据包时, 它把包的目的地址同存储的地址表相对照, 并把数据包重定向到相应的端口上。连接在其他的计算机看不到这些通信——因而嗅探器将不起作用。

(3) 扫描器

扫描器检查不同的安全漏洞, 分为网络扫描器和系统扫描器。

各种扫描工具:

1) SAINT

SAINT支持许多最新的漏洞:基于CGI的Web攻击、拒绝服务攻击、POP服务器攻击、SSH漏洞、远程缓冲漏洞。

2) Nessus

Nessus通过插件来支持各种攻击。这些插件是小的模块, 它们定义了各种攻击的规则和报告过程。

3) nmap——网络映射器

Nmap拥有众多的特色功能, 包括序列号预测、远程主机操作系统识别、隐秘扫描等等。

4) CGI扫描器

CGI扫描器用于扫描远程Web主机中可能藏匿有安全漏洞的熟知的CGI相关文件。

防范扫描器攻击:

扫描器如果掌握在正当人手中, 则益处多多。然而。任何人都可以获得它, 包括黑客。而且, 即使扫描器不会让攻击者极力访问你的服务器, 扫描器的存在本身就意味着麻烦。虽然扫描器是难得的主机评估工具, 但它们也隐藏着两个危险:一个是攻击者可以利用它们来迅速地确定安全系统的漏洞, 另一个就是你可能会过度依赖于扫描器。

扫描器搜集服务器上的重要信息, 但为这个原因, 就应该熟悉扫描器的检测方法。这样, 即使不能阻止攻击者扫描, 也可以至少知道机器正在被扫描。

1) courtney (SATAN和SAINT检测器)

Courtney是个Perl脚本, 在tcpdump的配合下, 可以检测SATAN和SAINT扫描。它以标准的syslog ALERTgeshi记录警告信息, 而且在/var/log/messages中可以看到相应的通知。

2) IcmpInfo (icmp扫描/炸弹探测器)

IcmpInfo检测ICMP活动, 如炸弹、扫描等。

3) klaxon

Klaxon是个可以通过服务来检测端口扫描的高级工具。它是通过修改rexec代码开发的, 而且inetd.conf的TCP和UDP服务也被替换。

4) Psionic PortSentry

Psionic PortSentry的功能包括:

a.广泛的隐秘检测, 支持FIN、半开启、NULL、“oddball packet“、SYN和X-MAS类型的攻击。

b.即使只运行一个PortSentry进程, 也能同时实施多哥套接字的TCP和UDP监测。

c.状态维护 (记录先前连接过的主机) , 此功能可以在TCP Wrappera的配置中自动地分配给攻击主机一”deny”项。

(4) 电子欺骗

传统的电子欺骗是攻击者通过伪造从可信主机发出的数据包, 来使得一台机器获得另一台机器的认证。同时它还包括了任何颠覆基于地址或主机名的信任或认证方式的手段。

电子欺骗包括IP欺骗、ARP欺骗和DNS欺骗。

1) 容易遭受IP欺骗的服务

IP欺骗只影响运行某些服务的某些计算机。已知的易受欺骗的配置和服务包括:

RPC远程过程调用服务、任何使用IP地址认证的服务、X Window系统、r服务

阻止IP欺骗攻击:

防止IP欺骗的最有效的措施就是避免使用源地址做认证。

a.配置网络 (在路由器上) , 使其拒绝接收那些声称是发自本地地址的数据包。

b.在内部网络中使用NAT。通过在内部网络中使用私有IP地址, 将使得连接欺骗变得更加困难。

c.如果网络与外部连接部分使用Linux而网络内部使用Windows或Novell, 考虑在防火墙阻断TCP。即允许外部连接Email服务器, 但内部工作站使用基于IPX的连接方式来收取Email。

2) ARP欺骗

ARP欺骗是IP欺骗的变形, 它利用的也是相同的弱点。在ARP欺骗中, 认证方式也是基于地址的, 不同之处在于ARP依赖于硬件地址。

受ARP欺骗中, 攻击者的目的是维持自己的硬件地址不变, 而假冒可信主机的IP地址。为此, 攻击者把伪造的映射信息同时发给目标主机和缓冲区。从此以后, 目标主机的数据包就被发送到了攻击者的硬件地址了, 目标主机现在“相信”攻击者的机器就是可信主机。

阻止ARP欺骗攻击:

有多种方法可以挫败ARP欺骗, 但最有效的方式是把地址映射表固定下来。

3) DNS欺骗

在DNS欺骗中, 攻击者攻破DNS服务器, 显示修改主机名-IP地址映射表。他们把这些修改写入DNS服务器的转换表数据库中。因此, 当客户发出查询请求时, 将得到一个伪造的地址, 这个地址将是完全在攻击者掌握之下的机器的IP地址。

检测和防范DNS欺骗:

DNS欺骗的检测相当容易。如果怀疑一台DNS出了问题, 那么可以查询网络中其他权威的DNS服务器。除非受影响的机器已经被攻破异端时间, 否则可以很容易发现它被欺骗的证据, 其他权威服务器的报告将同被攻破的DNS服务器的报告不同。

如果被欺骗的服务器已经被攻破一段时间, 那么将不能只依靠查询来解决问题, 伪造的地址——主机名映射表或许已经被传输到网络中其他的DNS服务器。如果发现域名解析异常, 那么可以使用一个称为DOC (域名冒犯控制) 的脚本工具。

DOC是一个诊断行为异常的域的程序, 它发送请求到相应的域名服务器并对这些请求的输出作出一系列分析。

总之, Linux提供了自由的技术、无尽的发展空间、完善的网络以及精确的计算功能。然而, 作为一个Linux用户, 也需要了解Linux操作系统的安全技术, 了解相关的攻击和欺骗, 并做好安全防范, 并了解一些防范工具的使用。

参考文献

[1] (美) Aron Hsiao.Linux系统安全基础[M].史兴华, 译.北京:人民邮电出版社.

[2] (美) Brian Hatch, James Loo.LINUX黑客大暴光Linux安全机密与解决方案 (第2版) [M].王一川, 译.北京:清华大学出版社.

Linux系统安全之安全配置 篇2

实践证明,无论是那种系统,默认安装都是不安全的,实际不管你用windows也好,Linux,bsd或其他什么系统,默认安装的都有很多漏洞,那怎么才能成为安全的系统呢,这正是我们系统管理人员需要做的事情。配置配置再配置。

任何系统,只要细心的配置,堵住已知的漏洞,可以说这个系统是安全的,其实并非很多朋友说的那样,安装了系统,配置了防火墙,安装了杀毒软件,那么就安全了,其实如果对系统不作任何安全设置,那就等于向 敞开一扇纸做的大门,数十分钟就能完全控制!

这并非骇人听闻。

作为Linux系统,同样存在很多漏洞,黑可能利用这些漏洞控制你的整个系统,要防止这些问题,我们需要做以下步骤:

1、 升级系统中所有软件包的最新版本;

2、 设置较为强壮的防火墙;

3、 定期检查关键记录文件,配置杀毒软件

4、 多关心一下发布安全信息警告的网站,掌握一些最新的病毒和 程序的特点,这些都利于系统的正常运作,

这篇文章主要以优化为主,为了配合这一主题,安全部分我们只讨论一下日常的一些维护工作。

除了上面列出的4条是管理员必修之课外,对一些Linux系统细节的维护也很重要。

包括:

1、 配置日志轮训工具,定期下载备份日志,是个非常好的习惯,这样不但能减少日志的消耗的磁盘空间,提高系统效率,更能及时发现问题,Linux下有些很好的系统日志分析器,能直接提取日志中的特殊项目,省去了阅读日志的烦恼;

2、 使用命令lsof Ci ,netstat Ca ,ps Ce等命令,定期检查系统服务端口监听等情况,也可制作一个定期执行的脚本,将这些命令定期执行后发到邮箱中;

3、 定期检查root用户的history列表,last列表,vipw用户列表是否正常;

4、 定期备份文件,用tar命令就能很好的备份了,当然需要下载这些备份并转移介质;

如一点发现有任何特别的没见过的情况或端口,那么要引起足够的重视,切勿因小失大。

Linux系统启动安全分析及对策 篇3

我们将从按下电源按钮到用户成功登录过程称为系统的一个完整的启动过程,以带有GRUB系统引导器的Red Hat Linux 9为例,在启动过程中,分析可能存在的安全隐患并采取针对性的防范策略。

1 与root用户登录有关的安全问题

Linux系统下的超级用户是root,root用户对系统具有绝对的控制权,能够对系统进行一切操作,所以保证root用户的口令安全是十分重要的,root口令安全几乎可以等同系统的安全[1]。因此,root登录系统的时候,就必须保证输入口令安全,要特别防范非法手段获取口令。为了防止root登录时遭受特洛伊木马攻击,就必须关注/bin目录的安全问题。

/bin目录保存包含一般用户使用的命令,是一些常用的二进制的可执行命令,如复制、移动和删除文件,登录、创建和打开文件、识别系统名称,查看文本文件等[2]。出于安全考虑,该目录只允许超级用户进行修改,但同时也应该把该目录设置在系统PATH环境变量的最前面,否则就有可能导致root口令被窃取。例如进行如下设置:

把/bin目录设置在PATH环境变量的后面,则系统有可能受到特洛伊木马的攻击,例如PATH变量的设置如下:

如果用户Htom在他自己的目录/home/Htom//bin内放置一个程序名为su的“特洛伊木马”程序,那么如果系统管理员要使用su命令从普通用户身份升级为超级用户,将会首先使用/home/hacker/bin下的su命令,而不是/bin下的su命令。这样用户hacker就可以轻松地窃取到超级用户的口令。因此对/bin目录安全的设置方式是:

这样可以避免root登录时特洛伊木马盗取口令。

2 丢失root口令的问题

如果root口令不慎丢失,就不仅会造成root无法登陆的情况,也会失去了对系统的管理和控制,那么就会造成系统安全隐患。为了能够重新登录和掌控系统,可以在GRUB引导系统时重新设置root用户的口令[3],操作过程如下:

首先在GRUB的菜单操作界面中,按a键进入GRUB的append模式,如图1所示。

然后在光标处添加一个空格然后输入1(表示启动Linux后进入单用户模式)并回车;

接着在#提示符下输入passwd命令为root重新设置口令,设置完毕后输入init 3或init 5命令切换为多用户模式即可。

系统管理员可以使用这种方法可以重新设置root口令,当然其他任何人也可以使用这种方法,即在GRUB启动还未进入系统登陆界面就直接篡改root口令,就可以root的身份登录系统,这样就会给系统带来灾难性的后果!这种方法是绝对不能被系统管理员以外的其他人使用的,因而,为了防止在引导菜单启动时随意修改root口令,就必须对引导菜单加密。

3 加密引导菜单

给引导菜单加密,GRUB有两种加密方式:一种是Lock加锁,另一种是利用非明文加密,也就是MD5 128位加密[4]。这两种方法都可在启动某个菜单项时被要求输入口令,做法是在GRUB配置文件/boot/grub/grub.conf下添加一些关键字段。

3.1 Lock加锁

Lock命令用于设定某启动菜单项使用口令进行锁定,该命令没有参数,一般在grub.conf文件中紧接Title命令使用,锁定该菜单项中Lock命令之后的所有命令,直到输入正确的口令后,该菜单项才会正常启动。使用Lock方式加密的具体做法是grub.conf文件中加入password和lock两行,示例如下:

当选择启动被锁定的菜单项时,用户被提示输入口令,如口令验证通过则启动该菜单项的操作系统,如口令验证失败屏幕返回启动菜单。

Lock加锁方式可以防止在引导菜单启动时随意修改root口令,但随之又带来一个安全问题:这种加锁方法是一种明文的设置加密菜单方式。从系统安全的角度来看,这样加密引导菜单是不安全的,因为任何人不管采用何种方式只要打开grub.conf文件,就会看到这个口令,就会利用这一点入侵系统。为了防止出现这种情况,就必须对口令进行加密,以免出现明文。

3.2 使用MD5加密口令

MD5是一种采用单向加密的不可逆加密算法,MD5算法的应用主要是针对用户的注册录,用户在注册时所提交的信息(密码)是利用MD5算法加密之后再保存到数据库中,这样可以防止用户密码的泄露,既使是黑客非法获得加密密文也没有办法查看到用户的密码,有效地保护了系统的安全。在用户进行登录时,为了身份验证,必须对输入的密码重新进行MD5加密,然后再与数据库中的信息进行比对,相同便可进入系统。

为了改变加锁方法中出现明文的情况,GRUB提供了MD5加密口令功能,可以有效保护引导菜单口令,实现方法如下:

首先利用Grub自带的grub-md5-crypt命令获得加密口令

使用MD5加密口令使得对口令的破解变得非常困难,有效的保护了系统安全,但一旦出错了话,就有可能造成系统无法启动的情况,因此必须小心使用。

4 其它安全问题

当然给引导菜单加密可以防止一些安全漏洞,但是如果不是通过硬盘使用GRUB或LILO引导系统,而是从其它设备如光驱、软驱或USB设备引导系统,造成安全问题。所以就必须为计算机的BIOS设置口令,并禁止从软驱和光驱等移动设备启动系统,防止绕过GRUB或LILO启动系统,然后访问硬盘。给BIOS设置密码就与操作系统无关了。如果再往上一级追溯,那就是物理安全了,如果硬盘被拿走了,即使BIOS设置了口令也没有用。因此,从技术手段保证系统安全的前提,是首先要保证系统的物理安全,否则毫无意义。

5 结论

在Linux系统启动阶段,从root开始用户登录起,逆向分析系统可能存在的安全隐患及问题,论文实现了防范root口令特洛伊木马攻击、获取root口令、加密引导菜单等功能。

参考文献

[1]中科红旗软件技术有限公司[M].红旗Linux系统管理教程,2001.

[2]梁如军.Red Hat Linux9系统管理应用基础教程[M].北京:机械工业出版社,2005.

[3]王红.操作系统原理及应用[M].北京:中国水利水电出版社,2005.

Linux安全性分析 篇4

随着信息技术的广泛应用, 承载企业重要资料和信息的服务器扮演着极为重要的角色, 很多企业和单位都搭建了服务器, 一旦服务器受到破坏或发生故障, 将会给企业带来巨大的经济损失, 所以服务器的安全是十分重要的。

目前, 由于很多具有攻击性的程序, 如病毒、木马等大多是针对Windows系统开发, 故Linux系统一直被认为是安全稳定的, 很多大型的网站和公司都倾向于使用Linux操作系统作为服务器平台。但是安全总是相对的, 目前针对Linux系统的入侵和攻击手段愈来愈多, Linux服务器本身的漏洞也愈来愈多, Linux服务器的安全风险正在日益增长, 如何应对千变万化的攻击并保证Linux服务器的安全, 已成为至关重要的课题。

本文将详细分析常见的Linux服务器安全隐患和攻击手段, 并提出一些具体的防护措施。

2 Linux服务器的安全隐患 (The security risks ofLinux server)

我们将Linux服务器的安全隐患总结为以下三点:

(1) Linux系统自身的安全漏洞;

(2) Linux服务的安全隐患;

(3) Linux的网络安全隐患。

下面详细分析这三点隐患。

2.1 Linux系统自身的安全漏洞

任何系统都不是绝对完美的, Linux系统也是如此, 随着Linux应用的复杂化和开源化, Linux操作系统自身的漏洞也逐渐增多, 我们将其分为以下几点:

(1) Linux账号漏洞

Linux账号漏洞也可以称为权限提升漏洞, 这类漏洞一般都是来自系统自身或程序的缺陷, 使得攻击者可以在远程登录时获得root管理员权限。以RedHat系统为例, 其某个版本曾经存在账号漏洞, 使得黑客入侵系统时通过执行特定的脚本可以轻松获得root级别的权限。此外, 如果普通用户在重启系统后通过单用户模式进入Linux系统, 通过修改Passwd账号文件, 也可以获取root权限。

(2) Linux文件系统漏洞

Linux文件系统的安全保障是靠设置文件权限来实现的。Linux的文件权限包括三个属性, 分别是所有者, 用户组和其他人的权限, 权限包括读、写、执行、允许SUID、允许SGID等。黑客会利用SUID和SGID获得某些程序的运行权限。另外黑客还可能修改一些可执行文件的脚本, 让用户在登录时执行从而达到破坏系统的目的。

(3) Linux内核漏洞

系统内核出现漏洞往往是很危险的, Linux的内核短小精悍、稳定性和扩展性好, 但是其内核的漏洞却不少。例如2003年9月份被发现的do_brk () 边界检查不充分漏洞可以使攻击者可以绕过系统安全防护, 直接对内核区域进行操作。再比如Linux内核中的整数溢出漏洞会导致内核中的数据被破坏, 从而使得系统崩溃。

2.2 Linux服务的安全隐患

Linux系统上的服务种类繁多, 其中网络服务最为重要, 网络服务主要用来搭建各种服务器, 下面我们就针对不同的网络服务探讨Linux系统的安全隐患。

(1) Apache服务的安全隐患

Apache是最为常见的开源WEB网站服务器程序, 如果Apache服务出现漏洞将会对网站造成极大的威胁。目前Apache服务漏洞主要包括拒绝服务攻击、文件描述符泄露、日志记录失败等问题。

一些Apache服务的模块也可能存在漏洞, 例如Apache的线程多处理模块 (MPM) 和Apache mod_cache模块中的cache_util.c可以引发服务器系统的崩溃。

(2) BIND域名服务的安全隐患

很多Linux域名服务器都采用BIND (Berkeley InternetName Domain) 软件包, 据统计互联网上的DNS服务器有一半以上用的是有漏洞的BIND版本。常见的BIND漏洞有:solinger bug, 黑客可以利用其让BIND服务产生间隔为120秒以上的暂停;fdmax bug, 可以造成DNS服务器的崩溃;nxt bug, 允许黑客以运行DNS服务的身份 (默认为root) 进入系统。

(3) SNMP服务的安全隐患

SNMP的全称是简单网络管理协议, Linux中SNMP服务的作用是管理监控整个核心网络, 黑客利用SNMP的漏洞可以控制整片区域的网络。常见的SNMP漏洞有:Net-SNMP安全漏洞, 黑客通过发送畸形的SNMP报文使服务器程序发生溢出, 而导致系统崩溃[1];SNMP口令漏洞, SNMPv1版本使用明文口令, 默认情况下系统自动开启并使用默认口令public, 这是很多管理者经常忽略的问题[2]。

2.3 Linux的网络安全隐患

Linux作为网络操作系统, 要频繁的与网络交互数据包, 很多数据包经过伪装进入系统内部, 会给系统带来破坏。较为常见的Linux网络安全隐患有:

(1) 口令隐患

口令是操作系统的首道屏障, 黑客入侵服务器的第一步往往就是破解口令。Linux操作系统的口令以文件的形式保存在系统中, 例如RedHat版本中口令保存在/etc/passwd中。如果文件中存在不设口令或者弱口令的账号, 就很容易被黑客破解。

(2) TCP/IP隐患

TCP/IP协议栈是网络操作系统内核中的重要模块, 从应用层产生的网络数据都要经过TCP/IP协议的逐层封装才能发送到网络中去。当协议栈收到一些特殊的网络数据时就会发生异常。例如TCP模块收到SYN报文后, 会回复一个ACK报文并稍带自己的SYN序号, 这时如果黑客再回复一个RST报文, 服务器就会重置TCP信息, 这样黑客就可以在不暴露自己信息情况下对服务器进行端口扫描。

还有一些黑客给服务器的某个端口发送大量的SYN报文, 而自己不回复确认, 这样就会消耗服务器的资源而造成其瘫痪[3]。

3 针对Linux服务器的攻击手段 (The means ofattack to Linux server)

在信息安全领域, 攻击是指在未经授权的情况下进入信息系统, 对系统进行更改、破坏或者窃取信息等行为的总称。在Linux服务器中, 攻击行为主要可以概括为:

(1) 口令入侵:对于一些采用弱口令的账户, 黑客可以很轻松的通过暴力破解穷举口令以获得账户的权限。目前有很多口令破解的工具, 例如字典破解工具将常见的口令和有意义的词组录入到字典库中, 破解的时候优先选择这些常见的口令, 可以大大的减少穷举的时间。另外, 随着计算机处理能力的发展, 口令破解对于普通人来说已经不是难事, 如果口令长度不长, 组合不复杂, 破解时间都在可以接受的范围内。

(2) 木马病毒:木马病毒是指植入到计算机系统中可以破坏或窃据机密信息的隐藏程序, 木马一般常见于客户端主机, 但也可能潜伏在Linux服务器中, 例如Linux.Plupii.C木马可以通过系统漏洞传播, 打开服务器的UDP端口27015以允许黑客远程控制服务器。

(3) 端口扫描:端口扫描是黑客入侵服务器的第一步, 通过端口扫描, 黑客可以获知服务器的相关信息。端口是应用层网络进程的标识, 入侵计算机系统的实质是入侵系统中的进程, 所以获知端口是否开启后才能实施真正的攻击。端口扫描的原理是利用系统的网络漏洞, 绕过防火墙并获得服务器的回复, 例如常见的S扫描就是利用TCP建立连接时三次握手的漏洞, 在最后一次握手时发给服务器重置命令, 在获得服务器端口信息后让服务器删除和自己相关的连接信息。

(4) 拒绝服务攻击:拒绝服务攻击是指通过某种手段使得服务器无法向客户端提供服务, 拒绝服务攻击可能是最不容易防护的攻击手段, 因为对于服务器而言向外提供服务的形式是开放的, 我们很难判断请求服务的主机是否为入侵者, 当大量的主机发送请求时, 服务器就会因为资源耗光而陷入瘫痪。

(5) 缓冲区溢出:缓冲区溢出是指经过精心设计的程序将系统内执行程序的缓冲区占满而发生溢出, 溢出的数据可能会使系统跳转执行其他非法程序或造成系统崩溃。缓冲区溢出的原因是程序员编写程序时没有检查数据长度造成的。

(6) 僵尸网络:僵尸网络是指受黑客控制的大量主机, 这些主机可以同时对一个服务器发起攻击, 而自身却不知情。这种攻击手段是很隐秘的, 很难查到攻击者的真实身份。

(7) 网络监听:网络监听是指通过某种手段截获主机之间的通信数据以获得口令等重要信息。一些常见网络监听工具可以解析网段内的所有数据, 此时如果主机之间的通信是明文传输的, 黑客就可轻而易举地读取包括口令在内的所有信息资料。

(8) 网络欺骗:网络欺骗包括IP地址欺骗、WWW欺骗、DNS欺骗、ARP欺骗等一系列欺骗方法。其主要目的是通过虚假的网络信息欺骗目的主机, 已达到扰乱通信的目的。

4 L i n u x 服务器的防护措施 ( T h e p ro t e c t i v emeasures of Linux server)

针对以上漏洞和攻击, Linux服务器的防护措施主要可以分为系统安全防护和网络安全防护两类, 下面逐一介绍:

4.1 Linux系统安全防护措施

(1) 系统账号及口令安全:对于网络服务器而言, 很多账户都是不必要的, 账号越多, 系统就越易受攻击。所以应该最大限度的删除多余账户, 并对用户账号设置安全级别, 以保证每个账号的权限都被限制在被允许的范围内。

另外还要确保每个已有账户都设置了复杂度高的口令, 口令的复杂度设置可以通过修改/etc/login.defs文件来实现, 其中的PASS_MAX_DAYS表示密码最长的过期天数, PASS_MIN_DAYS用来设置密码最小的过期天数, PASS_MIN_LEN表示密码最小的长度, PASS_WARN_AGE表示密码过期后的警告天数。

口令文件的安全性也至关重要, 我们可以通过chattr命令给口令文件加入只读属性:chattr+i/etc/passwd, 这样口令文件就不能随意被修改了。

(2) 文件安全设置:Linux的文件系统提供了访问控制的功能, 访问控制的客体是文件和目录, 主体是用户, 包括文件或目录的所有者, 用户所在组及其他组。访问控制的操作包括读 (r) 、写 (w) 和执行 (x) , 管理员根据不同的权限设置关于主体的能力表以及关于客体的访问控制列表。

(3) 系统日志:Linux服务器的系统日志也是应该被关注的设置, 因为日志文件详细的记录了系统发生的各类事件, 例如系统的错误记录, 每次用户登录系统记录, 各种服务的运行记录以及网络用户的访问记录等等。如果服务器遭受到攻击, 管理员可以通过日志追踪到黑客留下的痕迹, 另外, 当涉及到法律纠纷时, 系统日志经过专业人员提取还可以作为电子证据。

(4) 服务安全:Linux服务器中往往开启了很多服务, 首先应该确定的是哪些服务是不必要的, 可以通过chkconfig命令关闭系统自启动的服务。接下来要在必须启动的服务中找到存在的风险, 例如apache服务的目录浏览功能会使访问者进入网站的根目录, 并能浏览其中的所有文件。

(5) 安全工具:Linux服务器中带有很多安全工具方便管理员的使用, 例如SSH可以加密传输数据, Tcpdump可以用来检查网络通讯的原始数据。

4.2 Linux网络安全防护措施

Linux网络服务器也采用了传统的网络安全防护手段, 即防火墙与入侵检测系统。防火墙是保护内网的屏障, 它过滤并分析网络数据包, 阻止有威胁的数据进入;入侵检测是内网和系统内部的监控器, 它分析异常数据并作出报警, 有些入侵检测还会与防火墙联动, 一同保护服务器的安全。Linux系统中的Iptables和Snort是比较成熟的防火墙和入侵检测系统, 下面我们逐一介绍:

(1) 防火墙:Iptables, 目前使用的最新版本是Linux2.4内核中的Netfilter/Iptables包过滤机制[4]。Iptables包括三个功能表, 分别完成数据包过滤、网络地址转换和数据拆分的任务。每个表中有若干规则连:这五个位置也被称为五个钩子函数 (hook functions) , 也叫五个规则链:PREROUTING (路由前) 、INPUT (数据包流入链) 、FORWARD (转发链) 、OUTPUT (数据包出口链) 、POSTROUTING (路由后) , 不同的链用于不同位置的数据, 每个链中又可以包含若干条规则[5]。

(2) 入侵检测:Snort是一个免费的轻量级网络入侵检测系统。它能兼容多个不同的操作系统平台, 可以用于监视小型网络或者服务器系统内部的服务, 在进行网络监控时Snort可以将网络数据与入侵检测规则做模式匹配, 从而检测出可能的入侵数据, 同时Snort也可以使用统计学的方法对网络数据进行异常检测[6]。

5 结论 (Conclusion)

针对Linux的攻击手段日益增多, Linux服务器的安全隐患也随之增大, 对于企业而言, 总结出一整套有效且规范的防护措施是极为必要的。本文结合实际工作经验, 分析并总结了Linux服务器存在的安全隐患和常见的攻击手段, 提出了一些措施与方法。

摘要:Linux系统作为主流的网络服务器平台, 正面临着日益严峻的安全问题, 各种攻击和漏洞给企业带来了巨大的损失。本文针对Linux服务器的安全问题, 分析并总结了Linux服务器存在的安全隐患, 研究了在Linux系统上的常见的攻击手段。最后, 本文结合实际经验提出了一些有效的防护措施。

关键词:Linux服务器,安全隐患,攻击,防护措施

参考文献

[1]思科系统公司.网络互联故障排除手册[R].北京:电子工业出版社, 2002:120-125.

[2]胡冠宇, 陈满林, 王维.SNMP网络管理安全性研究与应用[J].哈尔滨师范大学自然科学学报, 2010, 26 (3) :95-98.

[3]刘晓萍.Linux2.4内核TCP/IP协议栈安全性研究[D].中国人民解放军信息工程大学, 2004:10-11.

[4]董剑安, 王永刚, 吴秋峰.iptables防火墙的研究与实现[J].计算机工程与应用, 2003, 39 (17) :161-163.

[5]王波.Linux网络技术[M].北京:机械工业出版社, 2007.

linux系统安全诊断 篇5

关键词:系统安全,Linux,入侵检测

随着信息技术的飞速发展,各行各业对信息系统的依赖程度越来越高,网络应用也越来越频繁,这时信息安全、网络安全就显得越发重要。实时业务对系统稳定、网络畅通的要求尤其高。目前单位对网络安全非常重视,为了安全高效,业务系统也大多建立在linux平台上,但随着网络技术的快速发展,病毒入侵已经成为一种重大安全隐患,linux系统会不会被入侵?入侵后该如何善后?都值得探讨。

1故障及诊断

前段时间,有一次单位业务网络发生了不明原因的中断,影响很大。为了及时恢复网络,不影响工作,对故障立即进行了诊断。先断开其他所有网络设备,只保留核心业务设备时网络恢复;再从网管平台上进行仔细检查,发现连接并行机的交换机端口流量过大,从业务判断,该时段没有数据传输,当时怀疑并行机出现了问题,因此立即进行了检查:

首先,查看/etc/passwd中有没有可疑用户。结果发现:sbin和pvm2个用户可以进行系统登录,而这2个用户都不是管理员建立的;更严重的是,sbin用户有与root等同的权限!于是怀疑系统已经被入侵。

其次,分别su到这2个用户下执行history命令发现无记录,可能是被人清除掉了。在pvm的主目录/usr/share/pvm3下,发现安装了pvm软件。经过搜索得知PVM是用于网络并行计算机上的软件工具。它可以将异构的计算机网络连接起来,使用起来就像一个单一的但能力强大的并行计算机,本身可以由一些Unix或windows的计算机组成。为了排除这一现象,在root用户下执行命令:awk-F:'length($2)==0{printf$1}'/etc/shadow,发现无记录,说明没有使用空密码的用户。

第三步,执行ps-ef查看系统进程,未发现异常;执行netstat-an查看网络连接,正常。执行cat/etc/crontab检查自动运行的程序,正常。检查/etc/inittab、/etc/bashrc、/etc/profile、/etc/rc.local以及/etc/rc.d/*这些系统重要的配置文件及自启动文件,均未发现异常。

第四步,用last命令查看近期谁登陆过系统:last-n20发现:

test pts/17 172.18.*.*Tue Feb 28 15:49-19:26(03:58)

这是个通过防火墙端口映射而登陆的外网用户(172.18.72.36是防火墙地址),马上检查test用户,在其目录中发现如下可疑文件:

查看pass.txt的内容发现这是一个字典文件,里面列举出常用的用户名及口令(弱口令)如下:(只截取一部分,第一列用户名,第二列为对应的密码)

第五步,分析源文件pscan2.c,认为这是一个黑客工具,它对ssh服务器进行扫描,用字典(pass.txt)中的用户名密码去尝试登陆,如果系统密码设置的太简单和字典中的吻合,那么黑客就成功入侵了,而这台并行机就因此不幸“中招”了。

第六步,问题的处理。

以下是处理步骤

1)vi/etc/passwd将sbin:x:0:503::/home/sbin:/bin/bash这行删除,并保存

2)删除黑客工具rm-rf bengos/ssh/ssh/

3)passwd test设置一个较为复杂的密码

4)关闭防火墙相应端口的映射

2检测与处理

虽然问题解决了,回头总结很有必要。如果系统万一被入侵,那么业务系统很可能会遭到严重破坏,后果将不堪设想。所以有必要总结一下linux平台下入侵检测的方法以及给出一些安全建议。入侵检测分手工检测和工具检测两种。

2.1手工检测

手工检测是指不借助外部工具、依靠管理员的技巧和经验来对系统的安全性进行检查,相比于工具检测,它要求管理员对操作系统有较深的了解,虽然没有工具检测的细致深入,但却是基础,必须要掌握,以下是检测的大体步骤:

1)检查系统密码文件:ls-l/etc/passwd查看文件修改的日期。awk-F:'$3==0{print$1}'/etc/passwd显示passwd文件中的特权用户。正常情况下应该只有一个特权用户root。检查系统里是否存在空口令帐户:awk-F:'length($2)==0{printf$1}'/etc/shadow

2)检查进程:ps-aef看看有没有陌生进程在运行,尤其注意有没有以./xxx开头的进程。一旦确定为后门进程,可以使用kill-9 pid开杀死该进程,然后再运行ps-aef查看该进程是否被杀死;如果进程杀死以后又重新启动,说明存在守护进程。用find/-name程序名-print,查找到其存放目录,然后判断是否应该删除。

3)检查网络连接和监听端口:netstat-an,列出本机所有的连接和监听的端口,查看有没有非法连接。netstatrn,查看本机的路由、网关设置是否正确。

4)检查系统中的core文件:某些入侵行为会在服务器相应目录下产生core文件。输入find/-name core-exec ls-l{};依据core所在的目录、查询core文件来判断是否有入侵行为。

5)检查系统日志:ls-al/var/log检查日志文件的完整性和修改时间是否正常,黑客常通过清除日志的方法来掩盖入侵痕迹。History命令用于显示历史指令记录内容,查看它可以了解黑客执行了哪些操作,不过这也是黑客重点清除的日志之一。

6)检测当前及以前登陆的用户:who命令查看当前在线上的用户情况。可以显示用户名、终端类型、登陆时间、以及来自哪里。w命令可以显示登录到系统的用户当前正在进行的工作,如果发现陌生的用户或者陌生IP登陆系统,用命令pkill-KILL-t tty号将他踢出系统,并立即修改此用户密码。last命令可以查看登录到本机的所有用户的历史记录,包括用户名、终端号、IP、时间等内容,也可以找到入侵者的蛛丝马迹。

7)检查SUID和SGID文件,这样的程序可以以root身份运行,需要注意。命令find/(-perm-004000-o-perm-002000)-type f-print可以将它们找出。

8)检查/etc/services需要密切地监视这个文件中的任何添加项,因为这可能会将后门作为服务来运行。

9)检查/etc/crontab、/etc/inittab、/etc/bashrc、/etc/profile、/etc/rc.local以及/etc/rc.d/*这些是系统重要的配置文件和登陆或开机会被执行的文件,也是后门程序常被添加的地方。

10)检查/.rhosts,/etc/hosts.equiv和~/.rhosts,看看是否有不合适的新条目存在,如果开了Rlogin、Rsh、Rexec等服务,就必须检查。因为像Rsh和Rlogin这样的服务是通过rhosts文件来认证的,而且不记录日志。黑客只要修改某用户的rhosts文件,就可以用这个账号无须口令Rlogin登录系统,且不留痕迹。

2.2工具检测

由于手工入侵检测比较麻烦,很难进行深层次的检测,而且这些检测大多基于系统命令,如果系统文件已经被黑客替换的话,就不可能进行准确的检测,要正确有效地进行入侵检测和审计需要借助于一些入侵分析工具。下面简要介绍两款检测工具chkrootkit和Snort。

chkrootkit是一个Linux系统下的查找检测rootkit后门的工具。所谓rootkit,它是一种具有自我隐蔽性的后门程序,类似于windows下的木马程序,它往往被作为一种入侵工具,通过rootkit,黑客可以偷偷控制被入侵的电脑,因此危害巨大。Chkrootkit是基于字符界面的,在终端下直接键入chkrootkit即可对系统进行全面扫面,并滚动显示出结果,如果显示not infected not tested或nothing found之类,则为正常。如果出现了INFECTED则说明你的服务器遭到入侵了,系统管理员需要根据扫描结果对系统进行修复,必要时重新安装。

Snort是一个轻便的网络入侵检测系统,可以完成实时流量分析和对网络上的IP包登录进行测试等功能,能完成协议分析,内容查找/匹配,能用来探测多种攻击和嗅探(如缓冲区溢出、秘密断口扫描、CGI攻击、SMB嗅探、拇纹采集尝试等)。它的扫描结果以web方式显示给用户,非常清晰直观。它需要apache、adobe、mysql、php等软件的支持,安装及配置完成以后,可以通过http://IP/acidbase/查看Snort截获的入侵日志。

3总结及建议

Linux系统由于其安全高效及稳定的特性,越来越受到企业用户的青睐,近年来,针对linux系统的攻击呈不断上升的趋势,如何保证其系统安全也成为一个普遍关注的话题,本文提出以下八条建议供参考:

1)对重要文件进行备份,但不要备份在本机,否则也有可能被黑客修改。

2)配置防火墙对网络进行防御,开启SElinux。

3)卸载或关闭不必要的服务。

4)安装供应商提供的所有补丁,对已安装的软件包进行完全升级。

5)删除不必要的用户,为每个用户设置一个既好记又足够复杂的密码,并严格限定用户权限。

6)对配置文件进行必要的手工修改,比如更改网络服务的端口号等。

7)定期审核系统日志,查看服务以及进程的运行情况。

8)重要业务系统要与因特网物理隔离,必须要联网的也应置于DMZ区,并在边界防火墙上作好策略及审计。

Linux安全性分析 篇6

在Linux V2.6内核版本中, 新增加Linux安全模块 (LSM) 为Linux系统增加更多的安全机制, 而在这之前, 这些功能是通过内核补丁的形式提供的。LSM是Linux内核的一个轻量级通用访问控制框架, 它使得各种不同的安全访问控制模型能够以Linux可加载内核模块的形式实现, 用户可以根据其需求选择适合的安全模块加载到Linux内核中, 大大提高了Linux安全访问控制机制的灵活性和易用性。

基于最新版本的内核, Linux系统提供以下安全机制。

(1) 身份验证

(1) 身份验证是Linux系统的第一道防线, Linux为合法用户提供帐号, 用户登录时必须输入合法的帐号和口令;创建一个新用户必须为它指定一个私有组或其他组, 而且必须为用户设置密码后, 才能登录;系统对帐号和口令进行验证后才能进入, 连续多次登录失败将禁止再登录。

(2) 用户帐号保存在/etc/passwd文件中, 但是这个文件不保存对应的用户密码, 密码另外保存在一个“影子”文件 (/etc/shadow) 中, 这个“影子”文件只对root用户可读, 即使其他用户通过非授权方式获得这个文件的读取权限, 也很难获得原始密码, 因为文件中的密码是经过不可逆转加密算法计算的。Linux系统通过将用户信息与密码数据分开而提高了安全性。

(3) 可以对用户密码文件进行加密, 以提高用户密码存储和传输的安全性。

(4) Linux允许为用户帐号设置安全等级。

(2) 访问控制

(1) Linux系统对文件的访问使用了文件存取许可机制。Linux为每个文件都分配了一个文件所有者, 系统中的每个文件 (包括设备文件) 和目录都有对应的访问许可权限, 只有有相应权限的用户才可以进行读、写或执行操作。访问权限规定三种不同类型的用户, 即文件主 (owner) 、组用户 (group) 和其他用户 (others) , 访问文件或目录的权限也有三种, 即读 (r) 、写 (w) 和可执行 (x) 。文件或目录的创建者对所创建的文件或目录拥有特别权限, 文件或目录的所有权是可以转让的, 但只有文件主或root用户才有权转让。文件存取许可机制的引入提高文件访问的安全性。

(2) Linux为每个用户都设置了用户主目录, 一个用户对主目录以外的其他目录的文件存取权限受限较多。

(3) 日志

Linux系统提供日志文件来记录整个操作系统的使用状况, 比如用户登录、用户切换、权限改变等, 管理员可以通过察看这些日志文件, 来对系统进行维护。

(4) 加密文件

Linux系统提供多种附加工具来加密数据。较有代表性的是TCFS, 它将加密服务和文件系统紧密集成, 用户感觉不到加密过程, TCFS能够使保密文件对非授权用户不可读, 而对于授权用户, 访问加密文件与访问普通用户几乎没有区别。提高文件存放或传输的安全性。

(5) 文件系统

(1) 在目录结构上, Linxu是先有目录再有分区, 它的各个文件系统可以很方便的挂载在系统中, 或者从目录结构中卸载。可以很方便隐藏一些重要数据分区。

(2) 在文件类型上, ext3比FAT、NTFS更有优势。

(6) 程序角色切换

Linux为大多数系统服务都定义了软件角色。程序从root用户启动以后, 通常需要切换到服务的软件角色上, 比如Apache。当攻击者获得该服务权利时的身份就不在是超级用户root。

(7) 内存管理

Linux系统采取内存保护模式来执行程序, 避免了因一个程序执行失败而影响整个系统的运行。

(8) 客体重用

客体重用是指当主体 (如用户、进程、I/O设备等) 获得对一个已经释放的客体 (如内存、外存储设备等) 的访问权时, 可以获得原主体活动所产生的信息。为了避免这一情况发生, Linux系统实行禁止客体重用机制。

(1) 禁止内存客体重用。系统在用户、进程申请内存空间时对该空间原有的信息清除, 使得用户、进程在申请到该空间后, 开始访问时总是空的, 无法得到上一个用户遗留在内存的信息。

(2) 禁止外存储设备客体重用。在文件被删除时, 系统将无用信息写入存储原文件的物理空间, 防止外存储设备上的客体重用。这个机制类似DOS下使用“copy nul[filename]”来删除文件 (而通常在DOS下, 我们更习惯用“del[filename]”来删除文件) 。

(9) 防火墙

内核中集成了Netfilter/iptables系统, 其中Netfilter负责将流经系统IP协议栈的数据包提出来, 并且定义了iptables中各个表和规则的数据结构, 以及各个操作, 实现对iptables中数据包的要求;iptables定义了若干个表, 用户可以通过注入模块, 并调用Netfilter的接口函数创建新表, 来实现所需的安全模块。

(10) 扫描器

Linux提供众多的扫描检测工具, 管理员可以利用这些工具可以探测系统的缺陷以采取相应的安全防范措施。

(11) 冗余磁盘阵列

通常情况下, 中高端服务器端都使用各种RAID (冗余磁盘阵列) 技术来保护数据, 而硬件RAID控制器价格昂贵。Linux系统提供软件RAID, 使得更多的中低端服务器在资金不充裕的前提下也可以使用RAID技术, 极大地增强磁盘I/O性能和安全性。

虽然Linux系统提供多种类型的安全机制来保证系统的安全性达到一个较高的标准, 但是也有不完善的地方, 比如它无法阻止对信息的非法访问和恶意破坏, 等等。

2、提高Linux系统安全的策略

Linux提供了众多的安全机制, 安全性、稳定性要好于目前装机量排在第一的Windows系统, 但Linux系统的安全性不是进行简单的安装就能获得的, 而是要进行完善的配置, 只有配置得当, 才能发挥Linux的安全性和稳定性的优势。下面介绍一些可以增强Linux安全性的措施。

2.1 系统安装及启动、登录技术

(1) 选择最小化安装

安装Linux时, 最好选择最小化安装, 然后再根据需要添加必要的服务软件, 因为安装的服务越少, 出现安全漏洞的机会就越小, 系统安全性就越高。

(2) 划分多个分区

安装时, 除了划分/分区外, 还应该为/tmp、/var、超级用户的root目录等划分单独的分区。

(3) BIOS密码

设置BIOS密码且修改启动时的引导次序, 禁止从软盘启动系统。

(4) 隐藏登录信息

在文件/etc/inetd.conf中加入下面一行代码:

telnet stream tcp nowait root/user/sbin/tcpdin.telnetd-h

使得其他系统登录到本系统时, 不显示操作系统和版本信息, 增强系统的安全性。

(5) 及时安装系统补丁程序

经常访问Linux技术支持网站, 下载最新的补丁安装程序并及时安装, 修补系统的安全漏洞。

2.2 用户帐号、密码管理和登录技术

(1) 用户密码

安装Linux系统时默认的密码长度为5, 最好将密码最短长度修改为8。具体设置方法是:将文件/etc login.defs中的“PASS_MIN_LEN 5”改为“PASS_MIN_L EN 8”。

另外, 密码应设成自己容易记住而其他人难以猜到的字符。

(2) 超时注销帐号

操作员尤其是root用户在离开系统时应及时注销帐号, 如果操作员离开时忘记注销, 系统应能自动注销。具体设置方法是:修改/etc/profile文件, 在HISTFII ESIZE:后面加上一行TMOUT-300, 其中300表示300秒, 意即如果用户在300秒内没有任何操作, 系统会自动注销这个帐户。

(3) 用户帐号的安全等级

在系统建立一个新用户时, 应根据需要赋予该用户帐号不同的安全等级, 并且归并到不同的用户组中。比如除了一些重要的用户外, 建议屏蔽掉其他用户的telnet权限, 而只给ftp权限, 这样可以防止一些人利用其他帐号登录到系统上。

(4) 用户等级转换

禁止普通用户su为root用户。修改/etc/pam.d/su文件, 在文件内加入下面一行代码:

auth sufficient/lib/security/pam_rootok.sodebug

(5) 删除不必要的帐户和组号

Linux提供了许多默认帐号, 而帐号越多, 系统就越容易受到攻击。可以用以下命令来删除不必要的帐号, 如sync、shutdown、halt、news、games、adm、lp、mail、operator、uucp等。

#userdel用户名

使用以下命令删除不必要的组号, 如adm、lp、uucp、mail、news、games、dip等。

#groupdel用户名

2.3 文件管理

(1) 文件加密

将重要的文件进行加密处理来加以保护。使用#gpg-gen-key产生密钥对, 将公钥发布, 以便其他用户下载该公钥加密发回文件, 收到加密文件后, 用配对的私钥解密为明文。

(2) 文件的存放

为了确保安全, 系统应把不同的用户目录分离开来, 每个用户都有自己的主目录和硬盘空间, 这块空间与系统区域、其他用户空间分离开, 这样可以防止普通用户的操作影响到整个文件系统。

(3) 文件和目录的访问权限

使用chown或chgrp命令正确设置文件的所有权或用户组关系, 使得文件的不同用户 (文件主、组用户和其它用户) 只能对必需的文件具有的必须的访问权限 (读、写和可执行) , 提高文件访问的安全性。

具有SUID/SGID权限标志的程序需要以root身份运行, 这是一个潜在的安全漏洞。因此, 除了类似password程序必须具有root身份外, 应限制具有SUID/SGID权限标志的程序数量。

2.4 防止攻击技术

(1) 防止ping攻击

在文件/etc/rc.d/rc.local中加入下面一行代码来防止系统响应来自系统外部或内部的ping请求, 以达到防止ping攻击, 增强系统的安全性。

echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all

(2) 防止IP欺骗

在文件host.conf中加入下面一行代码来防止IP欺骗攻击。

nospoof on

(3) 防止DoS攻击

通过对系统所有用户设置资源 (如最大进程数、内存使用数量等) 的限制, 可以防止DoS攻击。具体设置分如下两个步骤。

(1) 在文件/etc/security/limits.conf中添加下面三行代码:

(2) 确定文件/etc/pam.d/login存在下面一行代码:

session required/lib/security/pam_limits.so

通过以上设置可以禁止调试文件, 限制内存使用为10MB, 限制进程数为25。

(4) 定时进行日志审计

经常检查日志可以发现入侵者留下的痕迹。作为系统管理员, 要充分用好以下几个日志文件。

/var/log/lastlog文件:记录最后进入系统的用户信息, 包括登录时间、登录是否成功等信息。

/var/log/secure文件:记录系统自开通以来所有用户的登录时间和地点, 可以给系统管理员提供更多的信息。

/var/log/wtmp文件:记录当前和历史上登录到系统的用户的登录时间、地点和注销时间等信息。

通过查看这些信息, 可以判断系统是否有异常修改情况。

(5) 防火墙

最简单的防火墙就是设置基于内核netfilter/iptables框架的防火墙。防火墙用一台安装有两块网卡的Linux机器担任, 其中一块网卡连接外网, 另一块连接内网;通过设置 (设置步骤比较复杂, 本文不作介绍) 可以实现具有包过滤网络地址转换等功能的防火墙。设置防火墙后, 受保护的内网不能直接访问外网, 外网也不能直接访问内网, 这样可以有效地阻止恶意攻击, 提高网络系统的安全性。

(6) 受到攻击后要及时处理

一旦发现了一个用户正从未知的机器登录, 且该用户在系统中没有相应的帐号, 表明系统正在受到攻击。为防止系统的安全被进一步破坏, 应该马上断开主机与网络的连接, 撤消此用户的所有进程, 并把此主机的IP地址掩码加入到文件hosts.deny中。

(7) 病毒预防

虽然目前尚未出现能在Linux上广泛流行的病毒, 但不能掉以轻心, 系统管理员应及时了解病毒预告及预防病毒的技术发展, 以防止系统受到病毒的攻击, 以及受到攻击后将损失减到最小程度。

2.5 数据备份技术

(1) 日志备份

对系统的异常检查需要对日志内容进行审计, 因此, 及时备份日志文件对保证日志的完整性、正确性非常重要。

(2) 常规系统 (数据) 备份

为了防止系统在使用过程中发生意外情况而难以正常运行, 应该使用硬盘或光盘定期 (比如一周) 对Linux完好的系统 (包括数据) 进行常规的备份, 以便定期验证系统是否遭到破坏, 或遭到破坏时, 能进行一定程度的恢复。

(3) 双机热备份

双机热备份是目前计算机系统一种高性能、高安全性的解决方案, 主要用于中高端服务器。在Linux系统实现双机热备份, 需要两台各安装有两块网卡的计算机, 一条交叉线通过两台计算机的网卡连接, 用于两台计算机进行备份数据传输, 另一块网卡将计算机连接到交换机。使用HeartBeat软件进行设置 (设置步骤较复杂, 本文不作介绍) 。

(4) 磁盘阵列

目前, 可以根据硬盘的数量设置目前较流行的RAID 0或RAID 5两种磁盘阵列模式, RAID 0使用两块硬盘进行镜像备份, 安全性最高, 但磁盘利用率低 (50%) ;RAID 5使用n块 (n≥3) 进行交叉存储, 是目前较好地兼顾安全性和磁盘利用率的模式。可以通过内核的raidtool工具来进行设置 (设置步骤较复杂, 本文不作介绍) 。

3、结束语

综上所述, Linux系统提供较多的安全机制, 但是要使Linux系统的安全性有较大的提高, 还要求我们在使用、管理Linux系统时, 有策略地、综合地采用以上的安全措施, 正确地进行设置。但即使如此, 也不能保证Linux系统万无一失, 因为任何计算机系统都不可能做到密不透风的、百分之百安全。从安全性的角度看, Linux系统仍需不断的改进和完善。

摘要:本文简单介绍Linux系统的安全机制, 并主要从Linux的系统安装、用户管理、文件管理、预防攻击、数据备份等五个给出了Linux个系统安全的解决方案。

关键词:Linux系统,安全,策略

参考文献

[1]周昕, 刘勇, 沈熙, 谢俊元.Linux安全性能改进研究[J].计算机工程, 2001, 27 (10) .

[2]刘兴丽.Linux网络安全问题及其对策[J].黑龙江气象, 2004, 2.

[3]朱元忠.Linux网络安全问题的探讨及其解决策略[J].北京工业职业技术学院学报, 2004, 3 (3) .

[4]潘瑜.基于Linux环境的网络安全防火墙和入侵检测系统的研究[J].江苏技术师范学院学报, 2005, 11 (2) .

Linux安全性分析 篇7

目前, 许多中小用户因业务发展, 不断更新或升级网络, 从而造成自身用户环境差异较大, 整个网络系统平台参差不齐, 在服务器端大多使用Linux和Unix, PC端使用Windows。在企业应用中常是Linux、Unix和Windows操作系统共存形成的异构网络。

就安全性而言, Linux相对于Windows具有更多的优势。但不管选择哪一种Linux发行版本, 在安装完成后都应进行一些必要的设置, 来增强其安全性。下面简单介绍几种加强Linux服务器安全的方法。

一、安装和配置防火墙

所谓防火墙是指一个能把内部计算机网络与因特网隔开的屏障, 它由计算机硬件和特殊的软件有机集合而成, 使内部计算机网络与因特网之间建立起一个安全网关, 从而保护内部计算机网络免受非法用户的入侵。防火墙是阻止非授权用户进入、离开、穿过网络或主机系统一种部件或一系列部件, 可以采用系统附带的攻击和专用的防火墙来实现主机系统或网络安全, 通过适当配置可有效地限制、保护系统以及控制局域网范围内的访问。

二、关闭无用的服务和端口

任何网络连接都是通过开放的应用端口实现的。若尽可能少地开放端口, 就使网络攻击变成无源之水, 从而大大减少了攻击者成功的机会。如果希望Linux成为Web服务器, 可取消系统内所有非必要的服务, 只开启必要服务。这样做可以尽量减少后门, 降低隐患, 而且可以合理分配系统资源, 提高整机性能。例如fingerd、R服务均为不常用的服务, 均应关闭。

三、删除不用的软件包

在进行系统规划时, 总的原则是将不需要的服务一律去掉。默认的Linux就是一个强大的系统, 运行了很多的服务。但有许多服务是不需要的, 很容易引起安全风险。文件/etc/xinetd.conf制定了要监听的服务, 用户可能只需要其中的一个服务如ftp。其它的如telnet、shell、login、等, 除非用户需求, 否则均应关闭。

四、不设置缺省路由

在主机中, 应该严格禁止设置缺省路由, 即default route。每一个子网或网段应设置一个路由, 否则其它机器就可能通过一定方式访问该主机。

五、口令管理

对于网络系统而言, 口令是比较容易出问题的地方, Linux系统管理员应告诉用户在设置口令时要使用安全口令并适当增加口令的长度, 各用户的口令应养成定期更换的习惯。系统管理员要保护好/etc/passwd和/etc/shadow文件的安全, 不让无关的人员获得这个文件。破解口令是一项很耗时间和资源的工作, 所以应使得口令文件难于破解, 这样即使黑客获取了口令文件也不能轻易破解。

六、分区管理

一个潜在的攻击, 首先会尝试缓冲区溢出。以缓冲区溢出为类型的安全漏洞是最为常见的一种形式, 缓冲区溢出漏洞占了远程网络攻击的绝大多数, 这种攻击可轻易使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权。

为了防止此类攻击, 应从安装系统时注意。如果用root分区记录数据, 就可能因为拒绝服务产生大量日志或垃圾邮件, 从而导致系统崩溃。所以应为/var开辟单独的分区, 用来存放日志和邮件, 避免root分区被溢出。最好为特殊的应用程序单独开一个分区, 特别是可以产生大量日志的程序, 还可为/home单独分一个区, 这样就不能填满分区了, 从而避免了部分针对Linux分区溢出的恶意攻击。

七、防范网络嗅探

嗅探器技术被广泛应用于网络维护和管理方面, 它工作的时候就像一部被动声纳, 接收来自网络的各种信息, 通过对这些数据的分析, 网络管理员可深入了解网络当前的运行状况, 找出网络中的漏洞。在网络安全日益被注意的今天, 不但要正确使用嗅探器, 还要合理防范嗅探器的危害。嗅探器能够造成很大的安全危害, 主要是因为它们不容易被发现。对于一个安全性能要求很严格的企业, 同时使用安全的拓扑结构、会话加密、使用静态的ARP地址是有必要的。

八、完整的日志管理

日志文件时刻记录着系统的运行情况。黑客光临时, 也不能逃脱日志的法眼。所以黑客往往在攻击时修改日志文件, 来隐藏踪迹。因此我们要限制对/var/log文件的访问, 禁止一般权限的用户去查看日志文件。另外要使用日志服务器。将客户机的日志信息保存副本, 创建一台服务器专门存放日志文件, 通过检查日志发现问题。还应该设定日志远程保存。修改/etc/syslog.conf文件加入日志服务器的设置, syslog将副本保存在日志服务器上。

九、终止正在进行的攻击

如果在检查日志文件时, 发现了一个用户从未知的主机登录, 而且可确定此用户在这台主机上没有账号, 此时系统可能正被攻击。首先要马上锁住此账号 (在口令文件或shadow文件中, 此用户的口令前加一个lb或其他字符) 。若攻击者已经连接到系统, 应马上断开主机与网络的物理连接。如有可能, 还要进一步查看此用户的历史记录, 查看其他用户是否也被假冒, 攻击者是否拥有根权限。禁止此用户的所有进程并把此主机的IP地址掩码加到文件hosts.deny中。

十、使用安全工具软件

Linux已有一些工具可保障服务器的安全。如bastille linux和Selinux。bastille linux对于不熟悉linux安全设定的使用者来说, 是一套相当方便的软件, bastille linux目的是希望在已经存在的linux系统上, 建构一个安全性的环境。

十一、使用保留IP地址

维护网络安全性最好的方法是保证网络中的主机不同外界接触, 最基本的方法是与公共网络隔离。然而, 这种通过隔离达到的安全性策略在许多情况下是不能接受的。这时, 使用保留IP地址是一种简单可行的方法, 它可让用户访问Internet的同时保证一定的安全性。保留IP地址范围:

----10.0.0.0-10.255.255.255

----172.16.0.0-172.31.255.255

----192.168.0.0-192.168.255.255

来自保留IP地址的网络交通不会经过Internet路由器, 因此被赋予保留IP地址知道的任何计算机不能从外部网络访问。但这种方法同时也不允许用户访问外部网络。

十二、合理选择Linux发行版本

对于服务器使用的Linux版本, 既不使用最新的发行版本, 也不选择太老的版本。应当使用比较成熟的版本:前一产品的最后发行版本。毕竟对于服务器来说安全稳定是第一的。

十三、部署Linux防范病毒软件

Linux操作系统安全、稳定、成本低, 很少发现有病毒传播。但随着越来越多的服务器、工作站和个人电脑使用Linux软件, 电脑病毒制造者也开始攻击这一系统。对Linux系统无论是服务器, 还是工作站的安全性和权限控制都是比较强大的, 这不仅使它的作业系统难以宕机, 而且也可使其难以被滥用。

可执行文件型病毒、蠕虫病毒、脚本病毒的防范通过安装GPL查杀病毒软件基本可以防范。服务器端可使用Anti Vir。对于后门程序防范可采用LIDS和Chkrootkit。

Linux安全性分析 篇8

Android是基于Linux开放性内核的操作系统, 由Google公司在2007年11月5日公布。早期由原名为"Android"的公司开发, 谷歌在2005年收购"Android Inc"后, 继续进行对Android系统开发运营, 它采用了软件堆层 (software stack, 又名软件叠层) 的架构, 主要分为三部分。底层Linux内核只提供基本功能, 其他的应用软件则由各公司自行开发, 部分程序以Java编写。Android系统承袭了Linux开源操作系统的安全特性, 并采用了层次化的方式来保证系统安全, 本文深入探讨Android层次化安全架构及其核心安全元素构成。

二、安全构架

Android作为一个移动设备的平台, 其软件层次结构包括了一个操作系统 (OS) , 中间件 (Middle Ware) 和应用程序 (Application) 。根据Android的软件框图, 其软件层次结构自下而上分为以下几个层次:

1. 操作系统层 (OS)

Android使用Linux 2.6作为操作系统, Linux 2.6是一种标准的技术, Linux也是一个开放的操作系统。Android对操作系统的使用包括核心和驱动程序两部分, Android的Linux核心为标准的Linux2.6内核。

2. 各种库 (Libraries) 和Android运行环境 (Run Time)

本层次对应一般嵌入式系统, 相当于中间件层次。Android的本层次分成两个部分一个是各种库, 另一个是Android运行环境。本层的内容大多是使用C++实现的。Android的各种库一般是以系统中间件的形式提供的, 它们均有的一个显著特点就是与移动设备的平台的应用密切相关。Android运行环境主要指的虚拟机技术——Dalvik。Dalvik虚拟机和一般Java虚拟机 (Java VM) 不同, 它执行的不是Java标准的字节码 (bytecode) 而是Dalvik可执行格式 (.dex) 中执行文件。在执行的过程中, 每一个应用程序即一个进程 (Linux的一个Process) 。二者最大的区别在于Java VM是以基于栈的虚拟机 (Stackbased) , 而Dalvik是基于寄存器的虚拟机 (Register-based) 。显然, 后者最大的好处在于可以根据硬件实现更大的优化, 这更适合移动设备的特点。

3. 应用程序框架 (Application Framework)

Android的应用程序框架为应用程序层的开发者提供APIs, 它实际上是一个应用程序的框架。由于上层的应用程序是以JAVA构建的, 因此本层次提供的首先包含了UI程序中所需要的各种控件:例如:Views (视图组件) 包括lists (列表) , grids (栅格) , textboxes (文本框) , buttons (按钮) 等, 甚至一个嵌入式的Web浏览器。一个Android的应用程序可以利用应用程序框架中的以下几个部分:Activity (活动) 、Broadcast Intent Receiver (广播意图接收者) 、Service (服务) 、Content Provider (内容提供者) 。

4. 应用程序 (Application)

Android的应用程序主要是用户界面 (User Interface) , 通常以JAVA程序编写, 其中还可以包含各种资源文件 (放置在res目录中) 。JAVA程序及相关资源经过编译后, 将生成一个APK包。Android本身提供了主屏幕 (Home) , 联系人 (Contact) , 电话 (Phone) , 浏览器 (Browsers) 等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。

三、应用程序安全机制

在Linux中, 一个用户ID识别一个给定用户;在Android上, 一个用户ID识别一个应用程序。应用程序在安装时被分配用户ID, 应用程序在设备上的存续期间内, 用户ID保持不变。权限是关于允许或限制应用程序 (而不是用户) 访问设备资源。

1. 沙箱

Android使用沙箱的概念来实现应用程序之间的分离和权限, 以允许或拒绝一个应用程序访问设备的资源, 比如说文件和目录、网络、传感器和API。为此, Android使用一些Linux实用工具 (比如说进程级别的安全性、与应用程序相关的用户和组ID, 以及权限) , 来实现应用程序被允许执行的操作。

2. 应用程序签名

所有Android应用程序都必须被签名。应用程序或代码签名是一个这样的过程, 即使用私有密钥数字地签署一个给定的应用程序。以便识别代码的作者;测应用程序是否发生了改变;应用程序之间建立信任。基于这一信任关系, 应用程序可以安全地共享代码和数据。

使用相同数字签名签署的两个应用程序可以相互授予权限来访问基于签名的API, 如果它们共享用户ID, 那么也可以运行在同一进程中, 从而允许访问对方的代码和数据。

3. 权限

权限是一种Android平台安全机制, 旨在允许或限制应用程序访问受限的API和资源。默认情况下, Android应用程序没有被授予权限, 这通过不允许它们访问设备上的受保护API或资源, 确保了它们的安全。权限在安装期间通过manifest文件由应用程序请求, 由用户授予或不授予。Android定义长长的一系列manifest权限, 以保护系统或其他应用程序的各个方面。

四、结束语

Android系统已经成为当今移动终端上使用的主流操作系统, 而其上安全访问的控制机制与实现是其核心技术问题。本文就此问题展开探讨, 介绍了LINUX平台下Android的基本架构;在此架构下应用程序如何利用沙箱、应用程序签名、应用程序权限等机制完成系统的安全访问控制。

摘要:当前移动终端下的操作系统主要使用了Apple公司的IOS与Google公司的Android系统, 而后者占据了市场中的主要份额。Android系统基于Linux内核来实现, 具有开放性特点, 但其安全性也成为其发展的主要瓶颈与核心技术问题。本文就此问题展开探讨, 阐明了在Android下借助沙箱与权限等安全元素有效的保障了移动终端的数据安全与系统安全。

关键词:Android,Linux,安全,沙箱,权限

参考文献

[1]杨杰.基于Linux的强制访问控制研究[j].广州:电脑与电信, 2008 (11) :48-51

[2]Lauren Darcey Shane Conder.Android应用开发入门经典[m].北京:人民邮电出版社, 2012

[3]金泰延, 宋亨周, 等.Android框架揭秘[m].北京:人民邮电出版社, 2012

上一篇:视野的最大融合下一篇:中外史合编