科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道Solaris 安全整理

Solaris 安全整理

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Solaris 安全整理

来源:论坛整理 2008年12月11日

关键字: 安全技术 unix 系统安全

  • 评论
  • 分享微博
  • 分享邮件
用户控制

登录帐户 GID     用法

root      0        几乎没有任何限制。可覆盖所有其他登录、保护和权限。root 帐户具有访问整个系统的权限。应该非常谨慎地保护root 登录口令。root 帐户(即超级用户)有权使用大多数Solaris 命令。

daemon   1         控制后台处理。

bin       2        有权使用部分Solaris 命令。

sys       3       有权访问许多系统文件。

adm      4        有权访问某些管理文件。

Lp      71       有权访问打印机的对象数据文件和假脱机数据文件。

uucp      5        有权访问UUCP(UNIX 对UNIX 复制程序)的对象数据文件和假脱机数据

文件。

nuucp     9        供远程系统用于登录到系统并启动文件传输。



显示用户的登录状态。

# logins -x -l username

-x 显示一组扩展的登录状态信息。

-l username 显示指定用户的登录状态。变量username 是用户的登录名称。必须以

逗号分隔的列表形式指定多个登录名称。

# logins -x -l root

root          0       root                0                     Super-User

                       /

                        /sbin/sh

                        PS 082587 -1 -1 -1

Root用户的登录名称

0 用户ID (user ID, UID)。

0 标识用户的主组。

10 标识组ID (group ID, GID)。

/ 标识用户的起始目录。

/sbin/sh 标识登录shell。

PS 082587 -1 -1 -1指定口令生命期信息:

■ 上次更改口令的日期

■ 更改之间要求的天数

■ 在该天数后必须更改

■ 警告期

如何显示没有口令的用户

# logins –p

-p 选项用于显示没有口令的用户列表。除非启用了名称服务,否则logins 命令将使用

本地系统的口令数据库。

如何临时禁止用户登录

1在文本编辑器中创建/etc/nologin 文件。

# vi /etc/nologin

2添加有关系统可用性的消息。

3关闭并保存该文件。

如何监视所有失败的登录尝试

1.使用所需的SYSLOG 和SYSLOG_FAILED_LOGINS 值设置/etc/default/login 文件。

编辑/etc/default/login 文件以更改相应项。请确保取消对SYSLOG=YES 的注释。

# grep SYSLOG /etc/default/login

# SYSLOG determines whether the syslog(3) LOG_AUTH facility

# should be used

SYSLOG=YES

...

SYSLOG_FAILED_LOGINS=0

#

2.使用正确的权限创建文件以保存日志信息。

a. 在/var/adm 目录中创建authlog 文件。

# touch /var/adm/authlog

b. 在authlog 文件中,为root 用户设置读写权限。

# chmod 600 /var/adm/authlog

c. 在authlog 文件中,将组成员关系更改为sys。

# chgrp sys /var/adm/authlog

3.编辑syslog.conf 文件以记录失败的口令尝试。

这些失败应发送到authlog 文件。

a. 在syslog.conf 文件中键入以下项。

使用制表符分隔syslog.conf 的同一行中的字段。

auth.notice <按Tab 键> /var/adm/authlog

4. 刷新syslog 守护进程的配置信息。

# svcadm refresh system/system-log

5. 检验日志是否正常工作。

# more /var/adm/authlog

Apr 16 12:00:50 suoetc sshd[1063]: [ID 800047 auth.notice] Failed keyboard-interac

tive for root from 192.168.2.11 port 1806 ssh2

日志显示:IP192.169.2.11 ,root,用户失败,时间. Apr 16 12:00:50

如何监视正在使用su 命令的用户

1.定期监视/var/adm/sulog 文件的内容。

# more /var/adm/sulog

SU 04/16 11:34 + pts/5 root-root

SU 04/16 11:35 + pts/6 ux-root

SU 04/16 11:38 + pts/5 root-ux

SU 04/16 11:39 - pts/5 root-ux

SU 04/16 11:43 + pts/6 ux-ux

SU 04/16 11:46 + pts/6 ux-root

SU 04/16 11:47 - pts/1 ux-root

SU 04/16 11:47 - pts/1 ux-root

SU 04/16 12:42 + pts/1 ux-root

SU 04/16 12:46 + ??? root-root

■ 输入命令的日期和时间。

■ 尝试是否成功。加号(+) 表明尝试成功。减号(-) 表明尝试失败。

■ 发出命令的端口。

■ 用户名称和切换身份的名称。

审计报告工具

BART 是一种完全在文件系统层运行的文件跟踪工具。使用BART,可以迅速、轻松、

可靠地收集有关安装在已部署的系统上的软件栈组件的信息。使用BART,可以通过简

化耗时的管理任务来显著降低管理系统网络的成本。

使用BART,可以根据已知的基准确定系统上所进行的文件层更改。可以使用BART 根

据完全安装并配置的系统创建基准或控制清单。然后可将此基准与系统快照进行比

