您的当前位置:首页正文

系统安全策略

2020-11-24 来源:客趣旅游网


教你怎么设置安全的SOLARIS系统

一、帐号和口令安全策略

1.1更改口令文件、影像文件、组文件的权限

/etc/passwd 必须所有用户都可读,root用户可写 ?rw-r?r? /etc/shadow 只有root可读 ?r--------

/etc/group 必须所有用户都可读,root用户可写 ?rw-r?r?

1.2修改不必要的系统帐号

移去或锁定那些系统帐号,比如sys、uucp、nuucp、listen、lp、adm等等,简单的办法是在/etc/shadow的password域中放上NP字符。还能考虑将/etc/passwd文件中的shell域设置成/bin/false

1.3修改口令策略

修改/etc/default/passwd文件

MAXWEEKS=4 口令至少每隔4星期更改一次 MINWEEKS=1 口令至多每隔1星期更改一次

WARNWEEKS=3 修改口令后第三个星期会收到快要修改口令的信息 PASSLENGTH=6 用户口令长度不少于6个字符

二、用户授权安全策略

2.1移去组及其他用户对/etc的写权限。 执行命令#chmod -R go-w /etc

2.2禁止root远程登录 在/etc/default/login中设置 CONSOLE=/dev/concle

2.3setuid和setgid特别权限。

Setuid是指设置程式的有效执行用户身份(uid)为该文件的属主,而不是调用该程式进程的用户身份。Setgid和之类似。Setuid和setgid用1s -1显示出来为s权限,存在于主人和属组的执行权限的位置上。系统设置特别权限,使用户执行某些命令时,具有root的执行权限, 命令执行完成, root身份也随之消失。因此特别权限关系系统的安全,可执行命令#find / -perm -4000 -print 寻找系统中具有setuid权限的文件,存为列表文件,定时检查有没有这之外的文件被设置了setuid权限。

2.4审计并日志所有以root身份的登陆情况 添加或编辑/etc/default/login文件如下: SYSLOG= YES

syslog记录root的登陆失败,成功的情况。

2.5设置远程登陆会话超时时间

添加或编辑/etc/default/login文件如下: TIMEOUT= 300

2.6确定登陆需要密码验证

添加或编辑/etc/default/login文件如下: PASSREQ= YES

2.7 UMASK设置

umask命令设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入.profile文件,就可控制该用户后续所建文件的存取许可.umask命令和chmod命令的作用正好相反,他告诉系统在创建文件时不给予什么存取许可.

安装设置完操作系统之后确认root的umask设置是077或027,执行 /usr/bin/umask [-S] 确认。

2.7.1增加或修改/etc/default/login文件中如下行 UMASK=027

2.7.2并增加上行到如下的文件中:

/etc/.login /etc/.profile /etc/skel/local.cshre /etc/skel/local.login /etc/skel/local.profile

2.8用户环境设置文件的PATH或LD_LIBRARY_PATH中移去“.” 。

从如下的文件中移走”.”,确认root的PATH环境变量设置是安全的,应该只包含/usr/bin:/sbin:/usr/sbin,避免当前工作目录.出目前PATH环境变量中,这有助于对抗特洛伊木马。

#echo $PATH | grep \":.\" 确认

/.login /etc/.login /etc/default/login /.cshrc /etc/skel/local.profile /etc/skel/local.cshrc /.profile /etc/skel/local.login /etc/profile

三、网络和服务安全策略 3.1关闭不用的服务

3.1.1在inetd.conf中关闭不用的服务

首先复制/etc/inet/inetd.conf。 #cp /etc/inet/inetd.conf /etc/inet/inetd.conf.backup然后用vi编辑器编辑inetd.conf文件,对于需要注释掉的服务在相应行开头标记“#”字符即可。

3.1.2在Services中关闭不用的服务

首先复制/etc/inet/services。 #cp /etc/inet/services /etc/inet/services.backup

然后用vi编辑器编辑Services文件,对于需要注释掉的服务在相应行开头标记“#”字符即可。 在inetd.conf、services中进行修改后,找到inetd进程的ID号,用kill向其发送HUP信号进行刷新。举例如下。 #ps -ef | grep inetd

