Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org        In...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org1. Licenci...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org3.1. Confi...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org        in...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgopción es ...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org192.168.20...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgPara la in...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org# export P...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgCheck /etc...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgEnter pass...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org#PermitRoo...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgtcp       ...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgtcp       ...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgPara este ...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgsavecore: ...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgBy default...
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 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgChequeando...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgAddress: 1...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgbash-4.1# ...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgComo este ...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org8.1. Aspec...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgto /var/ww...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org2010-11-27...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org-rw-r--r--...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org<?phpphpin...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgCon el pri...
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 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgAhora modi...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgAhora para...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org#REGLAS DE...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org-rw-r--r--...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgPara que e...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgDe esta ma...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgbash-4.1# ...
Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org          ...
Upcoming SlideShare
Loading in …5
×

Servidor de red_en_open_bsd_48

2,803 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,803
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
47
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Servidor de red_en_open_bsd_48

  1. 1. 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.8Autor : Astrid Eliana Sánchez CortésCorreo electrónico: astrid.eliana@gmail.comFecha 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........................................................................................54.Instalando paquetes...........................................................................................................................6 4.1.Configurando con los paquetes a la mano.................................................................................7 4.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...................................................................................115.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.................................................................................................................................22 9.2.Apache v 1.3.x (versión por omisión)......................................................................................25 9.3.Correos con PHP y MiniSendmail ..........................................................................................26 9.4.Ejemplo con MySQL y PHP....................................................................................................2710.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
  2. 2. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org1. 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 conditionsare 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 deeste 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 primeraversió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 Quinteroquien 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 dandosus primeros pasos en OpenBSD, y que después de instalarlo no saben hacia donde ir, como yomisma cuando me puse en esta tarea, sin embargo asumo que hay cierta familiaridad con el trabajoen sistemas tipo Unix.En este documento no se explicará para que sirve cada servicio, ni los comandos básicos que seusen, también asumo que se tiene una teoría básica de redes y de servicios de red. El documentoinicia desde que el sistema esta en su instalación base, la instalación propia de OpenBSD está bienexplicada 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 ennuestro sistema. En este capítulo mostraré un poco de esto.________________________________________________________________________________ 3.Configuración básica del sistema 2/36
  3. 3. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org3.1. Configuración de la redEsta configuración puede hacerse desde la instalación, sin embargo no está de más revisarla, y sabercomo funciona. Siempre que se hace un cambio en la configuración de la red se debe ejecutar elscript /etc/netstart para que los cambios tengan efecto, o en su defecto reiniciar el sistema.#sh /etc/netstarto#reboot a. Interfaces de redLa configuración de las tarjetas de red se encuentra en los archivos /etc/hostname.inteface, dondeinteface 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 queusar el comando ifconfig. La primera palabra que aparece antes de los dos puntos es el nombre de lainterfaz de red. No todas las interfaces que aparecen son físicas, algunas son usadas para procesosinternos del sistema operativo, como cifrar la información, generar logs, etc.# ifconfig -alo0: 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 0x4vic0: 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.255vic1: 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
  4. 4. 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 0x2enc0: flags=0<> priority: 0 groups: enc status: activepflog0: flags=141<UP,RUNNING,PROMISC> mtu 33200 priority: 0 groups: pflogPor 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.vic1Si el archivo correspondiente a la interfaz no aparece, simplemente lo creamos.Para modificar los archivos de las interfaces debemos conocer las opciones disponibles, siqueremos 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 IPv6IP: La dirección IP asignada a la tarjeta de redDirección de broadcast, o la palabra NONE,OPCIONES: Estas pueden consultarse en man hostname.ifVeamos un ejemplo:# cat /etc/hostname.vic0dhcpSe 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
  5. 5. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgopción es requerida.Configuremos entonces la segunda interfaz:# pico /etc/hostname.vic1ksh: pico: not found¿Qué sucedió?Ah!, aún no tenemos el editor pico, OpenBSD trae como editor predeterminado a vi, que es el queusaremos ahora, más adelante les mostraré como se instala pico o cualquier otro programa.#vi /etc/hostname.vic0inet 192.168.1.5 0xffffff00 192.168.1.255Ahora recargo la configuración de red:# sh /etc/netstartDHCPREQUEST on vic0 to 255.255.255.255 port 67DHCPACK 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 -aGuardando la configuración en estos archivos logramos que los cambios perduren después dereiniciar. 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.vic0dhcp# cat /etc/hostname.vic1inet 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 sudirección IP. Por ejemplo:# cat /etc/mygate________________________________________________________________________________3.Configuración básica del sistema 5/36
  6. 6. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org192.168.200.2La configuración de los DNS que usará el sistema se hace en /etc/resolv.conf, usando la palabranameserver antes de cada dirección IP correspondiente, y poniendo uno por línea, por ejemplo:# cat /etc/resolv.confsearch mi-isp.net.conameserver 192.168.200.2lookup file bindUna vez termine de configurar el servidor cambiaré todos los valores para que correspondan a lanueva maquina que estoy configurando.4. Instalando paquetesEn OpenBSD se manejan los paquetes binarios, con la herramienta pkg, que es el métodorecomendado. Para compilarlos se mantiene el sistema de ports o portes, sin embargo se puedencompilar 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 deOpenBSD 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 dondeencontrar los paquetes, yo lo hago así:# export PKG_PATH=ftp://ftp.openbsd.org/pub/OpenBSD/4.8/packages/i386/# pkg_add -v picopico-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 bashShell /usr/local/bin/bash appended to /etc/shellsbash-4.1.7p0: ok# pkg_add -v wgetwget-1.12p0:libidn-1.11: okwget-1.12p0: okPrimero verifico que tenga conectividad con el servidor ftp de OpenBSD y luego exporto la variablePKG_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
  7. 7. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgPara 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.gzCuando la descarga esté completa se descomprime en /usr, SI, tiene que ser allí, de lo contrario elsistema 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, enresumidas cuentas cuando se descomprime el archivo se crea un árbol de directorios en las que seubican todos los posibles programas por categorías, si por ejemplo quiero instalar el editor nanodesde 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 salendel alcance de este documento. Existe un documento donde se explica acerca de la diferencia entreports y paquetes y otros fundamentos de OpenBSD, ese documento lo pueden encontrar en el sitiode 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 ala mano, para esto es recomendable descargar todos los paquetes disponibles para la versión en laque 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 unservidor web dentro de red local, de esta forma para acceder a ellos solo debo exportar la variablePKG_PATH para que apunte a este repositorio y luego usar el comando pkg_add para instalar lospaquetes que necesito.1 http://groups.google.com/group/OpenBSD-Colombia/files________________________________________________________________________________4.Instalando paquetes 7/36
  8. 8. 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 bashShell /usr/local/bin/bash appended to /etc/shellsbash-4.1.7p0: ok# bashbash-4.1#Hay que recordar que siempre puedo ir a Internet a descargar los paquetes, pero es más rápido si yalo 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í algunasideas, en mi caso: a. Creación de usuariosSe hace con el ya conocido comando adduser, que como es primera vez que se usa nos preguntasobre las opciones por defecto, y luego sí crea el usuario, repitiendo las preguntas por si acasoqueremos que algo sea diferente.En la creación del usuario hay que tener en cuenta que para que pueda volverse root con elcomando su, el usuario que se crea debe pertenecer al grupo wheel.Ejemplo:bash-4.1# adduserCouldnt find /etc/adduser.conf: creating a new adduser configuration fileReading /etc/shellsEnter your default shell: bash csh ksh nologin sh [ksh]: bashYour default shell is: bash -> /usr/local/bin/bashDefault 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 messagePrompt for passwords by default (y/n) [y]:Default encryption method for passwords: auto blowfish des md5 old[auto]:Use option ``-silent if you dont want to see all warnings and questions.Reading /etc/shellsCheck /etc/master.passwd________________________________________________________________________________4.Instalando paquetes 8/36
  9. 9. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgCheck /etc/groupOk, lets go.Dont worry about mistakes. There will be a chance later to correct any input.Enter username []: nandoEnter full name []: Fernando QuinteroEnter 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: nandoPassword: ****Fullname: Fernando QuinteroUid: 1000Gid: 1000 (nando)Groups: nandoLogin Class: defaultHOME: /home/nandoShell: /usr/local/bin/bashOK? (y/n) [y]:Added user ``nandoCopy files from /etc/skel to /home/nandoAdd another user? (y/n) [y]:Enter username []: astridEnter full name []: Astrid SanchezEnter 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
  10. 10. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgEnter password again []:Name: astridPassword: ****Fullname: Astrid SanchezUid: 1001Gid: 1001 (astrid)Groups: astridLogin Class: defaultHOME: /home/astridShell: /usr/local/bin/bashOK? (y/n) [y]:Added user ``astridCopy files from /etc/skel to /home/astridAdd another user? (y/n) [y]: nGoodbye!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 grupowheel, usando el comando usermod.bash-4.1# id nandouid=1000(nando) gid=1000(nando) groups=1000(nando)bash-4.1# id astriduid=1001(astrid) gid=1001(astrid) groups=1001(astrid)bash-4.1# usermod -G wheel nandobash-4.1# usermod -G wheel astridbash-4.1# id nandouid=1000(nando) gid=1000(nando) groups=1000(nando), 0(wheel)bash-4.1# id astriduid=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, parahacer esto se edita el archivo /etc/ssh/sshd_config (no confundir con /etc/ssh/ssh_config) en estebusco la línea :________________________________________________________________________________4.Instalando paquetes 10/36
  11. 11. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org#PermitRootLoging yesSe descomenta y cambia el yes por no quedando así:PermitRootLogin noSin 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íneade comandos, el comportamiento por defecto es bajar el sistema, pero no apagar el equipo. Parahabilitar 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 quela siguiente línea aparezca así:powerdown=YESAhora para que al reiniciarse el equipo no entre en el modo debugguer cuando suceda un kernelpanic o algo no vaya bien en el booteo, activamos en el archivo /etc/sysctl.conf la siguiente líneaque se encuentra comentada:#ddb.panic=0 # 0=Do not drop into ddb on a kernel panicquedando 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 cuandoel sistema operativo se instala son muy pocos servicios los que corren sin que se les haya dicho quelo hagan, pero para los que somos un poco mas paranoicos todavía se puede hacer algo mas ydeshabilitar los servicios que aunque no son muy común verlos funcionando, están allí:bash-4.1# netstat -an | moreActive Internet connections (including servers)Proto Recv-Q Send-Q Local Address Foreign Address (state)ip 0 0 *.* *.* 17Active 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 ESTABLISHEDtcp 0 0 127.0.0.1.587 *.* LISTENtcp 0 0 127.0.0.1.25 *.* LISTENtcp 0 0 *.22 *.* LISTENtcp 0 0 *.37 *.* LISTENtcp 0 0 *.13 *.* LISTEN________________________________________________________________________________4.Instalando paquetes 11/36
  12. 12. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgtcp 0 0 *.113 *.* LISTENTodo puerto que aparezca asociado a la palabra LISTEN significa que el sistema esta escuchando oesperando peticiones. Se puede ver que la interfaz WAN esta escuchando en el puerto 22, lo quequiere 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 decorreo SENDMAIL, si no los necesito los puedo deshabilitar, aunque al estar corriendo en lainterfaz 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 lasinterfaces 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 arranquepodemos 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 inetdroot 9009 0.0 0.7 484 712 ?? Is 7:30PM 0:00.04 inetdbash-4.1# pkill inetdbash-4.1# ps aux | grep inetdbash-4.1# inetdbash-4.1# ps aux | grep inetdroot 2480 0.0 0.8 316 824 ?? Is 9:08PM 0:00.02 inetdVerificando...bash-4.1# netstat -an | moreActive Internet connections (including servers)Proto Recv-Q Send-Q Local Address Foreign Address (state)ip 0 0 *.* *.* 17Active 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 ESTABLISHED2 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
  13. 13. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgtcp 0 0 127.0.0.1.587 *.* LISTENtcp 0 0 127.0.0.1.25 *.* LISTENtcp 0 0 *.22 *.* LISTENComo 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ónby 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 elarchivo /etc/rc.conf.local.Este archivo no existe by default en la versión 4.8, así que tendrás que crearlo, simplemente es unarchivo en texto plano, donde agregaremos las variables que necesitemos para habilitar losservicios.Bash-4.1# cat /etc/rc.conf.localdhcpd_flags="vic1"En este fichero hemos definido en que interfaz de red ha de escuchar el servidor dhcp, para nuestrocaso el la interfaz vic1. A continuación modificamos el archivo /etc/dhcpd.conf, esta configuraciónes estándar para la configuración de este demonio de DHCP, así que puedo basarme enconfiguraciones 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 150maquinas en mi red local. Si quisiera agregar mas opciones puedo seguir la excelentedocumentació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.leasesBash-4.1# dhcpd________________________________________________________________________________ 5.Servidor DHCP 13/36
  14. 14. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgPara este caso hemos iniciado nuestro servicio dhcp, y en fichero /etc/rc.conf.local hemos definidoque 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/rcsetting tty flagskbd: keyboard mapping set to espfctl: pf already enabledmachdep.allowaperture: 2 -> 2starting network…Offtopic:Para saber que es lo que hace el script /etc/rc con respecto a un servicio particular, busca laspalabras relacionadas en el archivo, así:# grep -i dhcp /etc/rcif [ 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 dela 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 recargamoslos servicios ejecutando lo siguiente:bash-4.1# sh /etc/rcsetting tty flagskbd: keyboard mapping set to espfctl: pf already enabledmachdep.allowaperture: 2 -> 2starting networkDHCPREQUEST on vic0 to 255.255.255.255 port 67DHCPACK from 192.168.200.254 (00:50:56:fe:4f:3a)bound to 192.168.200.132 -- renewal in 900 seconds.starting system loggersyslogd: bind: Address already in usestarting initial daemons:.________________________________________________________________________________ 6.Comprobando rc.conf.local 14/36
  15. 15. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgsavecore: no core dumpchecking quotas: done.building ps databases: kvm dev.clearing /tmpstarting pre-securelevel daemons:.setting kernel security level: kern.securelevel: 1 -> 1creating 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 2010Esto nos evita el tener que reiniciar completamente el sistema. En la salida por pantalla de estescript 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 yaresueltas, 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 funcionardentro de un chroot.Editamos este archivo y hacemos que el named escuche solo en la interfaz interna: vic0bash-4.1# pico /var/named/etc/named.confoptions { 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 unared en IPV6 dentro de la LAN.________________________________________________________________________________7.Servidor DNS 15/36
  16. 16. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgBy default el named trae unas configuraciones que podemos aprovechar, pero no trae archivos dezonas configurados, así que tendremos que crearlos.bash-3.2# pwd/var/named/etcbash-3.2# ls -latotal 28drwxr-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.hintComo vamos a configurar dos zonas, una directa y una inversa, entonces agregamos esto alnamed.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
  17. 17. 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.5dns IN CNAME nsfw IN CNAME nswww IN CNAME nsproxy IN CNAME nsestacion1 IN A 192.168.1.9estacion2 IN A 192.168.1.10repositorio IN A 192.168.1.4mail IN A 192.168.1.8Chequeando la zona:bash-4.1# named-checkzone dominio.com /var/named/master/dominio.comzone dominio.com/IN: loaded serial 666OKLa 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
  18. 18. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgChequeando la zona inversa:bash-4.1# named-checkzone 1.168.192.in-addr.arpa /var/named/master/inv-dominio.comzone 1.168.192.in-addr.arpa/IN: loaded serial 333OKUna vez listas las dos zonas, probamos todo el DNS con el siguiente comando:bash-4.1# named -gEste 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 bastaagregar la línea named_flags=”” en el archivo /etc/rc.conf.localbash-4.1# echo named_flags="" >> /etc/rc.conf.localPara iniciarlo sin la necesidad de reiniciar el sistema ejecutamos el siguiente comando y buscamosla 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.5Default server: 192.168.1.5Address: 192.168.1.5#53> ns.dominio.comServer: 192.168.1.5Address: 192.168.1.5#53Name: ns.dominio.comAddress: 192.168.1.5> mail.dominio.comServer: 192.168.1.5Address: 192.168.1.5#53Name: mail.dominio.com________________________________________________________________________________7.Servidor DNS 18/36
  19. 19. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgAddress: 192.168.1.8> 192.168.1.9Server: 192.168.1.5Address: 192.168.1.5#539.1.168.192.in-addr.arpa name = estacion1.dominio.com.> 192.168.1.5Server: 192.168.1.5Address: 192.168.1.5#535.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 zonadirecta y dos en la inversa, antes de preguntarle a un DNS le definimos quien será nuestro servidorusando 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 muysencillo, y sigue un procedimiento estándar, primero se configura el servicio preconfigurado, luegose 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 entoncesbuscarlo en la lista de paquetes disponibles de OpenBSD (actualmente mas de 5700) y luego hacerla respectiva configuración. Veamos como lo hacemos con el servidor MySQL.bash-4.1# pkg_add -v mysql-servermysql-server-5.1.48:p5-Net-Daemon-0.43: okmysql-server-5.1.48:p5-PlRPC-0.2018p0: okmysql-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 databasein /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 elservidor funcione a la perfección, una vez verificadas las opciones del servidor puedo continuar conel procedimiento final para instalar el servidor. Lo primero que se hace una vez instalado el servidorMySQL es crear la primera base de datos, sin la cual no funciona, esto se hace con el script que seencuentra en la dirección: /usr/local/bin/mysql_install_db________________________________________________________________________________8.Servidor MySQL (Bases de Datos) 19/36
  20. 20. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgbash-4.1# sh /usr/local/bin/mysql_install_dbInstalling MySQL system tables...101127 2:00:57 [Warning] --skip-locking is deprecated and will be removed in a futurerelease. Please use --skip-external-locking instead.OKFilling help tables...101127 2:00:58 [Warning] --skip-locking is deprecated and will be removed in a futurerelease. Please use --skip-external-locking instead.OKPLEASE 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-passwordAlternatively you can run:/usr/local/bin/mysql_secure_installationwhich will also give you the option of removing the testdatabases and anonymous user created by default. This isstrongly 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 defectoen un chroot, debe hacerse un enlace entre el socket real de MySQL, y un lugar donde el Apachepueda verlo, así:bash-4.1# mysqld_safe &[1] 31032101127 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/mysqlbash-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
  21. 21. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgComo este ultimo comando hay que ejecutarlo cada vez que sube el demonio MySQL, entonces loagregamos a la parte final del /etc/rc.local el cual es un archivo general donde se cargan cosas delsistema en el momento del arranque.#Arranque de MySQLpkill mysqlsleep 3rm /var/www/var/run/mysql/mysql.sock/usr/local/share/mysql/mysql.server startsleep 5ln /var/run/mysql/mysql.sock /var/www/var/run/mysql/mysql.sockCon estas líneas en el fichero /etc/rc.local, se “mata” cualquier demonio que se este ejecutando enese momento con el nombre mysql, luego espera 3 segundos para que los cambios surtan efecto yluego borra cualquier archivo con el nombre /var/www/var/run/mysql/mysql.sock existente en laruta del chroot del apache si existe, después se ejecuta el demonio y como el arranque puede tardarun momento, le damos 5 segundos de tiempo y luego intentamos linkear el socket al socket dentrodel chroot. Si el MySQL no encuentra el socket dentro del chroot del apache, no funcionará laintegración de las aplicaciones Web con el servidor MySQL. Tenga en cuenta que esto se presentaporque 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 yque se este haciendo el drop de privilegios con el demonio SQL, esto es que quien corre laaplicación es realmente el usuario _mysql y no el root. Esto mitigará el alcance de los ataques contralas aplicaciones Web+MySQL que tengamos en el sistema.bash-4.1# ls -la /var/www/var/run/mysql/mysql.socksrwxrwxrwx 2 _mysql _mysql 0 Nov 27 11:35 /var/www/var/run/mysql/mysql.sockbash-4.1# ps aux | grep mysqldroot 4564 0.0 1.2 944 1244 C0- I 11:35AM 0:00.10 bash -c/usr/local/bin/mysqld_safe >/dev/nullroot 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=_mysqlPara agregarle un poco mas de seguridad a la ya existente, entonces deshabiltamos el socket de redque crea el demonio MySQL, ya que todas las peticiones vendrán desde nuestro equipo local y loharán por el socket tipo archivo. Para esto en el archivo /etc/my.cnf , descomentamos la línea :skip-networkingCon 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
  22. 22. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org8.1. Aspectos importantes con MySQLEn este punto el servidor de bases de datos debe estar habilitado y listo para instalar las aplicacionesque 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 introdujoen 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 delchroot, de modo que tenga soporte para PHP, integrado con MySQL, y que se puedan enviar correosdesde 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-corephp5-core-5.2.13p0:libxml-2.7.6: okphp5-core-5.2.13p0: ok--- +php5-core-5.2.13p0 -------------------To enable the php5 module please create a symboliclink from /var/www/conf/modules.sample/php5.confto /var/www/conf/modules/php5.conf.ln -s /var/www/conf/modules.sample/php5.conf /var/www/conf/modulesThe recommended php configuration has been installed________________________________________________________________________________9.Servidor WEB: Apache en Chroot 22/36
  23. 23. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgto /var/www/conf/php.ini.Este mensaje aparece en OpenBSD 4.8, si leemos con mas atención las recomendaciones, nos diceque como el apache esta en un chroot, entonces debemos hacer ciertos enlaces para que el PHPfuncione 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 puedaencontrar. Ahora continuo con la instalación de php5-mysql, evidentemente para soportar MySQLdesde PHP:bash-4.1# pkg_add -v php5-mysqlphp5-mysql-5.2.13p0: ok--- +php5-mysql-5.2.13p0 -------------------You can enable this module by creating a symboliclink 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.inibash-4.1# ln -fs /var/www/conf/php5.sample/mysql.ini > /var/www/conf/php5/mysql.iniTambié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.txtResolving ftp.openbsd.org (ftp.openbsd.org)... 129.128.5.191Connecting to ftp.openbsd.org (ftp.openbsd.org)|129.128.5.191|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 485770 (474K) [text/plain]Saving to: `index.txt100%[========================>] 485,770 88.8K/s in 7.1s________________________________________________________________________________9.Servidor WEB: Apache en Chroot 23/36
  24. 24. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org2010-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
  25. 25. 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.tgz9.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.localdhcpd_flags="vic1"named_flags=""httpd_flags=""vic1 es la interfaz de red por la cual va a escuchar el servicio dhcpdAhora verificamos el funcionamiento de apache + php, creamos un archivo index.php y ponemosuna función de información de php.bash-4.1# pwd/var/www/htdocsbash-4.1# nano index.phpbash-4.1# cat index.php________________________________________________________________________________9.Servidor WEB: Apache en Chroot 25/36
  26. 26. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.org<?phpphpinfo();?>bash-4.1# ls -la index.php-rw-r--r-- 1 root daemon 20 Nov 27 12:36 index.phpLuego al navegar al sitio web de nuestro nuevo servidor y debemos obtener algo similar a esto:9.3. Correos con PHP y MiniSendmailHasta ahora funciona perfecto, para mis propósitos solo falta poder enviar correos desde algunasaplicaciones web con PHP, vamos a hacerlo con solo unas pocas lineas de shell:bash-4.1# pkg_add -v mini_sendmail-chrootmini_sendmail-chroot-1.3.6p0: okAhora creamos unos directorios y archivos necesarios para el funcionamiento de mini-sendmaildentro del chroot:bash-4.1# mkdir -p /var/www/usr/sbin/bash-4.1# ln /var/www/bin/mini_sendmail /var/www/usr/sbin/sendmailbash-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/etcbash-4.1# cp /etc/passwd /var/www/etc/bash-4.1# nano /var/www/etc/passwd________________________________________________________________________________9.Servidor WEB: Apache en Chroot 26/36
  27. 27. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgCon el primer comando agregamos el paquete mini_sendmail, en su versión para trabajar en elchroot del Apache, luego lo ubicamos con un enlace simbólico en el lugar en el que PHP esperaencontrar el binario de Sendmail, y luego agregamos algunas cosas del sistema completo quemini_sendmail necesita para trabajar, como son una shell, y el archivo /etc/passwd sin embargoeditamos fuertemente este, de modo que solo dejamos unos pocos usuarios sin importancia, ademásaunque al darle acceso a una shell dentro de la chroot a la que tiene acceso el Apache secompromete un poco la seguridad, esto sigue comprometiendo solo a la chroot y no a todo elsistema. Si en este momento puedo comprobar de nuevo la configuración de los servidores con elsiguiente comando:bash-4.1# sh /etc/rc9.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 moodlemoodle-1.9.7:php5-xmlrpc-5.2.13p1: okmoodle-1.9.7:curl-7.20.0: okmoodle-1.9.7:php5-curl-5.2.13p0: okmoodle-1.9.7:php5-mbstring-5.2.13p0: okmoodle-1.9.7:png-1.2.44: okmoodle-1.9.7:jpeg-8b: okmoodle-1.9.7:t1lib-5.1.0p2: okmoodle-1.9.7:php5-gd-5.2.13p0: okmoodle-1.9.7: ok...Moodle requiere varios módulos adicionales de PHP que serán instalados como dependencias, soloqueda 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
  28. 28. 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 chrootbash-4.1# pwd/var/www/htdocsbash-4.1# ln -s ../moodle/ /var/www/htdocs/moodle ● Creo la base de datos para moodle:bash-4.1# mysqladmin -u root -p create moodleEnter 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 instalarEsto no es necesario pero le añade un factor de seguridad puesto que si se presenta un problema deseguridad 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 -pEnter password:Welcome to the MySQL monitor. Commands end with ; or g.Your MySQL connection id is 5Server version: 5.1.48-log OpenBSD port: mysql-server-5.1.48Copyright (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 licenseType 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
  29. 29. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgAhora 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 namesLuego cambio la ruta a la que apuntará el moodle, puedo usar también nombres, esto es solo unejemplo.$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 definidahttp://192.168.1.5/moodleDe ahí en adelante el procedimiento es intuitivo, solo basta hacer click, click y leer el manual decomo usar moodle. de esta forma tendremos una aplicación OAMP funcional y segura en pocotiempo.NOTA: Cualquier aplicación OAMP se instala con el mismo procedimiento general, perosiempre es recomendable leer los archivos README o INSTALL que vengan en el paqueteque 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 deseguridad. Primero hacemos un par de modificaciones en unos archivos del sistema para activar elPF y el forwarding para el NAT.Para que se active al arrancar el sistema se debe agregar pf=YES al archivo /etc/rc.conf.localecho "pf=YES" >> /etc/rc.conf.local________________________________________________________________________________10.NAT y Firewall (PF - Packet Filter) 29/36
  30. 30. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgAhora para activar el forwarding necesario para el NAT, hay que modificar elarchivo /etc/sysctl.conf , como no voy a usar Ipv6 solo requiero modificar una línea quitando elcomentario que viene por omisión.net.inet.ip.forwarding=1La 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 encuentracompletamente comentado. La estructura de este archivo es rígida, por lo que se debe seguir elsiguiente 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 filtroEn mi caso el archivo de configuración quedo así, la explicación en los comentarios.bash-4.1# cat /etc/pf.conf#MACROS#Interfaz externawan="vic0"#Intefaz internalan="vic1"#Red internared_lan="192.168.1.0/24"#OPCIONES#No filtrar en las interfaces de loopbackset skip on lo0#SCRUB#Normalización de los paquetes, que entran y salen en todas las interfacesmatch 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
  31. 31. 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 saleblock in on $wanpass out all#Antispoof en la LAN#Para que no falsifiquen nuestras direccciones IP en la LANantispoof quick for $lan inet#Permitir conexiones ssh y web desde afuera, logueando el primer paquete para un #analisisposteriorpass in log on $wan proto tcp from any to any port sshpass in log on $wan proto tcp from any to any port 80Como se ve faltan algunas secciones, como el encolamiento (queueing), pero no todas las seccionesson necesarias, y solo se pone lo que necesitemos, en cuanto a la sintaxis del PF me parece muysencillo, y es que se entiende casi como leyendo en lenguaje natural, en la FAQ 4 oficial deOpenBSD 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 estecaso 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 queestá 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 oejecutar el comando:# pfctl -f /etc/pf.conf11. Servidor Proxy (Squid)Squid viene en varios sabores, con soporte snmp, transparente, los dos, o ninguno, en este casoevidentemente escogí solo con soporte para proxy transparente que es lo que necesito, así misusuarios no notarán la diferencia entre no tener proxy o tenerlo, y la configuración en sus equiposserá 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 paquetesdisponibles.bash-4.1# grep -i squid index.txt-rw-r--r-- 1 276 125 65007 Aug 10 20:53:51 2010 lightsquid-1.8.tgz4 http://www.openbsd.org/faq/pf/________________________________________________________________________________11.Servidor Proxy (Squid) 31/36
  32. 32. 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.tgzUna vez encontrado el paquete requerido lo instalamos:bash-4.1# pkg_add squid-2.7.STABLE9.tgzAl 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 fiEsto nos informa las diferencias locales de Squid en OpenBSD, nos cuenta que los archivos deconfiguración están en /etc/squid, ejemplos en /usr/local/share/examples/squid, mensajes de erroren /usr/local/share/squid/errors, ejemplos de error en /usr/local/share/examples/squid/errors, losiconos 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 primeravez, y las últimas líneas nos muestra que es lo que debemos poner en el archivo /etc/rc.local parainicializarlo automáticamente con el sistema.Se configura el /etc/squid/squid.conf según las opciones que se deseen, este tiene también la mismaestructura y contenido que en cualquier otro sistema operativo, aquí voy a comentar solo las cosasespecíficas para tener en cuenta.Primero que todo, la instalación por defecto solo admite el sistema de archivos ufs, y la política dereemplazo lru (yo intenté usar otras opciones y no me lo permitió, diciendo que eran opcionesequivocadas, o desconocidas), esto se debe a las opciones con las que se compilo el paquete, si sedesea 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 transparentdonde 3128 es el puerto por defecto en el que escucha el servidor proxy.________________________________________________________________________________11.Servidor Proxy (Squid) 32/36
  33. 33. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgPara que este proxy transparente funcione correctamente, es necesario agregar la siguiente línea enel 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 3128Con esta línea se redirecciona todo el tráfico saliente dirigido a web (puerto 80) al puerto local en elque escucha el Squid, así que este será el que atienda la petición. Para que Squid loguee susactividades 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 ycomentados, en mi caso funcionó con la primera línea:logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mtLuego se ejecuta el siguiente comando para crear las carpetas de la cache:bash-4.1# squid -z2010/11/27 16:42:53| Creating Swap DirectoriesAquí pueden verse además los errores de sintaxis que puedan haber en el squid.conf, una vez que seejecuta sin error, se puede iniciar el servicio, con el siguiente comando:bash-4.1# /usr/local/sbin/squidPara que siempre se inicie con el sistema se debe agregar las líneas que nos mostró después de lainstalació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 fiCuando se quiera hacer un cambio en la configuración del Squid sin pararlo, basta cambiar losarchivos de configuración y luego usar el comando siguiente:bash-4.1# /usr/local/sbin/squid -k reconfigureEn caso de necesitar limpiar la cache, puede hacerse el siguiente procedimiento:bash-4.1#/usr/local/sbin/squid -k shutdownbash-4.1#rm -rf /var/squid/cachebash-4.1#squid -zbash-4.1#/usr/local/sbin/squid________________________________________________________________________________11.Servidor Proxy (Squid) 33/36
  34. 34. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgDe esta manera se detiene, luego se borra la cache existente, se reconstruye, y se inicia nuevamenteel servicio. Si queremos verificar el funcionamiento del squid, podemos usar el comando tail paramonitorear el archivo de log:bash-4.1# tail -f /var/squid/logs/access.log1290910480.566 124 192.168.1.50 TCP_MISS/304 275 GEThttp://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 GEThttp://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ángastando mis usuarios el ancho de banda, y saber si tengo que hacer algún tipo de control sobreestos, puedo implementar la herramienta sarg5, lo primero que hago es instalar el software:bash-4.1# pkg_add -v sargsarg-2.2.5p0: okEl archivo de configuración se encuentra en /etc/sarg/sarg.conf, en este hago las siguientesmodificaciones :#Que el reporte me salga en español:language Spanish#Lugar donde se encuentra el access.log del squidaccess_log /var/squid/logs/access.log#Directorio de trabajo temporaltemporary_dir /tmp#Directorio de salida, yo cree la carpeta manualmente con mkdir.output_dir /var//www/htdocs/sarg#Formato de fecha decente dd/mm/yyyydate_format e#Haga todos los reportes disponibles:report_type topusers topsites sites_users users_sites date_time denied auth_failuressite_user_time_date downloads# Ubique apropiadamente mi servidor web:www_document_root /var/www/ htdocsFácil!, asi como lo es todo en OpenBSD ;)Hay muchas otras opciones en este archivo, pero está bien documentado, en el mismo formato delsquid.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
  35. 35. Instalación de servicios básicos en OpenBSD v.4.8 - Astrid Eliana Sánchez Cortés, http://www.openbsdcolombia.orgbash-4.1# sargSARG: Records in file: 45, reading: 100.00%SARG: Reporte generado satisfactoriamente en /var/www/htdocs/sarg/27Nov2010-27Nov2010De esta manera se crea en el directorio que pusimos como de salida el reporte completo, y paraaccederlo 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/filesY otros documentos de:http://openbsd.org/faq/faq4.html#AddFileSethttp://www.openbsd.org/ports.htmlhttp://www.openbsd.org/faq/pf/index.htmlhttp://www.openbsd.org/faq/faq6.html#DHCPhttp://www.kernel-panic.it/openbsd/proxy/index.htmlhttp://www.openbsdsupport.org/mysql.htmhttp://www.h-i-r.net/2010/10/openbsd-48-is-almost-here-chroot-apache.htmlhttp://www.kernel-panic.it/openbsd/dns/dns3.htmlhttp://structio.sourceforge.net/guias/http://www.openbsd.org/faq/pf/nat.htmlhttp://www.openbsd.org/faq/pf/example1.html13. Historial del Documentación13.1. Actualizaciones del documentoNombre 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
  36. 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

×