Sie sind auf Seite 1von 31

Creacin y portabilidad de jaulas

Instalacin de un hosting FreeBSD

1.- Configurando la red


El servidor educnet-clon cuenta con la siguiente configuracin:

IP:10.100.6.215 /24
GW:10.100.6.254
DNS:10.50.1.16
Nombre Host: Educnet-Clon

1.1.- Para la ip:


Ifconfig em0 10.100.6.215 netmask 255.255.255.0

1.2.- Para la puerta de enlace (Defaul gateway)


route add default gw 10.100.6.254

1.3.- Para el DNS

vi /etc/resolv.conf
nombre de host

#vi /etc/hosts

ponemos:

127.0.0.1 localhost.decom-uv.cl localhost


10.100.6.215 clon-educnet.decom-uv.cl clon-educnet
10.100.6.215 clon-educnet.decom-uv.cl.

Luego editamos /etc/host.conf, verificando que se encuentre hosts, antes que bind

#vi /etc/host.conf
hosts
bind
dns

Luego editamos /etc/rc.conf, que es el archivo que guarda la configuracin con que
arranca el equipo. configurando:

#vi /etc/rc.conf
ifconfig_fxp0="inet 10.100.6.215 netmask 255.255.255.0"
defaultrouter="10.100.6.254"
hostname="educnet-clon.decom-uv.cl"
nota: para nuestro siguiente acceso al sistema, deberia aparecernos en el promt:
educnet-clon#

1
Creacin y portabilidad de jaulas

2.- Instalacin de aplicaciones Port


Necesitamos instalar Diablo (java para FreeBSD) y Postgresql 8.1, para comenzar, es necesario
saber con que versin de diablo cuenta nuestro sistema FreeBSD adems de la ubicacin.

2.1. Buscar el port

#cd /usr/ports //donde se encuentran todas las aplicaciones


#make search name=diablo //diablo es la aplicacin a buscar
Port: lsof-4.56.4
Path: /usr/ports/java/diablo-jre13
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps:

Nota: Path nos indica la ubicacin de diablo, primera aplicacin a instalar.

2.2: Entrar a la aplicacin

Entramos a /usr/ports/java/diablo-jre13
Deben existir los siguientes directorios:

Makefile
distinfo
files
pkg-descr
pkg-plist

Hacemos make y make install

Si existe un error sobre vulnerabilidad debemos actualizar la BD de de vulnerabilidades.

Nota: nos damos cuenta que la versin de diablo con la que cuenta nuestro sistema corresponde
a la 1.3, lo cual es demasiado antigua, es necesario adems de actualizar la lista de
vulnerabilidades, actualizar nuestra lista de puertos (ports).

2.3.- Actualizacin de la BD de vulnerabilidades

Entrar a /usr/ports/security/portaudit

2
Creacin y portabilidad de jaulas

Ejecutar
#make

y luego
#makeinstall

Una vez ejecutado dichos comando, se debe ejecutar:

#portaudit -F //nos descarga la nueva BD de vulnerabilidades

2.3.- Actualizacin de la lista de puertos (ports).

Ejecutamos el siguiente comando:

#portsnap fetch extract

Antes de empezar a instalar los servicios se debe tener los Ports actualizados, estos se
pueden descargar de la siguiente direccin ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/

3.- Instalando Bash

Una vez bajados los Ports se pueden dejar en un directorio como ports2 o renombrar el directorio
original como ports.ori y el original se deja como ports, eso a gusto de la persona, lo importante es
realizar la actualizacin desde los ports descargados y no los que trae. En este caso se utilizo el
ports2

cd /ports2/port/shells/bash
make
make install

4.- Habilitando ssh

4.1.- Entro al archivo /etc/rc.conf


Ah hay que poner:
sshd_enable = YES

4.2.- Luego ejecuto ssh

3
Creacin y portabilidad de jaulas

/etc/rc.d/sshd star

4.3.- En caso de no partir ssh, debera agregar estas lnea de cdigo al archivo
etc/ssh/sshd_config

IgnoreRhosts yes
RhostsRSAAuthentication no
RhostsAuthentication no
IgnoreUserKnownHosts no
PrintMotd yes
StrictModes yes
RSAAuthentication yes
PermitRootLogin yes
PermitEmptyPasswords no
PasswordAuthentication yes

4.4.- Posibles problemas con ssh

Uno de los problemas que se pueden presentar posterior a la instalacin por ssh, es que al
servidor donde intentamos acceder haya generado nuevamente las claves (trabaja con claves
publicas y privadas), es decir, se haya desinstalado ssh y luego instalado.

El problema que se muestra en nuestro ssh (cliente) es el siguiente:

alumnos# ssh root@192.168.20.6


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the DSA host key has just been changed.
The fingerprint for the DSA key sent by the remote host is