#kill -HUP 进程号 或/usr/sbin/inetd ?s ?t 增加-t选项以加强网络访问控制

3.1.3根据需要关闭不用的服务

可关闭如下服务:tftp、ypupdate(NIS程式)、 dtspcd(邮件收发程式) 、rquotad、name、uucp(网络实用系统)、snmp(简单网络管理协议)等。

3.2关闭系统的自启动服务

在系统/etc/rc*.d的目录下,根据需要停用以下服务:

sendmail 把/etc/rc2.d/S88sendmai更名为tc/rc2.d/X88sendmail DNS 将/etc/rc2.d/S72inetsv注释掉in.named一项 lp 把/etc/rc2.d/S80lp更名为 /etc/rc2.d/X80lp uucp 把/etc/rc2.d/S70uucp更名为/etc/rc2.d/x70uucp

snmp把/etc/rc3.d/S76snmpdx和 /etc/rc3.d/S77dmi 更名 为/etc/rc3.d/s76snmpdx和/etc/rc3.d/s77dmi

autoinstall 把/etc/rc2.d/S72autoinstallg更名为/etc/rc2.d/s72autoinstall

3.3加强FTP服务安全 3.3.1禁止系统用户的FTP服务

把所有的系统账户加入到/etc/ftpusers(solaris 9的该文件现更改为/etc/ftpd/ftpusers)文件:

root 、daemon、sys、bin、adm、lp、uucp、nuucp、listen、nobody

3.3.2禁止FTP&服务暴露系统敏感信息

编辑/etc/default/ftpd文件,如果文件不存在就新建一个,在文件中的加进入下一

项: BANNER=XXXX(XXXX能任意改动为所有一个版本信息),将该系统版本信息屏蔽.

3.3.3ftp服务会话日志记录

/etc/inet/inetd.conf中的ftpd为(记录)

ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd ?dl

3.4加强Telnet服务安全

3.4.1禁止Telnet服务暴露系统敏感信息

防止telnetd banner泄露信息 ,修改/etc/default/telnetd文件 ,加入以下一项:BANNER=XXXX(XXXX能任意改动为所有一个版本信息),将该系统版本信息屏蔽.

3.4.2更改Telnet服务端口号

修改文件/etc/services的Telnet一项,将端口号改为非23,使用Telnet服务时需注明端口号。

3.5加强NFS服务安全

检查/etc/dfs/dfstab文件share语句,缺省时共享目录为可读可写,加入“-o”选项增加安全,“-o rw”可读可写,“-o ro”只读,可授权某系统和某用户。

3.6防止TCP序列号预测攻击(ip欺骗)

在/etc/default/inetinit中增加设置来防止TCP序列号预测攻击(ip欺

骗)TCP_STRONG_ISS=2

3.7系统路由安全

如果Solaris机器有超过一块的网卡的话,他将会在不同网卡间转发数据包,这一行为能在/etc/init.d/inetinit中得到控制。要在Solaris 2.4或更低版本机器下关闭他,能将ndd -set /dev/ip ip_forwarding 0添加于在inetinit文件未尾。在Solaris 2.5以上,只要touch /etc/notrouter.网络系统用静态路由比较安全。

3.8调整网络参数,加强网络安全

使IP forwarding和sourec routing(源路)由无效

在Inetinit中使IP forwarding和sourec routing(源路)由无效(如果有超过一个网络接口的话)。在/etc/init.d/inetinit中增加下面所示设置: 禁止系统转发定向广播包

#ndd -set /dev/ip ip_forward_directed_broadcasts 0

关闭原路由寻址 :#ndd -set /dev/ip ip_forward_src_routed 0 禁止系统转发IP包:#ndd -set /dev/ip ip_forwarding 0 缩短ARP的cache保存时间: (default is 5 min) #ndd -set /dev/arp arp_cleanup_interval 2 min 关闭echo广播来防止ping攻击( # default is 1 ) #ndd -set /dev/ip ip_respond_to_echo_broadcast 0

