159 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
		
			
		
	
	
			159 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
|  | Boa chroot mini-HOWTO  | ||
|  | =================================================== | ||
|  | by Liam Widdowson <lbw@telstra.com> | ||
|  | modified slightly by Jon Nelson <jnelson@boa.org> | ||
|  | 
 | ||
|  | The following is required to get Boa working in a chroot jail. Whilst this | ||
|  | README is about Solaris specifically, the principals here will apply to | ||
|  | other operating systems. | ||
|  | 
 | ||
|  | The following assumptions are made: | ||
|  | 
 | ||
|  | 	- Boa has been compiled and installed in /opt/boa | ||
|  | 	- The chroot jail will be created in /var/www | ||
|  | 	- A user and group 'www' have been created. | ||
|  | 
 | ||
|  | Make sure you change the above directories to suit your system. | ||
|  | 
 | ||
|  | Your boa.conf should look something like the following: | ||
|  | 
 | ||
|  | ## begin config file | ||
|  | 
 | ||
|  | Port 80 | ||
|  | User www | ||
|  | Group www | ||
|  | 
 | ||
|  | # Note, these paths are used releative to the chroot jail. i.e /var/log is | ||
|  | # really /var/www/var/log | ||
|  | ErrorLog /var/log/error_log | ||
|  | AccessLog /var/log/access_log | ||
|  | DocumentRoot /var/www | ||
|  | 
 | ||
|  | # You won't be able to access user home directories outside of the chroot | ||
|  | # but you may replicate them into the chroot jail. You'll need a working | ||
|  | # and valid /etc/passwd as well | ||
|  | UserDir public_html | ||
|  | 
 | ||
|  | DirectoryIndex index.html | ||
|  | 
 | ||
|  | # this binary must exist in the chroot jail. Again, the path is relative. | ||
|  | DirectoryMaker /usr/bin/boa_indexer | ||
|  | 
 | ||
|  | KeepAliveMax 1000 | ||
|  | KeepAliveTimeout 10 | ||
|  | 
 | ||
|  | # this file must exist inside AND outside the chroot jail.  | ||
|  | MimeTypes /opt/boa/mime.types | ||
|  | 
 | ||
|  | DefaultType text/plain | ||
|  | 
 | ||
|  | ## end config file | ||
|  | 
 | ||
|  | Once the configuration file is created, you must begin creating your | ||
|  | chroot jail. A variety of libraries, timezone files, device files and other  | ||
|  | bits and pieces must be copied in order for this to work. Below is a ls -lR  | ||
|  | of what your jail should be at a minimum: | ||
|  | 
 | ||
|  | .: | ||
|  | total 10 | ||
|  | drwxr-xr-x   2 root     other        512 Jan 21 18:58 dev | ||
|  | drwxr-xr-x   2 root     other        512 Jan 21 19:20 etc | ||
|  | drwxr-xr-x   3 root     other        512 Jan 21 19:20 opt | ||
|  | drwxr-xr-x   5 root     other        512 Jan 21 19:08 usr | ||
|  | drwxr-xr-x   4 root     other        512 Jan 21 18:57 var | ||
|  | 
 | ||
|  | ./dev: | ||
|  | total 0 | ||
|  | crw-rw-rw-   1 root     other     13,  2 Jan 21 18:58 null | ||
|  | crw-rw-rw-   1 root     other     41,  0 Jan 21 18:58 udp | ||
|  | 
 | ||
|  | ./etc: | ||
|  | total 16 | ||
|  | -r-xr-xr-x   1 root     other        482 Jan 21 19:20 TIMEZONE | ||
|  | -r--r--r--   1 root     other         74 Jan 21 19:20 hosts | ||
|  | -rw-r--r--   1 root     other       1239 Jan 21 19:20 netconfig | ||
|  | -rw-r--r--   1 root     other       1298 Jan 21 19:20 nsswitch.conf | ||
|  | -r--r--r--   1 root     other        514 Jan 21 19:44 passwd | ||
|  | -rw-r--r--   1 root     other         94 Jan 21 19:20 resolv.conf | ||
|  | drwx------   2 root     other        512 Jan 21 19:20 boa | ||
|  | 
 | ||
|  | ./boa: | ||
|  | total 4 | ||
|  | -rw-r--r--   1 root     other       1234 Jan 21 19:26 boa.conf | ||
|  | 
 | ||
|  | ./opt: | ||
|  | total 2 | ||
|  | drwxr-xr-x   2 root     other        512 Jan 21 19:26 boa | ||
|  | 
 | ||