4
Creacin y portabilidad de jaulas

69:ca:9d:10:03:c9:20:ba:a7:dc:46:d4:b7:7c:e5:44.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:7
DSA host key for 192.168.20.6 has changed and you have requested strict checking.
Host key verification failed.

En este caso se borra .ssh/known_hosts. Y se volver a poder entrar por ssh desde esta cuenta.
Este problema se puede presentar en cualquier cuenta de usuario que se tenga en la mquina por
ejemplo puede darse con /home/1998/mferrand/.ssh/known_hosts.
Cabe sealas que el problema es de una cuenta en especfico y no de TODAS las cuentas, esto
fue probado entrando con otra cuenta mientras persista el problema desde root y mferrand que
se encontraban en la mquina desde donde se quera acceder al servidor

Problema Host key verification failed. En Jaulas

Este problema se presenta cuando se tienen servidores virtuales y ocurre cuando las interfaces de
los servidores virtuales (Jails) son cambiadas, entiendase por interfaces los alias que utilizan para
identifarse las distintas jaulas. El problema tiene relacin con lo mismo explicado anteriormente, y
se soluciona desinstalando (parando ssh y comenarlo de rc.conf) ssh y luego instalndolo para
que se generen las llaves pblicas y privadas nuevamente, en caso que no se pueda ingresar una
de las posibilidades es que pase lo sealado en el parrafo anterior, es decir, la cuenta del servidor
desde donde se est accediendo mantenga las llaves (publicas y privadas) antiguas.

5
Creacin y portabilidad de jaulas

Configuracin de Jaulas en
FreeBSD

Es necesario revisar los demonios que se encuentran escuchando cualquier direccin ip del
sistema. Esto se realiza con el comando sockstat l4 con lo que se obtiene el siguiente resultado

ultraman# sockstat -l4

USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN


ADDRESS
root sendmail 727 4 tcp4 127.0.0.1:25 *:*
root sshd 721 4 tcp4 *:22 *:*
root syslogd 581 7 udp4 *:514 *:*
ultraman#

Ac se puede apreciar que los demonios sshd y syslog se encuentran escuchando en cualquier
direccin IP (asterisco en el campo LOCAL ADDRESS), a diferencia de sendmail que lo hace en
la direccin de loopbak

En el caso de sshd se debe modificar en el archivo /etc/ssh/sshd_config la lnea referente a


#ListenAddress
Esta por omisin viene comentada y sin una direccin especfica. Se debe descomentar all e
ingresar all la direccin IP del sistema base

1.- Construccin de una jaula

Ejecutando el comando sysinstall en la mquina en la ruta configure/disttribution/src es posible


obtener las fuentes que quedarn almacenadas en /usr/src.
Esto generalmente tarda varios minutos (100 min app)
Se presentan a continuacin todos los requerimientos para crear e instalar una jaula base que
puede ser clonada posteriormente para obtener jaulas segn se necesite.
Antes utilizar el shell cts..

setenv D /usr/jails/baseJail
cd /usr/src

6
Creacin y portabilidad de jaulas

mkdir p $D
make world DESTDIR=$D
cd etc
make distribution DESTDIR=$D

Con lo anterior se consigue poblar el directorio /usr/jails/baseJail con una estructura de archivo
similar al sistema base, es decir, dentro de este directorio existen los directorios /bin, /etc y /var,
entre otros.

2.- Instalando ports en las jaulas

En la url ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/
Se pueden descargar los ports actualizados, estos ports se dejan en el directorio /root de la
mquina y luego son descargados por las distintas jaulas, como es sealado en el punto 8

3.- Para la clonacin de Jaulas

dharma# mkdir /usr/jails/newJails15 (nombre de la jaula)


dharma# tcsh
You have mail.
dharma# cd /usr/jails/baseJail
dharma# tar -cpf - .| tar -C /usr/jails/newJails15 -xpf -

4.- Inicializacin de una Jaula

scox07# ifconfig rl0 inet alias 10.100.6.182


scox07# mount t devfs devfs /usr/jails/jail3/dev (jail3 donde se va a clonar)
scox07# cd /usr/jails/jail3
scox07# ln -sf dev/null kernel

>> Ejecutando el comando para iniciar la jaula

scox07# jail /usr/jails/jail3 jail3 10.100.6.182 /bin/sh etc/rc


Loading configuration files.
jail3
Setting hostname: jail3.
Generating nsswitch.conf.
Generating host.conf.

7
Creacin y portabilidad de jaulas

Creating and/or trimming log files:.


