论坛: UNIX系统 标题: linux安全基础 复制本贴地址    
作者: june [netjune]    论坛用户   登录
这是几年前的文挡了,高手可能烂熟于心了,但我这样的新手却奉为至宝。知道了文件结构,shell,linux入了门担心看不好门的就看看吧:(pdf2txt来的,稍加处理,有些地方不太好看,偶的linux字体没弄好,否则在linux里面会很好处理)

本文从用户角度讨论L i n u x系统安全,阐述口令、文件保护、目录保护、与用户程序有关
的某些特殊特性和使用c r y p t命令加密,并给出一些重要的安全忠告,以帮助用户保护自己的帐
户安全。
                                      26.1 口令安全
L i n u x系统中的/ e t c / p a s s w d文件含有全部系统需要知道的关于每个用户的信息(加密后的口
令也可能存于/ e t c / s h a d o w文件中)。/ e t c / p a s s w d中包含用户的登录名、经过加密的口令、用户号、
用户组号、用户注释、用户主目录和用户所用的外壳程序。其中用户号( U I D)和用户组号
(G I D)用于L i n u x系统唯一地标识用户和同组用户及用户的访问权限。/ e t c / p a s s w d中存放的加密的口令用于与用户登录时输入的口令经计算后相比较,符合则允许登录,否则拒绝用户登录。
用户可用p a s s w d命令修改自己的口令,不能直接修改/ e t c / p a s s w d中的口令部分。
一个好的口令应当至少有6个字符长,不要取用个人信息(如生日、名字、反向拼写的登
录名、房间中可见的东西),普通的英语单词也不好(因为可用字典攻击法),口令中最好有一
些非字母(如数字、标点符号、控制字符等),还要好记一些,不能写在纸上或计算机中的文
件中,选择口令的一个好方法是将两个不相关的词用一个数字或控制字符相连,并截断为8个
字符。当然,如果你能记住8位乱码自然更好。
不应使用同一个口令在不同机器中使用,特别是在不同级别的用户上使用同一口令,会引
起全盘崩溃。用户应定期改变口令,至少6个月要改变一次,系统管理员可以强制用户定期做
口令修改。为防止他人窃取口令,在输入口令时应确保无人在身边。
                                    26.2 文件许可权
文件属性决定了文件的被访问权限,即谁能存取或执行该文件。用ls -l可以列出详细的文
件信息,如:
-rwxrwxrwx 1 pat cs440 70 Jul 28 21:12 zombin
包括了文件许可、文件联结数、文件所有者名、文件相关组名、文件长度、上次存取日期
和文件名。
其中文件许可分为四部分:
-:表示文件类型。
第一组r w x:表示文件属主的访问权限。
第二组r w x:表示文件同组用户的访问权限。
第三组r w x:表示其他用户的访问权限。
若某种许可被限制则相应的字母换为-。
在许可权限的执行许可位置上,可能是其他字母, s、S、t、T。s和S可出现在所有者和同
组用户许可模式位置上,与特殊的许可有关,后面将要讨论, t和T可出现在其他用户的许可模
式位置上,与“粘贴位”有关而与安全无关。小写字母( x,s,t)表示执行许可为允许,负
号或大写字母( -,S或T)表示执行许可为不允许。改变许可方式可使用c h m o d命令,并以新
许可方式和该文件名为参数。新许可方式以3位8进制数给出, r为4,w为2,x为1。如r w x r- x r- -为7 5 4。c h m o d也有其他方式的参数可直接对某组参数修改,在此不再多说,详见L i n ux系统的联机帮助。
文件许可权可用于防止偶然性地重写或删除一个重要文件(即使是属主自己) !
改变文件的属主和组名可用c h o w n和c h g r p,但修改后原属主和组员就无法修改回来了。
                              26.3 目录许可
在L i n u x系统中,目录也是一个文件,用ls -l列出时,目录文件的属性前面带一个d,目录
许可也类似于文件许可,用l s列目录要有读许可,在目录中增删文件要有写许可,进入目录或
将该目录作路径分量时要有执行许可,故要使用任一个文件,必须有该文件及找到该文件的路
径上所有目录分量的相应许可。仅当要打开一个文件时,文件的许可才开始起作用,而r m、
m v只要有目录的搜索和写许可,不需文件的许可,这一点应注意。
                                26.4 umask命令
u m a s k设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入. p r o f i l e文件,就可控制该用户后续所建文件的存取许可。u m a s k命令与c h m o d命令的作用正好相反,它告诉系统在创建文件时不给予什么存取许可。
                          26.5 设置用户ID和同组用户ID许可