|  | ./opt/boa: | ||
|  | total 20 | ||
|  | -rw-r--r--   1 root     other       9964 Jan 21 19:26 mime.types | ||
|  | 
 | ||
|  | ./usr: | ||
|  | total 6 | ||
|  | drwxr-xr-x   2 root     other        512 Jan 21 19:21 bin | ||
|  | drwxr-xr-x   2 root     other        512 Jan 21 19:03 lib | ||
|  | drwxr-xr-x   3 root     other        512 Jan 21 19:08 share | ||
|  | 
 | ||
|  | ./usr/bin: | ||
|  | total 18 | ||
|  | -rwxr-xr-x   1 root     other       8944 Jan 21 19:23 boa_indexer | ||
|  | 
 | ||
|  | ./usr/lib: | ||
|  | total 5094 | ||
|  | -rwxr-xr-x   1 root     other     185020 Jan 21 19:03 ld.so.1 | ||
|  | -rwxr-xr-x   1 root     other    1126652 Jan 21 18:56 libc.so.1 | ||
|  | -rwxr-xr-x   1 root     other       4308 Jan 21 18:56 libdl.so.1 | ||
|  | -rwxr-xr-x   1 root     other      24968 Jan 21 18:56 libmp.so.2 | ||
|  | -rwxr-xr-x   1 root     other     883500 Jan 21 18:56 libnsl.so.1 | ||
|  | -rwxr-xr-x   1 root     other     265860 Jan 21 18:56 libresolv.so.2 | ||
|  | -rwxr-xr-x   1 root     other      70260 Jan 21 18:56 libsocket.so.1 | ||
|  | 
 | ||
|  | ./usr/share: | ||
|  | total 2 | ||
|  | drwxr-xr-x   3 root     other        512 Jan 21 19:08 lib | ||
|  | 
 | ||
|  | ./usr/share/lib: | ||
|  | total 2 | ||
|  | drwxr-xr-x   3 root     other        512 Jan 21 19:08 zoneinfo | ||
|  | 
 | ||
|  | ./usr/share/lib/zoneinfo: | ||
|  | total 2 | ||
|  | drwxr-xr-x   2 root     other        512 Jan 21 19:09 Australia | ||
|  | 
 | ||
|  | ./usr/share/lib/zoneinfo/Australia: | ||
|  | total 22 | ||
|  | -rw-r--r--   1 root     other        785 Jan 21 19:09 ACT | ||
|  | -rw-r--r--   1 root     other        785 Jan 21 19:09 Broken_Hill | ||
|  | -rw-r--r--   1 root     other        663 Jan 21 19:09 LHI | ||
|  | -rw-r--r--   1 root     other        785 Jan 21 19:09 NSW | ||
|  | -rw-r--r--   1 root     other        104 Jan 21 19:09 North | ||
|  | -rw-r--r--   1 root     other        160 Jan 21 19:09 Queensland | ||
|  | -rw-r--r--   1 root     other        785 Jan 21 19:09 South | ||
|  | -rw-r--r--   1 root     other        825 Jan 21 19:09 Tasmania | ||
|  | -rw-r--r--   1 root     other        785 Jan 21 19:09 Victoria | ||
|  | -rw-r--r--   1 root     other        150 Jan 21 19:09 West | ||
|  | -rw-r--r--   1 root     other        785 Jan 21 19:09 Yancowinna | ||
|  | 
 | ||
|  | ./var: | ||
|  | total 4 | ||
|  | drwxr-xr-x   2 www      www          512 Jan 21 19:44 log | ||
|  | drwxr-xr-x   2 root     other        512 Jan 21 18:57 www | ||
|  | 
 | ||
|  | ./var/log: | ||
|  | total 4 | ||
|  | -rw-r--r--   1 root     other        202 Jan 21 19:47 access_log | ||
|  | -rw-r--r--   1 root     other        590 Jan 21 19:49 error_log | ||
|  | 
 | ||
|  | ./var/www: | ||
|  | total 0 | ||
|  | 
 | ||
|  | Note, your boa binary should be kept outside of the chroot jail as  | ||
|  | they are not required.  | ||
|  | 
 | ||
|  | The commandline issued to boa requires "-r /var/www" which tells | ||
|  | boa to chroot to /var/www before it does anything else, including | ||
|  | reading its configuration file. | ||
|  | 
 | ||
|  | That's all that's required. Start your new chrooting boa up and enjoy! |