Unix是一个已经流行了30多年的系统。在近10年中,Linux作为类Unix系统已被广泛使用。Linux 和 Unix 的强大功能以及所集成的网络功能促进了互联网的发展。由于 Linux 和 Unix 的强大的功能,以及在互联网上广泛使用,它们往往也成为攻击者的主要目标。
另一方面,Linux 和 Unix系统也是发动攻击的主要平台。攻击者在一台廉价的个人计算机上就可构建一个强大的 Linux 和 Unix 工作站,用于攻击 Linux,Unix,Windows 和其他一些系统。攻击者看重的正是Linux 和 Unix 所具有灵活性、高性能和强大的功能。
Linux 和 Unix系统围绕文件系统进行组织,Linux 和 Unix系统的许多部分都可以当作目录和文件来处理。Unix文件系统的最顶端是根目录,记做“/”。其下就是包含系统所有信息的各个目录,其中比较重要的是 /etc 目录(保存系统配置)和 /bin, /sbin 目录(保存重要的可执行文件)。
内核是Linux 和 Unix操作系统的核心,它控制与硬件的交互,以及运行的应用程序之间的交互。执行应用程序时,将创建进程。进程将包含相应的代码、工作内存、以及不同的执行线程。在系统启动过程中,init守护进程负责启动进程。inetd和xinetd负责监听网络中的请求,并启动相应的进程处理服务请求。cron负责在指定的时间启动进程。
用户也可以手动启动进程。ps命令显示系统中正在运行的进程,lsof命令显示了所有进程所打开的文件的详细信息。用户和管理员可以通过kill 和 killall 命令发送信号与进程交互。使用killall命令时,对于linux系统,它将停止用户指定名称的进程;Solaris系统中,killall将关闭整个系统。
帐户信息保存在/etc/passwd文件中。某些版本的Linux 和 Unix系统将密码保存在/etc/shadow文件中,只有拥有超级用户权限的用户才能读取这个文件。用户组信息保存在/etc/groups文件中。 root帐号的UID为0,拥有linux系统或Unix系统中的所有权限。所有UID为0的用户都是超级用户。
在Linux 和 Unix系统中,每个文件的读写执行权限是以 rwxrwxrwx 形式设置的。第一个 rwx 代表文件属主的权限,第二个 rwx 代表文件属主所在的组用户的权限,地三个 rwx 代表所有用户的权限。可以使用 chmod 命令修改文件的授权,权限是以八进制的形式授予的。
SetUID 功能允许用户以文件属主账户的权限运行程序。尽管系统确实需要 SetUID 程序,但攻击者经常添加或更改SetUID程序。按照 Linux 和 Unix 系统的信任机制,被信任的系统上的用户无须提供密码即可进行访问。
应用信任机制时,可以使用 rsh, rlogin 和 rcp 等 r-命令,但这些命令都存在安全漏洞,应该尽量避免使用。用户和系统管理员可使用安全性更高的 SSH 工具进行认证、加密远程 shell 的访问。
事件日志由 syslog 守护进程生成,并且通常以标准ASCII码的形式存储。当前登录的用户以及用户最后一次登录等账户信息保存在 utmp, wtmp 和 lastlog 文件中。
绝大多数 Linux 和 Unix系统都开启了大量的网络服务。每个服务都存在潜在的安全风险,因此需要关闭那些不需要的服务。
【编辑推荐】