用户I D许可(S U I D)设置和同组用户I D许可(S G I D)可给予可执行的目标文件(只有可
执行文件才有意义)当一个进程执行时就被赋于4个编号,以标识该进程隶属于谁,分别为实
际和有效的U I D,实际和有效的G I D。有效的U I D和G I D一般和实际的U I D和G I D相同,有效的
U I D和G I D用于系统确定该进程对于文件的存取许可。而设置可执行文件的S U I D许可将改变上
述情况,当设置了S U I D时,进程的有效U I D为该可执行文件的所有者的有效U I D,而不是执行
该程序的用户的有效U I D,因此,由该程序创建的都有与该程序所有者相同的存取许可。这样,
程序的所有者将可通过程序的控制在有限的范围内向用户发表不允许被公众访问的信息。同样,
S G I D是设置有效G I D。
用chmod u+s 文件名和chmod u-s文件名来设置和取消S U I D设置。用chmod g+s 文件名和
chmod g-s文件名来设置和取消S G I D设置。当文件设置了S U I D和S G I D后,c h o w n和c h g r p命令
将全部取消这些许可。
                                26.6 cp mv ln和cpio命令
c p拷贝文件时,若目的文件不存在,则将同时拷贝源文件的存取许可,包括S U I D和S G I D
许可。新拷贝的文件属拷贝的用户所有,故拷贝他人的文件时应小心,不要被其他用户的
S U I D程序破坏自己的文件安全。m v移文件时,新移的文件存取许可与原文件相同, m v仅改变
文件名。只要用户有目录的写和搜索许可,就可移走该目录中某人的S U I D程序且不改变其存
取许可。若目录许可设置不正确,则用户的S U I D程序可被移到一个他不能修改和删除的目录
中,将出现安全漏洞。
l n为现有文件建立一个链,即建立一个引用同一文件的新名字。如目的文件已经存在,则
该文件被删除而代之以新的链,或存在的目的文件不允许用户写它,则请求用户确认是否删除
该文件,只允许在同一文件系统内建链。若要删除一个S U I D文件,就要确认文件的链接数,
只有一个链才能确保该文件被删除。若S U I D文件已有多个链,一种方法是改变其存取许可方
式,将同时修改所有链的存取许可;另一种方法以chmod 000 文件名,不仅取消了文件的
S U I D和S G I D许可,而且也取消了文件的全部链。要想找到谁与自己的S U I D程序建立了链,不
要立刻删除该程序,系统管理员可用n c h e c k命令找到该程序的其他链。
c p i o命令用于将目录结构拷贝到一个普通文件中,然后可再用c p i o命令将该普通文件转成
目录结构。用- i选项时, c p i o从标准输入设备读文件和目录名表,并将其内容按档案格式拷贝
到标准输出设备,使用- o选项时,c p i o从标准输入设备读取事先已建好的档案,重建目录结构。
c p i o命令常用以下命令做一完整的目录系统档案:
find fromdir -print|cpio -o > archive
根据档案文件重建一个目录结构命令为:
cpio -id < archive
c p i o的安全约定如下:
1) 档案文件存放每个文件的信息,包括文件所有者、小组用户、最后修改时间、最后存取
时间、文件存取许可方式。
. 根据档案建立的文件保持存放于档案中的存取许可方式。
. 从档案中提取的每个文件的所有者和小组用户设置给运行cpio -i命令的用户,而不是设
置给档案中指出的所有者和小组用户。
. 当运行cpio -i命令的用户是r o o t时,被建立的文件的所有者和小组用户是档案文件所指出
的。
. 档案中的S U I D / S G I D文件被重建时,保持S U I D和S G I D许可,如果重建文件的用户不是
r o o t,S U I D / S G I D许可是档案文件指出的用户/小组的许可。
2) 现存文件与c p i o档案中的文件同名时,若现存文件比档案中的文件更新,这些文件将不
被重写。
3) 如果用修改选项U,则同名的现存的文件将被重写。可能会发生一件很奇怪的事:如被
重写的文件原与另一个文件建了链,文件被重写后链并不断开,换言之,该文件的链将保持,
因此,该文件的所有链实际指向从档案中提取出来的文件,运行c p i o无条件地重写现存文件以
及改变链的指向。
4) cpio档案中可包含的全路径名或父目录名给出的文件。
                          26.7 su和newgrp命令
26.7.1 su命令
可不必注销帐户而将另一用户又登录进入系统,作为另一用户工作。它将启动一新的外壳
并将有效和实际的U I D和G I D设置给另一用户。因此必须严格将r o o t口令保密。
26.7.2 newgrp命令
与s u相似,用于修改当前所处的组名。
                          26.8 文件加密
c r y p t命令可提供给用户以加密文件,使用一个关键词将标准输入的信息编码为不可读的杂