ln: /dev/log: Operation not permitted
Starting syslogd.
ELF ldconfig path: /lib /usr/lib /usr/lib/compat
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout
Starting local daemons:.
Updating motd.
sendmail_submit: /etc/mail/aliases.db not present, generating
WARNING: local host name (jail3) is not qualified; see cf/README: WHO AM I?
/etc/mail/aliases: 27 aliases, longest 10 bytes, 275 bytes total
Starting cron.
Local package initialization:.

Tue Sep 25 10:44:07 UTC 2007


scox07#

>>Borrando una jaula

Editar archivo rc.conf

Primero se saca del jail_list, luego se comenta o elimina todo lo relacionado con la jaula que se
desea borrar, luego se aplican los siguientes comandos

# cd /usr/jails/my_jail
# chflags -R noschg *
# rm -rf *

>> Estructura rc.conf

En rc.conf debe tener la siguiente estructura para que la jaula pueda partir

###################Primera Jaula ###################################


jail_enable="YES"
jail_list="jail1"
ifconfig_rl0_alias0="inet 10.100.6.171 netmask 255.255.255.0"
jail_jail1_rootdir="/usr/jails/Jail1"
jail_jail1_hostname="jail1"
jail_jail1_ip="10.100.6.171"
jail_jail1_exec_start="/bin/sh /etc/rc"
jail_jail1_devfs_enable="YES"
jail_jail1_fdescfs_enable="YES"
jail_jail1_procfs_enable="YES"

8
Creacin y portabilidad de jaulas

Observacin: En este caso se tuvo que cambiar el nombre del directorio de la jaula, que
actualmente aparece como Jail1 (en la cuarta lnea) pero este directorio se llamaba NewJail, al
llamarse de esta forma la jaula no iniciaba al reiniciar el servidor

Al crear la segunda jaula la configuracin del rc.conf queda de la siguiente forma

###################Primera Jaula ###################################


jail_enable="YES"
jail_list="jail1 jail2"
ifconfig_rl0_alias0="inet 10.100.6.171 netmask 255.255.255.0"
jail_jail1_rootdir="/usr/jails/jail1"
jail_jail1_hostname="jail1"
jail_jail1_ip="10.100.6.171"
jail_jail1_exec_start="/bin/sh /etc/rc"
jail_jail1_devfs_enable="YES"
jail_jail1_fdescfs_enable="YES"
jail_jail1_procfs_enable="YES"

##################Segunda Jaula #####################################


ifconfig_rl0_alias1="inet 10.100.6.181 netmask 255.255.255.0"
jail_jail2_rootdir="/usr/jails/jail2"
jail_jail2_hostname="jail2"
jail_jail2_ip="10.100.6.181"
jail_jail2_exec_start="/bin/sh /etc/rc"
jail_jail2_devfs_enable="YES"
jail_jail2_fdescfs_enable="YES"
jail_jail2_procfs_enable="YES"

5.- Muestra las jaulas que se encuentran creadas

scox07# jls
JID IP Address Hostname Path
3 10.100.6.182 jail3 /usr/jails/jail3
2 10.100.6.181 jail2 /usr/jails/jail2
1 10.100.6.171 jail1 /usr/jails/jail1

9
Creacin y portabilidad de jaulas

Estas jaulas aparecen creadas unas vez que estn agregados los parmetros anteriormente
descritos en el rc.conf de la mquina

6.- Entrando a una jaula

scox07# jexec 2 /bin/csh


You have mail.
jail2#
jail2# exit
exit
# exit
scox07#

Se utiliza el shell csh para que los comandos sea reconocido por la mquina

7.- Instalacin de Ports en las Jaulas

OBS: Los Ports que se pasan a las dems jaulas son ports limpios son los que se descargan
desde internet, ya que al instalar el FreeBSD en el server no se instalan los ports.

Para la instalacin de ports en las jaulas:

Primero se dejan los ltimos ports en el directorio /root luego posicionndome dentro del directorio
usr de la jaula descomprimo los ports, esto se realiza para cada una de las jaulas.

scox07# cd /usr/jails/jail1/usr/
scox07# gzip -dc /root/ports.tar.gz | tar -xvf

8.- Activar ping en las jaulas

Las jaulas por default no aceptan ping por lo que hay que activar esta opcin, se realiza con el
siguiente comando

scox07# sysctl security.jail.allow_raw_sockets=1

>>Para agregar esta opcin a travs de echo se realiza de la siguiente forma:

10
Creacin y portabilidad de jaulas

scox07# echo security.jail.allow_raw_sockets=1 >> /etc/sysctl.conf

9.- Para matar el proceso de una jaula

kill KILL -1

En /var/run el archivo jail_jail20.id se elimina con rm para matar por completo el proceso de la
jaula y luego se puede volver a activar nuevamente la jaula con

10.- Para activar una jaula

/etc/rc.d/jail start jail1

11.- Salida a Internet de una Jaula

