by Mark Nielsen (homepage)
��������:
Mark ������һλ���Լ���ʱ�䶼���׸� GNUJob.com ����ҵ��������ѯ�ߣ���д�˺ܶ�����º�����������
������eastmont.net��һ��־Ը�ߡ�
Ŀ¼:
|
Chroot Linux�����еķ���
ÕªÒª:
��ϵͳ�������chroot�����������߿�����ɵ��ƻ����Ӷ����ϵͳ�İ�ȫ�ԡ�
����
ʲô��chroot��chroot�������ض�����һ����������л�������ȷ�е�˵�����ض�����һ�����򣨻��¼�Ự���ġ�ROOT��Ŀ¼��/����
Ҳ����˵������chroot�˵ij����shell��˵��chroot����֮���Ŀ¼�Dz����ڵġ�
����������ʲô���أ������������������ĵ��ԣ����ǾͲ��ܿ�����ϵͳ�����е��ļ��ˡ�
�������������������߿���ִ�е�����Ӷ���ֹ�������������ȫ�ļ��Ļ��ᡣ��Ψһ��ȱ���ǣ�
����Ϊ�ⲻ����ֹ���Dz쿴�������Ӻ��������ϡ���ˣ���Ӧ��һЩ����δ�����漰�����飺
- ��������˿ڡ�
- �쿴�Ƿ����еķ����Է�rootȨ�����С����⣬�Ƿ����еķ��񶼽�����chroot��
- ��ϵͳ��־ת�Ƶ��������ԡ�
- ������־�ļ���
- ������Щ��ͼ̽����ļ����������˿ڵ����ǡ�
- ���Ʒ�����ռ�õ�cpu���ڴ���Դ��
- �����û���
����Ϊ�����Է�rootȨ�����еķ�����У�chroot������Ϊһ����ȫ���ߵ�Ô���ǣ�
��������ߵõ���һ����root�˻�����û��ʹ���ǵõ�rootȨ�޵��ļ��Ļ�����ô����ֻ�ܶ������ֵ���������ƻ���
���ң����root�˻�����������󲿷��ļ���ӵ���ߵĻ�����������û�ж��ٹ�����ѡ��ġ���Ȼ���������˻������֣�
��һ����ijЩ�ط��������ˣ�������ܼ���������������ɵ��ƻ���
���ס �������IJ�����100%��ȷ�ġ������ҵ�һ�γ���������������ֻ�Dz�����Ч�Ļ���
ҲӦ���Ǻ�������ɻ��������õġ�������һ��chroot��HOWTO��������˵��ֻ��һЩ�����Ķ�����
���������еķ���chroot�أ�
�õģ��������ȴ���һ��Ŀ¼��/chroot����Ȼ��������ĸ�ʽ�����ǵ����з��񶼷��������棺
- Syslogd �ֱ��ÿһ������һ��������hroot�����¡�
- Apache ������/chroot/httpd��.
- Ssh ������/chroot/sshd��.
- PostgreSQL ������/chroot/postmaster��.
- Sendmail ������ chroot�����£������ҵ��ǣ���������rootȨ�����С�
- ntpd ������ /chroot/ntpd�¡�
- named ������ /chroot/named �¡�
ÿһ����������ȫ��������ġ�
����������chroot������Perl�ű���
����Config_Chroot.pl.txt������Ϊ Config_Chroot.pl. ���Perl�ű������г������Ѱ�װ�ķ��񣬲鿴�����ļ������÷��񣬲�������ֹͣ����ͨ�����������Ӧ�����ġ�
- ����chrootĿ¼
mkdir -p /chroot/Config/Backup
- ����Config_Chroot.pl.txt
������Ϊ /chroot/Config_Chroot.pl
- �����ļ�Ŀ¼��home directory������/chroot�����Perl�ű����$Home ��������Ӧ�ĸı䡣
- �����ҵ������ļ���
���ڣ���Ҫ���ǣ���ֻ�� RedHat
7.2 �� RedHat 6.2 �ϲ��Թ���.
����Perl�ű�������Ӧ�ĸı�����Ӧ��ķ��а档
����chroot����д��һ��ܳ������£��������ҵĽű�������ö��˺ܶࡣ��chroot�˺ܶ����֮����ע�⵽��Щ��������Ҫ��chroot���ļ������ö������ơ���һ���ض��ķ�����˵���ж���Щ�ļ���Ҫ�����������׵ķ����Dz鿴man���������Ҫ�õ����ļ������ټ��롰ldd /usr/bin/file�����㻹���԰������ڰ�װ�ķ������chroot���ֶ������� ��������ʲô�����һ��������־�ļ���
ͨ����Ҫ��װһ�����񣬿�����������
cd /chroot
./Config_Chroot.pl config SERVICE
./Config_Chroot.pl install SERVICE
./Config_Chroot.pl start SERVICE
�� Ntpd ���� Chroot
Ntpd ��һ��ʱ�������ʹ��ļ�����Լ������������ʵ��ʱ��ͬ��������chroot�Ǻܼ򵥵ġ�
cd /chroot
# �����û��ʹ���ҵ������ļ��������һ�е�ע��ȥ����
#./Config_Chroot.pl config ntpd
./Config_Chroot.pl install ntpd
./Config_Chroot.pl start ntpd
�� DNS �� named ���� Chroot
�Ѿ�����howto�ļ����뿴
http://www.linuxdoc.org/HOWTO/Chroot-BIND8-HOWTO.html
��
http://www.linuxdoc.org/HOWTO/Chroot-BIND-HOWTO.html
����������ҵĽű�
cd /chroot
# �����û��ʹ���ҵ������ļ��������һ�е�ע��ȥ����
#./Config_Chroot.pl config named
./Config_Chroot.pl install named
./Config_Chroot.pl start named
�� Syslog ����������һ�����chroot�Լ��������������ѡ�
�����syslogd����chroot���������������ǣ�syslogdĬ��ʹ��/dev/logĿ¼����chroot�˵ķ����ǿ��������Ŀ¼�ġ���ˣ���syslogd����־��¼�Ͳ��Ǻܷ����ˡ������ǿ��ܵĽ��������
- ��syslogd�ֱ��ÿһ���������chroot����ʵ���Ͼ����������Եģ����Ҽ�¼��һЩ��־���Ҳ�ϲ������������Ϊ����һ����rootȨ�����еķ���
- ���������Ƿ������ӵ��ⲿ��־��¼�豸��
- ֱ�Ӱ���־��¼���ļ��϶�����ͨ��syslogd�����������õİ�ȫѡ���ˣ�������������֣������߿�������Ķ���־��
- ����syslogd���鿴�����ط����Ӷ��õ����еķ����������syslogd��-aѡ����������
�ҵ�Ψһ�Ľ��������ȷ��syslogd�ֱ��ÿһ���������chroot����ϲ�������Ľ�����������Է�rootȨ�����Լ���chroot��������Щ������˿ڣ��¼�¼��־����Ҳ���ǿ��еģ���������ֹͣ�������ģ�Ȼ��Ѱ��һ�����õĽ��������
����㲻��Ϊÿһ�������䱸һ��������syslogd����ô�����ϵͳ����syslogdʱ������syslogd��ʼʱ�����������
syslogd -a /chroot/SERVICE/dev/log
�����ssh��dnsҪ���У���ô����ȥӦ����������syslogd -a /chroot/ssh/dev/log -a /chroot/named/dev/log -a /dev/log
����syslogd���������˵���ǣ���ϣ�����������ڷ�root�˻��¡������˼����򵥵Ķ�����
����û�гɹ������Ǿͷ����ˡ��������syslogd��ÿһ������һ�������ڷ�root�˻��£�
�Ҿͻ���ҵİ�ȫ��ʩ�е������ˡ�������ܵĻ�����ý���־��¼���ⲿ�豸�ϡ�
�� Apache ���� Chroot
�ܼ򵥡�һ�������������Ϳ���ִ��Perl�ű������ڣ��ҵ������ļ��Ǻܳ��ģ�
��Ϊ�ұ�����chroot�����°���Perl��PostgreSQL�����⡣��һ����Ҫע�⣬�����Ҫ���ӵ����ݿ��ϣ�
��ȷ��������ݿ����������127.0.0.1 �ػ��豸�ϣ����ڹ���DBI��Perl�ű���ָ������Ϊ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 ����飡
�� Ssh ���� Chroot
���ȣ������ssh�Ӷ˿�22�ض���2222�������ˡ�Ȼ�󣬵�������sshʱ��
������һ����root�˻��¼���2222�˿ڡ��ڳ�ʼ��ssh����ʱ������ֻ����������İ�ȫ�˻��������������������κ����顣
�����ǵ�¼֮�������ڶ˿�127.0.0.1:2222 �ĵڶ���ssh�������������ӵ�������ϵͳ -- ��ڶ���ssh����Ӧ��ֻ�ڻػ��豸�ϼ�����
�������Ӧ�����ġ��������Dz�����ȥ��������Ҫ����Ψһ�������������chroot��ssh�������ӡ�
�����ᵽ��һ����ϰ��������Լ���ɣ���sshd�����ڷ�root�˻��£��ٰ�װ�ڶ��������ػ��豸��sshd��ʹ��������������ϵͳ��
���⣬����ֻҪ��ssh����chroot�����㿴һ���������Ľ���������ֻ������Щ���㲻�ع۲�����ϵͳ����
��Ȼ������ܰ���־��¼���ⲿ�豸�Ͼ͸����ˡ�����Ӧ����OpenSSH����Ϊ�˷��㣨�������һ���õĽ�ڣ������õ���һ����ҵ��SSH��
Դ��ַ: http://www.ssh.com/products/ssh/download.cfm
��/usr/local/ssh_chroot�°�װssh�����нű���
cd /chroot
# �����û��ʹ���ҵ������ļ��������һ�е�ע��ȥ����
# ./Config_Chroot.pl config sshd
./Config_Chroot.pl install sshd
./Config_Chroot.pl start sshd
�Ҿ��ð�ssh����chroot�����µ�һ����������������ǣ��������������ftp������������������������ֻ�����޵�Ȩ�ޡ�
Rsync �� SCP �������ϴ��ļ�ʱ���е÷dz��á��Ҳ��Ǻ�ϲ������ftp�����������ǵ�¼���ܶ�ftp��������������chroot�����£�
���Ҳ�ϲ�������Ծɴ����������롣
�� PostSQL ���� Chroot
�⼸����perlһ���򵥣���������ҪһЩ����ĺ����⡣�ܵ���˵���Ⲣ��������
�ұ�������һ�����ǰ�PostgreSQL���������ϣ��������Ƿ��ڻػ��豸�ϡ���Ϊ���DZ�chroot�˵ģ�
���������Ѿ�chroot�˵ķ����Dz��ܺ����Ӵ��ģ�����web������ apache һ����
�Ұ�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
�� Sendmail ���� Chroot
��ִ���ҵ�Perl�ű���cd /chroot
# �����û��ʹ���ҵ������ļ��������һ�е�ע��ȥ����
# ./Config_Chroot.pl config sendmail
./Config_Chroot.pl install sendmail
./Config_Chroot.pl start sendmail
�����㷢��ʲô�ˣ��ǵģ����Ծ���root�˻����С����ң���sendmail������ʱ�򣬳���/etc/rc.d/init.d/sendmail�����½���һЩ�ļ���
�ҵĽű���û�н��������⡣���ۺ�ʱ���������/etc/mail�������κθĶ�����ѸĶ������ļ�������/chroot/sendmail/etcĿ¼�¡�
�㻹�����/var/spool/mailָ��/chroot/sendmail/var/spool/mail����ʹsendmail������û��������ǵ�¼������ʱ�򣩿���������ͬ���ļ���
��������ʱ���Է����ʼ����������ŵ�ʱ��Ż�����⡣��ˣ��ҿ��԰�sendmail��apacheһ��װ���������⡣
�ҵ�һЩPerl�ű������ⷢ���ʼ���������Ҫ��sendmail���򿽱���apache��chroot�����¡�
���� Chroot ������һЩ���顣
�������ҵĹ۵㣺
- ��Ļ����ϰ���sendmail, ssh, apache,
postgresql, syslog���ڵ����з��񶼱���������chroot�����¡�
- ÿһ�����񶼱����Է�root�˻����У���Ҳ����Ҫ�����ܱ����Ķ˿��ض���δ�ܱ����ö˿ڡ������sendmail��syslog��
- ��־Ӧ��Զ���ֳ���
- ��ÿһ������ʵ�д���������������������ռ�õĴ��̡���������д��ʱ����Ӧ���ڻػ��豸��ΪijЩ����װ�ļ�ϵͳ��
- ���в���Ķ����ļ���ӵ����Ӧ����root�˻���
���ڣ�˵��sendmail��syslogd������Ȼ��Ϊ���Dz�Ӧ������root�˻��¡�
����sendmail����Ҳ���ǿ��ܵģ����ҷ������������ڷ�root�˻����Ǽ������ѵģ������һ�û�гɹ�����
���룬sendmail���������ڷ�root�˻���Ӧ��һ�������صĴ�����Ȼ��֪�����������ڷ�root�˻��º����ѣ�
������Ϊ���е����Ѷ��ǿ��Խ���ġ�ֻҪ������ļ�������Ȩ���⣬�Ҿ���sendmail�Dz�����rootȨ�����еġ�
�ҿ϶��Ǻ�����ʲô�������Ҳ�������Щ�ϰ��Dz��������ġ�
����syslog���һ�û���Թ���������ΪӦ���Է�root�˻�ȥ��¼��־��������Ӧ���ǿ��еġ�
�����ҿ���Ϊÿһ��������chroot�Ļ����¼�¼��־��
���еķ���Ҫ�����ڷ�root�˻��£�������NFS�����ס�������еķ���
����
- ����������sshd�ػ����̣������ж��ε�¼��
- �跨ʹsendmail�������ʼ����������ڷ�root�˻��¡�
- ɾ��/lib�²���Ҫ�ĺ����⡣��ֻ�ǿ�������Ҫ�ĺ����������档��ʵ�㲻��Ҫ���еĴ󲿷֡�
- ����syslogd����Զ����־��¼�����������Ƿ�����syslogd���ӵ�����˿��ϲ��õ������ڻػ��豸����˿��ϵ����з������־��
�����ܷ�ʹsyslogd�����ڷ�root�˻��¡�
����
�Ҿ��ö����еķ�����˵chroot������ô�ᣬ���룬���������еķ��������ڷ�root�˻���chroot������Ӧ���Ǹ��ܴ�Ĵ���
��ϣ����Ҫ�ķ��а�Ӧ��������һ�㣬��Ȼ��Ҳϣ���������а�������Mandrake �Լ��� RedHat ��Ҳ���չ����ˣ����ǿ��Է�Ч Mandrake ��
�������˵Ļ����϶�chroot������չ������Ϊ���ǿ��еģ���Ϊ��GNU/Linux�û��ʲô����ֹ�����������˵Ĺ�����
���ij����˾��chroot���з���Ϊ���Ǵ�����һ�����׹���chroot�˵ķ���Ļ�������ô����ӵ����һ������ķ��а档
��ס��Linux���������������Dz����ٿ��������У�������ÿ���¶�������gui�Ļ�����ȥ�������ǾͲ���Ҫ�˽��ڲ��Ĺ��죬
���Ҳ���Ҫ֪��������ʲô�����У�����ֻҪ�����ò�֪��������֮��Ч�ľ����ˡ�
�Ҿ���֧�������з��������ڷ�rootȨ�޵�chroot�Ļ����£��κβ���������һ��ķ��а棬�Ҷ����ῼ��������������ʹ������
����ʹ���еķ���������chroot�����£����ҵĿ���ʹԽ��Խ��Ķ����������� -- ���գ��һ�ﵽ�ҵ����롣
�Ҵ���Ϊchrootдһ��HOWTO��������������ϣ��ij�����ܹ�������ƪ����ת����LyX��ʽ���Ա������Էŵ�Linux��HOWTO�ϡ�
�ο���Ŀ
- ���б䶯�����http://www.gnujobs.com/Articles/23/chroot.html
����ƪ���·�������
ÿƪ���¶��и��Եķ���ҳ�档�����ҳ����������ύ���ۣ�Ҳ���Բ鿴�������ߵ����ۣ�
2002-01-02, generated by lfparser version 2.23