乱字符串,送到标准输出设备。再次使用此命令,用同一关键词作用于加密后的文件,可恢复
文件内容。
一般来说,在文件加密后,应删除原始文件,只留下加密后的版本,且不能忘记加密关键
词。
在v i中一般都有加密功能,用vi -x命令可编辑加密后的文件。加密关键词的选取规则与口
令的选取规则相同。
由于c r y p t程序可能被做成特洛伊木马,故不宜用口令做为关键词。最好在加密前用p a c k或
c o m p r e s s命令对文件进行压缩后再加密。
                          26.9 其他安全问题
26.9.1 用户的.profile文件
由于用户的H O M E目录下的. p r o f i l e文件在用户登录时就被执行。若该文件对其他人是可
写的则系统的任何用户都能修改此文件,使其按自己的要求工作。这样可能使得其他用户具
有该用户相同的权限。
26.9.2 ls -a
此命令用于列出当前目录中的全部文件,包括文件名以“ .”开头的文件,查看所有文件
的存取许可方式和文件所有者,任何不属于自己的但存在于自己的目录中的文件都应怀疑和追
究。
26.9.3 . exrc文件
为编辑程序的初始化文件,使用编辑文件后,首先查找$ H O M E / . e x r c文件和. / . e x r c文件,
若该文件是在$ H O M E目录中找到,则可像. p r o f i l e一样控制它的存取方式,若在一个自己不能
控制的目录中运行编辑程序,则可能运行其他人的. e x r c文件,或许该. e x r c文件存在那里正是为
了损害他人的文件安全。为了保证所编辑文件的安全,最好不要在不属于自己或其他人可写的
目录中运行任何编辑程序。
26.9.4 暂存文件和目录
在L i n u x系统中暂存目录为/ t m p和/ u s r / t m p,对于程序员和许多系统命令都使用它们,如果
用这些目录存放暂存文件,别的用户可能会破坏这些文件。使用暂存文件最好将文件屏蔽值定
义为0 0 7,但最保险的方法是建立自己的暂存文件和目录: $ H O M E / t m p,不要将重要文件存放
于公共的暂存目录。
26.9.5 UUCP和其他网络
U U C P命令用于将文件从一个L i n u x系统传送到另一个L i n u x系统,通过U U C P传送的文件
通常存于/ u s r / s p o o l / u u c p p u b l i c / l o g i n目录,l o g i n是用户的登录名,该目录存取许可为7 7 7,通过
网络传输并存放于此目录的文件属于U U C P所有,文件存取许可为6 6 6和7 7 7,用户应当将通过
U U C P传送的文件加密,并尽快移到自己的目录中。其他网络将文件传送到用户H O M E目录下
的r j c目录中。该目录应对其他人是可写可搜索的,但不必是可读的,因而用户的r j c目录的存
取许可方式应为7 3 3,允许程序在其中建立文件。同样,传送的文件也应加密并尽快移到自己
的目录中。
26.9.6 特洛伊木马
在L i n u x系统安全中,用特洛伊木马来代表一种程序,这种程序在完成某种具有明显意图
的功能时,还破坏用户的安全。如果PAT H设置为先搜索系统目录,则受特洛伊木马的攻击会
大大减少。如模拟的c r y p t程序。
26.9.7 诱骗
类似于特洛伊木马,模拟一些东西使用户泄漏一些信息,不同的是,它由某人执行,等待
无警觉的用户来上当。如模拟的l o g i n。
26.9.8 计算机病毒
计算机病毒是通过把其他程序变成病毒从而传染系统的,可以迅速地扩散,特别是系统管
理员的粗心大意,作为r o o t运行一个被感染的程序时。实验表明,一个病毒可在一个小时内
(平均少于3 0分钟)取得r o o t权限。
26.9.9 要离开自己已登录的终端
除非能对终端上锁,否则一定要注销帐户。
26.9.10 智能终端
由于智能终端有s e n d和e n t e r换码序列,告诉终端把当前行送给系统,就像是用户敲入的一
样。这是一种危险的能力,其他人可用w r i t e命令发送信息给本用户终端,如果信息中含有以下
的换码序列:
. 移光标到新行(换行)。
. 在屏幕上显示“rm -r *”。
. 将该行送给系统。
其结果大家可以想象。
禁止其他用户发送信息的方法是使用m e s g命令,mesg n不允许其他用户发信息,mesg y允
许其他用户发信息。即使如此仍是有换码序列的问题存在,任何一个用户用m a i l命令发送同样
一组换码序列,不同的要用!rm -r *替换rm -r *。m a i l将以!开头的行解释为一条外壳命令,启动外壳,由外壳解释该行的其他部分,这被称为外壳换码。为避免m a i l命令发送换码序列到自
己的终端,可建立一个过滤程序,在读m a i l文件之前先运行过滤程序,对m a i l文件进行处理:
m y n a m e = " $ L O G N A M E " ;
tr -d[\001-\007][-\013-\037]</usr/mail/$myname>>$HOME/mailbox;
> /usr/mail/$myname;
mail -f $HOME/mailbox
其中t r将标准输入的字符转换手写到标准输出中。这只是一个简单的思路,从原则上来说,
此程序应为一个C程序,以避免破坏正发送到的文件,可用锁文件方式实现。
26.9.11 断开与系统的连接
用户应在看到系统确认登录注销后再离开,以免在用户未注销时由他人潜入。

