当前位置:Linux教程 - Linux - Linux系统安全与优化(系统安全软件)

Linux系统安全与优化(系统安全软件)



        
    第九章 系统安全软件


    Linux sXid
    概述

    注意事项

    软件包的来源

    安装软件包需要注意的问题

    编译和安装

    编译和优化

    清除不必要的文件

    配置

    配置“/etc/sxid.conf”文件

    更多的资料

    sXid的管理工具

    安装到系统中的文件

    概述
    sXid是一个SUID/SGID程序的集成监控程序,被设计成用cron定期运行。它可以跟踪SUID/SGID文件或目录的变化。如果发现有什么变化,如:出现了新的SUID/SGID的文件或目录,原来不是SUID的程序现在变成是SUID了,或者SUID/SGID的程序的权限或其它出现了变化,sXid程序就会用命令行或者email报告这些变化。sXid会自动地完成查看SUID/SGID程序的任务并把结果报告给你。只要安装上之后,就可以不用管它了,它会自动为你完成一切工作。

    注意事项
    下面所有的命令都是Unix兼容的命令。

    源路径都为“/var/tmp”(当然在实际情况中也可以用其它路径)。

    安装在RedHat Linux 6.1下测试通过。

    要用“root”用户进行安装。

    sXid的版本是4.0.1。

    软件包的来源
    sXid的FTP站点:ftp://marcus.seva.net/pub/sxid/

    下载sxid_4_0_1_tar.gz这个软件包。

    安装软件包需要注意的问题
    最好在编译前和编译后都做一张系统中所有文件的列表,然后用“diff”命令去比较它们,找出其中的差别并知道到底把软件安装在哪里。只要简单地在编译之前运行一下命令“find /* >sxid1”,在编译和安装完软件之后运行命令“find /* > sxid2”,最后用命令“diff sxid1 sxid2 > sxid”找出变化。

    编译和安装
    把软件包(tar.gz)解压缩:

    [root@deep]# cp sxid_version_tar.gz /var/tmp/
    [root@deep]# cd /var/tmp
    [root@deep]# tar xzpf sxid_version_tar.gz

    编译和优化
    转到sXid的新目录下,运行下面的命令:

    make install

    这个命令会自动地配置软件,保证使用正确的函数库,并把所有的源程序都编译成可执行的二进制文件,接着,安装这些二进制文件并把其它运行这个软件所需要的文件安装到相应的目录下。

    清除不必要的文件
    [root@deep]# cd /var/tmp
    [root@deep]# rm -rf sxid-version/ sxid_version_tar.gz

    “rm”命令删除所有的编译和安装sXid软件所需的源文件,并把sXid软件的压缩包删除。

    配置
    可以到这去下载“floppy.tgz”文件:http://pages.infinit.net/lotus1/doc/opti/floppy.tgz。把“floppy.tgz”文件解开之后,可以在相应的目录下发现我们在这本书中介绍的所有软件的配置文件。这样就没有必要手工重新生成这些文件,或者用拷贝粘贴的方法把它们粘贴到配置文件中去。不管是打算自己动手生成配置文件还是拷贝现成的,你都要学会自己修改配置文件并且把配置文件拷贝到正确的目录下。下面将具体说明。

    为了运行sXid,必须在“/etc”目录下创建“sxid.conf”或者把现成的“sxid.conf”文件拷贝到“/etc”目录下。可以把“floppy.tgz”解压之后,找到“sxid.conf”文件,并拷贝到“/etc”目录下,或者用拷贝粘贴的方法从本书中直接粘贴出“sxid.conf”文件。

    配置“/etc/sxid.conf”文件
    在sXid的配置文件“/etc/sxid.conf”中,可以设置sXid程序的一些选项和运行方式。这些都很简单而且在相应的地方都注释得很清楚。

    第一步:根据需要编辑“sxid.conf”文件(vi /etc/sxid.conf)。

    # Configuration file for sXid
    # Note that all directories must be absolute with no trailing /\s
    # Where to begin our file search
    SEARCH = \"/\"
    # Which subdirectories to exclude from searching
    EXCLUDE = \"/proc /mnt /cdrom /floppy\"
    # Who to send reports to
    EMAIL = \"root\"
    # Always send reports, even when there are no changes?
    ALWAYS_NOTIFY = \"no\"
    # Where to keep interim logs. This will rotate \x\ number of
    # times based on KEEP_LOGS below
    LOG_FILE = \"/var/log/sxid.log\"
    # How many logs to keep
    KEEP_LOGS = \"5\"
    # Rotate the logs even when there are no changes?
    ALWAYS_ROTATE = \"no\"
    # Directories where +s is forbidden (these are searched
    # even if not explicitly in SEARCH), EXCLUDE rules apply
    FORBIDDEN = \"/home /tmp\"
    # Remove (-s) files found in forbidden directories?
    ENFORCE = \"yes\"
    # This implies ALWAYS_NOTIFY. It will send a full list of
    # entries along with the changes
    LISTALL = \"no\"
    # Ignore entries for directories in these paths
    # (this means that only files will be recorded, you
    # can effectively ignore all directory entries by
    # setting this to \"/\"). The default is /home since
    # some systems have /home g+s.
    IGNORE_DIRS = \"/home\"
    # File that contains a list of (each on it\s own line)
    # of other files that sxid should monitor. This is useful
    # for files that aren\t +s, but relate to system
    # integrity (tcpd, inetd, apache...).
    # EXTRA_LIST = \"/etc/sxid.list\"
    # Mail program. This changes the default compiled in
    # mailer for reports. You only need this if you have changed
    # it\s location and don\t want to recompile sxid.
    # MAIL_PROG = \"/usr/bin/mail\"

    第二步:在“root”的crontab(用来定期地完成一些任务)中加入一项,把sXid作为一项定期工作。

    sXid将被crond daemon运行。它将跟踪SUID/SGID文件或目录的任何变化,比如:是否新增了SUID/SGID的文件、SUID/SGID文件的访问权限或内容是否发生了变化。而且,sXid会把这些变化报告出来。把sXid加入定期执行的任务中,用下面的命令编辑crontab:

    [root@deep]# crontab -e

    加入这几行:

    # Sample crontab entry to run every day at 4am
    0 4 * * * /usr/bin/sxid

    更多的资料
    如果想查找详细的资料可以用man命令查帮助页,读取相关信息:

    $ man sxid.conf (5) – sXid的配置设定

    $ man sxid (1) – 如何查找SUID/SGID文件和目录。

    sXid的管理工具
    sXid是用来做为定期执行的任务(cronjob)运行的。每天必须运行一次,如果访问量大的服务器每天要运行两次。也可以手工运行它。

    用下面的命令,手工运行sXid:

    [root@deep]# sxid -k

    其输出可能是这样的:

    sXid Vers : 4.0.1
    Check run : Wed Dec 29 12:40:32 1999
    This host : mail.openarch.com
    Spotcheck : /home/admin
    Excluding : /proc /mnt /cdrom /floppy
    Ignore Dirs: /home
    Forbidden : /home /tmp
    No changes found

    这个命令检查当前目录及其所有子目录。不生成日志文件,也不用email报告结果,只是在标准输出(stdout)显示结果。

    安装到系统中的文件
    > /etc/sxid.conf
    > /usr/bin/sxid
    > /usr/man/man1/sxid.1
    > /usr/man/man5/sxid.conf.5

    发布人:netbull 来自:LinuxAid