四、防止堆栈缓冲益出安全策略

入侵者常常使用的一种利用系统漏洞的方式是堆栈溢出,他们在堆栈里巧妙地插入一段代码,利用他们的溢出来执行,以获得对系统的某种权限。要让你的系统在堆栈缓冲溢出攻击中更不易受侵害,你能在/etc/system里加上如下语句:set noexec_user_stack=1 set noexec_user_stack_log =1

第一句能防止在堆栈中执行插入的代码,第二句则是在入侵者想运行exploit的时候会做记录。

五、日志系统安全策略 5.1定时检查系统日志文件

Solaris系统通过syslogd进程运行日志系统,设置文件/etc/syslog.conf,可编辑此文件让日志系统记录更多信息,需重启/usr/sbin/syslogd进程,重读取设置文件。通常日志系统的文件分别存放在两个位置,/var/adm保存本地系统日志,/var/log保存登录其他系统时日志。

5.2设置utmpx和wtmpx文件权限,确保日志系统安全。

文件/var/adm/utmpx记录了所有当前登录到系统中的用户,文件/var/adm/wtmpx记录了系统所有的登录和注销。这两个文件是以数据库的格式存在的。 设置权限#chmod 544 /var/adm/utmpx #chmod 544 /var/adm/wtmpx

六、其他系统安全设置 6.1 crontab命令

6.1.1不要使用crontab ?e命令,因为他会在/tmp下建立所有用户都可读的crontab副本访问cron系统。用如下的方法: 编辑文件:mycronfile crontab

6.1.2在/etc/default/cron文件中增加如下行: CRONLOG=YES 记录所有的crontab行为

6.2对su的纪录

创建/etc/default/su文件 SULOG=/var/adm/sulog SYSLOG=YES

CONSOLE=/dev/console PATH=/usr/bin:

SUPATH=/usr/sbin:/usr/bin

6.3为OpenBoot设置密码 在Solaris中设置密码 #eeprom security-password 在OpenBoot中设置密码 ok password

在Solaris中设置安全级别(command) #eeprom security-mode=command 在OpenBoot中设置安全级别(command) ok setenv security-mode command 在OpenBoot中设置安全级别(full) ok setenv security-mode full

6.4限制.rhosts和/etc/hosts.equiv文件的使用

设置文件具有两种功能:r系列命令使用这些文件来访问系统;在某用户的目录下存在.rhosts文件或/etc/hosts.equiv文件配有某系统,所有用户都能通过rlogin不必口令以该用户的身份登录到系统。因此要为这些文件加锁,先创建他们,然后修改其属性为零即可。这样除了root用户就没有其他用户能创建或修改他们了。 /usr/bin/touch /.rhosts /etc/hosts.equiv /usr/bin/chmod 0 /.rhosts /etc/hosts.equiv

.rhosts文件能作为一个典型的后门文件使用,运行下面的命令全局查找.rhosts文件 #find -name“.rhosts”-print

6.5给系统打补丁

象其他的系统相同,Solaris系统也有他的漏洞,其中的一些从性质上来说是相当严重的。SUN公司长期向客户提供各种版本的最新补丁,放在http://sunsolve.sun.com网站。可用#showrev ?p命令检查系统已打的补丁或到/var/sadm/patch目录下查已打过的补丁号,用patchadd命令给系统打补丁。

七、Setuid设置和Solaris操作系统安全

http://bbs.chinaunix.net/forum/viewtopic.php?t=302945&highlight=Setuid

在Solaris中,文件除了读、写、执行权限外,更有一些特别权限。 Setuid和setgid是其中的一类。他和Solaris系统的安全关系紧密。

Setuid是指设置程式的有效的执行用户身份(uid)为该文件的主人,而不是调用该程式的进程的uid。Setgid和之类似。Setuid和setgid用ls ?l显示出来为s权限,存在于主人和属组的执行权限的位置上。 这种权限的设置方法如下:

只设setuid: chmod 4xxx filename (xxx为一般读、写、执行权限) 只设setgid: chmod 2xxx filename

