Sie sind auf Seite 1von 36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.

org

Instalacin de servicios bsicos en OpenBSD v.4.8

Autor : Astrid Eliana Snchez Corts Correo electrnico: astrid.eliana@gmail.com Fecha de creacin : 09/01/08 Ultima modificacin: 06/01/11

ndice de contenido
1.Licencia (BSD)..................................................................................................................................2 2.Introduccin.......................................................................................................................................2 3.Configuracin bsica del sistema......................................................................................................2 3.1.Configuracin de la red .............................................................................................................3 a.Interfaces de red...................................................................................................................3 b.Gateway (puerta de enlace) y dns........................................................................................5 4.Instalando paquetes...........................................................................................................................6 4.1.Configurando con los paquetes a la mano.................................................................................7 4.2.Afterboot (despues de bootear la primera vez)..........................................................................8 a.Creacin de usuarios............................................................................................................8 b.No root en SSH, poweroff y reinicio en kernel panic........................................................10 c.Deshabilitar los servicios by default...................................................................................11 5.Servidor DHCP................................................................................................................................13 6.Comprobando rc.conf.local.............................................................................................................14 7.Servidor DNS..................................................................................................................................15 8.Servidor MySQL (Bases de Datos).................................................................................................19 8.1.Aspectos importantes con MySQL..........................................................................................22 9.Servidor WEB: Apache en Chroot..................................................................................................22 9.1.PHP v 5.0.................................................................................................................................22 9.2.Apache v 1.3.x (versin por omisin)......................................................................................25 9.3.Correos con PHP y MiniSendmail ..........................................................................................26 9.4.Ejemplo con MySQL y PHP....................................................................................................27 10.NAT y Firewall (PF - Packet Filter)..............................................................................................29 11.Servidor Proxy (Squid)..................................................................................................................31 11.1.Reportes con Sarg..................................................................................................................34 12.Enlaces relacionados.....................................................................................................................35 13.Historial del Documentacin.........................................................................................................35 13.1.Actualizaciones del documento.............................................................................................35

________________________________________________________________________________
1/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

1. Licencia (BSD)
Copyright (c) 2008, Astrid Eliana Snchez , All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the OpenBSD Colombia or the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

2. Introduccin
Hace algn tiempo, en la empresa en la que trabajaba decidimos cambiar el servidor, la funcin de este servidor sera sencilla, solo debe proveer Internet para una red LAN relativamente pequea, con los servicios de DHCP, DNS, WEB, PROXY, NAT y FIREWALL. La instalacin en ese momento se hizo con la versin 4.2 de OpenBSD, y de esta sali la primera versin de este documento detallando todo, o casi todo lo que hice para dejarlo en funcionamiento. Esta versin nunca sali de mis manos, ahora se ve enriquecido por el trabajo de Fernando Quintero quien lo ha mejorado y actualizado a la versin 4.3, ahora se encuentra actualizado a la versin 4.8, con la ayuda de Esteban Calle. El pblico objetivo de este documento son personas que estn dando sus primeros pasos en OpenBSD, y que despus de instalarlo no saben hacia donde ir, como yo misma cuando me puse en esta tarea, sin embargo asumo que hay cierta familiaridad con el trabajo en sistemas tipo Unix. En este documento no se explicar para que sirve cada servicio, ni los comandos bsicos que se usen, tambin asumo que se tiene una teora bsica de redes y de servicios de red. El documento inicia desde que el sistema esta en su instalacin base, la instalacin propia de OpenBSD est bien explicada en otros documentos que puede encontrar en la comunidad OpenBSD Colombia. Espero le sea til a alguien, recibo comentarios, crticas y sugerencias en mi correo. Mentiras, las criticas al /dev/null ;)

3. Configuracin bsica del sistema


Antes de comenzar la configuracin de los servicios es necesario tener una configuracin bsica en nuestro sistema. En este captulo mostrar un poco de esto.

________________________________________________________________________________
3.Configuracin bsica del sistema 2/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

3.1. Configuracin de la red


Esta configuracin puede hacerse desde la instalacin, sin embargo no est de ms revisarla, y saber como funciona. Siempre que se hace un cambio en la configuracin de la red se debe ejecutar el script /etc/netstart para que los cambios tengan efecto, o en su defecto reiniciar el sistema.
#sh /etc/netstart

o
#reboot

a. Interfaces de red La configuracin de las tarjetas de red se encuentra en los archivos /etc/hostname.inteface, donde inteface es el nombre de la interfaz, en OpenBSD dependen del fabricante de la tarjeta de red, as que en cada equipo es diferente, para verificar como se llaman nuestras interfaces solo tenemos que usar el comando ifconfig. La primera palabra que aparece antes de los dos puntos es el nombre de la interfaz de red. No todas las interfaces que aparecen son fsicas, algunas son usadas para procesos internos del sistema operativo, como cifrar la informacin, generar logs, etc.
# ifconfig -a lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33200 priority: 0 groups: lo inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 vic0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:0c:29:d7:94:53 priority: 0 groups: egress media: Ethernet autoselect status: active inet6 fe80::20c:29ff:fed7:9453%vic0 prefixlen 64 scopeid 0x1 inet 192.168.200.131 netmask 0xffffff00 broadcast 192.168.200.255 vic1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:0c:29:d7:94:5d priority: 0 media: Ethernet autoselect status: active inet 192.168.1.5 netmask 0xffffff00 broadcast 192.168.1.255

________________________________________________________________________________
3.Configuracin bsica del sistema 3/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

inet6 fe80::20c:29ff:fed7:945d%vic1 prefixlen 64 scopeid 0x2 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33200 priority: 0 groups: pflog

Por ejemplo yo tengo dos tarjetas de red, cuyos nombres son: vic0 y vic1. vic0 esta en la red 192.168.200.131 (WAN) vic1 esta en la red 192.168.1.5 (LAN) Los archivos de configuracin respectivos son entonces /etc/hostname.vic0 y /etc/hostname.vic0.
# ls -l /etc/hostname.* -rw-r----- 1 root wheel 35 Nov 24 18:53 /etc/hostname.vic0 -rw-r----- 1 root wheel 5 Nov 26 14:28 /etc/hostname.vic1

Si el archivo correspondiente a la interfaz no aparece, simplemente lo creamos. Para modificar los archivos de las interfaces debemos conocer las opciones disponibles, si queremos aprender todas las posibles opciones, lo buscamos en el manual:
# man hostname.if

literalmente se usa la palabra if. Estos archivos tienen una sola lnea con la siguiente informacin separada por espacios: Familia de direcciones: inet o inet6 dependiendo si usamos IPv4 o IPv6 IP: La direccin IP asignada a la tarjeta de red Direccin de broadcast, o la palabra NONE, OPCIONES: Estas pueden consultarse en man hostname.if Veamos un ejemplo:
# cat /etc/hostname.vic0 dhcp

Se puede ver que la interfaz vic1 se configura por DHCP completamente, as que ningn otra ________________________________________________________________________________
3.Configuracin bsica del sistema 4/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

opcin es requerida. Configuremos entonces la segunda interfaz:


# pico /etc/hostname.vic1 ksh: pico: not found

Qu sucedi? Ah!, an no tenemos el editor pico, OpenBSD trae como editor predeterminado a vi, que es el que usaremos ahora, ms adelante les mostrar como se instala pico o cualquier otro programa.
#vi /etc/hostname.vic0 inet 192.168.1.5 0xffffff00 192.168.1.255

Ahora recargo la configuracin de red:


# sh /etc/netstart DHCPREQUEST on vic0 to 255.255.255.255 port 67 DHCPACK from 192.168.200.254 (00:50:56:fe:4f:3a) bound to 192.168.200.131 -- renewal in 900 seconds.

y confirmo la configuracin de las interfaces:


# ifconfig -a

Guardando la configuracin en estos archivos logramos que los cambios perduren despus de reiniciar. Finalmente:
# ls -la /etc/hostname.* -rw-r----- 1 root wheel 35 Nov 24 18:53 /etc/hostname.vic0 -rw-r----- 1 root wheel 5 Nov 26 14:28 /etc/hostname.vic1 # cat /etc/hostname.vic0 dhcp # cat /etc/hostname.vic1 inet 192.168.1.5 0xffffff00 192.168.1.255

