Post on 18-Dec-2014
description
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
Instalación de servicios básicos en OpenBSD v.4.8
Autor : Astrid Eliana Sánchez Cortés Correo electrónico: astrid.eliana@gmail.com
Fecha de creación : 09/01/08 Ultima modificación: 06/01/11
Índice de contenido1.Licencia (BSD)..................................................................................................................................22.Introducción.......................................................................................................................................23.Configuración básica del sistema......................................................................................................2
3.1.Configuración de la red .............................................................................................................3 a.Interfaces de red...................................................................................................................3 b.Gateway (puerta de enlace) y dns........................................................................................5
4.Instalando paquetes...........................................................................................................................64.1.Configurando con los paquetes a la mano.................................................................................74.2.Afterboot (despues de bootear la primera vez)..........................................................................8
a.Creación 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................................................................................................................................136.Comprobando rc.conf.local.............................................................................................................147.Servidor DNS..................................................................................................................................158.Servidor MySQL (Bases de Datos).................................................................................................19
8.1.Aspectos importantes con MySQL..........................................................................................229.Servidor WEB: Apache en Chroot..................................................................................................22
9.1.PHP v 5.0.................................................................................................................................229.2.Apache v 1.3.x (versión por omisión)......................................................................................259.3.Correos con PHP y MiniSendmail ..........................................................................................269.4.Ejemplo con MySQL y PHP....................................................................................................27
10.NAT y Firewall (PF - Packet Filter)..............................................................................................2911.Servidor Proxy (Squid)..................................................................................................................31
11.1.Reportes con Sarg..................................................................................................................3412.Enlaces relacionados.....................................................................................................................3513.Historial del Documentación.........................................................................................................35
13.1.Actualizaciones del documento.............................................................................................35
________________________________________________________________________________ 1/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
1. Licencia (BSD)Copyright (c) 2008, Astrid Eliana Sánchez ,
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 NOTLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FORA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER ORCONTRIBUTORS 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, ORPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OFLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDINGNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2. IntroducciónHace algún tiempo, en la empresa en la que trabajaba decidimos cambiar el servidor, la función de este servidor sería sencilla, solo debe proveer Internet para una red LAN relativamente pequeña, con los servicios de DHCP, DNS, WEB, PROXY, NAT y FIREWALL.
La instalación en ese momento se hizo con la versión 4.2 de OpenBSD, y de esta salió la primera versión de este documento detallando todo, o casi todo lo que hice para dejarlo en funcionamiento. Esta versión nunca salió de mis manos, ahora se ve enriquecido por el trabajo de Fernando Quintero quien lo ha mejorado y actualizado a la versión 4.3, ahora se encuentra actualizado a la versión 4.8, con la ayuda de Esteban Calle. El público objetivo de este documento son personas que están dando sus primeros pasos en OpenBSD, y que después 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 básicos que se usen, también asumo que se tiene una teoría básica de redes y de servicios de red. El documento inicia desde que el sistema esta en su instalación base, la instalación 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, críticas y sugerencias en mi correo.
Mentiras, las criticas al /dev/null ;)
3. Configuración básica del sistemaAntes de comenzar la configuración de los servicios es necesario tener una configuración básica en nuestro sistema. En este capítulo mostraré un poco de esto.
________________________________________________________________________________ 3.Configuración básica del sistema 2/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
3.1. Configuración de la red Esta configuración puede hacerse desde la instalación, sin embargo no está de más revisarla, y saber como funciona. Siempre que se hace un cambio en la configuración 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 redLa configuración 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 físicas, algunas son usadas para procesos internos del sistema operativo, como cifrar la información, 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.Configuración básica del sistema 3/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 configuración 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 línea con la siguiente información separada por espacios:
Familia de direcciones: inet o inet6 dependiendo si usamos IPv4 o IPv6
IP: La dirección IP asignada a la tarjeta de red
Dirección 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 ningún otra
________________________________________________________________________________ 3.Configuración básica del sistema 4/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
opción es requerida.
Configuremos entonces la segunda interfaz:
# pico /etc/hostname.vic1
ksh: pico: not found
¿Qué sucedió?
Ah!, aún no tenemos el editor pico, OpenBSD trae como editor predeterminado a vi, que es el que usaremos ahora, más 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 configuración 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 configuración de las interfaces:
# ifconfig -a
Guardando la configuración en estos archivos logramos que los cambios perduren después 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 dnsPara configurar el gateway por defecto del sistema se usa el archivo /etc/mygate, se pone solo su dirección IP. Por ejemplo:
# cat /etc/mygate
________________________________________________________________________________ 3.Configuración básica del sistema 5/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
192.168.200.2
La configuración de los DNS que usará el sistema se hace en /etc/resolv.conf, usando la palabra nameserver antes de cada dirección IP correspondiente, y poniendo uno por línea, 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 paquetesEn OpenBSD se manejan los paquetes binarios, con la herramienta pkg, que es el método recomendado. Para compilarlos se mantiene el sistema de ports o portes, sin embargo se pueden compilar por el método tradicional también (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 instalación 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 pico-5.04p1:gettext-0.18.1: ok pico-5.04p1:aspell-0.60.6p4: ok pico-5.04p1: 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
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 instalación de los paquetes pico, bash y wget.
________________________________________________________________________________ 4.Instalando paquetes 6/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
Para la instalación 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 instalación 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 categorías, si por ejemplo quiero instalar el editor nano desde los ports hago lo siguiente:
# ls /usr/ports/editors/nano/
CVS Makefile distinfo patches pkg
# cd /usr/ports/editors/nano/
# pwd
/usr/ports/editors/nano
# make install
===> Checking files for nano-2.0.7
...
Con esto puedo instalar prácticamente cualquier paquete, hay opciones más 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 manoUna forma de acelerar el trabajo en la configuración del servidor es tener los paquetes requeridos a la mano, para esto es recomendable descargar todos los paquetes disponibles para la versión en la que se esté trabajando, o disponer de buena conexión 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 más rápido 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. Creación de usuariosSe 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 creación 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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: nando
Password: ****
Fullname: Fernando Quintero
Uid: 1000
Gid: 1000 (nando)
Groups: nando
Login Class: default
HOME: /home/nando
Shell: /usr/local/bin/bash
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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
Enter password again []:
Name: astrid
Password: ****
Fullname: Astrid Sanchez
Uid: 1001
Gid: 1001 (astrid)
Groups: astrid
Login Class: default
HOME: /home/astrid
Shell: /usr/local/bin/bash
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 panicComo medida de seguridad voy a deshabilitar la conexión a través 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 línea :
________________________________________________________________________________ 4.Instalando paquetes 10/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
#PermitRootLoging yes
Se descomenta y cambia el yes por no quedando así:
PermitRootLogin no
Sin hacer más cambios grabo el archivo de configuración.
Luego, y por razones de comodidad voy a habilitar el apagado físico del equipo a través de la línea 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 línea 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 línea 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 defaultEl lema de solo dos agujeros en la instalación por omisión tiene una razón 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 todavía se puede hacer algo mas y deshabilitar los servicios que aunque no son muy común verlos funcionando, están allí:
bash-4.1# netstat -an | more
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
ip 0 0 *.* *.* 17
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 192.168.1.5.22 192.168.1.1.43020 ESTABLISHED
tcp 0 0 127.0.0.1.587 *.* LISTEN
tcp 0 0 127.0.0.1.25 *.* LISTEN
tcp 0 0 *.22 *.* LISTEN
tcp 0 0 *.37 *.* LISTEN
tcp 0 0 *.13 *.* LISTEN
________________________________________________________________________________ 4.Instalando paquetes 11/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
tcp 0 0 *.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) están 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 13/tcpdaytime 13/udptime 37/tcp timservertime 37/udp timserverauth 113/tcp authentication tap identSi 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 líneas 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 Foreign Address (state)
ip 0 0 *.* *.* 17
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp 0 0 192.168.1.5.22 192.168.1.1.43020 ESTABLISHED
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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
tcp 0 0 127.0.0.1.587 *.* LISTEN
tcp 0 0 127.0.0.1.25 *.* LISTEN
tcp 0 0 *.22 *.* LISTEN
Como se ve los servicios no deseados ya no suben ni en IPv4 ni en IPv6. :)
5. Servidor DHCPNecesito un servidor básico de DHCP, así que las modificaciones que debo hacer a la configuración by default son mínimas, y mi red funciona perfectamente, los pasos fueron:
Primero habilitar el servidor DHCP con el arranque del sistema, agregando la línea siguiente en el archivo /etc/rc.conf.local.Este archivo no existe by default en la versión 4.8, así que tendrás 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 continuación modificamos el archivo /etc/dhcpd.conf, esta configuración es estándar para la configuración 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 configuración mínima posible, estableciendo un rango de direcciones desde 50 a 150 maquinas en mi red local. Si quisiera agregar mas opciones puedo seguir la excelente documentación de: man dhcpd.confAhora podemos iniciar nuestro servicio, pero antes debemos de crear el fichero /var/db/dhcpd.leases y seguido podemos iniciar nuestro servicio.
Bash-4.1# touch /var/db/dhcpd.leases
Bash-4.1# dhcpd
________________________________________________________________________________ 5.Servidor DHCP 13/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 automáticamente 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 configuración /etc/dhcpd.conf.
6. Comprobando rc.conf.localEn cualquier momento podemos probar nuestra configuración 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 DNSEste 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 ""; // remove this to allow version queries
listen-on { 192.168.1.5; };
listen-on-v6 { none; };
empty-zones-enable yes;
allow-recursion { clients; };
};
También deshabilitamos la escucha para IPv6 a menos que tengamos implementado túneles o una red en IPV6 dentro de la LAN.
________________________________________________________________________________ 7.Servidor DNS 15/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 ; Serial yyyymmddnn
3h ; Refresh After 3 hours
1h ; Retry Retry after 1 hour
1w ; Expire after 1 week
1h) ; Minimum negative caching of 1 hour
; Agrego mis hosts
@ 86400 IN NS ns.dominio.com.
________________________________________________________________________________ 7.Servidor DNS 16/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
@ 86400 IN MX 10 mail.dominio.com.
ns IN A 192.168.1.5
dns IN CNAME ns
fw IN CNAME ns
www IN CNAME ns
proxy IN CNAME ns
estacion1 IN A 192.168.1.9
estacion2 IN A 192.168.1.10
repositorio IN A 192.168.1.4
mail IN A 192.168.1.8
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 ; Serial yyyymmddnn
3h ; Refresh After 3 hours
1h ; Retry Retry after 1 hour
1w ; Expire after 1 week
1h) ; Minimum negative caching of 1 hour
; Agrego mis hosts
@ 86400 IN NS ns.dominio.com.
5 IN PTR ns.dominio.com.
9 IN PTR estacion1.dominio.com.
10 IN PTR estacion2.dominio.com.
4 IN PTR repositorio.dominio.com.
8 IN PTR mail.dominio.com.
________________________________________________________________________________ 7.Servidor DNS 17/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 línea 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 línea 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: 192.168.1.5
Address: 192.168.1.5#53
Name: ns.dominio.com
Address: 192.168.1.5
> mail.dominio.com
Server: 192.168.1.5
Address: 192.168.1.5#53
Name: mail.dominio.com
________________________________________________________________________________ 7.Servidor DNS 18/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
Address: 192.168.1.8
> 192.168.1.9
Server: 192.168.1.5
Address: 192.168.1.5#53
9.1.168.192.in-addr.arpa name = estacion1.dominio.com.
> 192.168.1.5
Server: 192.168.1.5
Address: 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 estándar, primero se configura el servicio preconfigurado, luego se habilitan las variables en el archivo /etc/rc.conf y luego se recarga la configuración 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 configuración. 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 mysql-server-5.1.48:mysql-client-5.1.48: ok mysql-server-5.1.48:p5-DBD-mysql-4.014: ok mysql-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.
En esta ocasión 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 perfección, 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 dirección: /usr/local/bin/mysql_install_db
________________________________________________________________________________ 8.Servidor MySQL (Bases de Datos) 19/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 'new-password'
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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 líneas 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, después 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 integración 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.
Después 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 aplicación 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 11:35AM 0:00.10 bash -c /usr/local/bin/mysqld_safe >/dev/null
root 30728 0.0 0.5 576 456 C0- I 11:35AM 0:00.12 /bin/sh /usr/local/bin/mysqld_safe
_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 vendrán desde nuestro equipo local y lo harán por el socket tipo archivo. Para esto en el archivo /etc/my.cnf , descomentamos la línea :
skip-networking
Con esto saltara la carga del socket de red y ningún puerto se abrirá.
Nota: Esto aplica si su aplicación y BD MySQL están en el mismo Servidor como en este caso.
________________________________________________________________________________ 8.Servidor MySQL (Bases de Datos) 21/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
8.1. Aspectos importantes con MySQLEn 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 contraseña del usuario root de MySQL, lo cual debe hacerse pues inicialmente no tiene ninguna, recuerde cambiar 'micontraseña' por el valor real de la contraseña que tendrá el usuario:
# /usr/local/bin/mysqladmin -u root password 'micontraseña'
● 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 aclaración 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 ChrootEn este capítulo 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 aplicación que use PHP, por ejemplo un CMS como drupal, wordpress o joomla.
9.1. PHP v 5.0Para comenzar este proceso hago la instalación 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
to /var/www/conf/php.ini.
Este mensaje aparece en OpenBSD 4.8, si leemos con mas atención 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 configuración del php para que el servidor web lo pueda encontrar. Ahora continuo con la instalación 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
También hago el enlace simbólico sugerido, y eso es todo ;)
Otros módulos de PHP que están disponibles como paquetes son:
bash-4.1# wget http://ftp.openbsd.org/pub/OpenBSD/4.8/packages/i386/index.txt
--2010-11-27 12:14:10-- 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
________________________________________________________________________________ 9.Servidor WEB: Apache en Chroot 23/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 45304 Aug 10 20:08:51 2010 asp2php-0.77.3p2-no_x11.tgz
-rw-r--r-- 1 276 125 58316 Aug 10 19:41:50 2010 asp2php-0.77.3p2.tgz
-rw-r--r-- 1 276 125 34402 Aug 10 20:55:57 2010 drupal6-phpmailer-2.1.tgz
-rw-r--r-- 1 276 125 18268 Aug 10 19:15:16 2010 ffmpeg-php-0.6.0p3.tgz
-rw-r--r-- 1 276 125 6648 Aug 10 08:28:13 2010 gpsd-php-2.38.tgz
-rw-r--r-- 1 276 125 6357 Aug 10 20:38:22 2010 p5-PHP-Serialization-0.33.tgz
-rw-r--r-- 1 276 125 7403 Aug 10 20:36:53 2010 p5-PHP-Session-0.26p1.tgz
-rw-r--r-- 1 276 125 40361 Aug 10 20:49:57 2010 pear-PHPUnit2-2.1.6p1.tgz
-rw-r--r-- 1 276 125 15934 Aug 10 20:13:42 2010 php-markdown-1.0.1n.tgz
-rw-r--r-- 1 276 125 109259 Aug 10 20:49:32 2010 php-openid-2.1.2.tgz
-rw-r--r-- 1 276 125 2859333 Aug 10 20:44:24 2010 php-weathermap-0.97ap0.tgz
-rw-r--r-- 1 276 125 10642 Aug 10 09:35:17 2010 php5-bz2-5.2.13p0.tgz
-rw-r--r-- 1 276 125 3564016 Aug 10 03:44:29 2010 php5-core-5.2.13p0.tgz
-rw-r--r-- 1 276 125 26434 Aug 10 09:35:18 2010 php5-curl-5.2.13p0.tgz
-rw-r--r-- 1 276 125 24949 Aug 10 09:35:19 2010 php5-dba-5.2.13p0.tgz
-rw-r--r-- 1 276 125 14729 Aug 10 09:35:20 2010 php5-dbase-5.2.13p0.tgz
-rw-r--r-- 1 276 125 945 Aug 10 09:35:15 2010 php5-extensions-5.2.13p0.tgz
-rw-r--r-- 1 276 125 1431471 Aug 10 03:44:32 2010 php5-fastcgi-5.2.13p0.tgz
-rw-r--r-- 1 276 125 102700 Aug 10 09:35:22 2010 php5-gd-5.2.13p0-no_x11.tgz
-rw-r--r-- 1 276 125 111257 Aug 10 10:23:40 2010 php5-gd-5.2.13p0.tgz
-rw-r--r-- 1 276 125 16453 Aug 10 09:35:23 2010 php5-gmp-5.2.13p0.tgz
-rw-r--r-- 1 276 125 38176 Aug 10 09:35:24 2010 php5-imap-5.2.13p0.tgz
-rw-r--r-- 1 276 125 19018 Aug 10 09:35:25 2010 php5-ldap-5.2.13p0.tgz
-rw-r--r-- 1 276 125 815190 Aug 10 14:54:27 2010 php5-mapscript-5.6.5.tgz
-rw-r--r-- 1 276 125 1104619 Aug 10 09:35:27 2010 php5-mbstring-5.2.13p0.tgz
-rw-r--r-- 1 276 125 14193 Aug 10 09:35:28 2010 php5-mcrypt-5.2.13p0.tgz
-rw-r--r-- 1 276 125 5266 Aug 10 09:35:29 2010 php5-mhash-5.2.13p0.tgz
-rw-r--r-- 1 276 125 22230 Aug 10 09:35:48 2010 php5-mssql-5.2.13p0.tgz
-rw-r--r-- 1 276 125 24049 Aug 10 09:35:30 2010 php5-mysql-5.2.13p0.tgz
-rw-r--r-- 1 276 125 41310 Aug 10 09:35:32 2010 php5-mysqli-5.2.13p0.tgz
-rw-r--r-- 1 276 125 24931 Aug 10 09:35:33 2010 php5-ncurses-5.2.13p0.tgz
-rw-r--r-- 1 276 125 27942 Aug 10 09:35:34 2010 php5-odbc-5.2.13p0.tgz
-rw-r--r-- 1 276 125 8263 Aug 10 09:35:47 2010 php5-pdo_dblib-5.2.13p0.tgz
-rw-r--r-- 1 276 125 13555 Aug 10 09:35:35 2010 php5-pdo_mysql-5.2.13p0.tgz
________________________________________________________________________________ 9.Servidor WEB: Apache en Chroot 24/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
-rw-r--r-- 1 276 125 14169 Aug 10 09:35:36 2010 php5-pdo_pgsql-5.2.13p0.tgz
-rw-r--r-- 1 276 125 11834 Aug 10 09:35:38 2010 php5-pdo_sqlite-5.2.13p0.tgz
-rw-r--r-- 1 276 125 44269 Aug 10 09:35:39 2010 php5-pgsql-5.2.13p0.tgz
-rw-r--r-- 1 276 125 9121 Aug 10 09:35:40 2010 php5-pspell-5.2.13p0.tgz
-rw-r--r-- 1 276 125 5037 Aug 10 09:35:41 2010 php5-shmop-5.2.13p0.tgz
-rw-r--r-- 1 276 125 12076 Aug 10 09:35:43 2010 php5-snmp-5.2.13p0.tgz
-rw-r--r-- 1 276 125 137879 Aug 10 09:35:42 2010 php5-soap-5.2.13p0.tgz
-rw-r--r-- 1 276 125 29510 Aug 10 09:35:44 2010 php5-sqlite-5.2.13p0.tgz
-rw-r--r-- 1 276 125 19354 Aug 10 09:35:45 2010 php5-sybase_ct-5.2.13p0.tgz
-rw-r--r-- 1 276 125 18157 Aug 10 09:35:49 2010 php5-tidy-5.2.13p0.tgz
-rw-r--r-- 1 276 125 40025 Aug 10 09:35:50 2010 php5-xmlrpc-5.2.13p1.tgz
-rw-r--r-- 1 276 125 14085 Aug 10 09:35:51 2010 php5-xsl-5.2.13p0.tgz
-rw-r--r-- 1 276 125 4739544 Aug 10 20:18:16 2010 phpMyAdmin-3.3.4.tgz
-rw-r--r-- 1 276 125 918070 Aug 10 20:45:13 2010 phpPgAdmin-4.2.3.tgz
-rw-r--r-- 1 276 125 336116 Aug 10 20:47:46 2010 phpicalendar-2.31.tgz
-rw-r--r-- 1 276 125 1333073 Aug 10 20:40:54 2010 phpldapadmin-1.2.0.4.tgz
-rw-r--r-- 1 276 125 1273081 Aug 10 20:32:48 2010 phplist-2.10.5p0.tgz
9.2. Apache v 1.3.x (versión por omisión)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 función de información 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 propósitos 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
Con el primer comando agregamos el paquete mini_sendmail, en su versión para trabajar en el chroot del Apache, luego lo ubicamos con un enlace simbólico 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, además 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 configuración de los servidores con el siguiente comando:
bash-4.1# sh /etc/rc
9.4. Ejemplo con MySQL y PHPVoy a dar un ejemplo de la instalación de una aplicación OAMP (OpenBSD + Apache + MySQL + PHP). Instalaremos la plataforma E-learning moodle3.
Pasos para la instalación 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 módulos adicionales de PHP que serán 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 aplicación que voy a instalar
Esto no es necesario pero le añade un factor de seguridad puesto que si se presenta un problema de seguridad en la aplicación, el atacante solo tendrá acceso a la aplicación en cuestión 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 contraseña clavemoodle. Obviamente esta no es una contraseña adecuada, es responsabilidad de ustedes configurarla, esto es solo un ejemplo.
________________________________________________________________________________ 9.Servidor WEB: Apache en Chroot 28/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
Ahora modifico el archivo /var/www/moodle/config.php con los siguientes datos:
$CFG->dbtype = 'mysql'; // mysql or postgres7 (for now)
$CFG->dbhost = 'localhost'; // eg localhost or db.isp.com
$CFG->dbname = 'moodle'; // database name, eg moodle
$CFG->dbuser = 'moodleuser'; // your database username
$CFG->dbpass = 'clavemoodle'; // your database password
$CFG->prefix = 'mdl_'; // Prefix to use for all table names
Luego cambio la ruta a la que apuntará el moodle, puedo usar también 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 información.
$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 aplicación OAMP funcional y segura en poco tiempo. NOTA: Cualquier aplicación 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 configuración básica 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 línea quitando el comentario que viene por omisión.
net.inet.ip.forwarding=1
La configuración de PF, el conjunto de reglas (ruleset) y la configuración de NAT, se hacen en /etc/pf.conf, allí se encuentra un archivo de ejemplo, que se puede usar como guía, se encuentra completamente comentado. La estructura de este archivo es rígida, por lo que se debe seguir el siguiente orden:
1. -Macros 2. -Tablas 3. -Opciones 4. -Scrub (normalización) 5. -Queueing (control de ancho de banda y priorización de paquetes) 6. -NAT 7. -Reglas del filtro
En mi caso el archivo de configuración quedo así, la explicación 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
#Normalización 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
#REGLAS DEL FILTRO
#Políticas 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 FAQ4 oficial de OpenBSD se puede encontrar más información.
La única regla “rara” que tengo es la de antispoofing, la cual es una opción que trae el PF, en este caso evitamos que alguien desde la interfaz $wan se haga pasar por una IP de la red interna.
Nótese también que al final se pone en lugar del número 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 notarán la diferencia entre no tener proxy o tenerlo, y la configuración en sus equipos será mucho más simple.
La instalación 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
-rw-r--r-- 1 276 125 725240 Aug 10 15:07:10 2010 squid-2.7.STABLE9-ldap-snmp.tgz
-rw-r--r-- 1 276 125 712727 Aug 10 15:19:32 2010 squid-2.7.STABLE9-ldap.tgz
-rw-r--r-- 1 276 125 703638 Aug 10 15:46:29 2010 squid-2.7.STABLE9-snmp.tgz
-rw-r--r-- 1 276 125 690116 Aug 9 11:02:10 2010 squid-2.7.STABLE9.tgz
-rw-r--r-- 1 276 125 1683240 Aug 10 19:47:01 2010 squidGuard-1.4p0-ldap.tgz
-rw-r--r-- 1 276 125 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 instalación 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'; /usr/local/sbin/squid
fi
Esto nos informa las diferencias locales de Squid en OpenBSD, nos cuenta que los archivos de configuración están 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 están 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.
También nos recuerda inicializar la cache con "squid -z" antes de tratar de correr squid por primera vez, y las últimas líneas nos muestra que es lo que debemos poner en el archivo /etc/rc.local para inicializarlo automáticamente con el sistema.
Se configura el /etc/squid/squid.conf según las opciones que se deseen, este tiene también la misma estructura y contenido que en cualquier otro sistema operativo, aquí voy a comentar solo las cosas específicas para tener en cuenta.
Primero que todo, la instalación por defecto solo admite el sistema de archivos ufs, y la política 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 opción 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
Para que este proxy transparente funcione correctamente, es necesario agregar la siguiente línea en el archivo /etc/pf.conf antes de la línea de nat.
pass in quick on $lan inet proto tcp to any port 80 rdr-to 127.0.0.1 port 3128
Con esta línea se redirecciona todo el tráfico saliente dirigido a web (puerto 80) al puerto local en el que escucha el Squid, así que este será el que atienda la petición. Para que Squid loguee sus actividades es necesario definir además de la ruta de los archivos en los que se guardarán los logs, el formato de estos. Pensando en más 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 línea:
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 además 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 líneas que nos mostró después de la instalación en el archivo /etc/rc.local, son las siguientes:
# Cargar el demonio SQUID
if [ -x /usr/local/sbin/squid ]; then
echo -n ' squid'; /usr/local/sbin/squid
fi
Cuando se quiera hacer un cambio en la configuración del Squid sin pararlo, basta cambiar los archivos de configuración 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
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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 SargPara generar los reportes basados en los logs del Squid, de modo que yo pueda ver en que se están gastando mis usuarios el ancho de banda, y saber si tengo que hacer algún 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 configuración se encuentra en /etc/sarg/sarg.conf, en este hago las siguientes modificaciones :
#Que el reporte me salga en español:
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
Fácil!, 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á más que suficiente.
Para generar el reporte basta con ejecutar el comando sarg.
5 http://sarg.sourceforge.net/
________________________________________________________________________________ 11.Servidor Proxy (Squid) 34/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, 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/27Nov2010-27Nov2010
De esta manera se crea en el directorio que pusimos como de salida el reporte completo, y para accederlo se hace a través del servidor web, en mi caso en la dirección de la LAN:
http://192.168.1.5/sarg/ Es posible configurar otros sistemas de reportes de una manera rápida y segura. Experimenta!
12. Enlaces relacionadosA continuación las direcciones de las páginas que use como guía en este proceso:
Obviamente la referencia de algunos documentos básicos 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 Documentación
13.1. Actualizaciones del documento
Nombre E-mail Fecha modificaciónEsteban Calle Pérez estebancalleperez@gmail.com 27/11/10Fernando Quintero Fernando.a.quintero@gmail.com 06/01/11
________________________________________________________________________________ 13.Historial del Documentación 35/36
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org
WWW.OPENBSDCOLOMBIA.ORG Piensa en Libertad, Piensa BSD.
________________________________________________________________________________ 13.Historial del Documentación 36/36