同时设setuid和setgid: chmod 6xxx filename 取消两种权限: chmod 0xxx filename 这种权限怎么用?

举个例子来说,如果某一命令(程式)的主人是root用户,并且该文件有setuid属性,不过该文件的读、写、执行权限的属性表明普通用户user1能执行该命令,那么就表示:当该用户执行该命令时,他具有root的执行身份,并获得相应的权限。一旦该命令执行完成,该身份也随之消失。

为什么系统中需要有这样的权限呢?请执行以下操作: 7.1. $ ls ?l /etc/shadow /bin/passwd

-r-sr-sr-x 3 root sys 99792 1999 2月 12 /bin/passwd -r-------- 1 root sys 261 1月 3 13:12 /etc/shadow

/etc/shadow文件由于存有用户的加密口令信息,对系统的安全至关重要,因此权限非常严,只有root凭其对系统的至高无上的权限才得以对/etc/shadow可读可写。不过系统必须允许普通用户也能修改自己的口令。要让他们对/etc/shadow可写,又不能可读,而且可写又不能允许他们改别人的口令,怎么办?系统就采取这样一个办法:做一个程式, 也就是/bin/passwd,通过他能在不显示文件内容的情况下直接修改/etc/shadow文件。可是这个程式怎么能有这样的权限?因为系统赋予他setuid权限,而且他属于root.这样,用户在使用/bin/passwd改口令时就有root权限.由于/bin/passwd命令本身功能的局限性,用户并不能用他做更多的不利于系统安全的事。 7.2. 用普通用户身份修改口令 $ passwd

Enter login password: **** New password:******

Re-enter new password:******

Passwd(SYSTEM): passwd successfully changed for xxx . 能成功。

7.3. 用终极用户修改/bin/passwd的权限 # chmod 0555 /bin/passwd

7.4. 再重复2,是否还成功?当然不。 7.5.把/bin/passwd的权限恢复原状。 # chmod 6555 /bin/passwd

对此能打一个生动的比喻:有一个绝密机关,不得已必须有一些不能见这些秘密的人进来做一些事情。于是授权一些特别的“车辆”(没有窗户,门紧闭,所以看不到外面。只有一个小洞允许乘坐的人伸出一只手臂),带着所乘坐的人开到要去的地方,允许他办完事情马上带他出来。这样是不是非常安全?不一定。如果“车辆”没有经过精挑细选是有非常多“门

窗”,那系统可就危险了。

这种安全威胁在Solaris中也有可能出现。比如做一下下面这个实验: 7.6. $ vi /etc/shadow

/etc/shadow: Permission denied. 7.7. 用终极用户身份 # chmod 6555 /bin/vi # chown root /bin/vi

7.8. 这次再用普通用户身份试一试第6步,有什么结果?这次你能以普通用户身份修改 /etc/shadow了!!不过

$ more /etc/shadow仍然不成功,说明在执行/bin/passwd时有终极用户权限,平时仍是普通用户身份。

再来看一个令人不安的情况: 7.9.用终极用户身份 # chmod 6555 /bin/ksh # chown root /bin/ksh 7.10. 用普通用户身份 $ ksh #

发生了什么情况??普通用户不必root口令就变成了root!!!

好可怕。如果有一个用户曾有一次获得终极用户权限,并通过类似的方式给自己设置了后门(也可能放了一个类似的文件在他自己的家目录中),以后他就能随时变成终极用户了。

怎么能避免setuid的不安全影响,又利用其方便的地方?这里有几点建议: 关键目录应严格控制写权限。比如/,/usr等。

对不管是root帐号还是普通用户帐号的保密都有足够的重视。最佳不要设置类似于guest、public、test之类公用的容易猜出口令的帐号。

对系统中应该具有setuid权限的文件作一列表,定时检查有没有这之外的文件被设置了setuid权限。

下面有一个自己编的小程式和大家分享。

程式功能描述:检查有没有/usr/secu/masterlist文件记录之外的其他文件被设置了setuid权限

事先需求:在系统调试完成,所有需要安装的软件安装好以后,执行下面命令生成检查对照文件