b. Gateway (puerta de enlace) y dns Para configurar el gateway por defecto del sistema se usa el archivo /etc/mygate, se pone solo su direccin IP. Por ejemplo:
# cat /etc/mygate

________________________________________________________________________________
3.Configuracin bsica del sistema 5/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

192.168.200.2

La configuracin de los DNS que usar el sistema se hace en /etc/resolv.conf, usando la palabra nameserver antes de cada direccin IP correspondiente, y poniendo uno por lnea, por ejemplo:
# cat /etc/resolv.conf search mi-isp.net.co nameserver 192.168.200.2 lookup file bind

Una vez termine de configurar el servidor cambiar todos los valores para que correspondan a la nueva maquina que estoy configurando.

4. Instalando paquetes
En OpenBSD se manejan los paquetes binarios, con la herramienta pkg, que es el mtodo recomendado. Para compilarlos se mantiene el sistema de ports o portes, sin embargo se pueden compilar por el mtodo tradicional tambin (configure, make, make install). Tanto si se va a instalar por pkg o por los ports debe mantenerse una consistencia entre la rama de OpenBSD que se est trabajando, sea Stable, Current, o Snapshot. La instalacin que yo tengo es de stable, la lista de paquetes disponibles se encuentran en: ftp://ftp.openbsd.org/pub/OpenBSD/4.8/packages/i386/ Como de costumbre hay varias maneras de hacer esto, y varias direcciones de mirrors donde encontrar los paquetes, yo lo hago as:
# export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.8/packages/i386/ # pkg_add -v pico pico-5.04p1:libiconv-1.13p1: ok 5.04p1:gettext-0.18.1: ok 5.04p1:aspell-0.60.6p4: ok ok # pkg_add -v bash Shell /usr/local/bin/bash appended to /etc/shells bash-4.1.7p0: ok # pkg_add -v wget wget-1.12p0:libidn-1.11: ok wget-1.12p0: ok picopicopico-5.04p1:

Primero verifico que tenga conectividad con el servidor ftp de OpenBSD y luego exporto la variable PKG_PATH para que apunte al repositorio de Internet. Se puede ver en el ejemplo la instalacin de los paquetes pico, bash y wget.

________________________________________________________________________________
4.Instalando paquetes 6/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Para la instalacin por ports debe descargarse primero el archivo ports.tar.gz y descomprimirlo, as:
# pwd /root # wget ftp://ftp.openbsd.org/pub/OpenBSD/4.8/ports.tar.gz

Cuando la descarga est completa se descomprime en /usr, SI, tiene que ser all, de lo contrario el sistema de portes puede fallar.
# cd /usr # pwd /usr # tar xvzf /ruta/al/archivo/ports.tar.gz ...

De nuevo, hay varias formas de hacerlo, el proceso de instalacin de los ports es muy simple, en resumidas cuentas cuando se descomprime el archivo se crea un rbol de directorios en las que se ubican todos los posibles programas por categoras, si por ejemplo quiero instalar el editor nano desde los ports hago lo siguiente:
# ls /usr/ports/editors/nano/ CVS # pwd /usr/ports/editors/nano # make install ===> Checking files for nano-2.0.7 ... Makefile distinfo patches pkg # cd /usr/ports/editors/nano/

Con esto puedo instalar prcticamente cualquier paquete, hay opciones ms avanzadas pero salen del alcance de este documento. Existe un documento donde se explica acerca de la diferencia entre ports y paquetes y otros fundamentos de OpenBSD, ese documento lo pueden encontrar en el sitio de documentos de OpenBSD Colombia1.

4.1. Configurando con los paquetes a la mano


Una forma de acelerar el trabajo en la configuracin del servidor es tener los paquetes requeridos a la mano, para esto es recomendable descargar todos los paquetes disponibles para la versin en la que se est trabajando, o disponer de buena conexin a Internet . En mi caso he descargado todos los paquetes usando el software wget y los he puesto en un servidor web dentro de red local, de esta forma para acceder a ellos solo debo exportar la variable PKG_PATH para que apunte a este repositorio y luego usar el comando pkg_add para instalar los paquetes que necesito.
1 http://groups.google.com/group/OpenBSD-Colombia/files

________________________________________________________________________________
4.Instalando paquetes 7/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

# export PKG_PATH=http://192.168.0.4/paquetes/ # pkg_add -v bash Shell /usr/local/bin/bash appended to /etc/shells bash-4.1.7p0: ok # bash bash-4.1#

Hay que recordar que siempre puedo ir a Internet a descargar los paquetes, pero es ms rpido si ya lo tengo de forma local, en nuestra intranet o en un disco duro externo.

4.2. Afterboot (despues de bootear la primera vez)


Lo siguiente en la puesta a punto del sistema fue leer el man afterboot, y tomar de all algunas ideas, en mi caso: a. Creacin de usuarios Se hace con el ya conocido comando adduser, que como es primera vez que se usa nos pregunta sobre las opciones por defecto, y luego s crea el usuario, repitiendo las preguntas por si acaso queremos que algo sea diferente. En la creacin del usuario hay que tener en cuenta que para que pueda volverse root con el comando su, el usuario que se crea debe pertenecer al grupo wheel. Ejemplo:
bash-4.1# adduser Couldn't find /etc/adduser.conf: creating a new adduser configuration file Reading /etc/shells Enter your default shell: bash csh ksh nologin sh [ksh]: bash Your default shell is: bash -> /usr/local/bin/bash Default login class: authpf daemon default staff [default]: Enter your default HOME partition: [/home]: Copy dotfiles from: /etc/skel no [/etc/skel]: Send message from file: /etc/adduser.message no [no]: Do not send message Prompt for passwords by default (y/n) [y]: Default encryption method for passwords: auto blowfish des md5 old [auto]: Use option ``-silent'' if you don't want to see all warnings and questions. Reading /etc/shells Check /etc/master.passwd

________________________________________________________________________________
4.Instalando paquetes 8/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Check /etc/group Ok, let's go. Don't worry about mistakes. There will be a chance later to correct any input. Enter username []: nando Enter full name []: Fernando Quintero Enter shell bash csh ksh nologin sh [bash]: Uid [1000]: Login group nando [nando]: Login group is ``nando''. Invite nando into other groups: guest no [no]: Login class authpf daemon default staff [default]: Enter password []: Enter password again []: Name: Password: Fullname: Uid: Gid: Groups: HOME: Shell: nando **** Fernando Quintero

1000 1000 (nando) nando /home/nando /usr/local/bin/bash

Login Class: default

OK? (y/n) [y]: Added user ``nando'' Copy files from /etc/skel to /home/nando Add another user? (y/n) [y]: Enter username []: astrid Enter full name []: Astrid Sanchez Enter shell bash csh ksh nologin sh [bash]: Uid [1001]: Login group astrid [astrid]: Login group is ``astrid''. Invite astrid into other groups: guest no [no]: Login class authpf daemon default staff [default]: Enter password []:

________________________________________________________________________________
4.Instalando paquetes 9/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Enter password again []: Name: Password: Fullname: Uid: Gid: Groups: HOME: Shell: astrid **** Astrid Sanchez

1001 1001 (astrid) astrid /home/astrid /usr/local/bin/bash

Login Class: default

OK? (y/n) [y]: Added user ``astrid'' Copy files from /etc/skel to /home/astrid Add another user? (y/n) [y]: n Goodbye!

Como pueden ver agregu dos usuarios, uno llamado nando y otro astrid. Si quiero que estos dos usuarios puedan trabajar con su o sudo, entonces debo agregarlos al grupo wheel, usando el comando usermod.
bash-4.1# id nando uid=1000(nando) gid=1000(nando) groups=1000(nando) bash-4.1# id astrid uid=1001(astrid) gid=1001(astrid) groups=1001(astrid) bash-4.1# usermod -G wheel nando bash-4.1# usermod -G wheel astrid bash-4.1# id nando uid=1000(nando) gid=1000(nando) groups=1000(nando), 0(wheel) bash-4.1# id astrid uid=1001(astrid) gid=1001(astrid) groups=1001(astrid), 0(wheel)

