科技行者

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

知识库

知识库 安全导航

至顶网网络频道为Solaris服务器配置开源安全工具(3)

为Solaris服务器配置开源安全工具(3)

  • 扫一扫
    分享文章到微信

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

随着Internet的迅猛发展,网络已无处不在,但是,它可能随时受到来自各方的攻击。了解哪些人正在访问资源、哪些人正在享受服务、哪些人正在发送大量垃圾等,对网络管理员来说是非常必要的。利用Solaris中较常见的网络安全分析工具Tcpdump、Nmap和IP Filter 、ethereal、gftp,可以使网络管理工作更加轻松。

作者:论坛整理 来源:zdnet网络安全 2008年1月24日

关键字: 安全管理 安全工具 服务器

  • 评论
  • 分享微博
  • 分享邮件
三、使用lsof

    1 lsof简介

    使用 lsof,您可以检查打开的文件,并根据需要在卸载之前中止相应的进程。同样地,如果您发现了一个未知的文件,那么可以找出到底是哪个应用程序打开了这个文件。在 UNIX 环境中,文件无处不在,这便产生了一句格言:“任何事物都是文件”。通过文件不仅仅可以访问常规数据,通常还可以访问网络连接和硬件。在有些情况下,当您使用 ls 请求目录清单时,将出现相应的条目。在其他情况下,如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字,不存在相应的目录清单。但是在后台为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。

    因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,所以能够查看这个列表将是很有帮助的。完成这项任务的实用程序称为 lsof,它对应于“list open files”(列出打开的文件)。几乎在每个 UNIX 版本中都有这个实用程序。

    2 lsof下载安装

    #wget ftp://ftp.sunfreeware.com/pub/freeware/intel/10/lsof-4.77-sol10-x86-local.gz

    #gunzip lsof-4.77-sol10-x86-local.gz

    #pkgadd -d lsof-4.77-sol10-x86-local

图5 是安装成功界面

    3 lsof的使用

    只需输入 lsof 就可以生成大量的信息,如图6 所示。因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能。

    每行显示一个打开的文件,除非另外指定,否则将显示所有进程打开的所有文件。Command、PID 和 User 列分别表示进程的名称、进程标识符 (PID) 和所有者名称。Device、SIZE/OFF、Node 和 Name 列涉及到文件本身的信息,分别表示指定磁盘的名称、文件的大小、索引节点(文件在磁盘上的标识)和该文件的确切名称。根据 UNIX 版本的不同,可能将文件的大小报告为应用程序在文件中进行读取的当前位置(偏移量)。图6来自一台可以报告该信息的 Sun Solaris 10 计算机,而 Linux 没有这个功能。

    查找网络连接

    网络连接也是文件,这意味着可以使用 lsof 获得关于它们的信息。假设您已经知道 PID,但是有时候并非如此。如果您只知道相应的端口,那么可以使用 -i 参数利用套接字信息进行搜索。

    # lsof -i :22

    COMMAND  PID USER   FD   TYPE        DEVICE SIZE/OFF NODE NAME

    ssh 605 root    5u  IPv4 0x300010ea640      0t0  TCP *:ssh (LISTEN)

   

    搜索活动的连接

    # lsof -i @192.168.1.10

    COMMAND  PID USER   FD   TYPE        DEVICE  SIZE/OFF NODE NAME

    sshd    1934 root    6u  IPv6 0x300046d21c0 0t1303608  TCP sun:ssh->linux:40379

            (ESTABLISHED)

    sshd    1937 root    4u  IPv6 0x300046d21c0 0t1303608  TCP sun:ssh->linux:40379

            (ESTABLISHED)

    在这个示例中,sun 和 linux 之间有两个 IPv6 连接。对其进行更仔细的研究可以看出,这些连接来自于两个不同的进程,但它们却是相同的,这是因为两台主机是相同的,并且端口也是相同的(ssh 和 40379)。这是由于进入主进程的连接分叉出一个处理程序,并将该套接字传递给它。您还可以看到,名为 sun 的计算机正在使用端口 22 (ssh),而 linux 具有端口 40379。这表示,sun 是该连接的接收者,因为它关联于该服务的已知端口。40379 是源或临时端口,并且仅对这个连接有意义。

    以上这些表明,利用网络分析工具了解网络的状况非常简单,几乎不费什么力气就可以获取很多有用的数据。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

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

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