# mkdir ?p /usr/secu

# find / -perm ?4000 ?print > /usr/secu/masterlist 程式: cd /tmp

[ -f secrcheck ] && rm secrcheck find / -perm -4000 -print >secrcheck for f in `cat secrcheck` do grep -w $f /usr/secu/masterlist >/dev/null if [ \"$?\" != \"0\" ]; then echo $f is not in list fi done

rm secrcheck 在需要对系统做检查时,执行本shell程式。也能放在定时进程中定时检查。程式由于需要在整个文件系统中做查找操作,需要比较长的时间。 请你作完本文中的实验后,别忘把文件的权限改回原状。

八、Solaris系统安全之审计

作为C2安全等级操作系统(公安部二级),Solaris最主要的安全功能之一就是审计功能,本文将简单介绍Solaris审计功能的使用和启动。

目的:纪录系统和用户事件,并对审计过程自身进行保护。这里值得注意的就是纪录事件的细度。Solaris提供了非常强大的审计功能,甚至能纪录每一条调试信息,不过这样做是不明智的,因为非常多信息对用户没用,而且会使系统性能下降。审计细度需要管理员根据用途和需要自行订制。 实现:

8.1. 查看日志 1) history文件

通常在根目录下,隐藏文件,记录了root执行的命令 2) /var/adm

messages:记载来自系统核心的各种运行日志,能记载的内容是由/etc/syslog.conf决定的

sulog:记载着普通用户尝试su成为其他用户的纪录。他的格式为: 发生时间 +/-(成功/失败) pts号

utmpx:这两个文件是不具可读性的,他们记录着当前登录在主机上的用户,管理员能用w,who等命令来看

wtmpx:相当于历史纪录,记录着所有登录过主机的用户,时间,来源等内容,可用last命令来看 3) /var/log

syslog文件,这个文件的内容一般是纪录mail事件的

8.2. syslog 1) 实时错误检查: tail ?f /var/adm/messages

-f在监视器上允许看见每条记录 /var/adm/messages记录事件路径 2) /etc/syslog.conf语法:

*.err;kern.debug;deamon.notice;mail.crit /var/adm/messages

工具认可的值 值 描述

user 用户进程产生的消息。这是来自没有在文件列表中的设备的消息的默认优先级 kern 由内核产生的消息 mail 邮件系统 daemon 系统守护进程 auth 授权系统,如login、su lpr 行式打印机假脱机系统

news 网络新闻系统USENET保留值

uucp 为UUCP系统保留值,目前UUCP不使用syslog机制 cron Cron/at工具;crontab、at、cron local0-7 为本地使用保留

mark 内部用于由syslog产生的时间戳消息

* 除标记工具之外的所有工具 级别认可的值(按重要性降序排列)

emerg 用于通常必须广播给所有用户的恐慌情况 alert 必须即时被修正的情况,例如被损坏的系统数据库 crit 用户对关键情况的告警,例如设备错误 err 用于其他错误

warning 用于所有的警告信息

notice 用于没有错误不过可能需要特别处理的情况。 info 通知消息

debug 用于通常只在调试时才使用的消息

none 不发送从指出的设备发来的消息到选定文件中 3) 例如如果要纪录登录信息(telnet),能这样做: /etc/default/login中:SYSLOG=YES

/etc/syslog.conf中添加:auth.notice /export/home/wangyu/log

(把日志记录在/export/home/wangyu/log文件中,中间不是空格,是Tab) 重新启动syslog守护进程

当telnet上去的时候,我们看到/export/home/wangyu/log中有: Sep 11 10:07:25 hlstar login: [ID 254462 auth.notice] ROOT LOGIN /dev/pts/1 FROM 192.168.0.9

8.3. Loghost

编辑/etc/syslog.conf,语法:

*.err;kern.debug;deamon.notice;mail.crit @loghost (记录登录信息) 重新启动syslog守护进程

假设这次我们使用linux做日志主机: [root@wangyu root]#/sbin/setup

打开设置界面-->firewall configuration-->custom-->other ports: 写入 syslog:udp 重新启动防火墙