b. No root en SSH, poweroff y reinicio en kernel panic Como medida de seguridad voy a deshabilitar la conexin a travs de ssh con la cuenta de root, para hacer esto se edita el archivo /etc/ssh/sshd_config (no confundir con /etc/ssh/ssh_config) en este busco la lnea :

________________________________________________________________________________
4.Instalando paquetes 10/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

#PermitRootLoging yes

Se descomenta y cambia el yes por no quedando as:


PermitRootLogin no

Sin hacer ms cambios grabo el archivo de configuracin. Luego, y por razones de comodidad voy a habilitar el apagado fsico del equipo a travs de la lnea de comandos, el comportamiento por defecto es bajar el sistema, pero no apagar el equipo. Para habilitar esto y poder por ejemplo reiniciar el sistema remotamente, se edita el archivo /etc/rc.shutdown, que es donde se encuentran las opciones de apagado del equipo, y asegurarse que la siguiente lnea aparezca as:
powerdown=YES

Ahora para que al reiniciarse el equipo no entre en el modo debugguer cuando suceda un kernel panic o algo no vaya bien en el booteo, activamos en el archivo /etc/sysctl.conf la siguiente lnea que se encuentra comentada:
#ddb.panic=0 # 0=Do not drop into ddb on a kernel panic

quedando as:
ddb.panic=0 # 0=Do not drop into ddb on a kernel panic

c. Deshabilitar los servicios by default El lema de solo dos agujeros en la instalacin por omisin tiene una razn de ser, y es que cuando el sistema operativo se instala son muy pocos servicios los que corren sin que se les haya dicho que lo hagan, pero para los que somos un poco mas paranoicos todava se puede hacer algo mas y deshabilitar los servicios que aunque no son muy comn verlos funcionando, estn all:
bash-4.1# netstat -an | more Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address ip 0 0 *.* Foreign Address *.* Foreign Address 192.168.1.1.43020 *.* *.* *.* *.* *.* (state) 17 (state) ESTABLISHED LISTEN LISTEN LISTEN LISTEN LISTEN

Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address tcp tcp tcp tcp tcp tcp 0 0 0 0 0 0 0 0 0 0 0 0 192.168.1.5.22 127.0.0.1.587 127.0.0.1.25 *.22 *.37 *.13

________________________________________________________________________________
4.Instalando paquetes 11/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

tcp

*.113

*.*

LISTEN

Todo puerto que aparezca asociado a la palabra LISTEN significa que el sistema esta escuchando o esperando peticiones. Se puede ver que la interfaz WAN esta escuchando en el puerto 22, lo que quiere decir que esta habilitado el servicio SSH. En la interfaz loopback (127.0.0.1) estn los puertos 25 y 587 ambos pertenecen al servidor de correo SENDMAIL, si no los necesito los puedo deshabilitar, aunque al estar corriendo en la interfaz loopback no hay riesgo de que un atacante externo se pueda aprovechar de el. Pero, qu sucede con el resto?,el asterisco (*) representa todas las interfaces, as que en todas las interfaces se est escuchando en los puertos 37, 13 y 113. Esos servicios son: daytime daytime time time auth 13/tcp 13/udp 37/tcp 37/udp 113/tcp timserver timserver authentication tap ident

Si no sabes que son estos servicios, entonces no los necesitas, para deshabilitarlos del arranque podemos editar el archivo /etc/services , buscar cada una de estas lneas y comentarlas. Para hacer efectivo estos cambios puedo matar el proceso inetd2 y luego recargarlo:
bash-4.1# ps aux | grep inetd root 9009 0.0 0.7 484 712 ?? Is 7:30PM 0:00.04 inetd bash-4.1# pkill inetd bash-4.1# ps aux | grep inetd bash-4.1# inetd bash-4.1# ps aux | grep inetd root 2480 0.0 0.8 316 824 ?? Is 9:08PM 0:00.02 inetd

Verificando...
bash-4.1# netstat -an | more Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address ip 0 0 *.* Foreign Address *.* Foreign Address 192.168.1.1.43020 (state) 17 (state) ESTABLISHED

Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address tcp 0 0 192.168.1.5.22

2 http://www.openbsd.org/cgi-bin/man.cgi? query=inetd&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html

________________________________________________________________________________
4.Instalando paquetes 12/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

tcp tcp tcp

0 0 0

0 0 0

127.0.0.1.587 127.0.0.1.25 *.22

*.* *.* *.*

LISTEN LISTEN LISTEN

Como se ve los servicios no deseados ya no suben ni en IPv4 ni en IPv6. :)

5. Servidor DHCP
Necesito un servidor bsico de DHCP, as que las modificaciones que debo hacer a la configuracin by default son mnimas, y mi red funciona perfectamente, los pasos fueron: Primero habilitar el servidor DHCP con el arranque del sistema, agregando la lnea siguiente en el archivo /etc/rc.conf.local. Este archivo no existe by default en la versin 4.8, as que tendrs que crearlo, simplemente es un archivo en texto plano, donde agregaremos las variables que necesitemos para habilitar los servicios.
Bash-4.1# cat /etc/rc.conf.local dhcpd_flags="vic1"

En este fichero hemos definido en que interfaz de red ha de escuchar el servidor dhcp, para nuestro caso el la interfaz vic1. A continuacin modificamos el archivo /etc/dhcpd.conf, esta configuracin es estndar para la configuracin de este demonio de DHCP, as que puedo basarme en configuraciones de Linux u otros sistemas operativos tipo Unix.
option domain-name "dominio.com"; option domain-name-servers 192.168.1.5; subnet 192.168.1.0 netmask 255.255.255.0 { option routers 192.168.1.5; range 192.168.0.50 192.168.0.150; }

He realizado la configuracin mnima posible, estableciendo un rango de direcciones desde 50 a 150 maquinas en mi red local. Si quisiera agregar mas opciones puedo seguir la excelente documentacin de: man dhcpd.conf Ahora podemos iniciar nuestro servicio, pero antes debemos /var/db/dhcpd.leases y seguido podemos iniciar nuestro servicio.
Bash-4.1# touch /var/db/dhcpd.leases Bash-4.1# dhcpd

de

crear

el

fichero

________________________________________________________________________________
5.Servidor DHCP 13/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Para este caso hemos iniciado nuestro servicio dhcp, y en fichero /etc/rc.conf.local hemos definido que interfaz hemos usado, ahora queda establecido automticamente al inicio del sistema. Otra forma de hacer la prueba una vez configurado el archivo dhcpd.conf es ejecutar el script rc.
# sh /etc/rc setting tty flags kbd: keyboard mapping set to es pfctl: pf already enabled machdep.allowaperture: 2 -> 2 starting network

Offtopic: Para saber que es lo que hace el script /etc/rc con respecto a un servicio particular, busca las palabras relacionadas en el archivo, as:
# grep -i dhcp /etc/rc if [ X"${dhcpd_flags}" != X"NO" -a -f /etc/dhcpd.conf ]; then touch /var/db/dhcpd.leases echo -n ' dhcpd'; # /usr/sbin/dhcpd ${dhcpd_flags}

En este ejemplo vemos que lo que chequea el script es que la variable dhcpd_flags sea diferente de la palabra NO y que a la vez exista el archivo de configuracin /etc/dhcpd.conf.

6. Comprobando rc.conf.local
En cualquier momento podemos probar nuestra configuracin de servidores, para esto recargamos los servicios ejecutando lo siguiente:
bash-4.1# sh /etc/rc setting tty flags kbd: keyboard mapping set to es pfctl: pf already enabled machdep.allowaperture: 2 -> 2 starting network DHCPREQUEST on vic0 to 255.255.255.255 port 67 DHCPACK from 192.168.200.254 (00:50:56:fe:4f:3a) bound to 192.168.200.132 -- renewal in 900 seconds. starting system logger syslogd: bind: Address already in use starting initial daemons:.

________________________________________________________________________________
6.Comprobando rc.conf.local 14/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

