- 论坛徽章:
- 0
|
3.监控和限制超级用户
(1)如何监控哪些用户使用了su命令。
sulog文件列出了哪些用户使用了su命令,不仅仅指那些使用su命令转为超级用户的用户。
查看/var/adm/sulog文件:
# more /var/adm/sulog
SU 12/20 16:26 + pts/0 stacey-root
SU 12/21 10:59 + pts/0 stacey-root
SU 01/12 11:11 + pts/0 root-rimmer
SU 01/12 14:56 + pts/0 pmorph-root
SU 01/12 14:57 + pts/0 pmorph-root
信息内容解释如下:
使用命令的日期和时间都被记录下来。
命令使用成功以“+”标识;不成功以“-”标识。
显示了命令运行的端口。
最后是用户被转换了其他用户的身份的记录。
su的日志默认就是开启的,它的配置文件是/etc/default/su,其内容如下:
SULOG=/var/adm/sulog
(2)如何显示超级用户登录控制台。
有了上面的知识,在控制台上显示超级用户的登录就非常简单了。只需要在/etc/default/su中加入下面一行:
CONSOLE=/dev/console
(3)如何防止用户通过超级用户远程登录。
用户在远程使用超级用户权限登录,对系统的安全会造成较大威胁。大多数系统都禁止超级用户直接在远端登录。具体方法是在/etc/default/login文件中,写入:
CONSOLE=/dev/console
这样,超级用户只能在控制台上登录。远程用户只有以其他用户名登录后,在使用su命令,才能获得超级用户权限。
20.2.2 控制访问设备
Solaris有两种方法来控制访问设备。设备策略是限制或禁止访问完整的系统设备,它是在内核中强制执行的。设备分配是限制和禁止访问外围设备的,它在用户得到分配的时间中是强制配给的。
设备策略是用权限在内核中保护特定的设备驱动。比如,在网络端口上设备策略就需要有全部的读写权限。
设备分配给使用授权来保护外围设备,比如打印机和麦克风。在默认情况下,设备分配是关闭的。默认外围设备控制如下:
任何用户能读写磁盘或CD-ROM。
任何用户可以用麦克风。
任何用户可以访问附属的打印机。
一旦设备分配开启,设备分配能防止使用设备或需要授权才能使用设备。当设备分配给某用户时,其他任何用户都不可以访问这个设备。
1.设备策略
设备策略机制能使得只有使用特权才能访问设备。Solaris操作系统提供了默认的驱动程序策略。比如,网络端口的访问需要net_rawaccess权限等。这在内核中是强制的。
在以前的Solaris版本,设备节点的保护只是通过文件的权限。比如,sys组拥有的设备只能被sys组成员用户打开。在Solaris 10中,文件的许可不再通过谁能打开设备而预知,代替的是,设备的保护是通过文件的许可和设备策略。
(1)查看设备策略。
例20-7 显示系统中所有设备的设备策略。
% getdevpolicy | more
DEFAULT
read_priv_set=none
write_priv_set=none
ip:*
read_priv_set=net_rawaccess
write_priv_set=net_rawaccess
...
(2)增加设备策略。
例20-8 在已有的设备上增加设备策略。
(1)查看现有策略:
# getdevpolicy /dev/ipnat
/dev/ipnat
read_priv_set=none
write_priv_set=none
(2)使用update_drv命令增加策略:
# update_drv -a -p ’read_priv_set=net_rawaccess write_priv_set=net_rawaccess’ ipnat
(3)检查更新:
# getdevpolicy /dev/ipnat
/dev/ipnat
read_priv_set=net_rawaccess
write_priv_set=net_rawaccess
(3)删除设备策略。
例20-9 将读权限从ipnat设备上删除。
(1)查看现有策略:
# getdevpolicy /dev/ipnat
/dev/ipnat
read_priv_set=net_rawaccess
write_priv_set=net_rawaccess
(2)将读权限从ipnat设备上删除:
# update_drv -a -p write_priv_set=net_rawaccess ipnat
(3)检查结果:
# getdevpolicy /dev/ipnat
/dev/ipnat
read_priv_set=none
write_priv_set=net_rawaccess
2.管理设备分配
设备分配机制可以严格限制访问外围设备,比如CD-ROM。设备分配要求只有授权用户才能访问限制设备,能防止设备被任意访问。
(1)如何启动设备分配。
当你已经使用bsmconv命令启动了基本安全模块(BSM)的时候,设备分配在你的系统中就已经启动。
例20-10 启动设备分配。
# bsmconv
This script is used to enable the Basic Security Module (BSM).
Shall we continue with the conversion now? [y/n] y
bsmconv: INFO: checking startup file.
bsmconv: INFO: move aside /etc/rc3.d/S81volmgt.
bsmconv: INFO: turning on audit module.
bsmconv: INFO: initializing device allocation files.
The Basic Security Module is ready.
If there were any errors, please fix them now.
Configure BSM by editing files located in /etc/security.
Reboot this system now to come up with BSM enabled.
(2)如何查看设备分配的信息。
# list_devices device-name
device-name是指下列设备:
audio[n] – 麦克风和喇叭;
fd[n] – 磁盘设备;
sr[n] – CD-ROM;
st[n] – 磁带设备。
3.分配设备
分配设备的目的就是保障一个设备在同一时间只能有一个用户使用。需要mount的设备要在mount后才能使用。
(1)如何分配设备。
例20-11 将音频设备分配给jdoe用户。
% whoami
jdoe
% allocate audio
例20-12 将打印机强制分配给任何用户。
$ deallocate -F /dev/lp/printer-1
例20-13 将磁带机分配给用户jdoe。
% whoami
jdoe
% allocate st0
(2)如何分配需要mount的设备。
例20-14 用户的角色能分配和mount设备fd0。这个磁盘设备的文件系统是PCFS。
% roles
devicealloc
% su devicealloc
Password: <Type devicealloc password>
$ mkdir /home/devicealloc/mymnt
$ chmod 700 /home/devicealloc/mymnt
$ list_devices -l
...
device: fd0 type: fd files: /dev/diskette /dev/rdiskette /dev/fd0a
...
$ allocate fd0
$ mount -o ro -F pcfs /dev/diskette /home/devicealloc/mymnt
$ ls /home/devicealloc/mymnt
…显示出磁盘内容
例20-15 用户的角色能分配和mount CD-ROM设备,sr0。设备的文件系统是HSFS。
% roles
devicealloc
% su devicealloc
Password: <Type devicealloc password>
$ mkdir /home/devicealloc/mymnt
$ chmod 700 /home/devicealloc/mymnt
$ list_devices -l
...
device: sr0 type: sr files: /dev/sr0 /dev/rsr0 /dev/dsk/c0t2d0s0 ...
...
$ allocate sr0
$ mount -o ro -F hsfs /dev/sr0 /home/devicealloc/mymnt
$ cd /home/devicealloc/mymnt ; ls
…显示CD-ROM的内容
(3)如何交出设备。
当你使用完设备后,unmount的设备后,可以使用deallocate命令,将设备交给其他用户使用。
20.2.3 文件访问控制
对文件的访问控制有两种方法:一是UNIX的文件权限管理;二是使用访问控制列表来管理。
1.UNIX文件权限管理
(1)如何显示文件信息。
例20-16 显示文件信息。
% cd /sbin
% ls -la
total 13456
drwxr-xr-x 2 root sys 512 Sep 1 14:11 .
drwxr-xr-x 29 root root 1024 Sep 1 15:40 ..
-r-xr-xr-x 1 root bin 218188 Aug 18 15:17 autopush
lrwxrwxrwx 1 root root 21 Sep 1 14:11 bpgetfile -> ...
-r-xr-xr-x 1 root bin 505556 Aug 20 13:24 dhcpagent
-r-xr-xr-x 1 root bin 456064 Aug 20 13:25 dhcpinfo
(2)如何改变文件的拥有者。
例20-17 将文件的拥有者改为stacey。
# chown stacey example-file
(3)如何改变文件的组。
例20-18 将文件的组改为scifi。
$ chgrp scifi example-file
(4)如何改变文件权限。
$ chmod a+rx example-file2
$ chmod 700 my_script
2.用访问控制列表设置文件安全
(1)如何检查文件是否有访问控制列表。
例20-19 检查文件是否有访问控制列表。
% ls -l ch1.sgm
-rwxr-----+ 1 stacey techpubs 167 Nov 11 11:13 ch1.sgm
输出结果有“+”号时,表示文件有访问控制列表。
(2)如何给文件增加访问控制列表。
例20-20 给ch1.sgm文件设置访问控制列表。
% setfacl -s user::rw-,group::r--,other:---,mask:rw-,user:anusha:rw- ch1.sgm
使用ls -l查看,ch1.sgm文件有“+”符号,说明访问控制列表已经起作用:
% ls -l
total 124
-rw-r-----+ 1 stacey techpubs 34816 Nov 11 14:16 ch1.sgm
-rw-r--r-- 1 stacey techpubs 20167 Nov 11 14:16 ch2.sgm
-rw-r--r-- 1 stacey techpubs 8192 Nov 11 14:16 notes
查看文件的访问控制列表的详细内容:
% getfacl ch1.sgm
# file: ch1.sgm
# owner: stacey
# group: techpubs
user::rwuser:
anusha:rw- #effective:rwgroup::
r-- #effective:r--
mask:rwother:---
(3)如何复制访问控制列表。
例20-21 将ch2.sgm文件的访问控制列表复制到ch3.sgm上。
% getfacl ch2.sgm | setfacl -f - ch3.sgm
(4)如何改变文件的访问控制列表。
例20-22 改变文件的访问控制列表。
% setfacl -m user:anusha:6 ch3.sgm
% getfacl ch3.sgm
# file: ch3.sgm
# owner: stacey
# group: techpubs
user::rwuser::
anusha:rw- #effective:r--
group::r- #effective:r--
mask:r--
other:r-
(5)如何删除文件的访问控制列表。
例20-23 删除文件的访问控制列表。
% setfacl -d user:anusha ch4.sgm
20.2.4 基本审计和报告工具(BART)
BART是在文件系统级的文件跟踪工具。使用BART工具使你能快速、容易和可靠地得到系统中的软件构成信息。使用BART能很大程度地减少网络系统的管理成本。BART能够在目标系统软件目录的文件层执行检查操作。该实用程序可用于收集有关系统已安装了哪些内容的信息。BART还使你能够对已安装的系统及系统内容随时间的变化情况进行比较。
1.BART的组成
基本审计和报告工具(BART)由两个主要部分和一个可选部分组成。
(1)BART文件列表(Manifest)。
你可以使用bart create命令在特定时刻建立文件层的快照。输出的文件目录或文件属性被称为文件列表。文件列表中列出文件的信息,包括着文件属性信息及一些其他的惟一信息,比如md5的检查信息等。
(2)BART报告。
BART报告有三个输出:两个文件列表的比较和一个可能出现的差异标记。你能用bart compare命令比较两个文件列表:控制文件列表和测试文件列表。这些文件列表必须是具有相同的文件系统、选项和创建时使用的规则文件。bart compare命令报告两个文件列表的每一行的差异。这个差异就是指文件列表内表示的文件属性的任何差异。两个文件列表中条目的增加和删除也视为差异。
(3)BART规则文件。
规则文件是用来管理bart命令的文件,是可选的。它使用或排除一些规则。规则文件用来创建定制文件列表和报告。规则文件使你能使用简单的语法设置文件的类别,以及哪些属性需要监控。当你比较文件列表时,规则文件帮助识别差异。使用规则文件是得到系统专门信息的有效方法。
2.如何使用BART
规则用户、超级用户或具有重要管理权限的用户可以使用bart命令。如果你是运行bart的规则用户,你只能监控有权限访问的文件和目录,比如主目录信息。超级用户使用bart命令的优势是可以监控隐藏目录和私人目录的信息。如果要监控严格限制的目录,比如/etc/shadow和/etc/passwd目录,就需要是超级用户或具有相当角色的用户。
(1)如何创建文件列表。
例20-24 创建包含目录/etc/ssh下所有文件信息的文件列表。
# bart create -R /etc/ssh
! Version 1.0
! Saturday, November 29, 2003 (14:05:36)
# Format:
#fname D size mode acl dirmtime uid gid
#fname P size mode acl mtime uid gid
#fname S size mode acl mtime uid gid
#fname F size mode acl mtime uid gid contents
#fname L size mode acl lnmtime uid gid dest
#fname B size mode acl mtime uid gid devnode
#fname C size mode acl mtime uid gid devnode
/ D 512 40755 user::rwx,group::r-x,mask:r-x,other:r-x 3f81eab9 0 3
/ssh_config F 861 100644 user::rw-,group::r--,mask:r--,
other:r-- 3f81e504 0 3 422453ca0e2348cd9981820935600395
/ssh_host_dsa_key F 668 100600 user::rw-,group::---,mask:---,
other:--- 3f81eab9 0 0 5cc28cdc97e833069fd41ef89e4d9834
…
例20-25 创建包含文件/etc/passwd和/etc/shadow的信息的文件列表。
# bart create -I /etc/passwd /etc/shadow
! Version 1.0
! Monday, December 15, 2003 (16:28:55)
# Format:
#fname D size mode acl dirmtime uid gid
#fname P size mode acl mtime uid gid
#fname S size mode acl mtime uid gid
#fname F size mode acl mtime uid gid contents
#fname L size mode acl lnmtime uid gid dest
#fname B size mode acl mtime uid gid devnode
#fname C size mode acl mtime uid gid devnode
/etc/passwd F 542 100444 user::r--,group::r--,mask:r--,
other:r-- 3fcfd45b 0 3 d6
84554f85d1de06219d80543174ad1a
/etc/shadow F 294 100400 user::r--,group::---,mask:---,
other:--- 3f8dc5a0 0 3 fd
c3931c1ae5ee40341f3567b7cf15e2
上面已经显示了这两个文件的详细信息,我们可以对比一下ls –al命令的输出,体会一下它们之间的不同:
# ls -al /etc/passwd
-r--r--r-- 1 root sys 542 Dec 4 17:42 /etc/passwd
# ls -al /etc/shadow
-r-------- 1 root sys 294 Oct 15 16:09 /etc/shadow
显然,文件列表的内容要比ls –al详细得多。
(2)如何比较文件列表。
如果我们在不同的时间对系统中某个目录分别建立了两个文件列表,就可以通过比较这两文件列表的不同而找到这个目录的轻微改动,这也将为系统安全带来新的保障。
例20-26 比较不同时间的/etc目录的变化。
首先,建立/etc的文件列表:
bart create -R /etc > system1.control.121203
在另一个时间建立/etc目录的新的文件列表:
bart create -R /etc > system1.test.121503
最后,比较两个文件列表的内容:
# bart compare system1.control.121203 system1.test.121503
/vfstab:
mode control:100644 test:100777
acl control:user::rw-,group::r--,mask:r--,other:r-- test:user::rwx,
group::rwx, mask:rwx, other:rwx
通过上面的输出报告,我们发现/etc/vfstab文件已经被更改了。 |
|