Para que las jaulas puedan navegar es necesario crear el archivo resolv.conf, ya que este no se
encuentra creado, por lo que las jaulas no cuentan a la hora de ser creadas con un dns

vi /etc/resolv.conf

nameserver 10.50.1.16

---------------------------------------------------------------------------------------------------------------------

Esta configuracin pertenece al servidor Ultraman (Ex Scox) se utilizarn 4 jaulas:

AMP (Apache13 + MySql + PHP5)


DNSE(dns externo)
DNI (dns interno), Home

Para realizar esto se utiliza tambin NATD modificando el Kernel

11
Creacin y portabilidad de jaulas

3.- Instalando Bash

Una vez bajados los Ports se pueden dejar en un directorio como ports2 o renombrar el directorio
original como ports.ori y el original se deja como ports, eso a gusto de la persona, lo importante es
realizar la actualizacin desde los ports descargados y no los que trae. En este caso se utilizo el
ports2

cd /ports2/port/shells/bash
make
make install

4.- Habilitando ssh

4.1.- Entro al archivo /etc/rc.conf


Ah hay que poner:
sshd_enable = YES

4.2.- Luego ejecuto ssh


/etc/rc.d/sshd star

4.3.- En caso de no partir ssh, debera agregar estas lnea de cdigo al archivo
etc/ssh/sshd_config

IgnoreRhosts yes
RhostsRSAAuthentication no
RhostsAuthentication no
IgnoreUserKnownHosts no
PrintMotd yes
StrictModes yes
RSAAuthentication yes
PermitRootLogin yes
PermitEmptyPasswords no
PasswordAuthentication yes

12
Creacin y portabilidad de jaulas

6- Instalando apache13 (Apache Mysql 5 PHP5)


amp# cd /usr/ports/www/apache13
amp#make
amp#make install

Al ejecutar apache apachectl start, es posible que el comando no sea reconocido por lo que
habr que salir de ese Prom. con exit y luego ejecutar apachectl Stara
Para que el comando que viene a continuacin pueda ejecutarse se ingresa por el shell tcsh
#apachectl start

>>Otra forma de poder ejecutar apache es:


/usr/local/sbin/apachectl start

Luego se agrega mysql_enable=YES al archivo /etc/rc.conf

7.- Instalando PHP5

Al instalar PHP5 con Apache13 debo instalar otras aplicaciones como php5-mysql y php5-
extensions, todas estas instalaciones quedarn descritas en esta seccin

7.1.- Instalando PHP5

cd /usr/ports/lang/php5
make install clean

Dar Soporte PHP a Apache13