/etc/init.d/iptables restart或/etc/init.d/ipchains restart

设置loghost接收网络日志数据,修改/etc/sysconfig/syslog设置文件: 修改 SYSLOGD_OPTIONS=\"-m 0\" 为 SYSLOGD_OPTIONS=\"-r -m 0\" 重新启动syslog守护进程

此时/var/log/messages最下端附近会看到类似下面的信息

Aug 11 21:20:30 logserver syslogd 1.3-3: restart. (remote reception) 当telnet上去的时候,我们看到/var/log/messages中有类似下面的信息: Sep 5 11:08:31 mastadon login: [ID 507249 auth.notice] Login failure on /dev/pts/3 from 192.168.0.9, root

8.4. 记帐

Solaris操作系统能通过设置日志文件能对每个用户的每一条命令进行纪录,这一功能默认是不开放的

运行/usr/lib/acct/accton [路径][文件名]

(如/usr/lib/acct/accton /export/home/wangyu/test,将日志记录到test中) 查看的时候将文件移动到/var/adm目录下,改名为pacct

执行查看命令lastcomm(比如查看用户root,用命令lastcomm root)

8.5. BSM(以下部分节减自freedemon的“SecU Solaris p2.3 BSM审计系统”,详见 http://bbs.nsfocus.net/index.php?act=ST&f=10&t=147174) 1) 开启BSM:

# init 1 (重新引导或改动运行级别到单用户状态)

#/etc/security/bsmconv (运行BSM初始化脚本,开启审计功能) # reboot (重新启动系统,或Ctrl+D改动到多用户状态) 2) 关闭BSM审计功能: # init 1

# /etc/security/bsmunconv # reboot

3) 设置文件的功能:

BSM所有的设置文件都存放在/etc/security目录下( (4)代表周详信息察看man (4) : audit_class(4) 审计类别定义 audit_control(4) 审计进程控制信息 audit_data(4) 审计进程当前信息 audit.log(4)审计日志格式 audit_event(4)

时间定义到类别的映射文件 audit_user(4)

按用户审计时的用户定义文件

除了上面的设置文件之外,系统中更有一些用于BSM管理的脚本。 audit_startup(1M) 启动BSM进程运行。 auditconfig(1M)

读取设置文件,重新设置audit进程。 auditd(1M) 审计监视服务。 auditreduce(1M)

审计事件日志管理,能调整日志格式,生成时间周期等信息。 auditstat(1M)

先是内核审计进程状态。 bsmconv(1M) 开启BSM功能。 bsmunconv(1M) 关闭BSM功能。 praudit(1M)

打印BSM审计日志内容。

4) BSM应用

在默认设置情况下,BSM每天(24小时)会生成一个以当天日期为名字的审计日志,存放在 /var/audit目录下,这个文件具有自己的数据结构,所以直接查看时是乱码,必须使用系统命令 praudit来查看。

# praudit /var/audit/xxxxxx.xxxxxx.log

另一个可能用到的命令是auditreduce ,这个命令允许管理员对审计日志做一些设置,例如调整审计事件集或调整审计日志生成周期等等。auditreduce和praudit是系统中BSM管理最基本的两个命令,组合起来能完成相当多的功能: 用管道联合两个命令,会显示系统中所有的历史审计事件。 # auditreduce | praudit

再加上lp,将把所有审计事件直接打印出来。 # auditreduce | praudit | lp

如果系统中有相当多的审计信息的话,查找将是非常困难的事情,这条命令能按照yymmdd的时间格式显示目标时间段内的审计事件,范例为显示April 13, 1990, 用户fred的登录类别审计事件集。

# auditreduce -d 900413 -u fred -c lo | praudit

过滤目标时间所有的登录日志信息(Class:lo),并且输出到一个独立的日志文件中: # auditreduce -c lo -d 870413 -O /usr/audit_summary/logins

auditreduce的 -b 和 -a 选项允许用户按照 yyyymmdd00:00:00 的时间格式制定一个时间段(Before & After)。

# auditreduce -a 91071500:00:00 | praudit # auditreduce -b 91071500:00:00 | praudit 5) 管理工具: eXpert-BSMTM