savecore: no core dump checking quotas: done. building ps databases: kvm dev. clearing /tmp starting pre-securelevel daemons:. setting kernel security level: kern.securelevel: 1 -> 1 creating runtime link editor directory cache. preserving editor files. starting network daemons: sshd dhcpd sendmail inetd. starting local daemons:. standard daemons: cron. Fri Nov 26 23:17:09 COT 2010

Esto nos evita el tener que reiniciar completamente el sistema. En la salida por pantalla de este script podemos verificar que los servicios han subido correctamente:
starting network daemons: sshd dhcpd sendmail inetd.

7. Servidor DNS
Este servicio lo voy a usar solo para resolver algunas IPs internas, y para hacer cache de las ya resueltas, de modo que haya una mejor respuesta para los usuarios de cara a Internet. Este servicio viene integrado con OpenBSD, por tanto solo configuro el archivo pre-existente /var/named/etc/named.conf, como puede verse de esta ruta, este servicio viene listo para funcionar dentro de un chroot. Editamos este archivo y hacemos que el named escuche solo en la interfaz interna: vic0
bash-4.1# pico /var/named/etc/named.conf options { version ""; listen-on // remove this to allow version queries { 192.168.1.5; };

listen-on-v6 { none; }; empty-zones-enable yes; allow-recursion { clients; }; };

Tambin deshabilitamos la escucha para IPv6 a menos que tengamos implementado tneles o una red en IPV6 dentro de la LAN.

________________________________________________________________________________
7.Servidor DNS 15/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

By default el named trae unas configuraciones que podemos aprovechar, pero no trae archivos de zonas configurados, as que tendremos que crearlos.
bash-3.2# pwd /var/named/etc bash-3.2# ls -la total 28 drwxr-x--- 2 root named 512 Aug 3 08:32 . drwxr-xr-x 8 root wheel 512 Aug 3 08:32 .. -rw-r----- 1 root named 1646 Mar 12 11:28 named-dual.conf -rw-r----- 1 root named 1428 Mar 12 11:28 named-simple.conf -rw-r----- 1 root named 1429 Aug 3 10:36 named.conf -rw-r--r-- 1 root wheel 2940 Mar 12 11:28 root.hint

Como vamos a configurar dos zonas, una directa y una inversa, entonces agregamos esto al named.conf :
zone "dominio.com" { type master; file "master/dominio.com"; }; zone "1.168.192.in-addr.arpa" { type master; file "master/inv-dominio.com"; };

y creamos los archivo correspondientes:


bash-4.1# cat dominio.com $ORIGIN dominio.com. $TTL 3h @ IN SOA ns.dominio.com. estebacalleperez.gmail.com. ( 666 3h 1h 1w 1h) ; Agrego mis hosts @ 86400 IN NS ns.dominio.com. ; Serial yyyymmddnn ; Refresh After 3 hours ; Retry Retry after 1 hour ; Expire after 1 week ; Minimum negative caching of 1 hour

________________________________________________________________________________
7.Servidor DNS 16/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

@ ns dns fw www proxy IN estacion1 estacion2 repositorio mail IN IN IN IN IN IN IN IN

86400 A

IN MX 10 mail.dominio.com. 192.168.1.5 ns ns ns 192.168.1.9 192.168.1.10 192.168.1.4 192.168.1.8

CNAME CNAME CNAME ns A A A A

CNAME

Chequeando la zona:
bash-4.1# named-checkzone dominio.com /var/named/master/dominio.com zone dominio.com/IN: loaded serial 666 OK

La zona directa esta OK. Probemos la zona inversa:


bash-4.1# cat inv-dominio.com $ORIGIN 1.168.192.in-addr.arpa. $TTL 3h @ IN SOA ns.dominio.com. estebancalleperez.gmail.com. ( 333 3h 1h 1w 1h) ; Agrego mis hosts @ 5 9 10 4 8 IN IN IN IN IN 86400 PTR PTR PTR PTR PTR IN NS ns.dominio.com. ; Serial yyyymmddnn ; Refresh After 3 hours ; Retry Retry after 1 hour ; Expire after 1 week ; Minimum negative caching of 1 hour

ns.dominio.com. estacion1.dominio.com. estacion2.dominio.com. repositorio.dominio.com. mail.dominio.com.

________________________________________________________________________________
7.Servidor DNS 17/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Chequeando la zona inversa:


bash-4.1# named-checkzone 1.168.192.in-addr.arpa /var/named/master/inv-dominio.com zone 1.168.192.in-addr.arpa/IN: loaded serial 333 OK

Una vez listas las dos zonas, probamos todo el DNS con el siguiente comando:
bash-4.1# named -g

Este nos ayudar a identificar errores antes de que el servicio suba de forma normal. Cuando el servicio DNS est listo se habilita para que se inicie con el sistema, para esto solo basta agregar la lnea named_flags= en el archivo /etc/rc.conf.local
bash-4.1# echo 'named_flags=""' >> /etc/rc.conf.local

Para iniciarlo sin la necesidad de reiniciar el sistema ejecutamos el siguiente comando y buscamos la lnea que contenga starting named.
bash-4.1# sh /etc/rc starting named

Si se quiere verificar que el servidor DNS resuelva estas zonas, se puede usar la utilidad nslookup:
bash-4.1# nslookup > server 192.168.1.5 Default server: 192.168.1.5 Address: 192.168.1.5#53 > ns.dominio.com Server: Address: 192.168.1.5 192.168.1.5#53

Name: ns.dominio.com Address: 192.168.1.5 > mail.dominio.com Server: Address: 192.168.1.5 192.168.1.5#53

Name: mail.dominio.com

________________________________________________________________________________
7.Servidor DNS 18/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Address: 192.168.1.8 > 192.168.1.9 Server: Address: 192.168.1.5 192.168.1.5#53 name = estacion1.dominio.com.

9.1.168.192.in-addr.arpa > 192.168.1.5 Server: Address: 192.168.1.5 192.168.1.5#53

5.1.168.192.in-addr.arpa

name = ns.dominio.com.

Como pueden ver el servidor DNS funciona perfectamente, le preguntamos por dos hosts en la zona directa y dos en la inversa, antes de preguntarle a un DNS le definimos quien ser nuestro servidor usando el comando server dentro de la utilidad nslookup.

8. Servidor MySQL (Bases de Datos)


Como se ha visto hasta ahora la puesta en marcha de todos los servicios en OpenBSD es algo muy sencillo, y sigue un procedimiento estndar, primero se configura el servicio preconfigurado, luego se habilitan las variables en el archivo /etc/rc.conf y luego se recarga la configuracin de la red. Pero que sucede cuando el servicio no viene instalado en el sistema base?, debemos entonces buscarlo en la lista de paquetes disponibles de OpenBSD (actualmente mas de 5700) y luego hacer la respectiva configuracin. Veamos como lo hacemos con el servidor MySQL.
bash-4.1# pkg_add -v mysql-server mysql-server-5.1.48:p5-Net-Daemon-0.43: ok mysql-server-5.1.48:p5-PlRPC-0.2018p0: ok mysql-server-5.1.48:p5-DBI-1.609: ok server-5.1.48:mysql-client-5.1.48: ok server-5.1.48:p5-DBD-mysql-4.014: ok server-5.1.48: ok --- +mysql-server-5.1.48 ------------------You can find detailed instructions on how to install a database in /usr/local/share/doc/mysql/README.OpenBSD.

mysqlmysqlmysql-

En esta ocasin el mensaje que aparece nos advierte de la importancia de leer el archivo /usr/local/share/doc/mysql/README.OpenBSD donde se encuentran los pasos a seguir para que el servidor funcione a la perfeccin, una vez verificadas las opciones del servidor puedo continuar con el procedimiento final para instalar el servidor. Lo primero que se hace una vez instalado el servidor MySQL es crear la primera base de datos, sin la cual no funciona, esto se hace con el script que se encuentra en la direccin: /usr/local/bin/mysql_install_db

________________________________________________________________________________
8.Servidor MySQL (Bases de Datos) 19/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

bash-4.1# sh /usr/local/bin/mysql_install_db Installing MySQL system tables... 101127 2:00:57 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead. OK Filling help tables... 101127 2:00:58 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead. OK PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/local/bin/mysqladmin -u root password 'new-password' /usr/local/bin/mysqladmin -u root -h OBSDColombia.dominio.com password 'newpassword' Alternatively you can run: /usr/local/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. Please report any problems with the /usr/local/bin/mysqlbug script!

