Archive for category 网络和安全
LDAP简介:什么是目录
一、 大纲和目标
此文为理解什么是LDAP打下一个基础。目标是使你掌握基本的术语和概念,不作为深入学习LDAP的材料。LDAP,它的
全称为轻量级目录访问协议。
此文包括以下几方面的内容:
* 目录的基本定义
* 理解目录能做什么和不能做什么
* 2个目录例子
* 总结使用目录服务的校验表
二、 基本定义
目录是一种专门的数据库,它服务于各种应用程序,包括LDAP(轻量级目录访问协议)目录和基于X.500的目录。这些
目录都是通用的标准的目录。它们不适合于特定的操作系统、应用目的。
不管她们知不知道这里的目录是什么意思,大多数人熟悉各种各样的目录,像电话簿、黄页,电视指南、购物目录和图
书馆卡片目录。我们把这一类目录归为日常目录。在计算机中的目录被称为在线目录。
目录服务是软件、硬件、策论以及管理的集合体。目录服务至少包括以下几个方面:
* 包含在目录中的信息
* 保存信息的软件服务端
* 扮演存取信息的软件客户端
* 跑服务端,客户端软件的硬件
* 支撑系统,像操作系统、设备驱动等
* 连接客户端到服务端以及各个服务端之间的网络基础设施
* 策略。规定谁能访问,谁能更新,谁能存取等
* 维护和监视目录服务的软件
术语目录和目录服务经常可换用。
三、 目录是什么以及它能做什么
下面的应用类型不能被归为目录:
* 数据库
* 文件系统
* web服务
* FTP服务
* DNS服务
与数据库比较
虽然目录也被称为特殊的数据库,但它不同于真正的数据库。目录的大部分操作为读操作。假如你的应用程序要写大
量的数据,你应该考虑选择使用数据库来实现。目录支持相对简单的事务处理。相反,数据库被设计成处理大量的各
种各样的事务处理。假如你的应用要求这种重负荷的事务支持,你该选择数据库而不是目录。
在另一方面,假如你的应用不要求这样的大负荷事务处理,而是偶尔的写一些简单的事务信息。这时,目录是理想的
选择。它会更有效,更简单。
与文件系统比较
目录被认为是很差的文件系统。文件通常很大,有几兆甚至更大,虽然目录被优化成存取很小的信息。应用程序以块
的方式存取文件。文件系统支持各种调用–像seek(),read()和write(),这样可以写大文件的一部分的信息。目录
不能提供这种随机的存取访问。目录条目被分成各种属性。你可以分别获取各种属性。你不能取得一个条目的部分值,
如从第几个字节开始。
与web的比较
不象web服务器一样,目录不适合推送JPEG图象或Java程序给客户端。Web服务通常作为开发web应用的跳板。这些平
台从CGI(公用网关接口)到更复杂的像Netscape应用服务平台。目录一般不提供这种形式的应用开发,甚至它不提
供目录应用开发平台服务。
与FTP比较
与FTP的主要区别在于:数据量的大小和客户的类型。另外一点就是FTP是一个非常简单的协议,它专于做一件事情并
把它做好。假如你想做的是把文件从一个地方传送到另一个地方,那么额外的目录下层结构也需要,如复制、查询、
更新等。
与DNS比较
因特网的域名系统和目录有相似之处,它们都提供对分层式数据库的访问。但其它一些不同把它们区分开来。
DNS的主要目的是把主机名转换成IP地址。比较而言,大多数目录有更普通的作用。DNS有一套专门的、固定的计划,
而目录允许被扩展。DNS不允许更新它的信息,而目录可以。DNS可通过UDP的无连接的方式访问,而目录通常是连接
访问的。
四、 目录举例
X.500
在八十年代中期,两个不同的团体–CCITT和ISO,各自开始在目录服务方面的研究工作。最后,两个国际性的目录规
范融合成一个规范,这就是X.500。X.500的优势在于它的信息模型,它的多功能性和开放性。
LDAP
1993年7月,第一个LDAP规范是由密歇根大学开发的,也就是RFC1487。LDAP的开发者们简化了笨重的X.500目录访问
协议,他们在功能性、数据表示、编码和传输方面做了改建。目前,LDAP的版本是第3版本,相对以前版本来说,
第3版本在国际化、提名、安全、扩展性和特性方面更加完善。1997年,第3版本成为因特网标准。
五、 目录服务校验表
下面是简要的总结:为你是否选择目录或其它技术提供导航。
* 信息量大小。目录适合于存放相对小的信息量,而不是几兆大小的文件。可以利用指针,它可以指向大的文件,
但绝不是文件本身。
* 信息的类型。目录通常是基于属性的信息。
* 读写比。目录适合于读操作更多的应用。如需要用到大量的写操作,数据库是一个选择。
* 搜寻能力。目录能搜寻他自身包含的信息。
* 标准访问。假如你需要标准的访问信息。目录是一个好的选择。
六、 参考文献
X.500 Lightweight Directory Access Protocol
http://www.cis.ohio-state.edu/rfc/rfc1487.txt
A String Representation of LDAP Search Filters
http://www.cis.ohio-state.edu/rfc/rfc1558.txt
Unix系统安全必读
本文从系统管理员的角度讨论安全问题.系统管理员是管理系统的人:启动系统,停止系统运行,安装新软件,增加新用户,删除老用户,以及完成保持系统发展和运行的日常事务工作。
1.安全管理
安全管理主要分为四个方面:
(1)防止未授权存取:这是计算机安全最重要的问题:未被使用系统的人进入系统.用户意识,良好的口令管理(由系统管理员和用户双方配合),登录活动记录和报告,用户和网络活动的周期检查,这些都是防止未授权存取的关键。
(2)防止泄密:这也是计算机安全的一个重要问题.防止已授权或未授权的用户相互存取相互的重要信息.文件系统查帐,su登录和报告,用户意识,加密都是防止泄密的关键。
(3)防止用户拒绝系统的管理:这一方面的安全应由操作系统来完成.一个系统不应被一个有意试图使用过多资源的用户损害.不幸的是,UNIX不能很好地 限制用户对资源的使用,一个用户能够使用文件系统的整个磁盘空间,而UNIX基本不能阻止用户这样做.系统管理员最好用PS命令,记帐程序df和du周期 地检查系统.查出过多占用CUP的进程和大量占用磁盘的文件。
(4)防止丢失系统的完整性:这一安全方面与一个好系统管理员的实际工作(例如:周期地备份文件系统,系统崩溃后运行fsck检查,修复文件系统,当有新用户时,检测该用户是否可能使系统崩溃的软件)和保持一个可靠的操作系统有关(即用户不能经常性地使系统崩溃).
本文其余部分主要涉及前两个问题,第三个问题在"安全查帐"一节讨论。
2.超级用户
一些系统管理命令只能由超级用户运行.超级用户拥有其他用户所没有的特权,超级用户不管文件存取许可方式如何,都可以读,写任何文件,运行任何程序。系 统管理员通常使用命令: /bin/su 或以 root 进入系统从而成为超级用户.在后面文章中以#表示应敲入必须由超级用户运行的命令,用 $表示应敲入由所有其他用户运行的命令。
3.文件系统安全
(1)UNIX文件系统概述
UNIX文件系统是UNIX系统的心脏部分,提供了层次结构的目录和文件.文件系统将磁盘空间划分为每1024个字节一组,称为块(block)(也有 用512字节为一块的,如:SCO XENIX).编号从0到整个磁盘的最大块数.全部块可划分为四个部分,块0称为引导块,文件系统不用该块;块1称为专 用块,专用块含有许多信息,其中有磁盘大小和全部块的其它两部分的大小.从块2开始是i节点表,i节点表中含有i节点,表的块数是可变的,后面将做讨论. i节点表之后是空闲存储块(数据存储块),可用于存放文件内容.文件的逻辑结构和物理结构是十分不同的,逻辑结构是用户敲入cat命令后所看到的文件,用 户可得到表示文件内容的字符流.物理结构是文件实际上如何存放在磁盘上的存储格式.用户认为自己的文件是边疆的字符流,但实际上文件可能并不是以边疆的方 式存放在磁盘上的,长于一块的文件通常将分散地存放在盘上.然而当用户存取文件时,UNIX文件系统将以正确的顺序取各块,给用户提供文件的逻辑结构.当 然,在UNIX系统的某处一定会有一个表,告诉文件系统如何将物理结构转换为逻辑结构.这就涉及到i节点了.i节点是一个64字节长的表,含有有关一个文 件的信息,其中有文件大小,文件所有者,文件存取许可方式,以及文件为普通文件,目录文件还是特别文件等.在i节点中最重要的一项是磁盘地址表.该表中有 13个块号.前10个块号是文件前10块的存放地址.这10个块号能给出一个至多10块长的文件的逻辑结构,文件将以块号在磁盘地址表中出现的顺序依次取 相应的块。
当文件长于10块时又怎样呢?磁盘地址表中的第十一项给出一个块号,这个块号指出的块中含有256个块号,至此,这种方法满足 了至多长于266块的文件(272,384字节).如果文件大于266块,磁盘地址表的第十二项给出一个块号,这个块号指出的块中含有256个块号,这 256个块号的每一个块号又指出一块,块中含256个块号,这些块号才用于取文件的内容.磁盘地址中和第十三项索引寻址方式与第十二项类似,只是多一级间 接索引。
这样,在UNIX系统中,文件的最大长度是16,842,762块,即17,246,988,288字节,有幸是是UNIX系统 对文件的最大长度(一般为1到2M字节)加了更实际的限制,使用户不会无意中建立一个用完整个磁盘窨所有块的文件.文件系统将文件名转换为i节点的方法实 际上相当简单.一个目录实际上是一个含有目录表的文件:对于目录中的每个文件,在目录表中有一个入口项,入口项中含有文件名和与文件相应的i节点号.当用 户敲入cat xxx时,文件系统就在当前目录表中查找名为xxx的入口项,得到与文件xxx相应的i节点号,然后开始取含有文件xxx的内容的块。
(2)保持系统安全
. 考虑系统中一些关键的薄弱环节:
a. 系统是否有MODEM?电话号码是否公布
b. 系统是否连接到?还有什么系统也连接到该网络
c. 系统管理员是否使用未知来处或来处不可靠的程序
d. 系统管理员是否将重要信息放在系统中
e. 系统的用户是熟悉系统的使用还是新手
f. 用户是否很重视关心安全
g. 用户的管理部门是否重视安全
. 保持系统文件安全的完整性.检查所有系统文件的存取许可,任何具有SUID许可的程序都是非法者想偷换的选择对象.
. 要特别注意设备文件的存取许可.
. 要审查用户目录中具有系统ID/系统小组的SUID/SGID许可的文件.
. 在未检查用户的文件系统的SUID/SGID程序和设备文件之前,不要安装用户的文件系统.
. 将磁盘的备份存放在安全的地方.
. 设置口令时效,如果能存取UNIX的源码,将加密口令和信息移到仅对root可读的文件中,并修改系统的口令处理子程序.这样可增加口令的安全.修改 passwd,使passwd能删去口令打头和末尾的数字,然后根据spell词典和/etc/passwd中用户的个人信息,检查用户的新口令,也检查 用户新口令中子串等于登录名的情况.如果新口令是spell词典中的单词,或/etc/passwd中的入口项的某项值,或是登录名的子串,passwd 将不允许用户改变口令.
. 记录本系统的用户及其授权使用的系统.
. 查出久未使用的登录户头,并取消该户头.
. 确保没有无口令的登录户头.
. 启动记帐系统.
. 查出不寻常的系统使用情况,如大量的占用磁盘,大量的使用CPU时间,大量的进程,大量的使用su的企图,大量无效的登录,大量的到某一系统的网络传输,奇怪的uucp请求.
. 修改shell,使其等待了一定时间而无任务时终止运行.
. 修改login,使其打印出用户登录的最后时间,三次无效登录后,将通讯线挂起,以便系统管理员能检查出是否有人试图非法进入系统.确保login不让root在除控制台外的任何地方登录.
. 修改su,使得只有root能以过期口令通过su进入某一户头.
. 当安装来源不可靠的软件时,要检查源码和makefile文件,查看特殊的子程序调用或命令.
. 即使是安装来源可靠的软件,也要检查是否有SUID(SGID)程序,确认这些许可的确是必要的.如果可能,不要让这些程序具有系统ID(或组)的SUID(SGID)许可,而应该建立一个新用户(或给)供该软件运行.
. 如果系统在办公室中,门应上锁,将重要数据保存在软盘上或带上,并锁起来.
. 将secure,perms和任何其它做安全检查的shell程序存取许可置为仅执行,更好的是将这些shell程序存于可拆卸的介质上.
. 记住,只要系统有任何人都可调用的拨号线,系统就不可能真正的安全.系统管理员可以很好地防止系统受到偶然的破坏.但是那些有耐心,有计划,知道自己在干什么的破坏者,对系统直接的有预谋的攻击却常常能成功.
. 如果系统管理员认为系统已经泄密,则应当设法查出肇事者.若肇事者是本系统的用户,与用户的管理部门联系,并检查该用户的文件,查找任何可疑的文件,然后 对该用户的登录小心地监督几个星期.如果肇事者不是本系统的用户,可让本公司采取合法的措施,并要求所有的用户改变口令,让用户知道出了安全事故,用户们 应当检查自己的文件是否有被窜改的迹象.如果系统管理员认为系统软件已被更改了,就应当从原版系统带(或;软盘)上重装入所有系统软件,保持系统安全比道 歉更好.
(3)设备文件
UNIX系统与边在本系统上的各种设备之间的通讯,通过特别文件来实现就程序而言,磁盘是文件, MODEM是文件,甚至内存也是文件.所有连接到系统上的设备都在/dev目录中有一个文件与其对应.当在这些文件上执行I/O操作时,由UNIX系统将 I/O操作转换成实际设备的动作.例如,文件/dev/mem是系统的内存,如果cat这个文件,实际上是在终端显示系统的内存.为了安全起见,这个文件 对普通用户是不可读的.因为在任一给定时间,内存区可能含有用户登录口令或运行程序的口令,某部分文件的编辑缓冲区,缓冲区可能含有用ed -x命令解密后的文本,以及用户不愿让其他人存取的种种信息.在/dev中的文件通常称为设备文件,用ls /dev命令可以看看系统中的一些设备:
acuo 呼叫自动拨号器
console 系统控制台
dsknn 块方式操作磁盘分区
kmem 核心内存
mem 内存
lp 打印机
mto 块方式操作磁带
rdsknn 流方式操作的磁盘分区
rmto 流方式操作的磁带
swap 交换区
syscon 系统终端
ttynn 终端口
x25 网络端口
等等
(4)/etc/mknod命令
用于建立设备文件.只有root能使用这个命令建立设备文件.其参数是文件名,字母c或b分别代表字符特别文件或块特别文件,主设备号,次设备号.块特 别文件是像磁带,磁盘这样一些以块为单位存取数据的设备.字符特别文件是如像终端,打印机,MODEM,或者其它任何与系统通讯时,一次传输一个字符的设 备,包括模仿对磁盘进行字符方式存取的磁盘驱动器.主设备号指定了系统子程序(设备驱动程序),当在设备上执行I/O时,系统将调用这个驱动程序.调用设 备驱动程序时,次设备号将传递给该驱动程序(次设备规定具体的磁盘驱动器,带驱动器,信号线编号,或磁盘分区).每种类型的设备一般都有自己的设备驱动程 序.
文件系统将主设备号和次设备号存放在i节点中的磁盘地址表内,所以没有磁盘空间分配给设备文件(除i节点本身占用的磁盘区外).当程 序试图在设备文件上执行I/O操作时,系统识别出该文件是一个特别文件,并调用由主设备号指定的设备驱动程序,次设备号作为调用设备驱动程序的参数.
(5)安全考虑
将设备处理成文件,使得UNIX程序独立于设备,即程序不必一定要了解正使用的设备的任何特性,存取设备也不需要记录长度,块大小,传输速度,网络协议 等这样一些信息,所有烦人的细节由设备驱动程序去关心考虑,要存取设备,程序只须打开设备文件,然后作为普通的UNIX文件来使用.从安全的观点来看这样 处理很好,因为任何设备上进行的I/O操作只经过了少量的渠道(即设备文件).用户不能直接地存取设备.所以如果正确地设置了磁盘分区的存取许可,用户就 只能通过UNIX文件系统存取磁盘.文件系统有内部安全机制(文件许可).不幸的是,如果磁盘分区设备得不正确,任何用户都能够写一个程序读磁盘分区中的 每个文件,作法很简单:读一i节点,然后以磁盘地址表中块号出现的顺序,依次读这些块号指出的存有文件内容的块.故除了root以外,决不要使盘分区对任 何人可写.因为所有者,文件存取许可方式这样一些信息存放于i节点中,任何人只要具有已安装分区的写许可,就能设置任何文件的SUID许可,而不管文件的 所有者是谁,也不必用chmod()命令,还可避过系统建立的安全检查.
以上所述对内存文件mem,kmem和对换文件swap也是一样的.这些文件含有用户信息,一个"耐心"的程序可以将用户信息提取出来.要避免磁盘分区(以及其它设备)可读可写,应当在建立设备文件前先用umask命令设置文件建立屏蔽值.
一般情况下,UNIX系统上的终端口对任何人都是可写的,从而使用户可以用write命令发送信息.虽然write命令易引起安全方面的问题,但大多数用户觉得用write得到其他用户的信息很方便,所以系统将终端设备的存取许可设置成对所有用户可写.
/dev目录应当是755存取许可方式,且属root所有.
不允许除root外的任何用户读或写盘分区的原则有一例外,即一些程序(通常是数据库系统)要求对磁盘分区直接存取,解决这个问题的经验的盘分区应当由 这种程序专用(不安装文件系统),而且应当告知使用这种程序的用户,文件安全保护将由程序自己而不是UNIX文件系统完成.
(6)find命令
find命令用于搜索目录树,并对目录树上的所有文件执行某种操作,参数是目录名表(指出从哪些起点开始搜索),还可给出一个或多个选项,规定对每个文件执行什么操作.
find . -print 将列出当前工作目录下的目录树的每一个文件.find / -user bob -print 将列出在系统中可找到的属于bob用户的所有文件.
find /usr/bob -perm 666 -print 将列出/usr/bob目录树下所有存取许可为666的文件.若将666改为-666则将列出所有具有包含了666在内的存取许可方式的文件(如777).
find /usr/bob -type b -print 将列出/usr/bob目录树下所有块特别文件(c为字符特别文件).
find / -user root -perm -4000 -exec ls -l {} ; 是一个较复杂一点的命令,-exec COMMAND ;允许对所找到的每个文件运行指定的命令COMMAND.若COMMAND中含有{},则{}将由find所找到的文件名替换.COMMAND必须以;结 束.
以上举例介绍find的用法,各选项可组合使用以达到更强的功能.
(7)secure程序
系统管理员应 当做一个程序以定期检查系统中的各个系统文件,包括检查设备文件和SUID,SGID程序,尤其要注意检查SUID,SGID程序,检查 /etc/passwd和/etc/group文件,寻找久未登录的户头和校验各重要文件是否被修改.(源程序清单将在今后发表)
(8)ncheck命令
用于检查文件系统,只用一个磁盘分区名作为参数,将列出i节点号及相应的文件名.i节点相同的文件为建链文件.注意:所列出的清单文件名与mount命 令的第一个域相同的文件名前部分将不会列出来.因为是做文件系统内部的检查,ncheck并不知道文件系统安装点以上部分的目录.也可用此命令来搜索文件 系统中所有的SUID和SGID程序和设备文件,使用-s选项来完成此项功能
(9)安装和拆卸文件系统
UNIX文件系统是可安装的,这意味着每个文件系统可以连接到整个目录树的任意节点上(根目录总是被安装上的).安装文件系统的目录称为安装点./etc/mount命令用于安装文件系统,用这条命令可将文件系统安装在现有目录结构的任意处.
安装文件系统时,安装点的文件和目录都是不可存取的,因此未安装文件系统时,不要将文件存入安装点目录.文件系统安装后,安装点的存取许可方式和所有者将改变为所安装的文件根目录的许可方式和所有者.
安装文件系统时要小心:安装点的属性会改变!还要注意新建的文件,除非新文件系统是由标准文件建立的,系统标准文件会设置适当的存取许可方式,否则新文件系统的存取许可将是777!
可用-r选项将文件系统安装成只读文件系统.需要写保护的带驱动器和磁盘应当以这种方式来安装.
不带任何参数的/etc/mount可获得系统中所安装的文件系统的有关信息.包括:文件系统被安装的安装点目录,对应/dev中的哪个设备,只读或可读写,安装时间和日期等.
从安全的观点来讲,可安装系统的危险来自用户可能请求系统管理员为其安装用户自己的文件系统.如果安装了用户的文件系统,则应在允许用户存取文件系统 前,先扫描用户的文件系统,搜索SUID/SGID程序和设备文件.在除了root外任何人不能执行的目录中安装文件系统,用find命令或secure 列出可疑文件,删除不属用户所有的文件的SUID/SGID许可.
用户的文件系统用完后,可用umount命令卸下文件系统.并将安装点目录的所有者改回root,存取许可改为755.
(10)系统目录和文件
UNIX系统中有许多文件不允许用户写,如:/bin,/usr/bin,/usr/lbin,/etc/passwd, /usr/lib/crontab,/unix,/etc/rc,/etc/inittab这样一些文件和目录(大多数的系统目录),可写的目录允许移动 文件,会引起安全问题.系统管理员应经常检查系统文件和目录的许可权限和所有者.可做一个程序根据系统提供的规则文件(在/etc/permlist文件 中)所描述的文件所有者和许可权规则检查各文件.(源程序清单将在今后发表)
注意:如果系统的安全管理不好,或系统是新安装的,其安全程 序不够高,可以用make方式在安全强的系统上运行上述程序,将许可规则文件拷贝到新系 统来,再以设置方式在新系统上运行上述程序,就可提高本系统的安 全程序.但要记住,两个系统必须运行相同的UNIX系统版本
4.作为root运行的程序
在UNIX系统中,有些程序由系统作为root进程运行.这些程序并不总是具有SUID许可,因为其不少程序仅由root运行,系统管理员需要清楚这些程序做什么,以及这些程序还将运行其它什么程序.
(1)启动系统
当某些UNIX系统(如SCO UNIX/XENIX)启动时,是以被称为单用户的方式运行,在这种方式中普通用户不能登录,唯有的进程是init,swapper,以及一些由系统管理 员从控制台运行的进程.UNIX系统的单用户方式启动,使系统管理员能在允许普通用户登录以前,先检查系统操作,确保系统一切正常,当系统处于单用户方式 时,控制台作为超级用户,命令揭示是"#",有些UNIX系统不要确认超级用户口令就认可控制台是root,给出#提示符.这就可能成为一个安全问题.
(2)init进程
UNIX系统总是以某种方式或称为某种级运行,系统有若干种运行级,这些运行级由init进程控制. UNIX系统启动时以单用户方式运行,也叫1级或S级.对于其他用户登录进入系统,UNIX有一种多用户运行方式,也叫2级init进程控制系统运行级, 它读入文件/etc/inittab,该文件详细地规定了哪些进程在哪一级运行.当root敲入init n(数字),系统就进入n级.init读该文件以确定终止哪些进程,启动哪些进程.
有效的运行级的数值是从0到6与s.
注 意:由init建立的进程以UID为0运行(root)从/etc/inittab运行的程序也作为root运行,所以系统管理员要确保自己知道 /etc/inittab中的程序做什么工作,确保这些程序以及这些程序所在的目录直到/和/etc/inittab除root外无人可写.
(3)进入多用户
当UNIX系统进入多用户方式时,将寝化一系列事件,接着开始执行gettys,允许其他用户登录进入系统.如果再看看/etc/inittab文件, 会看到gettys定义在运行级2,至少三个shell程/etc/brc,/etc/bcheckrc,/etc/rc*也定义在运行级2.这些程序都 在gettys启动前运行.这些shell程序作为root运行,也不能仅对root可写还应当检查shell程序运行的命令,因为这些命令也将作为 root运行.
(4)shutdown命令
用shutdown命令关系统,shutdown shell程序发送警告通知所有用户离开系统,在"给定的期限时间"到了后,就终止进程,拆卸文件系统,进入单用户方式或关机状态.一旦进入单用户方式,所有的gettys停止运行,用户再不能登录.
进入关机状态后可将系统关电.
shutdown仅能由作为root登录的用户从系统控制台上运行.所以任何的shutdown运行的命令仅能对root可写.
(5)系统V的cron程序
cron在UNIX系统是多用户方式时运行,根据规定的时间安排执行指定的命令,每隔一分钟检查一次文件/usr/lib/crontab,寻找是否有应当运行的程序?
如果找到要运行的程序,就运行该程序,否则睡眠等待一分钟.实际的/usr/lib/crontab用于根据全天的规则时间表运行程序,也可在夜晚运行 白天不愿运行怕降低其他用户速度的程序.通常由cron运行的程序是如记帐,存文件这样的程序.cron一般在系统进入多用户后由/etc/rc启动,当 shutdown运行killall命令时便终止运行.由cron运行的程序作为root,所以应当注意放什么程序在crontab中,还要确保 /usr/lib/crontab和该表中列出的任何程序对任何人不可写.
如果用户需要由cron执行一个程序,系统管理员可用su命令在crontab表中建立一个入口,使用户的程序不能获得root的权限.
(6)系统V版本2之后的cron程序
在系统V版本2中,cron被修改成允许用户建立自己的crontab入口,/usr/lib/crontab文件不再存在,由目录 /usr/spool/cron/crontabs中的文件代替.这些文件的格式与crontab相同,但每个文件与系统中的一个用户对应,并以某用户的 名义由cron运行.
如果想限制能建立crontab的用户,可在文件/usr/lib/cron/cron.allow文件中列出允许 运行crontab命令的用户.任何未列于该文件的用户不能运行crontab.反之,若更愿意列出不允许运行crontab命令的用户,则可将他们列入 /usr/lib/cron/cron.deny文件中,未列于该文件的其他用户将被允许建立crontab.
注意:若两个文件都存在, 系统将使用cron.allow,忽略cron.deny.如果两个文件都不存在,则只有root可运行crontab.所以,若要允许系统中的所有用户 都可运行crontab命令,应当建立一个空的cron.deny文件,如果cron.allow也存在,则删除该文件.
这个版本的 cron命令的安全程度比前一个高,因为用户只能看自己的crontab,系统管理员也不必担心其他用户的程序是否会作为root运行,由于允许每个系统 登录用户有自己的crontab,也简化了对程序必须由cron运行,但不必作为root运行的系统程序的处理.
必须确保root的crontab文件仅对root可写,并且该文件所在的目录及所有的父目录也仅对root可写.
(7)/etc/profile
每当用户(包括root在内)登录时,由shell执行/etc/profile文件,应确保这个文件以及从这个文件运行的程序和命令都仅对root可 写. 5./etc/passwd文件/etc/passwd文件是UNIX安全的关键文件之一.该文件用于用户登录时校验用户的口令,当然应当仅对root可 写.文件中每行的一般格式为:LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL
每行的头两项是登录名和加密后的口令,后面的两个数是UID和GID,接着的一项是系统管理员想写入的有关该用户的任何信息,最后两项是两个路径名:一个是分配给用户的HOME目录,第二个是用户登录后将执行的shell(若为空格则缺省为/bin/sh).
Linux下的n个多线程下载工具
‘MyGet
MyGet目标设计成一个可扩展的,拥有丰富界面的多线程下载工具,它支持HTTP、FTP、HTTPS等协议。 在http://myget.sourceforge.net/release/myget-0.1.0.tar.bz2下载其最新版本0.1.0,
下载后使用如下命令安装:
#tar jxvf myget-0.1.0.tar.bz2
#cd myget-0.1.0
#./configure
#make
#make install
MyGet命令格式如下: #mytget [选项] [下载地址]
常用的选项:
-d [目录]:指定下载到的文件在本地存放的位置,默认当前目录。
-f [文件]:指定下载到本地后的新文件名称。
-h 帮助选项。
-n [线程数]:下载线程数量,默认为4个。
-x [代理服务器地址]:设置代理服务器地址,如“-x http://user:pass@host:port”。
-b Show the debug message
-c Set the retry count to [num], no limit when "0", the default is "99"
-i Set the ftp retry interval to [num] seconds, the default is "5"
-r Include `Referer: [URL]” header in HTTP request.
-t Set the connection timeout to [num] seconds, the default is "30"
-v Show the version of the myget and exit
-x Set the proxy [URL]
[root@localhost myget-0.1.0]# mytget -n 10 -x http://192.168.0.5:8080 -d ./ http://…./myget-0.1.0.tar.bz2
Begin to download: myget-0.1.0.tar.bz2
Filesize: 222K
100%========================] [228K] [5.6K/s] [ETA:00:-1]Download successfully in 00:11 [==========================================================] [228K] [5.6K/s] [ETA:00:-1]Download successfully in 00:11
===========================================================
Axel [推荐]
Axel是命令行下的多线程下载工具,支持断点续传,速度通常情况下是Wget的几倍。
可在http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=mydown&did=1697下载。
下载后使用如下命令编译安装:
#tar zxvf axel-1.0a.tar.gz
#cd axel-1.0a/
#./configure
#make
#make install
基本的用法如下: #axel [选项] [下载目录] [下载地址]
[root@localhost axel-1.0a]# axel –help
Usage: axel [options] url1 [url2] [url...]
-s x Specify maximum speed (bytes per second)
-n x Specify maximum number of connections
-o f Specify local output file
-S [x] Search for mirrors and download from x servers
-N Just don”t use any proxy server
-q Leave stdout alone
-v More status information
-a Alternate progress indicator
-h This information
-V Version information
一个典型下载如下: #alex -n 10 -o /home/kennycx/ http://xxxx/jre.tar.gz
用10线程将指定路径的文件下载到/home/kennycx/这个目录下。
#设置代理
[root@localhost axel-1.0a]# export HTTP_PROXY=192.168.0.5:8080
#开始下载
[root@localhost axel-1.0a]# axel -n 10 -vo . http://xxx/xx.tar.gz
Initializing download: http://xxx/xx.tar.gz
File size: 1945089 bytes
Opening output file ./d4x-2.5.6.tar.gz
Starting download
[ 0%] ………. ………. ………. ………. ………. [ 15.3KB/s]
[ 2%] ………. ………. ………. ………. ………. [ 20.5KB/s]
[ 5%] ………. ………. ………. ………. ………. [ 26.3KB/s]
[ 7%] ………. ………. ………. ………. ………. [ 30.1KB/s]
[ 10%] ………. ………. ………. ………. ………. [ 34.0KB/s]
[ 13%] ………. ………. ………. ………. ………. [ 36.7KB/s]
[ 15%] ………. ………. ………. ………. ………. [ 39.0KB/s]
[ 18%] ………. ………. ………. ………. ………. [ 41.7KB/s]
[ 21%] ………. ………. ………. ………. ………. [ 42.7KB/s]
[ 23%] ………. ………. ………. ………. ………. [ 43.2KB/s]
[ 26%] ………. ………. ………. ………. ………. [ 44.6KB/s]
[ 28%] ………. ………. ………. ………. ………. [ 46.6KB/s]
[ 31%] ………. ………. ………. ………. ………. [ 46.6KB/s]
[ 34%] ………. ………. ………. ………. ………. [ 46.2KB/s]
[ 36%] ………. ………. ………. ………. ………. [ 47.5KB/s]
[ 39%] ………. ………. ………. ………. ………. [ 47.3KB/s]
[ 42%] ………. ………. ………. ………. ………. [ 47.9KB/s]
[ 44%] ………. ………. ………. ………. ………. [ 48.0KB/s]
[ 47%] ………. ………. ………. ………. ………. [ 47.2KB/s]
[ 50%] ………. ………. ………. ………. ………. [ 47.6KB/s]
[ 52%] ………. ………. ………. ………. ………. [ 47.2KB/s]
[ 55%] ………. ………. ………. ………. ………. [ 47.5KB/s]
[ 57%] ………. ………. ………. ………. ………. [ 47.8KB/s]
[ 60%] ………. ………. ………. ………. ………. [ 47.6KB/s]
[ 63%] ………. ………. ………. ………. ………. [ 47.8KB/s]
[ 65%] ………. ………. ………. ………. ………. [ 48.0KB/s]
[ 68%] ………. ………. ………. ………. ………. [ 48.0KB/s]
[ 71%] ………. ………. ………. ………. ………. [ 48.3KB/s]
[ 73%] ………. ………. ………. ……….
Connection 1 finished
,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, …….
Connection 3 finished
,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,… [ 48.1KB/s]
[ 76%] ………. ………. ………. ………. ………. [ 48.2KB/s]
[ 78%] ………. ………. ………. ………. ………. [ 47.9KB/s]
[ 81%] ………. ………. ………. ………. ………. [ 47.8KB/s]
[ 84%] ………. …….
Connection 6 finished
,,,,,,,,,, ,,,,,,,… ……….
Connection 5 finished
,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ……….
Connection 2 finished
,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ………. [ 47.1KB/s]
[ 86%] ….
Connection 8 finished
,,,,…..
Connection 4 finished
,,,,,,,,,. ………. ………. ………. ………. [ 43.6KB/s]
[ 89%] ………. ………. ………. ………. .
Connection 9 finished
,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,……
Connection 0 finished
,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,, ,,,,,,,… [ 40.3KB/s]
[ 92%] ………. ………. ………. ………. ………. [ 35.0KB/s]
[ 94%] ………. ………. ………. ………. ………. [ 27.1KB/s]
[ 97%] ………. ………. ………. ………. ………
Downloaded 1899.5 kilobytes in 1:14 seconds. (25.60 KB/s)
=========================================================
D4X
Downloader For X(文中简称为D4X)是Linux下功能强大的图形化下载工具。
支持HTTP与FTP协议,
具有类似NetAnt和FlashGet等多线程、
断点续传下载
具有连接超时断点续传
记录下载日志
模拟下载
链接拖拽下载
自动复制剪贴板链接到下载地址栏中等功能。
1.下载和安装 D4X的下载地址为http://www.krasu.ru/soft/chuchelo/files/d4x-2.5.0final.tar.gz,下载后使用如下命令安装:
#tar zxvf d4x-2.5.0final.tar.gz
#cd d4x-2.5.0final
#./configure
#make
#make install
成功安装后,运行“d4x”命令便可直接运行。它的界面如图3所示,和FlashGet有点相像吧。
2.使用和设置
D4X的使用十分简单,下载文件时,只需在“添加新的下载任务”对话框中输入下载文件地址即可。如果下载地址需要用户名和密码,可在这个对话框中直接输入。如要计划下载,可在时间选项中设定下载时间。此外,在下载任务选项中,可设定一些下载的配置,如下载文件默认目录、默认线程个数、界面风格等。值得一提是代理选项,可指定默认的代理服务器和SOCKS5代理,具体设置如图4所示。
=========================================================
mms协议流媒体下载工具
[来源]http://www.5anet.com/?module=bbs&object=bbs&action=showdetail&id=13
[作者]黄叶
ASFR+ 是一个专门用来下载 ASF、Wma、Wmv 格式流文件的工具.此软件是国内的 Yaan2 同志在ASFRecorder 代码的基础上加以改进做出的,这个软件在ASFRecorder 的基础上加上了分断下载、修复损坏 ASF 文件、多线程下载ASF文件,断点续传等功能。唯一遗憾就是没有GUI界面。
安装方法:tar zxvf asfrplus.tgz
cd asfrplus
make
在asfrplus目录会生成一个文件名为"asfr"的可执行文件。
下面是它的基本用法:
进入asfrplus的目录,输入:
./asfr mms://www.hehe.com/***.wma -t 3
使用3个线程下载***.wma
./asfr -P http://proxy:8080 mms://www.hehe.com/***.wma
使用代理服务器proxy:8080下载***.wma
./asfr mms://www.hehe.com/***.wma -T
强制用MMST协议下载***.wma
退出程序:Ctrl+Break
大小: 47KB
下载: http://www.5anet.com/software/asfrplus.tgz
=========================================================
1)图形界面下载工具
D)WxDfast
WxDfast也是一个图形化的下载工具,支持多线程、断点续传等功能,最大特点是下载速度快。可在http://heanet.dl.sourceforge.net/sourceforge/dfast/wxdfast-0.2.1-src.tar.gz下载WxDfast的最新版本。然后使用如下命令进行安装:
#tar jxvf wxdfast-0.2.1d.tar.bz2
#cd wxdfast-0.2.1-src
#make install
在终端下运行“./wxdfast”命令便可运行程序。WxDfast界面非常简洁,其界面如图5所示。全英文界面使用起来可能不如KGet方便,好在它的操作和KGet、D4X基本相同,大家可参照学习,这里就不赘述了。
E)Aria
Aria是个小巧的多线程下载工具,简单易用的界面用起来得心应手。
可在http://aria.rednoah.com/download_e.html下载最新版本,然后使用如下命令进行编译安装:
#./configure
#make
#make install 成功安装后直接运行如下命令便可运行Aria:
#aria&
Aria的界面如图6所示,它的操作和D4X差不多,可参照使用。
2)命令行下载工具
对于喜欢命令行操作及追求高效率、高速度下载的朋友,推荐使用命令行下载工具。命令行工具不但使用方便,而且大多具有很高的下载速度及下载效率,尤其适合于大批量下载文件。下面就为大家详细介绍一下这些工具。
A)Wget
Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具。
如果没有安装可在http://www.gnu.org/software/wget/wget.html下载最新版本,并使用如下命令编译安装:
#tar zxvf wget-1.9.1.tar.gz
#cd wget-1.9.1
#./configure
#make
#make install
它的用法很简单,Wget使用格式如下: #wget [选项] [下载地址]
Wget常用参数
◆-b:后台下载,Wget默认的是把文件下载到当前目录。
◆-O:将文件下载到指定的目录中。
◆-P:保存文件之前先创建指定名称的目录。
◆-t:尝试连接次数,当Wget无法与服务器建立连接时,尝试连接多少次。
◆-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。
HTTP和FTP代理功能,编辑其配置文件“/etc/wgetrc”即可。具体方法是使用VI编辑器打开上述文件,将 “http_proxy”和“ftp_proxoy”前的#去掉,然后在这两项后输入相应的代理服务器的地址,保存退出即可。
Wget还可下载整个网站,如下载http://man.chinaunix.net整个Man手册中心。只需输入如下命令即可: #wget -r -p -np -k http://man.chinaunix.net
其中-r 参数是指使用递归下载,
-p 是指下载所有显示完整网页所以需要的文件,如图片等,
-np 是指不搜索上层目录,-k则是指将绝对链接转换为相对链接。
B)Prozilla
Prozilla也是一个十分流行的命令行下载工具,支持多线程下载和断点续传功能, 但未找到代理支持功能
可到http://prozilla.genesys.ro/下载最新的1.3.7.4安装包,下载安装包后使用如下命令进行安装:
#tar zxvf prozilla-1.3.7.4.tar.gz
#cd prozilla-1.3.7.4
#./configure
#make
#make install Prozilla
命令格式如下: #proz [参数] [下载地址]
常用的选项有:
◆-k=n :设置n个线程下载。不加此参数指定线程数,Prozilla默认为4线程下载。
◆-P, –directory-prefix=DIR:指定将下载的文件保存在DIR/目录。
◆-r, –resume:继续下载未完成的文件。如果要指定线程数下载可用如下命令: #proz -k=5 http://64.12.204.21
/pub/mozilla.org/firefox/releases/1.0/linux-i686/zh-CN/firefox-1.0.installer.tar.gz
这样便以5线程进行文件的下载,并将文件保存到当前目录。
和Wget一样,Prozilla也提供了续传功能,下载中断后,重新输入上述命令,就会出现提示续传,按R键就可继续下载了。
D)Linuxdown
Linuxdown是一个命令行多线程下载工具,最多可支持30线程的下载, 但未找到代理支持功能
在https://gro.clinux.org/frs/download.php/1015/linuxdown-1.0.0.tar.gz下载最新的1.1.0版本。
然后使用如下命令进行编译安装:
#tar zxvf linuxdown-1.1.0.tar.gz
#cd dandelion/
#make
#make install linuxdown
格式为: #linuxdown [下载地址] [选项] [线程数]
需要注意的是下载地址和选项都需要西文引号括起来,线程数不可超过30个。一个典型的下载如下:
#linuxdown "http://xxx/xxx.zip" 30
putty的扩展pitty
一直用putty来连接远端服务器,时间一长也成了习惯,最近看到了一个软件——pietty初试了一下,果然不错。不多说了,反正不大,感兴趣自己下载一个看看吧。
新手网管十一杀招
现在仍然有很多人这么认为,只要网络中使用了一层安全就够了,事实并不是这样,一层根本挡不住病毒和黑客的侵袭。接下来我将逐点介绍网络安全的多点做法。
第一、物理安全
除了要保证要有电脑锁之外,我们更多的要注意防火,要将电线和网络放在比较隐蔽的地方。我们还要准备UPS,以确保网络能够以持续的电压运行,在电子学中,峰值电压是一个非常重要的概念,峰值电压高的时候可以烧坏电器,迫使网络瘫痪,峰值电压最小的时候,网络根本不能运行。使用UPS可以排除这些意外。另外我们要做好防老鼠咬坏网线。
第二、系统安全(口令安全)
我们要尽量使用大小写字母和数字以及特殊符号混合的密码,但是自己要记住,我也见过很多这样的网管,他的密码设置的的确是复杂也安全,但是经常自己都记不来,每次都要翻看笔记本。另外我们最好不要使用空口令或者是带有空格的,这样很容易被一些黑客识破。
我们也可以在屏保、重要的应用程序上添加密码,以确保双重安全。
第三、打补丁
我们要及时的对系统补丁进行更新,大多数病毒和黑客都是通过系统漏洞进来的,例如今年五一风靡全球臭名昭著的振荡波就是利用了微软的漏洞ms04-011进来的。还有一直杀不掉的SQLSERVER上的病毒slammer也是通过SQL的漏洞进来的。所以我们要及时对系统和应用程序打上最新的补丁,例如IE、OUTLOOK、SQL、OFFICE等应用程序。
另外我们要把那些不需要的服务关闭,例如TELNET,还有关闭Guset帐号等。
第四、安装防病毒软件
病毒扫描就是对机器中的所有文件和邮件内容以及带有.exe的可执行文件进行扫描,扫描的结果包括清除病毒,删除被感染文件,或将被感染文件和病毒放在一台隔离文件夹里面。所以我们要对全网的机器从网站服务器到邮件服务器到文件服务器知道客户机都要安装杀毒软件,并保持最新的病毒定义码。我们知道病毒一旦进入电脑,他会疯狂的自我复制,遍布全网,造成的危害巨大,甚至可以使得系统崩溃,丢失所有的重要资料。所以我们要至少每周一次对全网的电脑进行集中杀毒,并定期的清除隔离病毒的文件夹。
现在有很多防火墙等网关产品都带有反病毒功能,例如飞塔Fortigate防火墙就是,她具有防病毒的功能。
第五、应用程序
我们都知道病毒有超过一半都是通过电子邮件进来的,所以除了在邮件服务器上安装防病毒软件之外,还要对PC机上的outlook防护,我们要提高警惕性,当收到那些无标题的邮件,或是你不认识的人发过来的,或是全是英语例如什么happy99,money,然后又带有一个附件的邮件,建议您最好直接删除,不要去点击附件,因为百分之九十以上是病毒。我前段时间就在一个政府部门碰到这样的情况,他们单位有三个人一直收到邮件,一个小时竟然奇迹般的收到了2000多封邮件,致使最后邮箱爆破,起初他们怀疑是黑客进入了他们的网络,最后当问到这几个人他们都说收到了一封邮件,一个附件,当去打开附件的时候,便不断的收到邮件了,直至最后邮箱撑破。最后查出还是病毒惹的祸。
除了不去查看这些邮件之外,我们还要利用一下outlook中带有的黑名单功能和邮件过虑的功能。
很多黑客都是通过你访问网页的时候进来的,你是否经常碰到这种情况,当你打开一个网页的时候,会不断的跳出非常多窗口,你关都关不掉,这就是黑客已经进入了你的电脑,并试图控制你的电脑。
所以我们要将IE的安全性调高一点,经常删除一些cookies和脱机文件,还有就是禁用那些Active X的控件。
第六、代理服务器
代理服务器最先被利用的目的是可以加速访问我们经常看的网站,因为代理服务器都有缓冲的功能,在这里可以保留一些网站与IP地址的对应关系。
要想了解代理服务器,首先要了解它的工作原理:
环境:局域网里面有一台机器装有双网卡,充当代理服务器,其余电脑通过它来访问网络。
1、内网一台机器要访问新浪,于是将请求发送给代理服务器。
2、代理服务器对发来的请求进行检查,包括题头和内容,然后去掉不必要的或违反约定的内容。
3、代理服务器重新整合数据包,然后将请求发送给下一级网关。
4、新浪网回复请求,找到对应的IP地址。
5、代理服务器依然检查题头和内容是否合法,去掉不适当的内容。
6、重新整合请求,然后将结果发送给内网的那台机器。
由此可以看出,代理服务器的优点是可以隐藏内网的机器,这样可以防止黑客的直接攻击,另外可以节省公网IP。缺点就是每次都要经由服务器,这样访问速度会变慢。另外当代理服务器被攻击或者是损坏的时候,其余电脑将不能访问网络。
第七、防火墙
提到防火墙,顾名思义,就是防火的一道墙。防火墙的最根本工作原理就是数据包过滤。实际上在数据包过滤的提出之前,都已经出现了防火墙。
数据包过滤,就是通过查看题头的数据包是否含有非法的数据,我们将此屏蔽。
举个简单的例子,假如体育中心有一场刘德华演唱会,检票员坐镇门口,他首先检查你的票是否对应,是否今天的,然后撕下右边的一条,将剩余的给你,然后告诉你演唱会现场在哪里,告诉你怎么走。这个基本上就是数据包过滤的工作流程吧。
你也许经常听到你们老板说:要增加一台机器它可以禁止我们不想要的网站,可以禁止一些邮件它经常给我们发送垃圾邮件和病毒等,但是没有一个老板会说:要增加一台机器它可以禁止我们不愿意访问的数据包。实际意思就是这样。接下来我们推荐几个常用的数据包过滤工具。
最常见的数据包过滤工具是路由器。
另外系统中带有数据包过滤工具,例如Linux TCP/IP中带有的ipchain iptable等
windows 2000带有的TCP/IP Filtering筛选器等,通过这些我们就可以过滤掉我们不想要的数据包。
防火墙也许是使用最多的数据包过滤工具了,现在的软件防火墙和硬件防火墙都有数据包过滤的功能。接下来我们会重点介绍防火墙的。
防火墙通过一下方面来加强网络的安全:
1、策略的设置
策略的设置包括允许与禁止。允许例如允许我们的客户机收发电子邮件,允许他们访问一些必要的网站等。例如防火墙经常这么设置,允许内网的机器访问网站、收发电子邮件、从FTP下载资料等。这样我们就要打开80、25、110、21端口,开HTTP、SMTP、POP3、FTP等。
禁止就是禁止我们的客户机去访问哪些服务。例如我们禁止邮件客户来访问网站,于是我们就给他打开25、110,关闭80。
2、NAT
NAT,即网络地址转换,当我们内网的机器在没有公网IP地址的情况下要访问网站,这就要用到NAT。工作过程就是这样,内网一台机器192.168.0.10要访问新浪,当到达防火墙时,防火墙给它转变成一个公网IP地址出去。一般我们为每个工作站分配一个公网IP地址。
防火墙中要用到以上提到的数据包过滤和代理服务器,两者各有优缺点,数据包过滤仅仅检查题头的内容,而代理服务器除了检查标题之外还要检查内容。当数据包过滤工具瘫痪的时候,数据包就都会进入内网,而当代理服务器瘫痪的时候内网的机器将不能访问网络。
另外,防火墙还提供了加密、身份验证等功能。还可以提供对外部用户VPN的功能。
第八、DMZ
DMZ本来是朝鲜的南北大战的时候,提出的停火带。但是在我们网络安全里面,DMZ来放置例如网站服务器、邮件服务器、DNS服务器、FTP服务器等。
我们可以通过DMZ出去,这样就为黑客进来提供了通道,所以我们有必要添加第二台防火墙,来加强我们的网络安全。
这样带来的麻烦就是从网上下载,首先要来验证安全性,下载的时候要等一会。
第九、IDS
我们使用了防火墙和防病毒之后,使用IDS来预防黑客攻击。
IDS,就是分析攻击事件以及攻击的目标与攻击源,我们利用这些可以来抵御攻击,以将损坏降低到最低限度。
目前IDS还没有象防火墙那样用的普遍,但是这个也将是未来几年的趋势,现在一些政府已经开始使用。
国内著名的IDS厂家例如金诺网安、中联绿盟、启明星辰。
第十、VPN
以前我们都是通过电话和邮件来和外地的分公司联系。分公司从总公司找一些文件都是通过拨号上网,即使用点对点协议,这样安全,但是花费很高。VPN可以解决这一点。
第十一、分析时间日志与记录
我们要经常的来查看防火墙日志、入侵检测的日志以及查看防病毒软件的更新组件是否最新等。
用LDAP实现Apache验证
在使用APACHE的时候有时会接触到验证的问题,而APACHE本身自带的验证已经是非常全的了,习惯上直接利用apache的mysql验证模块实现,但这里我们用APACHE与LDAP整合来说明一下APACHE的验证.
1.安装openldap
openldap-stable-20040329.tgz http://www.openldap.org
db-4.1.25.NC.tar.gz http://www.sleepycat.com
gunzip < db-4.1.25.NC.tar.gz |tar xvf -
cd db-4.1.25.nc
./configure
make
make install
gunzip < openldap-stable-20040329.tgz |tar xvf -
cd openldap-2.1.29
CPPFLAGS="-I/usr/local/BerkeleyDB.4.1/include" LDFLAGS="-L/usr/local/BerkeleyDB.4.1/lib" ./configure –prefix=/usr/local/openldap –enable-ldbm
make depend
make
make test
make install
PATH=$PATH:/usr/local/openldap/bin
export PATH
修改/usr/local/openldap/etc/openldap/slapd.conf
include /usr/local/openldap/etc/openldap/schema/core.schema
include /usr/local/openldap/etc/openldap/schema/corba.schema
include /usr/local/openldap/etc/openldap/schema/cosine.schema
include /usr/local/openldap/etc/openldap/schema/inetorgperson.schema
include /usr/local/openldap/etc/openldap/schema/java.schema
include /usr/local/openldap/etc/openldap/schema/misc.schema
include /usr/local/openldap/etc/openldap/schema/nis.schema
include /usr/local/openldap/etc/openldap/schema/openldap.schema
database bdb
suffix "dc=ldaptest,dc=com"
rootdn "cn=root,dc=ldaptest,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(
and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw 123456
建立basedn.ldif文件
dn: dc=ldaptest,dc=com
dc: ldaptest
objectClass: domain
建立userdn.ldif
dn:cn=user1,dc=ldaptest,dc=com
cn: user1
sn: USER1
uid: user1
userPassword: user1
objectClass: inetOrgPerson
dn:cn=user2,dc=ldaptest,dc=com
cn: user2
sn: USER2
uid: user2
userPassword: user2
objectClass: inetOrgPerson
dn:cn=user3,dc=ldaptest,dc=com
cn: user3
sn: USER3
uid: user3
userPassword: user3
objectClass: inetOrgPerson
dn:cn=user4,dc=ldaptest,dc=com
cn: user4
sn: USER4
uid: user4
userPassword: user4
objectClass: inetOrgPerson
启动LDAP服务器
/usr/local/openldap/libexec/slapd
添加记录:
ldapadd -D "cn=root,dc=ldaptest,dc=com" -w 123456 -f /basedn.ldif
ldapadd -D "cn=root,dc=ldaptest,dc=com" -w 123456 -f /userdn.ldif
2.安装apr-1.2.2
./configure
make
make install
3.安装apr-util-1.2.2
./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr –with-ldap –with-ldap-include=/usr/local/openldap/include
–with-ldap-lib=/usr/local/openldap/lib
make
make install
4.安装openssl
./configure
make
make install
5.安装apache-2.2.0(安装再根下的apache2的目录下)
./configure –prefix=/apache2 –enable-so –enable-authnz-ldap –enable-ldap
make
make install
6.配置httpd.conf
将ServerNmae 修改为自己本机的域名或者IP
在最后一行加入 include conf/app_auth.conf
7.配置/apache2/conf/app_auth.conf
<Location />
AuthType basic
AuthName "private area"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL ldap://localhost:389/dc=ldaptest,dc=com?uid?sub?(objectClass=*)
require ldap-user "user1"
#require ldap-user "user3"
#require ldap-user "user4"
#require ldap-user "user2"
require valid-user
</Location>
8.当配置完所有的软件以后,就可以启动APACHE了
/apache2/bin/apachectl start
这时候配置的是默认情况,也就是对整个服务器各目录都进行验证,如果需要对单独的地方进行验证,可以查阅Location的用法
应对DoS/DDoS攻击的十条军规
DoS是“拒绝服务”(Denial of Service)的缩写,它是指故意攻击网络协议的缺陷或直接通过野蛮手段耗尽受攻击目标的资源,目的是让目标计算机或网络无法提供正常的服务,甚至系统 崩溃。早期的DoS攻击都需要相当大的带宽资源来实现,而以个人为单位的“入侵者”往往没有这样的条件。但是后来攻击者发明了分布式的攻击方式,即利用工 具软件集合许多的网络带宽来同时对同一个目标发动大量的攻击请求,这就是DDoS(Distributed Denial Of Service)攻击。简而言之,DDoS攻击是由“入侵者”集中控制、发动的一组DoS攻击的集合,非常难以抵挡。
很多企业网站和个人网站都不止一次地遭遇过DoS/DDoS攻击,由此也积累了一些“亡羊补牢”的经验。前车之鉴能够提醒我们注意:“为什么我 们这样容易受到攻击?如何才能防患于未然降低受攻击的风险?”下面列出的就是笔者收集的十个预防、应对DoS/DDoS攻击的有效方法:
1. 保留并定期查看各种日志以助分析各种情况。
日志看起来很枯燥,而且绝大多数时候没什么作用;可一旦意外发生,它就能为你提供很重要的信息参考,每天下班前看一眼日志吧。
2. 预先建立标准操作规程和应急操作规程。
前者简称SOPs,后者是EOPs,预先建立好规程并且处变不惊是一个合格网管员的基本素养。
3. 要有居安思危的思想准备。
遭遇攻击往往没有先兆,有备无患才是长治久安之计。
4. 网管员必须熟悉所有的配置细节。
如果你是半路接手工作,一定要向前任咨询、核对清楚所有的工作细节。
5. 在本地和外网分别进行安全性测试。
“自测”不仅是演习,多给自己出一些安全性测试的难题能起到知己知彼的效用。
6. 提防错误配置造成的隐患。
错误配置通常发生在硬件搭配、服务器系统或者应用程序中,有时候问题还很隐蔽。通过反复检查来确保路由器、交换机等网络连接设备和服务器系统都进行了正确的配置,这样才会减小各种错误和入侵、攻击发生的可能性。
7. 要熟悉过去的一些配置细节。
8. 一旦发现异常,要时刻警惕。
网管员最要不得的就是麻痹大意,凡事将就。
9. 把握好网络架构的繁简程度和系统开销、安全风险之间的平衡。
一味地添加设备并不等同于提高防护机制,网络系统一样是因简就奢易,因奢就简难。
10. 通过安全防护来降低黑客攻击的风险,比如安装防火墙等安全设备。

DB2双机HA完整方案
1. 摘要
本文档介绍在SuSE Linux Enterprise Server v8.0(SLES 8)上安装配置DB2 UDB Enterprise Serverv8.2双机互备的高可靠性方案的基本步骤。该方案配合采用SLES的卷管理器(LVM)和Veritas Cluster Server v2.2(VCS 2.2)作为HA实现组件。
2. 概述
本文档假定读者已经理解双机互备的HA方案的基本概念。
2.1. 双机互备HA方案的基本步骤
建立一个双机互备方案的基本步骤是:
1. 确定基本参数(如IP地址、存储空间,等等。本方案的参数均为示范参数,读者需要根据实际环境替换)
2. 配置共享存储(本方案不涉及共享存储方案的配置)
3. 在两台节点上分别安装应用(在本方案中是DB2 UDB)
4. 在一台节点上对应用作初始配置(在本方案中是在共享存储上建立DB2数据库)
5. 在另一台节点上引入共享存储上的配置(在本方案中是对共享存储上的数据库做catalog操作)
6. 在两台节点上分别手动测试应用
7. 配置HA Cluster管理软件(在本方案中是VCS)
8. 测试HA Cluster管理软件可以成功接管资源
2.2. 假设
本文档假定采用以下示例环境,SLES与VCS已在节点上正确安装,SLES的共享存储已经正确连接,VCS的心跳连接已经正确配置。
2.2.1. 存储
各节点上需要足够的本地磁盘空间,来安装DB2 UDB的可执行代码及实例。
本方案需要足够的共享存储空间,来放置数据库数据。
假定共享存储上分配给DB2数据库的卷组名为/dev/datavg1,逻辑卷名为/dev/datavg1/db2lv1(使用SLES的LVM服 务),在两个节点上的挂接点名为/home/db2data,且已正确格式化为合适的文件系统(Veritas工程师指出在SLES 8上VCS 2.2不支持ext3文件系统,建议格式化时指定ext2,在SLES 9和VCS 4.1上不存在这个问题)。注意这个挂接点要在fstab文件中配置为启动时不自动挂接。
数据库其他表空间可以建立在共享存储的其他卷上,如果是文件系统,同样要配置为不自动挂接。本文档暂不讨论。
2.2.2. 节点
本HA方案采用两个服务器节点做主从互备,以下分别称为Active节点和Passive节点。这两个节点具有相同的硬件和操作系统配置。
2.2.3. 网络
对外的IP网络。假定该方案中DB2 UDB对外提供服务使用的浮动IP(Floating IP)为192.168.10.110,Active节点的物理IP为192.168.10.11,Passive节点的物理IP为192.168.10.12。
HA管理软件需要一组内部IP来管理双机间的心跳连接。心跳IP不在本文档范围内。
3. 配置步骤
3.1. DB2 UDB安装、配置步骤
3.1.1. 建立用户和组
在两台节点上分别在root下执行以下命令:
groupadd –g 900 db2iadm1
groupadd –g 901 db2fadm1
groupadd –g 902 dasadm1
useradd –g db2iadm1 –u 800 –d /home/db2inst1 –s /bin/bash db2inst1
useradd –g db2fadm1 –u 801 –d /home/db2fenc1 –s /bin/bash db2fenc1
useradd –g dasadm1 –u 802 –d /home/dasusr1 –s /bin/bash dasusr1
组ID和用户ID可以根据实际情况选择,但务必保证在两台节点上相同的用户名/组名具有相同的ID。
3.1.2. 安装DB2 UDB产品代码
在两台节点上分别在root用户下执行以下命令:
cd
./db2install –p DB2.ESE
cd /opt/IBM/db2/V8.1/adm
./db2licm –a /db2/license/db2ese.lic
其中,是DB2 UDB ESE安装介质所在目录。
3.1.3. 建立实例
在两台节点上分别在root用户下执行以下命令:
cd /opt/IBM/db2/V8.1/instance
./db2icrt –p 50000 –u db2fenc1 db2inst1
3.1.4. 建立DAS
在两台节点上分别在root用户下执行以下命令:
cd /opt/IBM/db2/V8.1/instance
./dascrt –u dasusr1
3.1.5. 建立数据库
在Active节点上在root用户下执行以下命令:
mount /dev/datavg1/db2lv1 /home/db2data
su – db2inst1
db2start
db2 create database on /home/db2data
db2stop
exit
umount /home/db2data
其中,是数据库名。
3.1.6. Catalog数据库
在Passive节点上在root用户下执行以下命令:
mount /dev/datavg1/db2lv1 /home/db2data
su – db2inst1
db2start
db2 catalog database on /home/db2data
db2stop
exit
umount /home/db2data
其中,是上一步骤建立的数据库名
3.1.7. 检验DB2配置
在Active节点上,在root用户下执行以下命令:
mount /dev/datavg1/db2lv1 /home/db2data
su – db2inst1
db2start
db2 connect to
db2 create table T (ID INTEGER)
db2 connect reset
db2stop
exit
umount /home/db2data
检验上述命令均无出错信息。
在Passive节点上,在root用户下执行以下命令:
mount /dev/datavg1/db2lv1 /home/db2data
su – db2inst1
db2start
db2 connect to
db2 drop table T
db2 connect reset
db2stop
exit
umount /home/db2data
检验上述命令均无出错信息。
3.2. VCS配置
在VCS中,建立DB2资源组,在组中配置浮动IP、Application等资源,将Application的启动、停止等命令脚本配置为 db2start、db2stop、db2admin start和db2admin stop,将Application的监视命令脚本配置为ps命令,监视db2sysc和db2dasrrm进程。
Thunderbird推出1.5版
让Openoffic与你的数据库对接
Openoffice从2.0版本开始,增加了Openoffic Base组件。这个组件功能类似于MS Access,同样允许你通过ODBC 或 JDBC 连接到外部数据库。本文就Ubuntu下的ODBC连接mysql为例。
安装 unixODBC 和 MyODBC :
#sudo apt-get install unixodbc unixodbc-bin libmyodbc
其中“unixodbc-bin”是一系列图形化的工具,可以不安装。
设置unixODBC:
#sudo ODBCConfig
开启ODBC的控制面板,与windows的几乎一样的布局。
System DSN->ADD…按钮

继续ADD

这里的Name和Description随便写就可以了,Driver 为 /usr/lib/odbc/libmyodbc.so
Setup 为 /usr/lib/odbc/libodbcmyS.so ,其余的默认就好了。对于其它不是Ubuntu的用户,只要确保安装了MyODBC,不妨直接搜索文件名将路径贴过来就可。结束后“对勾”按钮保存结束。

到了这一步就没有太大难度了,Name随便,Server添数据库服务器的IP地址,Port Mysql的端口,默认3306,Database下拉列表中选择需要连接的数据库。其余空着,对勾。
设置成功!OK结束。
设置OpenOffice Base:

这里选择“连接到现有数据库”下拉列表选择ODBC,我试过选择Mysql不过到头来还是通过了ODBC连接。

如果前面ODBC设置正确,这里会出现数据源列表。

数据库的用户名、密码,同时还有测试按钮。
OK,搞定!
现在就可以利用OpenOffice Base来直接向数据库中导入、导出数据了,对于数据库开发来说,利用图形化的界面搭建数据库是非常惬意的了。


近期评论