较,将生成一个列出从系统安装以来所进行的文件层更改的报告。

bart 命令是标准UNIX 命令。您可以将bart 命令的输出重定向到文件以便进行后续处

理。

BART 功能

BART 在设计上侧重于既有效又灵活的简单语法。使用此工具,可以生成给定系统在一

段时间内的清单。然后,需要验证此系统的文件时,可以通过比较新旧清单来生成报

告。使用BART 的另一种方法是生成若干个相似系统的清单,然后进行系统间的比

较。BART 与现有审计工具的主要区别在于BART 在跟踪信息和报告信息方面都非常灵

活。

BART 的其他优点和用法包括:

■ 提供了一种为运行Solaris 软件的系统在文件层编制目录的有效而简便的方法。

■ 使用BART,可以定义要监视的文件,还可以在必要时修改配置文件。借助这种灵

活性,可以监视本地的自定义项,并可轻松、有效地重新配置软件。

■ 确保系统运行可靠的软件。

■ 允许监视一段时间内系统在文件层的变化,从而帮助找到损坏或异常的文件。

■ 帮助对系统性能问题进行疑难解答。

# bart

用法:

        bart create [-n] [-R 根目录] [-r 规则|-]

        bart create [-n] [-R 根目录] [-I | -I 文件列表]

        bart compare [-r 规则|-] [-i 关键字] [-p]控制清单文件 测试清单文件

-R 指定清单的根目录。所有由规则指定的路径都会被解释为此目录的相对路径。所

有由清单报告的路径均为此目录的相对路径。

-I 无论是从命令行执行此选项,还是从标准输入中读取此选项,它都会接受要列出

的单个文件的列表。

-r 此清单的rules 文件的名称。请注意,– 在与-r 选项一起使用时,会从标准输入

读取rules 文件。

-n 禁用文件列表中所有常规文件的内容签名。此选项可用于改善性能。或者,可以

在需要更改文件列表的内容时使用此选项,这与系统日志文件的情况类似

# bart create -R /etc    //创建仅包含有关/etc 子树中文件的信息的清单

# bart create -I /etc/passwd /etc/shadow //创建仅列出有关系统上/etc/passwd 和/etc/shadow 文件的信息的清单

比较同一系统在一段时间内的清单

# bart create -R /etc > systeml.control.121212    //创建控制清单。

#cat >/etc/ssh/xu.txt      //创建文件放于/etc/ssh目录下

# bart create -R /etc > system1.test.1212123       //更改时创建测试清

# bart compare systeml.control.121212 system1.test.1212123   //将控制清单与测试清单进行比较

# bart compare systeml.control.121212 system1.test.1212123

/xu.txt:

add

显示增加了一个文件./xu.txt

控制对文件的访问

保证文件和目录安全的命令

ls           列出目录中的文件及其有关信息。

chown    更改文件的拥有权。

chgrp     更改文件的组拥有权。

chmod    更改文件的权限。可以使用符号模式(使用字母和符号)或绝对模式(使用八进制数字)更改文件的权限。

文件可以是七种类型之一。每种类型由一个符号显示:

-(减号) 文本或程序

b 块特殊文件

c 字符特殊文件

d 目录

l 符号链接

s 套接字

D 门

P 命名管道(FIFO)

UNIX 文件权限

r 读文件指定的用户可以打开和读取文件内容。

目录指定的用户可以列出目录中的文件。

w 写文件指定的用户可以修改文件的内容或删除该文件。

目录指定的用户可以在目录中添加文件或链接。这些用户也可以删除

目录中的文件或链接。

x 执行文件指定的用户可以执行文件(如果该文件为程序或shell 脚本)。这

些用户也可以使用一个exec(2) 系统调用来运行程序。

目录指定的用户可以打开或执行目录中的文件。这些用户也可以使该

目录以及该目录下的目录成为当前目录。

- 拒绝文件和目



指定的用户无法读写或执行文件。

文件权限模式

0 --- 无权限

1 --x 仅执行权限

2 -w- 只写权限

3 -wx 写和执行权限

4 r-- 只读权限

5 r-x 读和执行权限

6 rw- 读写权限

7 rwx 读写和执行权限

u who 用户(属主)

g who 组

o who 其他用户

a who 所有

= operator 赋值

+ operator 添加

- operator 删除

r permissions 读

w permissions 写

x permissions 执行

l permissions 强制锁定,setgid 位打开,组执行位关闭

s permissions setuid 或setgid 位打开

t permissions Sticky 位打开,对于其他用户,执行位打开

使用访问控制列表保护文件

文件的ACL 项

u[ser]::perms 文件属主权限。

g[roup]::perms 文件组权限。

o[ther]:perms 文件属主或文件组成员之外的用户的权限。

m[ask]:perms ACL 掩码。掩码项表示允许用户(属主除外)和组拥有的最大权限。掩码是

一种可快速更改所有用户和组的权限的方法。

例如,mask:r-- 掩码项表示,用户和组只能拥有读取权限,即使他们可能拥

有写和执行权限。

