admin 管理员组文章数量: 887021
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
文章阅读 The Big Green 讨论区 [Software]
--------------------------------------------------------------------------------
发信人: Mars (FangQ), 信区: Software
标 题: Unix高级安全设置[ZZ]
发信站: The Big Green (Sat Oct 5 16:58:10 2002) , 转信
http://www.20cn/ns/wz/sys/data/20020822032035.htm
Unix高级安全设置 (阅览 338 次)
Unix高级安全设置
作者:KCN
第一部分 Unix历史与发展
1.1 UNIX简介
UNIX 已有数十年的历史,在这期间,它的改变即使没有上亿次,也有数百万次了,有成千上
万的个人和公司实现了上千种不同的版本,有上百万系统管理员在从微型嵌入式系统到超级
计算机上都安装过它。无可争论,没有两个实际的UNIX操作系统是完全相同的。
UNIX”一词是属于Open Group的一个商标,该组织是一个要求符号得到正确归属的国际
协会。在这数十年当中,该标识已经被冲淡到没有具体含义。虽然如此,Open Group仍发布
了“The Single UNIX Specification”,这可以在http://www.UNIX-systems/online.
html上看到。
“Unix”是双关语,表示名字Multics,它最初被写作“Unics”,表示UNiplexed Info
rmation and Computing System。“Unix”和“UNIX”在如今都被广泛使用。曾经有一段时
间,Dennis Ritchie试图宣布用小写版本,因为“UNIX”不是开头字母组成。
许多运行Linux等类似UNIX系统的人认为他们运行的是UNIX。正式UNIX系统和非正式UNI
X系统通常被认为属于一类----不论是书中、媒介、网上还是社会公认。
按照UNIX FAQ的定义,UNIX是“一个用C语言编写的操作系统,它有层次文件系统并集成
了文件和设备I/O,其系统调用接口包括fork ( )和pipe ( )等服务,用户界面包括cc、tro
ff、grep、awk等工具和一个被选择的shell”。可以再加一些,UNIX为多任务提供一致的方
式,并内置有创建、同步和终止进程的操作,它可在不同种类计算机间进行移植。
1.2 UNIX发展与历史
1969年,Ken Thompson、Dennis Ritchie和其他一些人在AT&T贝尔实验室开始进行一个“li
ttle-used PDP-7 in a corner”的工作,它后来成为UNIX。10年里,UNIX在AT&T的发展经历
了数个版本。V4(1974)用C语言重写,这成为系统间操作系统可移植性的一个里程碑。V6(
1975)第一次在贝尔实验室以外使用,成为加州大学伯克利分校开发的第一个UNIX版本的基
础。
贝尔实验室继续在UNIX上工作到80年代,有1983年的System V(“五”,不是字母)版本和
1989年的System V,Release 4(缩写为SVR4)版本。同时,加利福尼亚大学的程序员改动了
AT&T发布的源代码,引发了许多主要论题。Berkeley Standard Distribution(BSD)成为第
2个主要“UNIX”版本。1984年的BSD 4.2版在大学和公司计算部门中得到广泛应用,它的一
些特征被吸收到SVR4中。
从90年代开始,AT&T的源代码许可证创造了市场的繁荣,不同开发者开发了数百种UNIX版本
。AT&T在1993年把UNIX产业卖给了Novell, Novell两年后又把它卖给了Santa Cruz Operati
on。同时,UNIX商标被转让给X/Open协会,X/Open协会后来成为了Open Group。
当UNIX的经营从一个实体到另一个实体传递时,几个长期的开发开始收获果实。传统上,要
得到一个运行的BSD系统,用户需要从AT&T得到源代码许可证。但到90年代早期,伯克利的开
发者在BSD上做了许多工作,使原始的AT&T源代码大部分被改动了。后续的程序员,从Willi
am和Lynne Jolitz开始在网络分布环境中开发BSD,后来在1992年成为386BSD 0.1版。这个最
初的“免费源代码”BSD具有三个分支,即:Net BSD、Free BSD和Open BSD,都以BSD 4.4为
基础。
1984年,程序员Richard Stallman开始开发来源于UNIX的免费GNU(GNU Not UNIX)。到90年
代早期,GNU项目出现了几个编程里程碑,包括GNU C库和Bourne Again Shell (bash)的发行
。整个系统除了一个关键因素即工作内核外基本完成。
接下来是芬兰赫尔辛基大学的学生Linus Torvalds。Linus看到了一个叫作Minix的小型UNIX
系统,觉得自己能做得更好。1991年秋天,他发行了一个叫“Linux”的免费软件内核的源代
码—是他的姓和Minux的组合。到1994年,Linus和一个内核开发小组发行了Linux 1.0版。L
inus和朋友们有一个免费内核,Stallman和朋友们拥有一个免费的UNIX克隆系统的其余部分
。人们把Linux内核和GNU合在一起组成一个完整的免费系统,该系统被称为“Linux”,尽管
Stallman更愿意取名为“GNU/Linux System”[6]。有几种不同类别的GNU/Linux:一些可以
被公司用来支持商业使用,如Red Hat、Caldera Systems和S.U.S.E;其他如Debian GNU/Li
nux,更接近于最初的免费软件概念。
Linux现已发展到内核2.2版。Linux能在几种不同体系结构的芯片上运行,并已经被各界接纳
或支持。其支持者有惠普、硅谷图像和Sun等有较长历史的UNIX供应商,还有康柏和Dell等P
C供应商以及Oracle和IBM等主要软件供应商。或许最具讽刺的是,微软承认无所不在的免费
软件的竞争性威胁,但它不愿或不能公开自己的软件源代码。
后来微软开始推出Windows NT (Windows 2000)。到90年代末,许多供应商开始放弃UNIX服务
器平台而转向Windows NT。例如Silicon Graphics 公司已决定把Intel硬件和NT作为未来的
图形平台。
第二部分 Unix典型安全隐患
2.1 RPC守护进程程序的错误使入侵者可以直接获得root权限
对Unix威胁最大可以说就是rpc上面的漏洞,远程过程调用(Remote Procedure Call)允许
一台计算机上的程序去执行另一台计算机上的程序。它们广泛的应用在各种网络服务中,如
文件共享服务NFS。有很多漏洞是RPC本身的缺陷导致的,它们正不停的涌现出来。有很明显
的证据表明,1999年末2000年初大规模的分布式拒绝服务攻击中,很多被作为攻击跳板的牺
牲品就是因为存在RPC漏洞。在Solar Sunrise事件期间,对美国陆军广为人知的成功攻击就
是因为在数百台国防部的系统中找到了一个RPC漏洞。
2.2 一些应用的远程漏洞
远程漏洞可以使远程攻击者在只对开放了有漏洞服务的应用利用的情况下,就可以得到一些
权限或者root权限。
例如:BIND程序存在的问题,利用nxt,qinv,in.named可直接得到root权限
BIND(Berkeley Internet Name Domain)软件包是域名服务(DNS)的一个应用最广泛的实现
软件--我们所有人都通过它来定位Internet上的系统,只需知道域名(如wwwns)
而不用知道IP地址,由此可体会它的重要性--这使它成为最受欢迎的攻击目标。
2.3 本地漏洞
本地漏洞虽然没有上面两种漏洞那么严重,但是他也是评估系统安全与否的一个重要因素,
它可以使权限地的系统用户来提升自己的系统权限,或者使一个得到了一些权限的远程攻击
者,扩大自己的战果,提升权限。
例如,ff.core缓冲区溢出漏洞,一个普通用户只要执行一个简单的脚本,就可以令缓冲区溢
出从而的到一个root shell。
2.4 暴露系统信息
严格的说这不是漏洞,但是他核你的系统安全相关。举例子来说,finger暴露了系统合法用
户名,默认shell等等信息,这就可以被攻击者利用起来猜密码。再如某个软件的版本号暴露
,就会令攻击者,针对此版本来进行攻击,这就使攻击者更容易的入侵的系统。
第三部分 常见Unix安全设置方案
3.1 Solaris 系列
3.1.1 PROM OpenBoot 和物理安全
3.1.1.1 OpenBoot安全级别
none :不需要任何口令。所有OpenBoot设置都可以修改,任何人只要物理接触到主控台,就
可以完全控制。command:除了boot和go之外所有命令都需要口令。full:除了go命令之外所
有命令都需要口令。
3.1.1.2 改变OpenBoot安全级别
首先使用eeprom security-password 命令设置OpenBoot口令,然后在root登入状态使用eep
rom security-mode=command命令改变安全级别为command或在OK状态:ok setenv security
-mode=command的密码保护来实现。
3.1.2 文件系统的安全
3.1.2.1 基础知识
文件系统是unix系统安全的核心。在unix中,所有的事物都是文件。Unix中的基本文件类型
有正规文件、目录、特殊文件、链接、Sockets等等。这些不同类型的文件以一个分层的树结
构进行组织,以一个叫"root"的目录为起始位置("/")。整个就是一个文件系统。每个文件对
应一个"i节点","i节点"包括UID(文件拥有者)、GID(文件所在组)、模式(文件的权限)、文
件大小、文件类型、ctime("i节点"上次修改时间)、mtime(文件上次修改时间)、atime(文件
上次访问时间)、nlink(链接数)。它表示了文件的基本属性。
大家注意到,"/"下有很多的目录,那么这些目录是干什么的呢?下面简要介绍一下目录结构
。如下:
/bin 用户命令的可执行文件
/dev 特殊设备文件
/etc 系统执行文件、配置文件、管理文件,主要是配置文件
/home 用户起始目录
/lib 引导系统以及在root文件系统中运行命令所需的共享库文件
/lost+found 与特定文件系统断开连结的丢失文件
/mnt 临时安装的文件系统(如光驱、软驱)
/proc 一个伪文件系统,用来作为到内核数据结构或正在运行的进程的接口(用于调试)
/sbin 只有root使用的可执行文件和只需要引导或安装/usr的文件
/tmp 临时文件
/usr 为用户和系统命令使用的可执行文件、头文件、共享库、帮助文件、本地程序(在/usr
/local中)
/var 用于电子邮件、打印、cron等的文件,统计文件,日志文件
文件系统有多种类型,unix内核支持如下文件系统:
1) ext2 固定和可移动磁盘都支持的一种高性能文件系统,用于linux
2) msdos 由MS-DOS和Windows使用
3) umsdos Linux使用的一种扩充的DOS文件系统,支持长文件名、权限设置
4) iso9660 遵从ISO9660标准的CD-ROM文件系统
5) hpfs High Performance Filesystem,高性能文件系统,OS/2使用
6) minix 在Minux OS中使用,最早的Linux文件系统
7) nfs 用来访问远程计算机中磁盘的网络文件系统
8) swap 用作交换的磁盘分区
3.1.2.2 文件权限
文件权限是unix文件系统安全的关键。Unix中的每个用户有一个唯一的用户名和UID(用户ID
号),每个用户属于一个或多个组。基本分组成员在/etc/passwd中定义,附加的分组成员在
/etc/group中定义。例如,用户tiger的UID为225,分组为11(students),此外,他还是分组
185(postgraduates)的成员。每个文件和目录有三组权限,一组是文件的拥有者、一组是文
件所属组的成员、一组是其他所有用户。"r"表示可读,"w"表示可写,"x"表示可执行。一共
9位(每组3位),合起来称为模式位(mode bits)。
模式位通常由一列10个字符来表示,每个字符表示一个模式设置,第一个指明文件类型,如
(d表示目录,-表示普通文件,l表示链接文件等等)。例如,用ls -l 命令显示如下:
drwxr-xr-x 2 root root 1024 Aug 13 09:22 backup/
-rw-r--r-- 1 root root 1824 Apr 21 18:45 client.c
-rw------- 1 root root 65536 Apr 22 17:56 core
-rw-r----- 1 root root 2351 Apr 22 14:01 cry1.bak
-rwxr-xr-x 1 root root 27492 Apr 21 18:47 crypt*
-rw-r----- 1 tiger tiger 2450 Apr 22 15:16 cryption_server.c
-rw-r----- 1 tiger tiger 1544 Apr 22 15:02 myinclude.h
-rwxr-xr-x 1 root root 8280 May 3 10:35 test*
例如最后一行以"-"开始,表示test使一个普通文件,文件拥有者可以读写执行、本组其他成
员可以读执行、其他用户可以读执行。我们可以用chmod和umask命令来改变权限,这很简单
,察看相应的帮助就知道怎么修改权限。
3.1.2.3 SUID/SGID
为什么要单独把他们从文件权限中分出来讲呢?因为,这是网络入侵者非常爱用的入侵入口
。SUID表示"设置用户ID",SGID表示"设置组ID"。当用户执行一个SUID文件时,用户ID在程
序运行过程中被置为文件拥有者的用户ID。如果文件属于root,那用户就成为超级用户。同
样,当一个用户执行SGID文件时,用户的组被置为文件的组。例如,PS命令以SUID root运行
,他从系统内存中读取,这是一般用户不能做的。SUID程序代表了重要的安全漏洞,特别是
SUID设为root的程序。
Unix实际上有两种类型的用户ID。"real user ID"是在登录过程中建立的用户ID。 "effect
ive user ID"是在登录后的会话过程中通过SUID和SGID位来修改。当一个用户运行一条命令
时,进程继承了用户登录Shell的权限,这时"real user ID"和"effective user ID"是相同
的。当SUID位被设置时,进程继承了命令拥有者的权限。例如普通用户运行passwd命令时,
他能够修改/etc/passwd文件,尽管文件是属于root的。这成为可能是因为passwd命令以roo
t的SUID权限运行。那么如何识别SUID程序呢?我们检查文件的权限模式,在它的第四位如果
不是"x",而是"s",就是一个SUID程序。例如,ls -l /bin/su命令显示:
-rwsr-xr-x 1 root root 14888 Aug 15 1999 /bin/su*
表明su是一个SUID程序。
Unix系统安全的一种典型攻击就是创建一个SUID是root的shell拷贝,然后把他隐藏。通过调
用后门,攻击者就获得了root的权利。例如,某个系统管理员忘了关闭某个root的Shell,一
个坏人经过运行如下命令:
cp /bin/bash /home/badman/.bash; chmod 4777 /home/badman/.bash
badman现在就有了一个bash的SUID root拷贝任其处理。他就有完整的root权限了。因此,系
统管理员应该定期察看系统中有哪些SUID和SGID文件。用下面的命令可以实现:find / -ty
pe f /( -perm -4000 -o -perm -2000 /) -ls
当然,攻击者可以通过修改find命令来逃避检测,所以要运行专门的检测软件(如Tripwire)
来进行检查。
3.1.2.4 加密与验证
Tripwire工具提出了使用密码校验和来确定文件是否经过了未认证的修改,加密技术可以用
来保护机密文件甚至整个文件系统。加密是通过密钥将明文转化为一堆乱码的密文,从而起
到保护文件内容的作用。Unix常用的加密算法有crypt(最早的加密工具)、DES(目前最常用的
)、IDEA(国际数据加密算法)、RC4、Blowfish(简单高效的DES)、RSA等等。具体的加密算法
这里不再阐明,需要了解请阅读Bruce Schneier的《应用密码学》一书。注意单向hash函数
,他处理任意长度的信息并返回一个固定长度的hash值(128位)。常用的有MD5、SHA、HAVAL
、Snefru等等。单向hash函数经常和公开密钥算法一起来创建数字签名,提供身份证明。与
传统的签名相比,数字签名还可以指出文件是否被修改过。
PGP是unix下用来保护信息特别是电子邮件的工具。他使用IDEA算法为数据加密,使用RSA算
法来进行密钥管理和数字签名,使用MD5来作为一个单向hash函数。其特点在于安全:不仅内
容被伪装,连发送者的签名也加密。PGP还可以用来加密本地文件。现在常用的Linux下的PG
P工具为:pgpe(加密)、pgps(签名)、pgpv(确认/解密)、pgpk(管理密钥)。请参考相应的帮
助来使用。
"特洛伊木马"的故事不知道大家听说过没有。古希腊人久攻特洛伊城不下,于是假装求和,
送了一个巨大的木马作为礼物,向城主Minerva表示和解。特洛伊人将木马拉入城内,到了夜
晚,藏在木马中的希腊士兵钻出来,里应外合,攻破特洛伊城。在计算机安全领域,这种欺
骗技巧成为攻击计算机安全的一种标准方式。他藏在你的计算机里,随时可能爆发,如果攻
击者需要的话。因此,一旦一个系统被装了特洛伊木马,他就不能在信任了,必须从新安装
。怎么避免呢,要养成良好的习惯,例如:限制下载,只从有声望的站点下载东西;检验下
载的文件;避免运行已编译好的二进制代码,从源代码开始编译;不执行不信任的电子邮件
发送的程序;不执行从非信任的Web站点得到的Java applets和Java Script。
MD5校验和有时与软件一起发行,用户可以用他来检验一个软件包。用户可以运行Red Hat L
inux中包含的md5sum工具,例如:md5sum cops.1.04.tar.gz
结果:lfa416872934e5bee99068f9989cb8b0 cops.1.04.tar.gz
和软件包自带的校验和文件比较,如果不符,则说明文件在传输过程中出了问题,最好从新
下载,本文件不可靠。md5sum还可以用来检验系统文件,在第一次安装系统之后对重要的li
lo系统二进制文件进行一下校验:md5sum lilo,其结果应该一直保持不变,除非升级。
3.1.2.5 完整性检查
完整性是安全系统的核心属性。用户需要知道昨天写的文件和今天打开的文件没有被改动。
攻击者可以用很多方法破坏文件系统,从依靠错误配置的权限获益到放置特洛伊木马和病毒
。Linux中用cksum命令对一个特定文件执行16位校验和的计算,上面的md5sum也是一个检验
的命令。
RPM(Red Hat Package manager)是由Red Hat Software开发并包含在其Linux产品之中的多功
能软件安装管理器。他可以用来建立、安装、查询、检验、升级和卸载独立的软件包。
3.1.2.6 加密文件系统
加密文件系统是文件系统安全的一个更引人注目的方法。他根据一个简单的推断:如果一个
系统保存机密数据,那么就应该以加密形式保存。加密文件系统(CFS)的核心思想是: CFS为
目录和文件提供一个透明的接口,并自动使用用户的密钥加密。一条单独的命令把一个密钥
和一个目录关联起来,从这时起,目录的内容在写时自动加密,在打开时自动解密。
一个由意大利人开发的透明加密文件系统(TCFS),用户甚至不知道他们的文件倍加密了。从
下面的地址下载:http://tcfs.dia.unisa.it/
3.1.2.7 备份
备份的重要性我想不需要多说了,那么备份有那些策略呢?常见的有:系统初装时的备份、
定期备份、增量式备份(只备份改动的)、特别备份(为某些文件备份)等等。Linux系统提供了
以下备份工具:
1) cp:拷贝,例如把dir1中的所有内容拷贝到dir2:cp -R dir1 dir2
2) tar:可以创建、把文件添加到或从一个tar档案中解开文件。档案本身也是一个文件,它
包含其他的许多文件和有关信息。Tar最初用于磁带机。
3) cpio:把文件拷贝进或拷贝出一个cpio档案或tar档案,与tar类似
4) dump:得到整个文件系统并把他拷贝到备份介质上,一个确保完整备份的正规方式是跟随
定期增量备份运行一个0级或完全备份,dump支持10个级别并能把上次备份后改动的所有文件
以更低的级别备份。缺省情况dump将备份到磁盘介质。例如,把一个SCSI硬盘(/dev/rsd0a)
以0级备份到磁带(/dev/rst0)。dump 0f0 /dev/rst0 1500 /dev/sd0a
5) restore:用来恢复整个文件系统或提取单个文件。与dump相对。注意,restore命令特别
冒险,因为他运行SUID root,像任何SUID root程序一样,可以根据自己的风险来运行rest
ore。
3.1.2.8 其他常见系统安全工具导航
1)CRYPT BREAKERS WORKBENCH一个集成多种工具的平台,帮助一个加密人员读取BSD4.2加密
的文件。
ftp://coast.cs.purdue.edu/pub/tools/unix/cbw
2)HOBGOBLIN
ftp://coast.cs.purdue.edu/pub/tools/unix/hobgoblin/
3)TRIPWIRE,强烈推荐,是一个文件系统完整性检查工具。
http://www.tripwiresecurity/
4)TROJAN,一个可以被任何用户运行来检查特洛伊木马的perl程序。
ftp://coast.cs.purdue.edu/pub/tools/unix/trojan/trojan.pl
5)PGP,流行的邮件和文件加密程序。
http://rufus.w3/linux/RPM/pgp.html
6)LIBDES,建立一个DES加密库和一个DES加密程序的工具。包括一个crypt(3)的快速实现。
ftp://ftp.psy.uq.oz.au/pub/Crypto/DES/
3.1.3 用户账号和环境的安全
3.1.3.1 口令管理增强方法
可以使用如下命令及其参数来增强对用户密码的管理:
1)passwd -n 30 user #强迫用户每30天修改一次密码;
2)passwd -f user #强迫用户在下一次登录时修改口令;
3)passwd -n 2 -x 1 user #禁止用户修改口令;
4)passwd -l user #封锁用户账号,禁止登录。
3.1.3.2 CRACK
Crack可以找出/etc/shadow中那些容易猜测的口令,虽然运行crack将会使CPU的负载加重,
但它在第一次运行时就可以给出10%系统帐号的口令。
URL:ftp://sable.ox.ac.uk/pub/comp/security/software/crackers/
3.1.3.3 取消ROOT的远程登陆
默认在/etc/default/login里加上 "CONSOLE"行,在/etc/ftpusers里加上root。
3.1.3.4 配置ROOT的环境
1)将umask设为077或者027.
2)查看你的环境中路径设置情况,不要有./
3.1.3.5 删除不必要的帐号
移去或者锁定那些不是必须的帐号,比如sys/uucp/nuucp/listen等等,简单的办法是在/et
c/shadow的password域中放上NP字符。
3.1.3.6 NIS的安全问题
NIS从来就不是一个安全的服务,如果配置得当的话NIS+会更好些,就象暴力破解密码一样,
NIS域名如果被猜出来,就会给入侵者提供相当丰富的信息,要关闭这个漏洞,可以将信任主
机的地址放在/var/yp/securenets中。并且考虑使用NIS+或者secure RPC。
3.1.3.7 取消rlogin/rsh服务
移去/etc/hosts.equiv和/.rhosts以及各home目录下的.rhosts,并且在/etc/inetd.conf中
把r系列服务都杀掉,然后找出inetd的进程号,重启它。
3.1.3.8 限制通过网络进入系统
Telnet和ftp守护进程是从inetd进程启动的,inetd的配置文件是/etc/inetd.conf,还包含了
其它的各种服务,所以你可以干脆移去这个文件,新建一个只包括以下两行的文件:
ftp stream tcp nowait root /usr/local/bin/tcpd /usr/local/bin/wu-ftpd
telnet stream tcp nowait root /usr/local/bin/tcpd /usr/sbin/in.telnetd
当然这是基于你需要telnet及ftp的基础上的,如果你连这两个服务都不用的话,你就可以将
它注释掉或者删除,这样在系统启动的时候inetd就不需要启动了。
Tcpd的访问控制是由/etc/hosts.allow和/etc/hosts.deny文件控制的,tcpd先查找/etc/ho
sts.allow,如果你在这里面允许了某几台主机的telnet或ftp访问的话,那么deny访问就是
对其它所有机器的了。这是"默认拒绝"的访问控制策略,下面是一个hosts.allow文件的样本
:
ALL: 172.16.3.0/255.255.255.0
这将允许172.16.3.0网络的主机上任何用户访问你的telnet及ftp服务,记住在这里要放置I
P地址,因为域名比较容易受到欺骗攻击……
现在我们准备拒绝其余所有人的连接了,将下面的语句放在/etc/hosts.deny中:
ALL: /usr/bin/mailx -s "%d: connection attempt from %c" root@mydomain
这条指令不仅拒绝了其它所有的连接,而且能够让tcpd发送email给root--一旦有不允许的连
接尝试发生时。
现在你可能希望用syslog记录下所有的访问记录,那么在/etc/syslog.conf放进如下语句:
auth.auth.notice;auth.info /var/log/authlog
注意两段语句间的空白是tab键,否则syslog可能会不能正常工作。
3.1.3.9 配置S/Key
S/Key是一个用于实现安全的一次性口令方案的软件,它根据一系列信息(包括一个秘密口令
)通过MD5处理而形成的初始钥匙,该初始钥匙再交给MD4进行处理,资助将128位的数字签名
缩成64位,该64位信息再次传给MD5函数,这个过程一直持续直到达到期望值……
开始使用S/Key时,要建立一个以/usr/local/bin/keysh为shell的帐号:
在/etc/passwd中加入
access:x:100:100:Access Account:/tmp:/usr/local/bin/keysh
并且在/etc/shadow中加入
access:NP:6445::::::
然后使用passwd access命令来设定用户的访问密码。
由于/usr/local/bin/keysh不是一个标准的shell,所以你的/etc/shells文件中内容如下:
/sbin/sh
/usr/local/bin/keysh
只有使用这两种login shell的用户才允许接入。
然后建立一个文件/etc/skeykeys并赋予一定的许可权限:
touch /etc/skeykeys
chmod 600 /etc/skeykeys
chown root /etc/skeykeys
chgrp root /etc/skeykeys
使用keyinit access命令来初始化S/Key秘密口令。
现在你可以配置允许用户通过keysu命令来成为超级用户,首先改变/etc/group:
root::0:root,access
只有在这里列出来的用户才允许通过keysu成为超级用户。现在可以使用不着keyinit root命
令来初始化超级用户的S/Key秘密口令,建议该口令要与user的有所区别。
本来你可以将/bin/su删掉以确定用户只能使用keysu……,但不幸的是,许多脚本使用/bin
/su来开启进程,所以只需用chmod 500 /bin/su来改变它的权限就行了。
3.1.3.10 X的安全配置
使用SUN-DES-1选项来调用Secure RPC来通过X鉴别,可以使用xhost +user@host来通过访问
请求。
3.1.3.11 开启SUN-DES-1鉴别机制
set DisplayManager*authorize: true
set DisplayManager._0.authName: SUN-DES-1
rm ~/.Xauthority
增加对localhost的许可权限,通过
xauth local/unix:0 SUN-DES-1 unix.local@nisdomain
xauth local:0 SUN-DES-1 unix.local@nisdomain
Start X via xinit -- -auth ~/.Xauthority
把你自己加入,并移去其他所有人:
xhost +user@ +unix.local@nisdomain -local -localhost
赋予用户foo进入主机"node"的权限:
允许foo进入node: xhost +foo@
建立适当的foo的xauthority: xauth add node:0 SUN-DES-1 unix.node@nisdomain
foo现在就能连上"node"了: xload -display node:0
3.1.4 系统的启动和关闭
3.1.4.1 更改不必要的启动文件
通常情况下,你要检查所有在/etc/rc2.d和/etc/rc3.d以S开头的文件,所有并非必要的设备
或者服务都可以重命名(不要再以S开头),然后你可以重新启动,从/var/adm/messages中来
观察自启动的情况,并且从ps -elf的输出中加以检查。
3.1.4.2 系统里的Strip
在Solaris下,你可以通过对/etc/rc[S0-3].d文件来修改启动时自引导的动作。考虑移去/e
tc/rc2.d中在你系统中用不到的服务,我还建议你移除/etc/init.d里除下以下列表中文件外
的所有东西:
K15rrcd S05RMTMPFILES K15solved S20sysetup
S72inetsvc S99audit S21perf
S99dtlogin K25snmpd S30sysid S99netconfig
K50pop3 S74syslog S75cron S92rtvc-config
K60nfs.server K65nfs.client S69inet
K92volmgt README S95SUNWmd.sync
S01MOUNTFSYS S71sysid.sys S88utmpd S95rrcd
这些文件可能会与你的不同--这取决于你机器里的图形卡/是否使用Solaris DiskSuits等等
。移除/etc/rc3.d里的文件........。
3.1.4.3 取消NFS服务
NFS的共享输出是由/etc/dfs/dfstab文件管理的.可以删除它。要将NFS服务器的守护进程关
闭则可以重命名/etc/rc3.d/S15nfs.server。要防止一台机器成为NFS客户机,可以重命名文
件/etc/rc2.d/S73nfs.client--当重命名这些自启动文件时,要注意不要将文件的首字母设
为"S"。
3.1.4.4 rpcbind中的安全问题
Rpcbind是允许rpc请求和rpc服务之间相互连接的程序,但标准的rpc是不安全的:(,它使用的
是"AUTH_UNIX"验证, 也就是说它依靠的是远程系统的IP地址和远程用户的UID来验证。一般
的系统可能需要某些rpc存在,但对各种服务器如Web servers, ftp servers, mail server
s, etc)最好将rpc服务关闭,你也可以通过一些安全工具来确定rpc服务是否会影响到你系统
的安全性。可以通过将/etc/rc2.d/S71RPC改名来禁止rpc。
3.1.4.5 in.finger的安全问题
in.fingerd在过去有一些安全问题,如果你想提供finger工具,用nobody来运行它。
3.1.4.6 sendmail的设置
/usr/lib/sendmail守护程序并没有打开,因为你不必总在25端口监听mail的列表请求,你可
以在root的crontab文件中增加:
0 * * * * /usr/lib/sendmail -q > /var/adm/sendmail.log 2>&1
这条命令要以每小时调用sendmail进程处理排队中的邮件。
3.1.5 cron 和 at
3.1.5.1 cron任务的注意事项
1) 查看所有的cron任务--在/var/spool/cron/crontabs文件中可以找到它们。
2) 必须在/etc/default/cron里设置了"CRONLOG=yes" 来记录corn的动作。
3.1.5.2 cron用户配置
/etc/cron.d/cron.allow和/etc/cron.d/cron.deny两个文件决定了一个特定用户是否可以运
行crontab命令。daemon、bin、smtp、nuucp、listen、nobody、noaccess这些用户不应该有
执行crontab权限。
3.1.5.3 at 用户配置
/etc/cron.d/at.allow和/etc/cron.d/at.deny两个文件决定了一个特定用户是否可以运行a
t命令。daemon、bin、smtp、nuucp、listen、nobody、noaccess这些用户不应该有执行at权
限。
3.1.5.4 cron和Tripwire
Tripwire应该配置成定期检查下面文件和目录:/etc/cron.d、/etc/default、/var/cron、
/var/spool/cron、/etc/cron.d/cron.allow、/etc/cron.d/at.allow、/etc/cron.d/at.de
ny
3.1.6 系统日志
创建所有重要的日志文件的硬拷贝
保证在“/var/log”目录下的不同日志文件的完整性是保证系统安全所要考虑的非常重要的
一个方面。如果我们在服务器上已经加上了很多安全措施,黑客还是能够成功入侵,那么日
志文件就是我们最后的防范措施。因此,很有必要考虑一下用什么方法才能保证日志文件的
完整性。如果服务器上或网络中的其它服务器上已经安装了打印机,就可以把重要的日志文
件打印出来。这要求有一个可以连续打印的打印机,并用syslog把所有重要的日志文件传到
“/dev/lp0”(打印设备)。黑客可以改变服务器上的文件、程序,等等,但是,把重要的日
志文件打印出来
版权声明:本文标题:Unix高级安全设置 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726420269h957399.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论