Para tener acceso al servicio MySQL desde el servidor Web Apache que se encuentra por defecto en un chroot, debe hacerse un enlace entre el socket real de MySQL, y un lugar donde el Apache pueda verlo, as:
bash-4.1# mysqld_safe & [1] 31032 101127 11:04:30 mysqld_safe Logging to '/var/mysql/OBSDColombia.dominio.com.err'. 101127 11:04:30 mysqld_safe Starting mysqld daemon with databases from /var/mysql bash-4.1# mkdir -p /var/www/var/run/mysql/ bash-4.1# ln /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock

________________________________________________________________________________
8.Servidor MySQL (Bases de Datos) 20/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Como este ultimo comando hay que ejecutarlo cada vez que sube el demonio MySQL, entonces lo agregamos a la parte final del /etc/rc.local el cual es un archivo general donde se cargan cosas del sistema en el momento del arranque.
#Arranque de MySQL pkill mysql sleep 3 rm /var/www/var/run/mysql/mysql.sock /usr/local/share/mysql/mysql.server start sleep 5 ln /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock

Con estas lneas en el fichero /etc/rc.local, se mata cualquier demonio que se este ejecutando en ese momento con el nombre mysql, luego espera 3 segundos para que los cambios surtan efecto y luego borra cualquier archivo con el nombre /var/www/var/run/mysql/mysql.sock existente en la ruta del chroot del apache si existe, despus se ejecuta el demonio y como el arranque puede tardar un momento, le damos 5 segundos de tiempo y luego intentamos linkear el socket al socket dentro del chroot. Si el MySQL no encuentra el socket dentro del chroot del apache, no funcionar la integracin de las aplicaciones Web con el servidor MySQL. Tenga en cuenta que esto se presenta porque por defecto el apache (httpd) instalado en OpenBSD corre en modo chroot. Despus de hacer un sh /etc/rc nuevamente, comprobamos que el socket este en el lugar correcto y que se este haciendo el drop de privilegios con el demonio SQL, esto es que quien corre la aplicacin es realmente el usuario _mysql y no el root. Esto mitigar el alcance de los ataques contra las aplicaciones Web+MySQL que tengamos en el sistema.
bash-4.1# ls -la /var/www/var/run/mysql/mysql.sock srwxrwxrwx 2 _mysql _mysql 0 Nov 27 11:35 /var/www/var/run/mysql/mysql.sock bash-4.1# ps aux | grep mysqld root 4564 0.0 1.2 944 1244 C0- I /usr/local/bin/mysqld_safe >/dev/null root 30728 0.0 0.5 576 456 C0- I /usr/local/bin/mysqld_safe 11:35AM 11:35AM 0:00.10 bash -c 0:00.12 /bin/sh

_mysql 3781 0.0 17.4 43364 17696 C0- S 11:35AM 0:00.86 /usr/local/libexec/mysqld --basedir=/usr/local --datadir=/var/mysql --user=_mysql

Para agregarle un poco mas de seguridad a la ya existente, entonces deshabiltamos el socket de red que crea el demonio MySQL, ya que todas las peticiones vendrn desde nuestro equipo local y lo harn por el socket tipo archivo. Para esto en el archivo /etc/my.cnf , descomentamos la lnea :
skip-networking

Con esto saltara la carga del socket de red y ningn puerto se abrir. Nota: Esto aplica si su aplicacin y BD MySQL estn en el mismo Servidor como en este caso.

________________________________________________________________________________
8.Servidor MySQL (Bases de Datos) 21/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

8.1. Aspectos importantes con MySQL


En este punto el servidor de bases de datos debe estar habilitado y listo para instalar las aplicaciones que necesitemos., aqu dejo tres aspectos importantes que se deben tener en cuenta:

Para activar el servidor sin reiniciar el sistema:

#/usr/local/bin/mysqld_safe &

Para cambiar la contrasea del usuario root de MySQL, lo cual debe hacerse pues inicialmente no tiene ninguna, recuerde cambiar 'micontrasea' por el valor real de la contrasea que tendr el usuario:

# /usr/local/bin/mysqladmin -u root password 'micontrasea'

Para tener acceso a este servicio desde el servidor Web Apache en OpenBSD, debe hacerse un enlace entre el socket real de MySQL, y un lugar donde el Apache si pueda verlo, as:

# mkdir -p /var/www/var/run/mysql # ln /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sock

(Se hizo la aclaracin que esto se debe hacer cada vez que suba el servicio, por lo tanto se introdujo en el script para cargar el servicio MySQL en /etc/rc.local)

9. Servidor WEB: Apache en Chroot


En este captulo se explicar como activar el servidor Apache que viene por defecto dentro del chroot, de modo que tenga soporte para PHP, integrado con MySQL, y que se puedan enviar correos desde una aplicacin que use PHP, por ejemplo un CMS como drupal, wordpress o joomla.

9.1. PHP v 5.0


Para comenzar este proceso hago la instalacin de PHP,
bash-4.1# pkg_add -v php5-core php5-core-5.2.13p0:libxml-2.7.6: ok php5-core-5.2.13p0: ok --- +php5-core-5.2.13p0 ------------------To enable the php5 module please create a symbolic link from /var/www/conf/modules.sample/php5.conf to /var/www/conf/modules/php5.conf. ln -s /var/www/conf/modules.sample/php5.conf \ /var/www/conf/modules The recommended php configuration has been installed

________________________________________________________________________________
9.Servidor WEB: Apache en Chroot 22/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

to /var/www/conf/php.ini.

Este mensaje aparece en OpenBSD 4.8, si leemos con mas atencin las recomendaciones, nos dice que como el apache esta en un chroot, entonces debemos hacer ciertos enlaces para que el PHP funcione de forma correcta, entonces lo hacemos:
bash-4.1# ln -s /var/www/conf/modules.sample/php5.conf \ > /var/www/conf/modules/

Esto permite instalar el modulo de configuracin del php para que el servidor web lo pueda encontrar. Ahora continuo con la instalacin de php5-mysql, evidentemente para soportar MySQL desde PHP:
bash-4.1# pkg_add -v php5-mysql php5-mysql-5.2.13p0: ok --- +php5-mysql-5.2.13p0 ------------------You can enable this module by creating a symbolic link from /var/www/conf/php5.sample/mysql.ini to /var/www/conf/php5/mysql.ini. ln -fs /var/www/conf/php5.sample/mysql.ini \ /var/www/conf/php5/mysql.ini bash-4.1# ln -fs /var/www/conf/php5.sample/mysql.ini \ > /var/www/conf/php5/mysql.ini

Tambin hago el enlace simblico sugerido, y eso es todo ;) Otros mdulos de PHP que estn disponibles como paquetes son:
bash-4.1# wget http://ftp.openbsd.org/pub/OpenBSD/4.8/packages/i386/index.txt --2010-11-27 http://ftp.openbsd.org/pub/OpenBSD/4.8/packages/i386/index.txt Resolving ftp.openbsd.org (ftp.openbsd.org)... 129.128.5.191 Connecting to ftp.openbsd.org (ftp.openbsd.org)|129.128.5.191|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 485770 (474K) [text/plain] Saving to: `index.txt' 100%[========================>] 485,770 88.8K/s in 7.1s 12:14:10--

________________________________________________________________________________
9.Servidor WEB: Apache en Chroot 23/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

