Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

chroot Linux中的所有服务

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]


syslogd -a /chroot/SERVICE/dev/log

  如果你运行ssh和dns,它可以写成,


syslogd -a /chroot/ssh/dev/log -a /chroot/named/dev/log -a /dev/log

  最后在系统日志文件中要注意的是,我希望它可以在一个non-root account下运行。我实验了几个简单的操作,但是都不行,最后我放弃了。如果真的能够在一个non-root account的情况下运行系统日志备份的话,安全问题将会更完善。


Chroot Apache

  它非常容易。我只要一设置好它,就可以运行我的perl脚本。现在我的配置文件相当大,因为我将Perl脚本和PostgerSQL数据库都放进了已经chrooted的区域。有一件事情你要注意,如果你连接到了一个数据库,确信你的数据库是在127.0.0.1闭合回路中运行,而且你要确信你的主机在Perl脚本中为了DBI模块必须是127.0.0.1。下面是我在apache中使用持续的连接来连接一个数据库:


$dbh ||= DBI->connect('dbi:Pg:dbname=DATABASE',"","", {PrintError=>0});
if ($dbh ) {$dbh->{PrintError} = 1;}
else
  {$dbh ||= DBI->connect('dbi:Pg:dbname=DATABASE;host=127.0.0.1',"","",
  {PrintError=>1});}

  来源: http://httpd.apache.org/dist/httpd/

  在你的主系统中编译和安装apache到/usr/local/apache。然后运行perl脚本。


cd /chroot
 #如果你不想使用我的配置文件,下面的命令行不共通
 # ./Config_Chroot.pl config httpd
./Config_Chroot.pl install httpd
./Config_Chroot.pl start httpd

  我改变我的httpd.conf文件得到这些材料:


ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>

<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>

  然后,指定你的浏览器到http://127.0.0.1/server-status 或 http://127.0.0.1/server-info 。

Chroot Ssh 

  首先,理想的情况下,我们将ssh连接到端口22到端口2222。然后,当你启动ssh,在一个non-root account下将它连接到端口2222。在起始的ssh连接中,我们使用密码来确保有一个安全的帐号,这个密码只起限制进入系统的人的作用,除此以外起不了其他的作用。当他们登录系统后,是第二个ssh程序,这个程序运行在端口127.0.0.1至127.0.0.2322,这样,才能连接到真正的系统—— 这第二个ssh程序只听命于循环装置。现在,这些都要你动手一试。我就不再做这些事了。我要做的就是chroot ssh。需要你亲手做的包括将ssh放在一个non-root account下,安装第二个ssh程序,而且这个ssh程序只听命于循环设备,这样才能让人们进入真正的系统。

  然后,我们打算仅仅chroot ssh,而且,你也可以考虑考虑这样做的后果(如果你这么做的话,你不能看见整个系统)。同样,我可以使用OpenSSH,但是我为了简单使用的是商务SSH(这并不是一个好的借口)。

  来源:http://www.ssh.com/products/ssh/download.cfm

  安装ssh在/usr/local/ssh_chroot。然后使用Perl脚本。


cd /chroot
 # 如果你不想使用我的配置文件,下面的命令行不共通
 # ./Config_Chroot.pl config sshd
./Config_Chroot.pl install sshd
./Config_Chroot.pl start sshd

  如果你想在一个已经chroot的环境下使用它来代替一个ftp的话,无疑它是一件好事,它将限制人们接近你的领地。Rsync和SCP相互结合运行得很好,让人们上传文件。我并不是真的喜欢将一个ftp放上去,以供人们运行。很多ftp服务都已经被chroot了,但事它们仍然可以透明的传递密码,这是我不喜欢的。


Chroot PostgreSQL

  它和perl一样简单,除了它需要更多一些的库文件以外。总的来说,它并不难做。我必须要做的事情是把PostgreSQL在网络上打开,而且只能在循环设备上。因为它事被chroot的,所以其他的chrooted的服务不能到达它,象apache web服务。我将Perl编译成PostgreSQL,所以我需要将大量的Perl材料加入到配置文件中。

  来源:

  ftp://ftp.us.postgresql.org/source/v7.1.3/postgresql-7.1.3.tar.gz

  编译和安装apache在你的主系统中的/usr/local/postgres下。然后运行Perl脚本。


cd /chroot
 # 如果你不想使用我的配置文件,下面的命令行不共通
 # ./Config_Chroot.pl config postgres
./Config_Chroot.pl install postgres
./Config_Chroot.pl start postgres

Chroot Sendmail


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:安全工具   下一篇:Samba的使用

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章