Al realizar make install clean me aparecer una pantalla azul, en la cual se deber agregar
algunas opciones imprescindibles como apache y cgi (esta generalmente viene por defecto

13
Creacin y portabilidad de jaulas

##Este paso de comprobacin de php se puede omitir, o realizar una vez instaladas las
otras aplicaciones como php5-extensions y php5-mysql#############

> Para probar php5 agregamos una pgina hecha en php en el directorio
/usr/local/www/data (para este caso debera agregarse en la jaula que se est instalando)
Dentro del directorio data agregamos una pgina pruebaphp.php

> Ingresamos a la pgina por ejemplo: 10.100.6.204/pruebaphp.php


Para verificar que los mdulos de PHP4 se encuentren instalados hay que dirigirse a
vi /usr/local/etc/apache/httpd.conf

En este archivo debern aparecer

LoadModule php5_module libexec/apache/libphp5.so

Y mas abajo aparecer

AddModule mod_php5.c

Luego se reinicia apache (apachectl restart) y al ingresar a la ip del servidor deber aparecer la
pgina de PHP PHP Version 5.

7.2.- Instalando PHP5-Extensions

cd /usr/ports/lang/php5-extensions

make config

Ac aparecern una serie de opciones que solo algunas se debern marcar adems de dejar las
que aparecen por default, las opciones a marcar son las siguientes (estas aparecern en una
pantalla azul)

select type, curl, dom, gd, imap, mbstring, mcrypyt, mysql, mysqli, pcre, posix, session,
simplexml, xml, xmlreader, xmlwriter, zlib

make install
make clean

14
Creacin y portabilidad de jaulas

/usr/ports/databases/php5-mysql - MySQL Database


/usr/ports/www/php5-session - Sessions
/usr/ports/graphics/php5-gd - Graphics Library

cd /usr/local/etc

cp php.ini-recommended php.ini

7.3.- Instalando PHP5-mysql

Ac se da el soporte de mysql en PHP, se produce la conexin entre ambas aplicaciones, para ver
si tengo instalado php5-mysql realizo el siguiente comando

pkg_info|grep php|grep mysql

Si el commando arroja algn resultado quiere decir que la aplicacin est instalada, en caso
contrario (de no arrojar nada) hay que instalarla.

cd /usr/ports/database/php5-mysql

make
make install
make clean

Observacin: Es probable que no inicie php5 por lo que hay que meterse al archivo
vi /usr/local/etc/apache/httpd.conf y cambiar todos lod php4 por php5

Installing the MySQL port

The MySQL database server can be installed with the following commands

# cd /usr/ports/databases/mysql41-server
# make install

A start up script is installed to /usr/local/etc/rc.d and the databases are stored in /var/db/mysql

15
Creacin y portabilidad de jaulas

Starting MySQL

/etc/rc.conf must contain the following line to allow the MySQL server to start
mysql_enable="YES"

Once this line is there you can run the start up script with

# sh /usr/local/etc/rc.d/mysql-server.sh start

Setting the root password

After MySQL has start you need to set passwords on both root accounts and the two anonymous
accounts. By default these are left blank and give full access to the database server to anyone.
To set a password on the anonymous accounts use

# mysql -u root
# SET PASSWORD FOR ''@'localhost' = PASSWORD('newpwd');
# SET PASSWORD FOR ''@'host_name' = PASSWORD('newpwd');

To set a password for the root account use


# mysql -u root
# SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
# SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');

Manual para crear usuarios


en MySql

1. Crear usuarios en MySql:

Ingresar en la consola de MySql el siguiente comando:

o mysql >CREATE user nombre_usuario IDENTIFIED BY


aqu_el_password;

Luego de haber sido creado, dar privilegios de usuario con los siguientes comandos:

o mysql > GRANT ALL PRIVILEGES ON *.* TO


usuario@localhost IDENTIFIED BY password WITH GRANT
OPTIONS;

o (OPCIONAL) En vez de usar ALL PRIVILEGES se puede usar RELOAD y PROCESS;

Maquina remota cambia:

16
Creacin y portabilidad de jaulas

@localhost por @% (% significa que ser


cualquier mquina)

o mysql > GRANT select, insert, update, delete, create,


drop ON base_datos.* TO usuario@localhost IDENTIFIED
BY password;

2. Borrar usuarios en MySql:

Ingresar en la consola de MySql los siguientes comandos:

o mysql > USE MySql;


o mysql > DELETE FROOM user WHERER user = usuario;

3. Quitar privilegios:

Ingresar en la consola de MySql los siguientes comandos:

o mysql > REVOKE ALL PRIVILEGES ON usuarios.* FROM usuario;


o mysql > REVOKE ALL PRIVILEGES, GRAN OPTION FROM usuario;

Ver los privilegios de una cuenta:

o mysql > SHOW GRANTS for usuario@localhost


o mysql > SHOW GRANTS FOR usuario;

17
Creacin y portabilidad de jaulas

Preparar estructura y cuentas para Usuarios

En primare instancia se tiene los siguientes datos:


Directorio web apache: /usr/local/www/data/
Directorio archivo configuracin apache: /usr/local/etc/apache/httpd.conf
Por ejemplo, se creara la pagina web llamada test1.uv.cl, por lo tanto crearemos una
carpeta con ese nombre dentro del directorio web de apache.
[root@hosting ~]# cd /usr/local/www/data/
[root@hosting /usr/local/www/data/]# mkdir test1
Una vez hecho esto instalaremos un nuevo Shell para permitir subir archivo via scp o
winscp a los usuarios. Este nuevo Shell es scponly, el cual lo instalaremos via ports,
[root@hosting ~]# cd /usr/ports/shells/scponly
[root@hosting /usr/ports/shells/scponly]# make install clean
Y aparecer la siguiente pantalla. Se debe elegir las opciones marcadas a continuacin.

Ya
tenem
os
instalado nuestro nuevo Shell.

18
Creacin y portabilidad de jaulas

Crear nuevo usuario solo con permisos de scp

Una ves hecho esto se debe crear un usuario, de preferencia con un nombre alusivo al
sitio web, en este caso lo llamaremos test1. Es importante que la creacin de este usuario
sea bajo un temple, el cual se encuentra en la siguiente direccin.
[root@hosting ~]# cd /usr/local/share/examples/scponly
[root@hosting /usr/local/share/examples/scponly]# sh setup_chroot.sh
Al ejecutarse el ltimo comando, se empezara la creacin del nuevo usuario.
La creacin se muestra hosting# sh setup_chroot.sh

Next we need to set the home directory for this scponly user.
please note that the user's home directory MUST NOT be writeable
by the scponly user. this is important so that the scponly user
cannot subvert the .ssh configuration parameters.

for this reason, a writeable subdirectory will be created that


the scponly user can write into.

-en Username to install [scponly]


test1
-en home directory you wish to set for this user [/home/loco]
/usr/local/www/data/test1
-en name of the writeable subdirectory [incoming]
www

creating /usr/local/www/data/test1/www directory for uploading files

Your platform (FreeBSD) does not have a platform specific setup script.
This install script will attempt a best guess.
If you perform customizations, please consider sending me your changes.
Look to the templates in build_extras/arch.
- joe at sublimation dot org

please set the password for test1:


Changing local password for test1
New Password:
Retype New Password:
if you experience a warning with winscp regarding groups, please install
the provided hacked out fake groups program into your chroot, like so:
cp groups /home/loco/bin/groups stra a continuacin.
Lo marcado con negrita siempre debe ser de esa forma, la primera lnea marcada con
negrita es el nombre de usuario, la segunda la carpeta home que designaremos, la
tercera en que carpeta dentro de su propio home, se podr escribir y leer (pagina web), y
luego pedir la password para ese usuario.
Cd /usr/local/www/data/test1

19
Creacin y portabilidad de jaulas

Mkdir dev
Cd dev
Touch null
Chmod 0666 null

Instalacin Virtual Host Apache 1.3

Una vez ya instalado apache 1.3 en la plataforma, se debe configurar el archivo


httpd.conf ubicado en la ruta /usr/local/etc/apache/httpd.conf

[root@hosting ~]# vi /usr/local/etc/apache/httpd.conf


Luego debemos agregar al final del archivo la configuracin de nuestro nuevos sitios
virtuales, como sigue a continuacin. En este caso crearemos un virtual host de ejemplo
NameVirtualHost *:80

<VirtualHost>
#ServerAdmin mitchell.ferrand@gmail.com
DocumentRoot /usr/local/www/data/data/test1/www
ServerName test1.uv.cl
ErrorLog var/log/test1_error_log
#CustomLog var/log/test1_log combined
</VirtualHosts>

Luego al guardar este archivo debemos reiniciar el servidor apache


[root@hosting ~]# apachectl restart

En el caso de la Universidad de Valparaso, el host ejemplo.uv.cl debe ser ingresado en la


zona uv, en el dns interno y externo, asi para darle una ip de salida valida hacia internet

20
Creacin y portabilidad de jaulas

Tutorial de scpOnly
Uno de los mayores problemas, para los administradores de red esta en dar acceso limitado a los
usuarios de forma segura, esto no siempre es posible, por que por un lado se puede dar acceso
con ftp pero debido a que esta conexin no es encriptada y susceptible a ser interceptada, por otro
lado esta ssh, pero el gran problema es que como sistema puro no entrega limitaciones a los
usuarios y con el acceso a consola las posibilidades de cambiar al sistema son altas.

Para dar solucin a esto se utiliza la shell scponly y mas especficamente scponlyc o sea una shell
que bloquea las capacidades de acceso a consola y al mismo tiempo enjaula al usuario de tal
manera que queda totalmente restringido al acceso entregado por el administrador.

Requisitos

Los requisitos son, primero tener instalado FreeBSD o Linux con acceso a Internet, para nuestro
caso todo el proceso que se describe es para FreeBSD especficamente en la versin 6.2.
recordar que debe estar los ports actualizados y deben seguir los siguientes pasos:

Paso 1
Instalar Openssh-Portable, esto es necesario debido a que la versin que viene con Freebsd
preinstalada no tiene compatibilidad con chroot necesario para el uso de las jaulas, para eso se
realiza

# cd /usr/ports/security/openssh-portable/
# make install clean

El men siguiente debe quedar con las siguientes selecciones:

21
Creacin y portabilidad de jaulas

Con estas opciones el sh ya se encuentra en condiciones, para permitir chroot, por intermedio de
ssh, posteriormente se debe configurar como cualquier otro ssh (Capitulo de otro tutorial), lo que
se se debe reemplazar del archivo /etc/rc.conf lo siguiente

La linea sshd_enable=YES
Reemplazarla por openssh_enable=YES

Los archivos de configuracin del openssh se encuentran en /usr/local/etc/ssh

Y para levantar ssh es similar a lo que ya conocido para este caso es:

# /usr/local/etc/rc.d/openssh start

Con esto ya se tiene el ssh listo

Paso 2

Instalar scponly esta shell se instala desde


# /usr/ports/shells/scponly/
Make install
Y debe ser configurada de la siguiente forma

Con esto ya se tienen las herramientas necesarias para la utilizacin de usuarios limitados.

Paso 3

Crear un nuevo usuario, para crear este usuario no se debe utilizar el comando adduser, sino que
debe ser utilizado el script que es instalado en conjunto con scponly, este se encuentra en

22
Creacin y portabilidad de jaulas

# cd /usr/local/share/examples/scponly/
# sh setup_chroot.sh

Se deben seguir unos pasos simples que permiten crear el usuario con su jaula, la gran ventaja de
este usuario es que su jaula es totalmente reducida y son obviados todo los elementos no
necesarios.

Instalacin y Configuracin de Wordpress 2.8.4

Se debe bajar esta aplicacin de la pagina principal de Wordpress:


http://wordpress.org/download/
Luego la descomprimimos y la copiamos al servidor donde esta hospedada.
En este caso en particular, se encuentra instalada en el nuevo virtual host, su ruta ubicada
en /usr/local/www/data/ejemplo
Por lo tanto se descomprimir y copiara todos los archivos y carpetas de Wordpress
dentro de la carpeta ejemplo.
Luego se creara la nueva base de datos para este Wordpress, por lo tanto ingresamos a
el dbms Mysql, con el usuario y password correspondiente:
[root@hosting ~]# mysql u root -p

Luego creamos la nueva base de datos:


mysql>create database wp_ejemplo;
mysql>Query OK, 1 row affected (0.03 sec)
mysql>exit

Una vez creada la base de datos, debemos gestionar los archives de wordpress. El
primero de ellos el el archivo wp_config.php. El cual en un comienzo no existe, por lo
tanto debemos generarlo de una plantilla.

[root@hosting ~]# cd /usr/local/www/ejemplo


[root@hosting /usr/local/www/ejemplo]# cp wp-config-sample.php wp-config.php

Luego configuramos el archive wp_config.php

[root@hosting /usr/local/www/ejemplo]# vi wp-config.php

Y cambiamos las siguientes lineas:

[lnea 19] define('DB_NAME', 'wp_ejemplo'); # nombre base de datos

23
Creacin y portabilidad de jaulas

[lnea 22] define('DB_USER', 'root'); # nombre usuario base de


datos
[lnea 25] define('DB_PASSWORD', '******'); # password base de datos
[lnea 67] define ('WPLANG', 'es_ES'); # para que este la
traduccin en espaol

Se guardan los cambios, ahora debemos bajar la traduccin de Wordpress a


espaol de la siguiente pgina: http://carrero.es/traduccion-de-wordpress-2-8-4-al-
espanol/3743
Se descomprime el archivo y se encontrara dos archivos: es_ES.mo y es_ES.po
Ahora se deben ejecutar las siguiente instrucciones:

[root@hosting /usr/local/www/ejemplo]# cd wp-include


[root@hosting /usr/local/www/ejemplo/wp-include]# mkdir languages

Se debe copiar el archive es_ES.mo dentro de la carpeta languages.


Se procede a dar permisos a las carpetas que contendrn el contenido multimedia
(imgenes, videos,etc ). Este directorio es el wp-content, ubicado dentro del directorio raz
de Wordpress. A continuacin se muestra el comando de configuracin:
[root@hosting /usr/local/www/ejemplo]# chmod R 757 wp-content

Agregar configuracion awstats para cada pgina

Manual Configuracin Awstats


Para FreeBSD 6.1
Este pequeo tutorial ha sido desarrollado, gracias a la investigacin, experimentacin y desarrollo
de Marco Aravena, Mitchell Ferrand y Andrs Ramos, dentro de las implementaciones realizadas
para la Universidad de Valparaso Chile, esperamos sea de utilidad.

Awstats, abreviatura de Advanced Web Statistics, es una poderosa y completa herramienta que
genera estadsticas grficas avanzadas para sitios web a partir de los logs de Apache. Toda esta
informacin Awstats la transforma en estadsticas y la mejor forma de ver como quedan y tener
estadsticas de nuestro servidor web es comprobarlo instalando Awstats en nuestra mquina.

1.- Instalacin

Para realizar la instalacin lo primero que se debe hacer es ir hasta los ports

24
Creacin y portabilidad de jaulas

# cd /usr/ports/www/awstats
# make
# make install

Despus nos dirigimos al archivo de configuracin y hacemos una copia con el nombre de nuestro
servidor:

# cd /usr/local/www/awstats/cgi-bin/
# cp awstats.model.conf awstats.conf

OBS: Para este caso se usa alumnos como nombre del servidor

2.- Configuracin

Procedemos a editar el archivo de cdonfiguracin que acabamos de crear, con las opciones que
ms no interesen, yo suelo editar las siguientes lineas:

# vi awstats.conf

Las lneas que se encuentran a continuacin estn a lo largo de todo este archivo (no van juntas)
para ahorra espacio y no poner el archivo se escribirn todas juntas

LogFile=var/log/httpd-access.log
Este archivo se saca de la ruta
cd /var/log
ls las //aparecer este archivo httpd-access.log

25
Creacin y portabilidad de jaulas

Este archivo registra el ingreso de cada visita que se realiza a la pgina


.
.
.
SiteDomain=localhost
.
.
DNSLokup=2 //Este parmetro por default viene como 1
.
.
DirIcons=/icons
.
.
SkipeDNSLookupfFor="192.168.20.1" //Este parmetro viene vacio por lo que hay que poner su
DNS solo aparecer SkipeDBSLookupfFor=

Una vez terminada la configuracin del archivo se renombra, en mi caso era


awstats.alumnos.conf lo renombre a awstats.conf

Luego se actualiza la B.D es conveniente agregarlo al crontab para no actualizarla a cada


momento
perl awstats.pl -config=localhost -update //agregarla al cron

Agregar nuevo sitio del Hosting Configuracin de AWSTATS

Agregar estadsticas de visita a sitios Hosting:

Entrar a /usr/local/www/awstats/cgi-bin/
Hacer una copia de una ya creada:

#cp awstats.cine.uv.cl.conf awstats.nuevo.uv.cl.conf


Editar el nuevo archivo:

#vi awstats.nuevo.uv.cl.conf
Modificar las siguientes lineas:

26
Creacin y portabilidad de jaulas

LogFile : /var/log/nuevo.uv.cl_log

SiteDomain = nuevo.uv.cl

Luego ejecutar por 1 vez:

# /usr/local/www/awstats/cgi-bin/awstats.pl update
config=nuevo.uv.cl
Por ltimo, agregarlo en el cron con:

# crontab e
mismo formato

27
Creacin y portabilidad de jaulas

Relacin de confianza
ssh / rsa
1. Ingresar los siguientes comandos para el Serv B en el directorio raz de la cuenta:

ServB # mkdir .ssh/

o En la configuracin del sshd_config se tiene que dejar desconectado las siguientes


lneas:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

ServB # /etc/rc.d/ssh restart

Serv A
2. Ingresar los siguientes comandos para el Serv A:

ServA # ssh keygen trsa


ServA# cat .ssh/id_rsa.pub | ssh usuario@SerB cat >>
.ssh/authorized_keys

o Tener Cuidado con estar ubicado en el directorio donde est el id_rsa.pub

Serv B

3. Desde ServA a ServB no pide clave

ServA# ssh user@ServB

28
Creacin y portabilidad de jaulas

4.- Crontab

Una de las necesidades es mantener actualizada toda la informacin que muestra awstats la lnea
perl awstats.pl -config=localhost update, slo permite indexar una actualizacin a los
registros, lo cual causa una serie de problemas, dado que el administrador no puede estar, da a
da actualizando los ingresos, para existe crontab o tareas programadas de unx, para lograr
programar la tarea slo basta con ingresar a crontab por medio de

crontab e
Luego se debe agregar

MAILTO=""
*/30 * * * * /usr/bin/perl /usr/local/www/awstats/cgi-bin/awstats.pl -config=loc
alhost -update >>/dev/null

uno de los mayores problemas de crontab se encuentra en que todos los resultados de los
procesos solicitados se envan a sendmail del usuario, lo cual provoca que la memoria se sature,
por lo tanto es necesario agregar en la cabecera del archivo crontab la lnea MAILTO= que
permita no enviar ningn tipo de mensaje, adems como medida particular se le indica al
comando que todo resultado sea dirigido a /dev/null.

15.- Cambiar Zona horaria


Es importante verificar la zona horaria de la jaula, ya que nos encontramos con aplicaciones que
trabajan con la hora. Para realizar esto se debe realizar lo siguiente

Dirigirse hasta

amp3#cd /usr/share/zoneinfo/America

Luego copiar el archivo Santiago que aparece dentro del directorio America.

amp3#cp Santiago /etc/localtime

29
Creacin y portabilidad de jaulas

Luego se verifica que la hora este correcta con el comando date

amp3# date
Wed Jun 11 14:56:46 CLT 2008

Para cambiar la hora a travs de comandos se realiza lo siguiente

amp3# date aomesdiahoraminutos

ejemplo

amp3# date 0808211000

Esto equivaldra a 21/08/2008 10 rct

30
Creacin y portabilidad de jaulas

COPIA DE JAULA DE SERVER LOCAL A SERVER REMOTO


*Esto solo est probado con el mismo sistema operativo

Primero se debe detener la jaula que se va a copiar


#/etc/rc.d/jail stop nombre_jaula

Segundo, se debe editar el archivo rc.conf en el server remoto, e ingresar los datos
de la jaula nueva.
#vi /etc/rc.d/rc.conf

Tercero, ejecutar el siguiente comando para realizar la copia:


#cd /usr/jails
#scp -r nombre_jaula username@remotehost:/usr/jails/
Este comando copia la jaula a la ruta /usr/jails/ en el server remoto
Se debe inicializar la jaula

En caso que la jaula copiada no conserve la IP

Se debe cambiar en el DNS

31

Das könnte Ihnen auch gefallen