26.9.12 cu命令
该命令使用户能从一个L i n u x系统登录到另一个L i n u x系统,此时,在远地系统中注销用户
后还必须输入“~”后回车,以断开c u和远地系统的连接。
c u还有两个安全问题:
. 如果本机安全性弱于远地机,不提倡用c u去登录远地机,以免由于本地机的不安全而影
响较安全的远地机。
. 由于c u的老版本处理“~”的方法不完善,从安全性强的系统调用安全性弱的系统时,会
使弱系统的用户使用强系统用户的c u传送强系统的/ e t c / p a s s w d文件,除非确定正在使用
的c u是正确版本,否则不要调用弱系统。
26.10 保持帐户安全的要点
1)保持口令的安全。
. 不要将口令写下来。
. 不要将口令存于终端功能键或调制解调器的字符串存储器中。
. 不要选取显而易见的信息作口令。
. 不要让别人知道。
. 不要交替使用两个口令。
. 不要在不同系统上使用同一个口令。
. 不要让人看见自己在输入口令。
2)不要让自己的文件或目录可被他人写。
. 如果不信任本组用户,u m a s k设置为0 2 2。
. 确保自己的. p r o f i l e除自己外对他人都不可读写。
. 暂存目录最好不用于存放重要文件。
. 确保H O M E目录对任何人不可写。
. uucp传输的文件应加密,并尽快私人化。
3) 若不想要其他用户读自己的文件或目录,就要使自己的文件和目录不允许任何人读。
. umask设置为0 0 6 / 0 0 7。
. 若不允许同组用户存取自己的文件和目录, u m a s k设置为0 7 7。
. 暂存文件按当前u m a s k设置,存放重要数据到暂存文件的程序,就被写成能确保暂存文
件对其他用户不可读。
. 确保H O M E目录对每个用户不可读。
4) 不要写S U I D / S G I D程序。
5) 小心地拷贝和移文件。
. c p拷贝文件时,记住目的文件的许可方式将和文件相同,包括S U I D / S G I D许可在内,如
目的文件已存在,则目的文件的存取许可和所有者均不变。
. m v移文件时,记住目的文件的许可方式将和文件相同,包括S U I D / S G I D许可在内,若在
同一个文件系统内移文件,目的文件的所有者和小组都不变,否则,目的文件的所有者
和小组将设置成本用户的有效U I D和G I D。
. 小心使用c p i o命令,它能复盖不在本用户当前目录结构中的文件,可用t选项首先列出要
被拷贝的文件。
第26章计Linux系统的用户安全性计计295
下载

6) 删除一个S U I D / S G I D程序时,先检查该程序的链接数,如有多个链,则将存取许可方式
改为0 0 0,然后再删除该程序,或先写空该程序再删除,也可将该程序的i结点号给系统管理员
去查找其他链。
7) 用c r y p t加密不愿让任何用户(包括超级用户)看的文件。
. 不要将关键词做为命令变量。
. 用ed -x或vi -x编辑加密文件。
8) 除了信任的用户外,不要运行其他用户的程序。
9) 在自己的PAT H中,将系统目录放在前面。
1 0)不要离开自己登录的终端。
11) 若有智能终端,当心来自其他用户,包括w r i t e命令、m a i l命令和其他用户文件的信息
中有换码序列。
12) 用C t r l + D或Ex i t退出后,在断开与系统的联接前等待看到l o g i n:提示。
13) 注意c u版本。
. 不要用c u调用安全性更强的系统。
. 除非确信c u不会被诱骗去发送文件,否则不要用c u调用安全性更弱的系统。


地主 发表时间: 04-08-07 15:34

回复: ftpftp [ftpftp]   论坛用户   登录
去年的帖子里有啊

B1层 发表时间: 04-08-07 15:55

回复: sybdt [sybdt]   论坛用户   登录
俺不懂,头晕。

B2层 发表时间: 04-08-14 21:25

论坛: UNIX系统

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号