一个非常强大的商业BSM分析工具,不过目前也能免费使用,支持Solaris 7/8 (Sparc|Intel)平台,能在下面地址下载。

http://www.sdl.sri.com/projects/emerald/releases/eXpert-BSM/download.html Sun WBEM

Solaris内置的图像界面管理工具,也就是AdminConsole,在WBEM 2.3之后的版本支持对BSM信息的管理。能用下面命令开启:

# /usr/sadm/bin/wbemadmin (第一次运行时会安装一系列的管理脚本) # /usr/sadm/bin/smc (开启管理终端)

以上,对Solaris审计系统进行了设置,相信大部分用户行为和入侵行为都被记录下来了,并且对日志自身也进行了一定保护。如果管理员能及时分析日志,相信能捕捉大部分入侵企图和行为。

网友评论

标题:十、附加

内容:设置更安全的NFS

NFS version 4支持传统的NFS协议RFC 1813,但新用General Security Service (GSS)架构实现更安全的RPC,如启用安全模式共享文件系统:

# share -F nfs -o sec=krb5 /export/oracle

再用snoop对比跟踪网上的RPC调用:

NFS version 3 NFS version 4

-> LOOKUP \"export\" ->OPEN \"export/oracle\" <- OK READ

->LOOKUP \"oracle\" <- OPEN OK <- OK READ OK

-> ACCESS \"oracle\" (sends data) <- OK

-> READ \"oracle\" <- OK (sends data)

2. 指定加密算法对文件数字签名

如列出Solaris数字签名的加密算法:

# digest -l sha1 md5

如选用md5对制定文件数字签名:

# digest -a md5 /etc/hosts

50d8ab70777f0bd203f660cd9c0d6ad5

可在文件传递的所有时间比较文件的数字签名:

# digest -v -a md5 /etc/hosts

md5 (/etc/hosts) = 50d8ab70777f0bd203f660cd9c0d6ad5

3. 利用加密算法对备份的数据加密,使系统磁带对盗窃者无用

列出Solaris中可用的加密算法:

# encrypt -l

算法 密钥大小: 最小 最大 (位)

------------------------------------------ aes 128 128 arcfour 8 128 des 64 64 3des 192 192

鉴于1998年美国有人就已穷举攻破56位密钥DES,所以选用DES加密备份和恢复,试试国人水平:

# ufsdump 0f - /oracle | encrypt -a des -k /etc/mykeys/backup.k | dd of=/dev/rmt/0

# decrypt -a des -k /etc/mykeys/backup -i /dev/rmt/0 | ufsrestore vf - 东方蜘蛛 评论于 2005年07月10日01时07分 标题:九、文件/系统完整性管理BART

内容:Basic Audit Reporting Tool工具帮助快速可靠的检查已部署的系统,创建已设置好的系统上的文件列表manifest,在系统上发现文件一级的改动,所以在设置好系统后应尽快建立系统或关键目录的文件列表manifest,并按系统的变化经常更新。

如,/etc目录往往存放系统的重要设置信息,

2005年05月20日建立/etc的文件列表manifest:

# bart create -R /etc > etc2005-05-20

2005年05月30日建立/etc的文件列表manifest:

# bart create -R /etc > etc2005-05-30

如在2005年05月20日到05月30日,发觉/etc目录不安全,可能有人改过,可进行对比:

# bart compare etc20050520 etc20050530 /inet/hosts:

size control:742 test:758

mtime control:42883bc8 test:42997c6e

contents control:360be0aaa88e730ee1681c4d9afa20e3 test:50d8ab70777f0bd203f660cd9c0d6ad5

随即可发现,有人改动/etc/hosts文件。

那会不会有人改动了/etc的文件列表manifest呢,文件可读:

# grep host etc20050530 。。。

/inet/hosts F 758 100444 user::r--,group::r--,mask:r--,other:r-- 42997c6e 0 3 50d8ab70777f0bd203f660cd9c0d6ad5

因篇幅问题不能全部显示,请点此查看更多更全内容