2010-11-27 12:14:18 (67.1 KB/s) - `index.txt' saved [485770/485770] -bash-4.1# grep -i php index.txt -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 45304 Aug 10 20:08:51 2010 asp2php-0.77.3p2-no_x11.tgz 58316 Aug 10 19:41:50 2010 asp2php-0.77.3p2.tgz 34402 Aug 10 20:55:57 2010 drupal6-phpmailer-2.1.tgz 18268 Aug 10 19:15:16 2010 ffmpeg-php-0.6.0p3.tgz 6648 Aug 10 08:28:13 2010 gpsd-php-2.38.tgz 6357 Aug 10 20:38:22 2010 p5-PHP-Serialization-0.33.tgz 7403 Aug 10 20:36:53 2010 p5-PHP-Session-0.26p1.tgz 40361 Aug 10 20:49:57 2010 pear-PHPUnit2-2.1.6p1.tgz 15934 Aug 10 20:13:42 2010 php-markdown-1.0.1n.tgz 109259 Aug 10 20:49:32 2010 php-openid-2.1.2.tgz 2859333 Aug 10 20:44:24 2010 php-weathermap-0.97ap0.tgz 10642 Aug 10 09:35:17 2010 php5-bz2-5.2.13p0.tgz 3564016 Aug 10 03:44:29 2010 php5-core-5.2.13p0.tgz 26434 Aug 10 09:35:18 2010 php5-curl-5.2.13p0.tgz 24949 Aug 10 09:35:19 2010 php5-dba-5.2.13p0.tgz 14729 Aug 10 09:35:20 2010 php5-dbase-5.2.13p0.tgz 945 Aug 10 09:35:15 2010 php5-extensions-5.2.13p0.tgz 1431471 Aug 10 03:44:32 2010 php5-fastcgi-5.2.13p0.tgz 102700 Aug 10 09:35:22 2010 php5-gd-5.2.13p0-no_x11.tgz 111257 Aug 10 10:23:40 2010 php5-gd-5.2.13p0.tgz 16453 Aug 10 09:35:23 2010 php5-gmp-5.2.13p0.tgz 38176 Aug 10 09:35:24 2010 php5-imap-5.2.13p0.tgz 19018 Aug 10 09:35:25 2010 php5-ldap-5.2.13p0.tgz 815190 Aug 10 14:54:27 2010 php5-mapscript-5.6.5.tgz 1104619 Aug 10 09:35:27 2010 php5-mbstring-5.2.13p0.tgz 14193 Aug 10 09:35:28 2010 php5-mcrypt-5.2.13p0.tgz 5266 Aug 10 09:35:29 2010 php5-mhash-5.2.13p0.tgz 22230 Aug 10 09:35:48 2010 php5-mssql-5.2.13p0.tgz 24049 Aug 10 09:35:30 2010 php5-mysql-5.2.13p0.tgz 41310 Aug 10 09:35:32 2010 php5-mysqli-5.2.13p0.tgz 24931 Aug 10 09:35:33 2010 php5-ncurses-5.2.13p0.tgz 27942 Aug 10 09:35:34 2010 php5-odbc-5.2.13p0.tgz 8263 Aug 10 09:35:47 2010 php5-pdo_dblib-5.2.13p0.tgz 13555 Aug 10 09:35:35 2010 php5-pdo_mysql-5.2.13p0.tgz

________________________________________________________________________________
9.Servidor WEB: Apache en Chroot 24/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

-rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125

14169 Aug 10 09:35:36 2010 php5-pdo_pgsql-5.2.13p0.tgz 11834 Aug 10 09:35:38 2010 php5-pdo_sqlite-5.2.13p0.tgz 44269 Aug 10 09:35:39 2010 php5-pgsql-5.2.13p0.tgz 9121 Aug 10 09:35:40 2010 php5-pspell-5.2.13p0.tgz 5037 Aug 10 09:35:41 2010 php5-shmop-5.2.13p0.tgz 12076 Aug 10 09:35:43 2010 php5-snmp-5.2.13p0.tgz 137879 Aug 10 09:35:42 2010 php5-soap-5.2.13p0.tgz 29510 Aug 10 09:35:44 2010 php5-sqlite-5.2.13p0.tgz 19354 Aug 10 09:35:45 2010 php5-sybase_ct-5.2.13p0.tgz 18157 Aug 10 09:35:49 2010 php5-tidy-5.2.13p0.tgz 40025 Aug 10 09:35:50 2010 php5-xmlrpc-5.2.13p1.tgz 14085 Aug 10 09:35:51 2010 php5-xsl-5.2.13p0.tgz 4739544 Aug 10 20:18:16 2010 phpMyAdmin-3.3.4.tgz 918070 Aug 10 20:45:13 2010 phpPgAdmin-4.2.3.tgz 336116 Aug 10 20:47:46 2010 phpicalendar-2.31.tgz 1333073 Aug 10 20:40:54 2010 phpldapadmin-1.2.0.4.tgz 1273081 Aug 10 20:32:48 2010 phplist-2.10.5p0.tgz

9.2. Apache v 1.3.x (versin por omisin)


Lo nico que falta ahora es subir el servidor con el arranque del sistema, para esto agregar en el /etc/rc.conf.local:
httpd_flags=""

Quedando el archivo as:


bash-4.1# cat /etc/rc.conf.local dhcpd_flags="vic1" named_flags="" httpd_flags=""

vic1 es la interfaz de red por la cual va a escuchar el servicio dhcpd Ahora verificamos el funcionamiento de apache + php, creamos un archivo index.php y ponemos una funcin de informacin de php.
bash-4.1# pwd /var/www/htdocs bash-4.1# nano index.php bash-4.1# cat index.php

________________________________________________________________________________
9.Servidor WEB: Apache en Chroot 25/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

<?php phpinfo(); ?> bash-4.1# ls -la index.php -rw-r--r-- 1 root daemon 20 Nov 27 12:36 index.php

Luego al navegar al sitio web de nuestro nuevo servidor y debemos obtener algo similar a esto:

9.3. Correos con PHP y MiniSendmail


Hasta ahora funciona perfecto, para mis propsitos solo falta poder enviar correos desde algunas aplicaciones web con PHP, vamos a hacerlo con solo unas pocas lineas de shell:
bash-4.1# pkg_add -v mini_sendmail-chroot mini_sendmail-chroot-1.3.6p0: ok

Ahora creamos unos directorios y archivos necesarios para el funcionamiento de mini-sendmail dentro del chroot:
bash-4.1# mkdir -p /var/www/usr/sbin/ bash-4.1# ln /var/www/bin/mini_sendmail /var/www/usr/sbin/sendmail bash-4.1# cp /bin/sh /var/www/bin/ bash-4.1# cp /usr/local/bin/bash /var/www/bin/ bash-4.1# mkdir /var/www/etc bash-4.1# cp /etc/passwd /var/www/etc/ bash-4.1# nano /var/www/etc/passwd

________________________________________________________________________________
9.Servidor WEB: Apache en Chroot 26/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Con el primer comando agregamos el paquete mini_sendmail, en su versin para trabajar en el chroot del Apache, luego lo ubicamos con un enlace simblico en el lugar en el que PHP espera encontrar el binario de Sendmail, y luego agregamos algunas cosas del sistema completo que mini_sendmail necesita para trabajar, como son una shell, y el archivo /etc/passwd sin embargo editamos fuertemente este, de modo que solo dejamos unos pocos usuarios sin importancia, adems aunque al darle acceso a una shell dentro de la chroot a la que tiene acceso el Apache se compromete un poco la seguridad, esto sigue comprometiendo solo a la chroot y no a todo el sistema. Si en este momento puedo comprobar de nuevo la configuracin de los servidores con el siguiente comando:
bash-4.1# sh /etc/rc

9.4. Ejemplo con MySQL y PHP


Voy a dar un ejemplo de la instalacin de una aplicacin OAMP (OpenBSD + Apache + MySQL + PHP). Instalaremos la plataforma E-learning moodle3. Pasos para la instalacin de moodle:

Instalo el software requerido:

bash-4.1# pkg_add -v moodle moodle-1.9.7:php5-xmlrpc-5.2.13p1: ok moodle-1.9.7:curl-7.20.0: ok moodle-1.9.7:php5-curl-5.2.13p0: ok moodle-1.9.7:php5-mbstring-5.2.13p0: ok moodle-1.9.7:png-1.2.44: ok moodle-1.9.7:jpeg-8b: ok moodle-1.9.7:t1lib-5.1.0p2: ok moodle-1.9.7:php5-gd-5.2.13p0: ok moodle-1.9.7: ok ...

Moodle requiere varios mdulos adicionales de PHP que sern instalados como dependencias, solo queda enlazarlos para que el apache los pueda ver dentro del chroot:
bash-4.1# ln -fs /var/www/conf/php5.sample/curl.ini /var/www/conf/php5/ bash-4.1# ln -fs /var/www/conf/php5.sample/gd.ini /var/www/conf/php5/ bash-4.1# ln -fs /var/www/conf/php5.sample/mbstring.ini \ > /var/www/conf/php5/ bash-4.1# ln -fs /var/www/conf/php5.sample/xmlrpc.ini /var/www/conf/php5/ .

3 http://www.moodle.org/

________________________________________________________________________________
9.Servidor WEB: Apache en Chroot 27/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Enlazo el directorio de contenido para que quede dentro del chroot

bash-4.1# pwd /var/www/htdocs bash-4.1# ln -s ../moodle/ /var/www/htdocs/moodle

Creo la base de datos para moodle:

bash-4.1# mysqladmin -u root -p create moodle Enter password:

El password de la BD es el que cambiamos en el item anterior.

Creo un usuario dentro de MySQL para la aplicacin que voy a instalar

Esto no es necesario pero le aade un factor de seguridad puesto que si se presenta un problema de seguridad en la aplicacin, el atacante solo tendr acceso a la aplicacin en cuestin y no podr atacar otras bases de datos disponibles en el sistema.
bash-4.1# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.1.48-log OpenBSD port: mysql-server-5.1.48 Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL v2 license Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> grant all on moodle.* to moodleuser@localhost identified by 'clavemoodle'; Query OK, 0 rows affected (0.13 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql>

En este caso he creado un usuario moodleuser con contrasea clavemoodle. Obviamente esta no es una contrasea adecuada, es responsabilidad de ustedes configurarla, esto es solo un ejemplo.

________________________________________________________________________________
9.Servidor WEB: Apache en Chroot 28/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Ahora modifico el archivo /var/www/moodle/config.php con los siguientes datos:


$CFG->dbtype $CFG->dbhost $CFG->dbname $CFG->dbuser $CFG->dbpass $CFG->prefix = 'mysql'; = 'moodle'; = 'moodleuser'; = 'clavemoodle'; = 'mdl_'; // mysql or postgres7 (for now) // database name, eg moodle // your database username // your database password = 'localhost'; // eg localhost or db.isp.com

// Prefix to use for all table names

Luego cambio la ruta a la que apuntar el moodle, puedo usar tambin nombres, esto es solo un ejemplo.
$CFG->wwwroot = 'http://192.168.1.5/moodle'; $CFG->dirroot = '/moodle';

Debe existir un directorio donde moodle almacenar la informacin.


$CFG->dataroot = '/var/run/moodledata';

Hasta aqu los cambios en el archivo config.php

Ahora regreso a la consola y creo el directorio que falta:

-bash-4.1# pwd /var/www/var/run -bash-4.1# mkdir moodledata -bash-4.1# chown www.www moodledata/ -bash-4.1# chmod 777 moodledata/

Para empezar a instalar el software moodle, ingreso con un browser a la ruta definida

http://192.168.1.5/moodle

De ah en adelante el procedimiento es intuitivo, solo basta hacer click, click y leer el manual de como usar moodle. de esta forma tendremos una aplicacin OAMP funcional y segura en poco tiempo. NOTA: Cualquier aplicacin OAMP se instala con el mismo procedimiento general, pero siempre es recomendable leer los archivos README o INSTALL que vengan en el paquete que se quiere instalar.

10. NAT y Firewall (PF - Packet Filter)


Ya terminada la configuracin bsica del sistema podemos usar el PF para darle otro grado mas de seguridad. Primero hacemos un par de modificaciones en unos archivos del sistema para activar el PF y el forwarding para el NAT. Para que se active al arrancar el sistema se debe agregar pf=YES al archivo /etc/rc.conf.local
echo "pf=YES" >> /etc/rc.conf.local

________________________________________________________________________________
10.NAT y Firewall (PF - Packet Filter) 29/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Ahora para activar el forwarding necesario para el NAT, hay que modificar el archivo /etc/sysctl.conf , como no voy a usar Ipv6 solo requiero modificar una lnea quitando el comentario que viene por omisin.
net.inet.ip.forwarding=1

La configuracin de PF, el conjunto de reglas (ruleset) y la configuracin de NAT, se hacen en /etc/pf.conf, all se encuentra un archivo de ejemplo, que se puede usar como gua, se encuentra completamente comentado. La estructura de este archivo es rgida, por lo que se debe seguir el siguiente orden: 1. -Macros 2. -Tablas 3. -Opciones 4. -Scrub (normalizacin) 5. -Queueing (control de ancho de banda y priorizacin de paquetes) 6. -NAT 7. -Reglas del filtro En mi caso el archivo de configuracin quedo as, la explicacin en los comentarios.
bash-4.1# cat /etc/pf.conf #MACROS #Interfaz externa wan="vic0" #Intefaz interna lan="vic1" #Red interna red_lan="192.168.1.0/24" #OPCIONES #No filtrar en las interfaces de loopback set skip on lo0 #SCRUB #Normalizacin de los paquetes, que entran y salen en todas las interfaces match in all scrub (no-df max-mss 1440) #NAT, enmascaramiento, en Linux esto seria el iptables POSTROUTING -j MASQUERADE #Esta regla hace que toda la red pueda salir a Internet. match out on $wan from $red_lan to any nat-to $wan

________________________________________________________________________________
10.NAT y Firewall (PF - Packet Filter) 30/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

#REGLAS DEL FILTRO #Polticas por defecto, bloquear todo lo que entra, dejar pasar todo lo que sale block in on $wan pass out all #Antispoof en la LAN #Para que no falsifiquen nuestras direccciones IP en la LAN antispoof quick for $lan inet #Permitir conexiones ssh y web desde afuera, logueando el primer paquete para un #analisis posterior pass in log on $wan proto tcp from any to any port ssh pass in log on $wan proto tcp from any to any port 80

Como se ve faltan algunas secciones, como el encolamiento (queueing), pero no todas las secciones son necesarias, y solo se pone lo que necesitemos, en cuanto a la sintaxis del PF me parece muy sencillo, y es que se entiende casi como leyendo en lenguaje natural, en la FAQ 4 oficial de OpenBSD se puede encontrar ms informacin. La nica regla rara que tengo es la de antispoofing, la cual es una opcin que trae el PF, en este caso evitamos que alguien desde la interfaz $wan se haga pasar por una IP de la red interna. Ntese tambin que al final se pone en lugar del nmero de puerto el nombre del servicio al que est normalmente asignado, esto es posible porque se tienen en cuenta los nombres definidos en /etc/services. Para cargar el firewall y las reglas de NAT se puede reiniciar el sistema, ejcutar el script /etc/rc o ejecutar el comando:
# pfctl -f /etc/pf.conf

11. Servidor Proxy (Squid)


Squid viene en varios sabores, con soporte snmp, transparente, los dos, o ninguno, en este caso evidentemente escog solo con soporte para proxy transparente que es lo que necesito, as mis usuarios no notarn la diferencia entre no tener proxy o tenerlo, y la configuracin en sus equipos ser mucho ms simple. La instalacin la hacemos con pkg_add: Buscamos el nombre del paquete dentro del archivo index.txt que contiene toda la lista de paquetes disponibles.
bash-4.1# grep -i squid index.txt -rw-r--r-- 1 276 125 65007 Aug 10 20:53:51 2010 lightsquid-1.8.tgz

4 http://www.openbsd.org/faq/pf/

________________________________________________________________________________
11.Servidor Proxy (Squid) 31/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

-rw-r--r-- 1 276 snmp.tgz

125

725240 Aug 10 15:07:10 2010 squid-2.7.STABLE9-ldap712727 Aug 10 15:19:32 2010 squid-2.7.STABLE9-ldap.tgz 703638 Aug 10 15:46:29 2010 squid-2.7.STABLE9-snmp.tgz 690116 Aug 9 11:02:10 2010 squid-2.7.STABLE9.tgz

-rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125 -rw-r--r-- 1 276 125

1683240 Aug 10 19:47:01 2010 squidGuard-1.4p0-ldap.tgz 1681544 Aug 10 19:54:59 2010 squidGuard-1.4p0.tgz

Una vez encontrado el paquete requerido lo instalamos:


bash-4.1# pkg_add squid-2.7.STABLE9.tgz

Al terminar la instalacin de squid, aparece algo como:


[....] You can also edit /etc/rc.local so that Squid is started automatically: if [ -x /usr/local/sbin/squid ]; then echo -n ' squid'; fi /usr/local/sbin/squid

Esto nos informa las diferencias locales de Squid en OpenBSD, nos cuenta que los archivos de configuracin estn en /etc/squid, ejemplos en /usr/local/share/examples/squid, mensajes de error en /usr/local/share/squid/errors, ejemplos de error en /usr/local/share/examples/squid/errors, los iconos estn en /usr/local/share/squid/icons, los ejemplos de iconos /usr/local/share/examples/squid/icons, la cache est en /var/squid/cache, los logs se guardan en /var/squid/logs, el usuario y el grupo son respectivamente _squid:_squid. Tambin nos recuerda inicializar la cache con "squid -z" antes de tratar de correr squid por primera vez, y las ltimas lneas nos muestra que es lo que debemos poner en el archivo /etc/rc.local para inicializarlo automticamente con el sistema. Se configura el /etc/squid/squid.conf segn las opciones que se deseen, este tiene tambin la misma estructura y contenido que en cualquier otro sistema operativo, aqu voy a comentar solo las cosas especficas para tener en cuenta. Primero que todo, la instalacin por defecto solo admite el sistema de archivos ufs, y la poltica de reemplazo lru (yo intent usar otras opciones y no me lo permiti, diciendo que eran opciones equivocadas, o desconocidas), esto se debe a las opciones con las que se compilo el paquete, si se desea que tenga otras opciones, debe instalarse desde los ports. Para proxy transparente se debe recordar poner en la directiva http_port la opcin transparente, as:
http_port 3128 transparent

donde 3128 es el puerto por defecto en el que escucha el servidor proxy.

________________________________________________________________________________
11.Servidor Proxy (Squid) 32/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

Para que este proxy transparente funcione correctamente, es necesario agregar la siguiente lnea en el archivo /etc/pf.conf antes de la lnea de nat.
pass in quick on $lan inet proto tcp to any port 80 rdr-to 127.0.0.1 port 3128

Con esta lnea se redirecciona todo el trfico saliente dirigido a web (puerto 80) al puerto local en el que escucha el Squid, as que este ser el que atienda la peticin. Para que Squid loguee sus actividades es necesario definir adems de la ruta de los archivos en los que se guardarn los logs, el formato de estos. Pensando en ms adelante usar Sarg para analizar los logs, y generar reportes, uso un formato que este pueda entender, en el squid.conf hay varios tipos de formatos definidos y comentados, en mi caso funcion con la primera lnea:
logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt

Luego se ejecuta el siguiente comando para crear las carpetas de la cache:


bash-4.1# squid -z 2010/11/27 16:42:53| Creating Swap Directories

Aqu pueden verse adems los errores de sintaxis que puedan haber en el squid.conf, una vez que se ejecuta sin error, se puede iniciar el servicio, con el siguiente comando:
bash-4.1# /usr/local/sbin/squid

Para que siempre se inicie con el sistema se debe agregar las lneas que nos mostr despus de la instalacin en el archivo /etc/rc.local, son las siguientes:
# Cargar el demonio SQUID if [ -x /usr/local/sbin/squid ]; then echo -n ' squid'; fi /usr/local/sbin/squid

Cuando se quiera hacer un cambio en la configuracin del Squid sin pararlo, basta cambiar los archivos de configuracin y luego usar el comando siguiente:
bash-4.1# /usr/local/sbin/squid -k reconfigure

En caso de necesitar limpiar la cache, puede hacerse el siguiente procedimiento:


bash-4.1#/usr/local/sbin/squid -k shutdown bash-4.1#rm -rf /var/squid/cache bash-4.1#squid -z bash-4.1#/usr/local/sbin/squid

________________________________________________________________________________
11.Servidor Proxy (Squid) 33/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

De esta manera se detiene, luego se borra la cache existente, se reconstruye, y se inicia nuevamente el servicio. Si queremos verificar el funcionamiento del squid, podemos usar el comando tail para monitorear el archivo de log:
bash-4.1# tail -f /var/squid/logs/access.log 1290910480.566 124 192.168.1.50 TCP_MISS/304 275 GET http://www.google.com.co/images/modules/buttons/g-button-chocobo-basic-2.gif DIRECT/72.14.253.104 1290910480.578 131 192.168.1.50 TCP_MISS/304 275 GET http://www.google.com.co/intl/en_com/images/srpr/logo1w.png - DIRECT/72.14.253.104-

11.1. Reportes con Sarg


Para generar los reportes basados en los logs del Squid, de modo que yo pueda ver en que se estn gastando mis usuarios el ancho de banda, y saber si tengo que hacer algn tipo de control sobre estos, puedo implementar la herramienta sarg5, lo primero que hago es instalar el software:
bash-4.1# pkg_add -v sarg sarg-2.2.5p0: ok

El archivo de configuracin se encuentra en /etc/sarg/sarg.conf, en este hago las siguientes modificaciones :


#Que el reporte me salga en espaol: language Spanish #Lugar donde se encuentra el access.log del squid access_log /var/squid/logs/access.log #Directorio de trabajo temporal temporary_dir /tmp #Directorio de salida, yo cree la carpeta manualmente con mkdir. output_dir /var//www/htdocs/sarg #Formato de fecha decente dd/mm/yyyy date_format e #Haga todos los reportes disponibles: report_type topusers topsites sites_users users_sites date_time denied auth_failures site_user_time_date downloads # Ubique apropiadamente mi servidor web: www_document_root /var/www/ htdocs

Fcil!, asi como lo es todo en OpenBSD ;) Hay muchas otras opciones en este archivo, pero est bien documentado, en el mismo formato del squid.conf, con estas ser ms que suficiente. Para generar el reporte basta con ejecutar el comando sarg.

5 http://sarg.sourceforge.net/

________________________________________________________________________________
11.Servidor Proxy (Squid) 34/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

bash-4.1# sarg SARG: Records in file: 45, reading: 100.00% SARG: Reporte generado satisfactoriamente en /var/www/htdocs/sarg/27Nov201027Nov2010

De esta manera se crea en el directorio que pusimos como de salida el reporte completo, y para accederlo se hace a travs del servidor web, en mi caso en la direccin de la LAN:

http://192.168.1.5/sarg/
Es posible configurar otros sistemas de reportes de una manera rpida y segura. Experimenta!

12. Enlaces relacionados


A continuacin las direcciones de las pginas que use como gua en este proceso: Obviamente la referencia de algunos documentos bsicos de: http://groups.google.com/group/OpenBSD-Colombia/files Y otros documentos de: http://openbsd.org/faq/faq4.html#AddFileSet http://www.openbsd.org/ports.html http://www.openbsd.org/faq/pf/index.html http://www.openbsd.org/faq/faq6.html#DHCP http://www.kernel-panic.it/openbsd/proxy/index.html http://www.openbsdsupport.org/mysql.htm http://www.h-i-r.net/2010/10/openbsd-48-is-almost-here-chroot-apache.html http://www.kernel-panic.it/openbsd/dns/dns3.html http://structio.sourceforge.net/guias/ http://www.openbsd.org/faq/pf/nat.html http://www.openbsd.org/faq/pf/example1.html

13. Historial del Documentacin


13.1. Actualizaciones del documento
Nombre Esteban Calle Prez Fernando Quintero E-mail estebancalleperez@gmail.com Fernando.a.quintero@gmail.com Fecha modificacin 27/11/10 06/01/11

________________________________________________________________________________
13.Historial del Documentacin 35/36

Instalacin de servicios bsicos en OpenBSD v.4.8 - Astrid Eliana Snchez Corts, http://www.openbsdcolombia.org

WWW.OPENBSDCOLOMBIA.ORG Piensa en Libertad, Piensa BSD.

________________________________________________________________________________
13.Historial del Documentacin 36/36

Das könnte Ihnen auch gefallen