通过Chroot机制让服务器安全到底

豆豆网   技术应用频道   2007年03月12日  【字号: 收藏本文

本文详细介绍通过Chroot机制让服务器安全到底

  其中ulimit、lynx和awk是辅助性的程序。另外需要注意的是,程序使用不同的参数时,可能会使用不同的库文件,因此为了让Apache完整运行,使用下面的命令来跟踪所有可能的文件:

  #/usr/local/bin/addjailsw /var/chroot -P httpd "-k start -DSSL"

  用上述的参数替换引号中的参数,完成全部的工作。

  最后,让成功jail的Apache运行起来:

  #su - httpd &

  打开浏览器进行测试,访问Web服务器时记住加上8080端口号。

  jail高级应用

  在前面的介绍中,使用了jail软件包中的三个Perl脚本。这里详细介绍这三个脚本的使用,以便高级用户使用。

  mkjailenv

  用法:mkjailenv chrootdir

  作用:创建chroot“监牢”目录,并且从真实文件系统中拷贝基本的软件环境。

  参数:

  chrootdir指定chroot“监牢”的路径。

  addjailsw

  用法:addjailsw chrootdir [-D] [-P program args]

  作用:从真实文件系统中拷贝指定的文件及其相关文件。

  参数:

  chrootdir指定chroot“监牢”的路径。

  -D显示详细信息。

  -P program args指定要添加到“监牢”中的软件。program可以是个文件名,也可以是文件的完整路径;args是参数。比如可以这样执行addjailsw:

  #addjailsw /var/chroot -P vi "-c q"

  addjailuser

  用法:addjailuser chrootdir userdir usershell username

  作用:创建新的chroot“监牢”用户。

  参数:

  chrootdir指定chroot“监牢”的路径。

  userdir指定新添加用户的主目录(相对于chroot“监牢”目录)。

  usershell指定新用户使用的Shell的完整路径(比如/bin/bash)。

  username为新添加的用户名。

  比如:

  #addjailuser /var/chroot /home/ftp /bin/csh ftp

  这个脚本会自动修改“监牢”中的/etc/passwd、/etc/group和/etc/shadow文件。

  从上文看,如果仅使Apache一个软件运行在“监牢”中,mkjailenv似乎过于“热心”了,因此可以不运行mkjailenv /var/chroot命令,而只运行addjailsw /var/chroot -P httpd或在调试完chroot“监牢”后删除多余的文件,并修改/etc/passwd中多余的用户信息。由此想到,现在大多数流行的Web站点都采用Apache+PHP+MySQL+SSL的搭配(可能还会有FTP、Mail、Perl等组件),因此完全可以建立一个综合的Web“监牢”。系统管理员可以为这个“监牢”设置软件环境,当然这个环境只包括维护Apache+PHP+MySQL+SSL这些组件的必备工具,如使用Bash、SSH、编译软件或上传等。这可能是一个浩大的工程,但是却非常有意义。参考上面的方法,大家可以尝试jail出完美的服务器来。

责编:豆豆技术应用

正在加载评论...