u[ser]:uid:perms 特定用户的权限。对于uid,可以指定用户名或数字UID。

g[roup]:gid:perms 特定组的权限。对于gid,可以指定组名或数字GID。

显示文件信息

# ls -la

-l 显示包括用户拥有权、组拥有权和文件权限的长格式。

-a 显示所有文件,包括以点(.) 开头的隐藏文件。

在符号模式下更改权限

#chmod who operator permissions filename

who 指定要更改其权限的用户。

operator 指定要执行的操作。

permissions 指定要更改的权限。有关有效的符号列表,请参见表6–5。

filename 指定文件或目录。

# chmod o-r example-file1     //为用户、组和其他用户添加读和执行权限

# chmod a+rx example-file2 //为组指定读写和执行权限

检查文件是否具有ACL

# ls -l filename

其中,filename 指定文件或目录。

在输出中,模式字段右侧的加号(+) 表示该文件具有ACL。

如何将ACL 项添加到文件

# setfacl -s user::perms,group::perms,other:perms,mask:perms,acl-entry-list filename ...

-s 设置文件的ACL。如果文件已具有ACL,则会替换该ACL。此选项要

求至少有user::、group:: 和other:: 项。

user::perms 指定文件属主权限。

group::perms 指定组属主权限。

other:perms 为文件属主或组成员之外的用户指定权限。

mask:perms 指定ACL 掩码的权限。掩码表示允许用户(属主除外)和组拥有的最

大权限。

acl-entry-list 指定文件或目录中要为特定用户和组设置的一个或多个ACL 项的列

表。也可以设置目录的缺省ACL 项。表6–7 和表6–8 显示了有效的ACL

项。

filename ... 指定要对其设置ACL 的一个或多个文件或目录。多个filename 由空格分

隔。

# cat >xu.txt

asdfa

asdfasdf

asdfas

# ls -l xu.txt

-rw-r--r--   1 root     root          22 4月 16日 14:18 xu.txt

# setfacl -s user::rw-,group::r--,other:---,mask:rw-,user:root:rw- xu.txt

# ls -l xu.txt

-rw-r-----+ 1 root     root          22 4月 16日 14:18 xu.txt

#

# getfacl xu.txt

# file: xu.txt

# owner: root

# group: root

user::rw-

user:root:rw-           #effective:rw-

group::r--              #effective:r--

mask:rw-

other:---

# setfacl -s u::7,g::4,o:0,m:4,u:anusha:7 ch2.sgm

# getfacl ch2.sgm


复制ACL

通过重定向getfacl 输出,将文件的ACL 复制到另一个文件。

#getfacl filename1 | setfacl -f - filename2

filename1 指定将从其中复制ACL 的文件。

filename2 指定要对其设置所复制的ACL 的文件。

修改文件的ACL 项

% setfacl -m user:anusha:6 ch3.sgm     //将用户anusha 的权限修改为读写。

% getfacl ch3.sgm

删除文件的ACL 项

# setfacl -d acl-entry-list filename ...

-d 删除指定的ACL 项。

acl-entry-list 指定文件或目录中要删除的ACL 项(未指定权限)的列表。只能删除

特定用户和组的ACL 项和缺省ACL 项。表6–7 和表6–8 显示了有效的

ACL 项。

filename ... 指定一个或多个文件或目录,由空格分隔。

或者,可以使用setfacl -s 命令删除文件的所有ACL 项,并使用所指定的新ACL 项替

换它们。

显示文件的ACL 项

# getfacl [-a | -d] filename ...

-a 显示指定文件或目录的文件名、文件属主、文件组和ACL 项。

-d 显示指定目录的文件名、文件属主、文件组和缺省ACL 项(如果存

在)。

filename ... 指定一个或多个文件或目录,由空格分隔。

如果在命令行中指定多个文件名,则会在每两个ACL 项之间显示一个空白行

特殊文件权限查找文件

使用find 命令查找拥有setuid 权限的文件

# find directory -user root -perm -4000 -exec ls -ldb {} \; >/tmp/filename

find directory 检查以指定的directory(可以是root (/)、sys、bin 或mail)开头的

所有挂载路径。

-user root 仅显示由root 拥有的文件。

-perm -4000 仅显示权限被设置为4000 的文件。

-exec ls -ldb 以ls -ldb 格式显示find 命令的输出。

>/tmp/filename 包含find 命令的结果的文件。

# find / -user root -perm -4000 -exec ls -ldb {} \; > /var/tmp/ckprm

# cat /var/tmp/ckprm

禁止程序使用可执行栈

编辑/etc/system 文件并添加以下行:

set noexec_user_stack=1

重新引导系统。

# init 6

禁止记录可执行栈消息

在此示例中,将禁止记录可执行栈消息,然后重新引导系统。

# cat /etc/system

set noexec_user_stack=1

set noexec_user_stack_log=0

# init 6

如何生成对称密钥

1.        列出可用算法

# encrypt -l

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

------------------------------------------

aes                       128   128

arcfour                     8   128

des                        64    64

3des                      192   192
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章