SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Servidor casero con




                                        Gustavo Cortez – gustavo@lugtucuman.org.ar

                    Estructura y configuración de una red local para el hogar

Resúmen
         Instalación, configuración y estructura de un servidor dependiendo de las necesidades
         de cada familia que este a la vanguardia de la tecnología, así también como el
         presupuesto con que se cuenta. En este informe se utiliza el sistema operativo OpenBSD
         para que realice las tareas de acceso a internet, filtrado de paquetes, asociación a un
         dominio, entre otras funciones. Lo que se va a tratar aquí es la configuración y alcance
         del sistema, pasando por la estructura de red recomendada para cada caso en particular.


Índice de contenido
Resúmen...............................................................................................................................................1
Introducción..........................................................................................................................................2
Objetivos...............................................................................................................................................2
Planificación.........................................................................................................................................3
Esquema de conexión...........................................................................................................................3
Costo de implementación.....................................................................................................................5
   Servidor............................................................................................................................................5
   Modem ADSL y Switch...................................................................................................................6
   Cableado..........................................................................................................................................6
Sistemas BSD.......................................................................................................................................7
   Comparación de los sistemas BSD..................................................................................................7
      FreeBSD......................................................................................................................................7
      OpenBSD....................................................................................................................................7
      NetBSD.......................................................................................................................................7
   Introducción a OpenBSD.................................................................................................................7
   Software incluído.............................................................................................................................8
   ¿Qué son los paquetes y los portes?.................................................................................................9
Recomendaciones para la instalación............................................................................................10
OpenBSD como entorno de escritorio................................................................................................10
Configuración de la conexión a Internet............................................................................................10
  Configuración de PPP....................................................................................................................11
  Permitir el acceso a Internet...........................................................................................................12
Automatizando la conexión................................................................................................................14
  Asociando un dominio .com.ar......................................................................................................14
     Actualización de la IP...............................................................................................................15
     Automatizando la actualización de IP.......................................................................................15
  Utilidades de un dominio asociado................................................................................................18
Configuración de los clientes.............................................................................................................18
  Servidor DHCP..............................................................................................................................18
Retoques finales..................................................................................................................................19
  Asegurando el entorno...................................................................................................................20
  Configurando SendMail.................................................................................................................20
Conclusiones.......................................................................................................................................21
Referencias.........................................................................................................................................21



Introducción
Hace algunos años las necesidades de comunicación en un hogar se limitaban al uso de la linea
telefónica (sea fija o móvil), dejando de lado la conexión a Internet que en
la mayoría de los casos, se trataban de terminales que se conectaban a la
red y no se compartía el ancho de banda con otras computadoras,
utilizando el limitado enlace telefónico para transferencia de datos.
Con la llegada de la banda ancha y los constantes cambios de PC por una
nueva y más potente, las familias podían contar con más de una
computadora personal, ya que vender la vieja PC no generaba más
ganancias de las que se podría aprovechar conectándola en red y
compartiendo la costosa banda ancha que había en aquella época. Pero aún
así, no se disponía de una PC libre para que realizara la conexión, sino que
se la usaba como una terminal de trabajo más.
Luego con la disminución de precios de la banda ancha y de las PC, los usuarios hogareños ya
podían contar con pequeñas redes domésticas en las que compartir documentos, música, fotos y
hasta la conexión a Internet por banda ancha, no resultaba muy costoso. Además, se podía disponer
de la PC más vieja como “servidor” de Internet. Por eso es que, compartir la conexión, ya no
necesitaba depender de la PC principal (o la más “grande” o nueva) sino que se comenzaba a pensar
en una política más inteligente para ofrecer servicio continuado y seguro a toda la familia. Esto es ni
más ni menos que utilizar una PC de recursos moderados para que ofrezca servicios a toda la red
interna con todas las ventajas que supone un sistema libre, seguro y flexible como OpenBSD.
Por otro lado, si somos estudiantes de carreras relacionadas con las redes de comunicaciones, esta
es una buena excusa para aprender a construir una infraestructura de red estable, segura y de la
manera más simple posible utilizando software libre y sin necesidad de gastar tanto dinero en
equipamiento nuevo.

Objetivos
A veces puede resultar complicado plantear lo que se quiere obtener con un
servidor casero, ya que en muchos casos los requerimientos de usuarios va
creciendo con el tiempo, además que esta variable depende de la edad de los
usuarios. Por ejemplo, si se va a restringir ciertos sitios a menores de edad o
limitar el uso horario de la mensajería instantánea, se van a necesitar
software adicional y por consiguiente, varios retoques de configuración.
Por esta razón voy a plantear aquí los objetivos básicos con los que va a
contar nuestro servidor casero:
   ●   Instalación base de OpenBSD
   ●   Configuración de la conexión a Internet
   ●   Asociación de un dominio propio
   ●   Configuración de Packet Filter
   ●   Correo interno con SendMail
   ●   Servidor DHCP
   ●   Retoques en la configuración general del sistema
   ●   Automatización del sistema de arranque
   ●   Utilización de algunas herramientas de red y del sistema
El orden de objetivos principales aparecen de acuerdo al nivel en que se configuran (o pueden
configurar). A pesar de estas propuestas, se pueden hacer muchas cosas más en OpenBSD como
servidor casero. A continuación pueden ver un listado de las cosas que se pueden hacer, pero no se
van a cubrir con profundidad en este informe:
   ●   Sistema de control de versiones
   ●   Squid
   ●   Servidor Web con contenido dinámico
   ●   SendMail externo
   ●   Servidor de DNS
   ●   Extremo VPN con Isakmp
   ●   Muchos más...
Como pueden ver, las posibilidades de expandir los servicios con OpenBSD son “casi” infinitas, tal
que no tendríamos tiempo de listar todas ellas. Por esta razón es la importancia de plantearse
inicialmente cuales son los requerimientos de los miembros de la familia a la hora de utilizar la
conexión a Internet.

Planificación
Tal como había mencionado en el apartado anterior, se deben plantear principalmente los servicios
que se van a ofrecer a los usuarios, pero muchas veces no se sabe bien lo que se va a necesitar.
Por eso es importante en primera medida, ponernos en lugar de los usuarios (aunque seguro que
nosotros mismos somos los usuarios más complicados), y en base a esto reunir
las características que se van a configurar en el sistema. Estas se pueden
resumir en lo siguiente:
   ●   Servicio de Internet
   ●   Seguridad de la red local
   ●   Transparencia en la configuración de los terminales
Con estas tres características ya somos capaz de iniciarnos en la práctica del
asunto.

Esquema de conexión
Luego de pasar por el marco teórico y de reflexión sobre el asunto, ya podemos pensar en cómo
conectar los aparatos y qué vamos a necesitar comprar.
La siguiente figura nos muestra un esquema generalizado de la conexión que se va a realizar con
OpenBSD.




De esta manera se logra acceder a Internet mediante OpenBSD y el Modem ADSL. Pero esto es
solamente si se tiene una sola PC, cosa que no era lo que habiamos previsto anteriormente, que es
conectar a dos o más computadoras simultaneamente a Internet.
Para realizar esto se necesita de un Switch que se encarga de distribución de datos a la PC que los
ha solicitado.
Volviendo al esquema y para no complicarnos antes de tiempo, paso a describir cada uno de los
componentes. El primer elemento es una PC con dirección IP 192.168.0.35 que ha sido asignada por
el segundo elemento (que es el sistema OpenBSD de IP 192.168.0.1) previamente configurado por
el Administrador del sistema para que asignara el acceso correspondiente, mediante la interfaz de
red correspondiente. El siguiente elemento es el firewall se encarga de retener intrusos entrometidos
que quieran ingresar a nuestra red local y al mismo servidor con fines maliciosos. Por último, el
Modem ADSL realiza la conversión de interfaz que utiliza el servidor (Ethernet) hacia la línea
telefónica que previamente detecta el enlace con el proveedor y obtiene un enlace WAN a través de
la boca tipo RJ11 estándar de las líneas de teléfono.
En la siguiente figura se puede ver con más detalles de los elementos que participan en la conexión
a Internet, y también se pueden ver dos PC que comparten el acceso. Las mismas estan conectadas a
un Switch que se encarga de “repartir” los datos entre los emisores y receptores de la red.
Por otro lado, la máquina que funciona como servidor en este caso, debe disponer de dos placas de
red, en la cual una se conecta a la red local (LAN) mediante el Switch y la otra se conecta
directamente al Modem ADSL con soporte Ethernet. Más adelante vamos a ver cómo configurar el
Modem ADSL para que trabaje en modo bridge entre la interfaz Ethernet y la línea telefónica.
También se puede ver en el gráfico, que luego de llegar el cable al poste telefónico, este sale del
troncal local y va a las oficinas de comunicación, que a su ves lo transmiten con el proveedor de
conexión (en nuestro caso es Telecom).
La verificación del nombre de usuario y contraseña se realiza finalmente en el proveedor de acceso
a internet, derivado por Telecom, y finalmente “sale” la conexión al mundo.




Costo de implementación
Como se han descripto anteriomente, los materiales que se utilizan en este
proyecto, van desde un equipo completo (sin monitor) hasta unos metros de
cable para las conexiones.
En este apartado, voy a describir los materiales necesarios junto a su precio
estimado.

Servidor
El servidor puede ser una máquina de hace varios años atrás pero en buen
funcionamiento. Debe tener su gabinete en buenas condiciones y con los coolers correspondientes.
Es recomendable mantener estas características, ya que el equipo puede mantenerse encendido
varias horas, e incluso días sin ser reiniciado o apagardo, por lo que la refrigeración es punto clave
para mantener un buen servicio y funcionamiento del servidor, además de alargar la usabilidad del
mismo. Si no se dispone de un PC disponible para instalarlo como servidor, hoy en día existe la
posibilidad de comprar un equipo de marca en desuso por menos de 300 pesos.
Por ejemplo, el equipo que estoy usando actualmente (y se muestra en la imágen) tiene las
siguientes características:
   ●   Intel Pentium (P54C) (GenuineIntel 586-class) 166 Mhz
   ●   Memoria RAM 95 MB
   ●   Disco rígido QUANTUM BIGFOOT_CY4320A de 4134MB
   ●   1 Placa de red Realtek 8139 de 10/100 Mbps
   ●   2 Placas de red NE2000 (RTL8019) de 10/100 Mbps




Por supuesto que todos los componentes funcionan sin problemas, incluso la lectora de CD,
disquetera, coolers, fuente y memoria.
Si no disponen de placas de red, se pueden conseguir por menos de 20 pesos, pero hay que tener
cuidado en identificar el chipset Realtek y no de otra marca que suelen vender por el mismo precio
pero que no funcionan con OpenBSD.

Modem ADSL y Switch
El modem ADSL y Switch son componentes que hay que elegirlos como cajas cerradas, ya que no
se pueden “fabricar” como hicimos con el servidor OpenBSD en el que se va a configurar lo mismo
que grandes comerciantes como Cisco o 3Com hacen, pero por mucho menos dinero.
En cuanto al modem ADSL, nos debemos asegurar de que cuenta con una interfaz Ethernet para
conectar la placa de red del servidor y no solo con el puerto USB como la mayoría de los modems
económicos. El precio de estos aparatos no supera los 150 pesos, cumpliendo la única función de
bridge entre la interfaz Ethernet y la línea telefónica.
El switch también es un elemento muy común usado en redes hogareñas y se pueden conseguir a un
precio muy económico.




Cableado
El cableado es un componente importante que afecta en el rendimiento de la
red. Muchas veces uno culpa al proveedor de servicios que nos dan una
conexión demasiado lenta, cuando muchas veces esto se debe a una mala
instalación de los cables de red. Para ver que la velocidad de conexión es
adecuada, basta con una simple transmisión de archivos entre las terminales. Si
se trata de una red a 100 Mbps, la velocidad teórica a alcanzar debería ser de
12,5MB/s, aunque si se alcanza un 75 o 90% está muy bien también.
Hoy en día, como todos los switch soportan las normas de cableado 568-B (normal) y 568-A
(cruzado), lo más conveniente es armar directamente cables cruzados, por si alguna vez deja de
funcionar el switch o queremos simplemente conectar dos PC directamente.
La categoría del cable a utilizar también es importante, y actualmente es fácil conseguir Cat-5e a
precios razonables.
La siguiente imágen muestra el conjunto de equipos que utiliza el dominio openbsd.org para
guardar los repositorios y paquetes de las últimas versiones de OpenBSD.
Sistemas BSD
En esta sección voy a dar una pequeña introducción a los sistemas BSD en general y a OpenBSD en
particular, su desarrollo, licencia y los aspectos más destacados.
También daré algunas recomendaciones de la instalación y la configuración básica luego de una
instalación limpia

Comparación de los sistemas BSD
Existen muchas variantes de sistemas BSD, pero en esta ocación realizaré una pequeña descripción
de las tres más conocidas.




FreeBSD
La idea de FreeBSD es producir un sistema operativo utilizable para cualquier propósito, como
Ubuntu, Tuquito, Fedora, SuSE, es decir, un sistema de propósitos generales. Se intenta que sea
fácil de usar y contenga una gran cantidad de paquetes (programas) para instalar. De hecho, ya hay
distribuciones que incluyen un FreeBSD como núcleo.
OpenBSD
OpenBSD esta orientado a la seguridad más que nada. Las políticas de seguridad son muy estrictas
en el desarrollo, ya que cada código que incluyen son auditados exaustivamente para corregir la
mayor cantidad de bugs posibles.

NetBSD
NetBSD esta diseñado como sistema operativo que pueda ser distribuido gratuitamente a
profecionales, entusiastas e investigadores, para que lo usen como quieran. El objetivo principal de
este sistema es la portabilidad a través de la mayor cantidad de equipos, tanto de 32 como de 64
bits. También hacen incapié en la buena escritura del código, la estabilidad y eficiencia del sistema.




Introducción a OpenBSD
El proyecto OpenBSD es un sistema operativo libre tipo Unix, multiplataforma, basado en 4.4BSD.
Los esfuerzos de desarrollo se concentran en la portabilidad, cumplimiento de normas y
regulaciones, corrección del código, seguridad proactiva y criptografía integrada.
OpenBSD incluye emulación de binarios para la mayoría de los programas de los sistemas SVR4
(Solaris), FreeBSD, Linux, BSD/OS, SunOS y HP-UX.




Actualmente soporta las siguientes plataformas de hardware:
   ●   alpha
   ●   amd64
   ●   cats
   ●   hp300
   ●   hppa
   ●   i386
   ●   mac68k
   ●   macppc
●   mvme68k
   ●   mvme88k
   ●   sparc
   ●   sparc64
   ●   vax
OpenBSD es totalmente libre. El código binario es de libre distribución. El código fuente es de libre
ditribución. Todas las partes componentes de OpenBSD tienen unos derechos de autor con unos
términos razonables que permiten su libre distribución. Esto incluye la posibilidad de reutilizar la
mayor parte del árbol de fuentes de OpenBSD, tanto para el uso personal como para el comercial.
En una distribución regular de OpenBSD no se puede incluir ningún tipo de código que se
encuentre bajo licencias más estrictas o restrictivas. El motivo por el que se lo mantiene así es que
de este modo se salvaguarda la libre redistribución y uso de OpenBSD. También se puede utilizar,
entre otros, con fines personales, académicos, en instituciones gubernamentales y organizaciones no
gubernamentales, y en empresas privadas o públicas.




Una de las opciones interesantes es que OpenBSD o partes de él también pueden ser incorporados
libre y gratuitamente en productos comerciales.
Con frecuencia, los nuevos usuarios quieren saber si OpenBSD es muy superior a algunos otros
sistemas operativos tipo UNIX. No existe una respuesta, y esta pregunta suele dar pie a
innumerables (e infructuosos) debates encendidos. Bajo ninguna circunstancia se debe formular una
pregunta de este tipo en una lista de correo de OpenBSD.
A continuación exponemos algunas razones por las que OpenBSD es un sistema operativo de gran
utilidad. Si este es un sistema que vaya a servir a los propósitos de un usuario o no, es una cuestión
que sólo el mismo usuario podrá contestar:
   ●   Funciona en varios tipos diferentes de plataformas de hardware
   ●   Está reconocido por muchos profesionales de la seguridad informática como el sistema
       operativo tipo UNIX más seguro; esto es el resultado de una intensa e interminable auditoría
       de seguridad sobre el código fuente
   ●   Es un sistema operativo con todas las funcionalidades de UNIX que se puede adquirir de
       forma gratuita
   ●   Integra las últimas tecnologías en seguridad para la implementación de cortafuegos (filtros
       de IP) y redes privadas virtuales (VPN) dentro de un entorno distribuido
   ●   Aprovecha el intenso desarrollo actual en muchas áreas, y ofrece la oportunidad de trabajar
       con tecnologías emergentes dentro de una comunidad internacional de programadores de
       sistemas y usuarios finales
La siguiente imágen muestra una estimación de la ubicación geográfica de los desarrolladores de
OpenBSD.
Software incluído
OpenBSD se distribuye con varios productos de software de terceras partes. Estos son algunos:
   ●   XFree86, sin el estorbo de una nuevo cambio en la licencia; el
       entorno de X Window, con parches locales. Para la plataforma i386
       también se incluyen los servidores de la versión 3.3 de X a fin de
       ofrecer un soporte de tarjetas gráficas adicional. Se instala con los
       archivos de instalación x*.tgz.
   ●   GCC, el compilador de C de GNU. El equipo de OpenBSD ha
       añadido la tecnología de protección de pila Propolice, activada en la
       instalación predeterminada, y que se usa en todo el modo de usuario y
       en las aplicaciones compiladas en OpenBSD. Se instala como parte del archivo comp35.tgz.
   ●   Perl, con parches y mejoras del equipo de OpenBSD.
   ●   Apache, el servidor de web. El equipo de OpenBSD ha añadido el entorno chroot como
       predeterminado, la revocación de privilegios, y otras mejoras relacionadas con la seguridad.
       Además también incluye soporte para mod_ssl 2.8.16 y DSO.
   ●   OpenSSL, con parches y mejoras del equipo de OpenBSD.
   ●   Groff, el procesador de texto.
   ●   Sendmail, el servidor de correo, con el parche de seguridad parse8.359.2.8.
   ●   BIND, el servidor de DNS. OpenBSD ha implementado muchas mejoras en la operación de
       chroot y otros temas relacionados con la seguridad.
   ●   Lynx, el navegador de texto de web. Con soporte añadido para HTTPS, más parches del
       equipo de OpenBSD.
   ●   Sudo, que permite a los usuarios ejecutar órdenes individuales como si fueran el usuario
       root.
   ●   OpenSSH.
En realidad hay muchos más software en la instalación estándar, pero sería muy engorroso
nombrarlos a todos. Podemos revisar las referencias para ver un listado completo.

¿Qué son los paquetes y los portes?
Los paquetes son binarios precompilados de algunos de los programas más usados. Están
preparados para usarlos directamente en un sistema OpenBSD. Al igual que los portes, los paquetes
son muy fáciles de mantener y actualizar.
Aquí se puede ver una lista de las herramientas que se utilizan para gestionar paquetes:
   ●   pkg_add - utilidad para instalar distribuciones de paquetes de software
   ●   pkg_create - utilidad para crear distribuciones de paquetes de software
   ●   pkg_delete - utilidad para desinstalar distribuciones de paquetes de software previamente
       instalados
   ●   pkg_info - utilidad para mostrar información sobre paquetes de software
Por otra parte, el árbol de portes es un conjunto de archivos Makefile listos para ser bajados,
parcheados, configurados e instalados en programas de modo usuario para que pueda ejecutarlos en
el entorno de OpenBSD sin tener que hacerlo todo a mano. Se puede obtener el árbol de portes
desde el directorio /pub/OpenBSD/<versión>/ports.tar.gz en cualquiera de los servidores de FTP de
OpenBSD. Los portes más recientes se encuentran disponibles desde el módulo quot;portsquot; del árbol de
cvs, o por ftp en /pub/OpenBSD/snapshots/ports.tar.gz. Sin embargo, para la mayoría de usuarios,
instalar los paquetes en lugar de los portes será una opción mejor. Los paquetes se generan desde los
portes, y vienen precompilados y listos para usar.
OpenBSD tiene en todo momento tres versiones “activas”:
   ●   Release: La versión final que se incluye en el CD.
   ●   Stable: La versión estable, o sea la final con mejoras de seguridad y fiabilidad añadidas.
   ●   Current: La versión en desarrollo de OpenBSD.
Una vez que conocemos los fundamentos y algunas bases de la filosofía OpenBSD pasamos a la
instalación, pero como en las referencias podemos encontrar un tutorial muy detallado de la
instalación, aquí solo voy a listar algunas recomendaciones de acuerdo a mi experiencia instalando
este sistema.

Recomendaciones para la instalación
Las recomendaciones que puedo darles para una instalación limpia son las
siguientes:
   ●   Bajar siempre la última versión e instalarla en un disco vacío
   ●   Seguir los pasos de particionado como se detalla en uno de los links
       de referencias
   ●   Si se va a instalar un servidor, evitar compartir el sistema con otro
       sistema operativo
   ●   Intente usar las herramientas que vienen por defecto, y si se usa
       como servidor, no instalar el entorno gráfico y mucho menos los grandes paquetes de KDE o
       Gnome
   ●   Si se van a realizar pruebas, primero intente con una máquina virtual
Falta decir que se configura la placa de red inicialmente, el nombre de host, las ip, gateway y
contraseña de root.
Una vez finalizada la instalación, se deben completar los siguientes archivos de configuración:
   ●   /etc/myname: debe aparecer el nombre de host completo, por ejemplo host.red.lan
   ●   /etc/mygate: deberíamos usar la misma dirección IP que la definida como local del
       OpenBSD

OpenBSD como entorno de escritorio
A pesar de que OpenBSD esta orientado a la seguridad y no para ser usado como terminal de
usuario con entorno gráfico y demás, muchos intrépidos lo utilizan como sistema principal con
vistosos escritorios y con la seguridad explotada al máximo. Aquí veremos algunas capturas de
pantalla de escritorios OpenBSD para que veamos que no solo con Linux se pueden conseguir
vistosos escritorios.




Configuración de la conexión a Internet
Suponiendo que ya hemos instalado correctamente OpenBSD en el futuro equipo servidor, ahora
precedemos a configurar la conexión a Internet.
Primero hay que conectar la placa de red libre (que no esta conectada al switch), a la interfaz
ethernet del modem ADSL, y vamos al archivo /etc/hostname.interfaz, donde “interfaz” se debe
reemplazar por la interfaz de red. Por ejemplo en mi equipo tengo lo siguiente:
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33208
        groups: lo
        inet 127.0.0.1 netmask 0xff000000
        inet6 ::1 prefixlen 128
        inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:08:54:b2:48:b6
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
        inet6 fe80::208:54ff:feb2:48b6%rl0 prefixlen 64 scopeid 0x1
ne1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:c0:df:ab:2e:f1
        media: Ethernet autoselect (10baseT full-duplex)
        inet6 fe80::2c0:dfff:feab:2ef1%ne1 prefixlen 64 scopeid 0x2
ne2: flags=8822<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> mtu 1500
        lladdr 00:c0:df:ab:0b:e9
        media: Ethernet autoselect (10base2)


La interfaz lo0 corresponde a loopback o interfaz local. Las interfaces de red son rl0, ne1 y ne1, de
las cuales, la primera se conecta al switch y tiene asignada una dirección IP (192.168.0.1), mientras
la segunda interfaz esta conectada directamente al modem ADSL. La última interfaz no esta
conectada, pero se la puede usar para configurar zonas DMZ.
Para que esto sea posible, en el archivo /etc/hostname.ne1 se escribe solamente:
up


De esta manera se inicia la placa de red y se la activa para usar con el Modem ADSL.

Configuración de PPP
Para establecer la conexión se utiliza un protocolo de comunicación punto a punto (PPP), que será
encargado de realizar la autenticación con el proveedor de servicio, entre otros detalles necesarios
por el protocolo. Pero PPP no esta solo, y como se trata de una conexión por la interfaz ethernet, se
utiliza otro protocolo que se encarga de encapsular a PPP sobre la capa ethernet, llamada PPPoE
(PPP over Ethernet) que ofrece además cifrado y compresión de datos.
El archivo que debemos modificar para realizar la conexión a Internet desde OpenBSD es
/etc/ppp/ppp.conf que lleva todos los parámetros necesarios para la comunicación, incluyendo los
nombres de usuarios y contraseñas, por lo que es muy recomendable que solamente pueda ser leido
por el administrador (root). Un ejemplo de configuración puede ser la siguiente:
default:
 set log Phase Chat LCP IPCP CCP tun command

proveedor:
 set redial 15 0
 set reconnect 15 10000
 set device quot;!/usr/sbin/pppoe -i ne1quot;
 set speed sync
 disable acfcomp protocomp
 deny acfcomp
 enable lqr
 set lqrperiod 5
 set dial
 set login
 set timeout 0
 set authname quot;nombre@arnet_o_cualquiera-tuc-xxxquot;
 set authkey quot;$uP3rP@s$w0rdquot;
add! default HISADDR


Luego ejecutando desde la linea de comandos lo siguiente:
$ sudo ppp -ddial proveedor
Working in ddial mode
Using interface: tun0
$


Si nos aparece lo mismo de arriba, significa que las cosas andaron bien. Para comprobarlo, podemos
mirar en los procesos del sistema con “px ax” y localizar que los siguientes dos procesos aparezcan:
   ●   28682 ?? Is      0:00.23 ppp -ddial arnet
   ●   25835 ?? I      0:00.08 /usr/sbin/pppoe -i ne1
Y para saber la dirección IP que nos ha asignado el proveedor, podemos ejecutar “ifconfig” para ver
el nuevo dispositivo túnel que ha creado ppp llamado tun0:
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492
        groups: tun egress
        inet 190.137.64.32 --> 200.3.60.15 netmask 0xffffffff
De esta manera, sabemos que estamos conectado y que la dirección IP que nos asignaron es
190.137.64.32. Además como el archivo ppp.conf indicaba en la última linea, se agregaron a las
tablas de ruteo la dirección de gateway del proveedor por defecto:
$ route show -inet
Routing tables

Internet:
Destination             Gateway                    Flags    Refs        Use      Mtu    Interface
default                 200.3.60.15                UGS         2      11740        -     tun0
loopback                localhost                  UGRS        0          0    33208     lo0
localhost               localhost                  UH          1        120    33208     lo0
192.168.0/24            link#1                     UC          2          0        -     rl0
superhijitus            00:08:54:b2:48:b6          UHLc        1        466        -     lo0
192.168.0.35            00:1e:90:22:26:1c          UHLc        1     166475        -     rl0
200.3.60.15             host32.190-137-64.         UH          1          0     1492     tun0
BASE-ADDRESS.MCAST      localhost                  URS         0          0    33208     lo0


Como podemos ver, el destino “default” tiene el gateway del proveedor para la nueva interfaz tun0.
Pero si intentamos hacer un ping a algún dominio, seguro no vamos a poder, pues aún no se han
configurado los servidores DNS. Como OpenBSD viene con un servidor de DNS preconfigurado y
listo para usar con direcciones de Internet, podemos iniciarlo con el comando “named &” y editar el
archivo /etc/resolv.conf con los siguientes valores:
lookup file bind
search red.lan
nameserver 192.168.0.1
nameserver 200.45.191.35


La linea de lookup dice donde buscar primero para resolver nombres, en este caso en el archivos
/etc/hosts y si no se encuentran ahí, utiliza el servidor DNS. A veces es buena práctica agregar el
DNS del proveedor por si aún no hemos ejecutado o configurado Named en nuestro OpenBSD.
Hasta aquí, si todo ha salido bien, podemos acceder a Internet desde el servidor, pero aún no hemos
permitido que los demás equipos de la red, puedan acceder a Internet.
Permitir el acceso a Internet
Si ya podemos conectarnos a Internet desde OpenBSD, ya sea probando alguna página con lynx o
viendo si responden a ping dominios conocidos, podemos proseguir a permitir el acceso de las otras
PC.
Para esto hay que cambiar el valor 0 (cero) por 1 (uno) del archivo /etc/
sysctl.conf en las lineas:
   ●   net.inet.ip.forwarding=1      # 1=Permit forwarding (routing) of
       IPv4 packets
   ●   net.inet6.ip6.forwarding=1      # 1=Permit forwarding (routing)
       of IPv6 packets
Luego activar el firewall Packet Filter que viene de serie en OpenBSD
en el archivo /etc/rc.conf para que se ejecute en el inicio del sistema.
También podemos habilitar otros servicios útiles como Named:
   ●   named_flags=quot;quot;         # for normal use: quot;quot;
   ●   pf=YES              # Packet filter / NAT
Nada más nos queda configurar PF para que realice las operaciones de NAT (traducción de
direcciones de red), es decir para que los equipos de la red local puedan acceder a Internet con la IP
pública asignada por el proveedor. Un ejemplo de configuración podría ser:
# Interfaces de red
ext_if=quot;tun0quot;
int_if=quot;rl0quot;

# Direcciones IPv4 privadas
priv_nets = quot;{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }quot;

# Politicas
set block-policy return
set loginterface $ext_if

# Normalizacion
scrub in all

# Ruteo, NAT y redireccionamiento
nat on $ext_if from $int_if:network to any -> ($ext_if)

# Reglas de filtrado
block all
pass quick on $int_if all
pass quick on lo0 all
pass quick on $ppp_if all

block drop in quick on $ext_if from $priv_nets to any
block drop out quick on $ext_if from any to $priv_nets

# Permite el trafico desde la red interna
pass in on $int_if from $int_if:network to any keep state
pass out on $int_if from any to $int_if:network keep state
# Permite salida de paquetes tcp, udp, icmp
pass out on $ext_if proto tcp all modulate state flags S/SA
pass out on $ext_if proto { udp, icmp } all keep state


Estos parámetros de configuración permiten la navegación libre por Internet, con todos los puertos
del servidor bloqueados. Ahora podemos reiniciar el sistema y PF ser inicia junto con los servicios
de red, además de agregar una interfaz para monitorear su funcionamiento:
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33208
        groups: pflog


Por ejemplo para monitorear los mensajes que envía PF se puede hacer un “tcpdump -i pflog0”.
De esta manera, reiniciando el sistema, y luego conectándonos a Internet mediante “ppp -ddial
proveedor”, estariamos dando acceso a todas las máquinas de la red. Lo que nos queda es
automatizar un poco las cosas.

Automatizando la conexión
Para que no sea necesario acceder al servidor cada vez que nos quieramos conectar, y con solo
encender el equipo, realice la conexión de forma automática, debemos crear y modificar unos
cuantos archivos.
En primer lugar debemos configurar el archivo /etc/rc.local agregando al final del archivo lo
siguiente:
echo -n 'Estableciendo PPPoE DSL: '; ppp -ddial proveedor
echo -n 'Estableciendo conexion: '
for i in 10 9 8 7 6 5 4 3 2 1 0; do
     sleep 3
     echo -n quot;$iquot;
     if /usr/local/sbin/adsl-status > /dev/null; then
         break
     fi
done
echo -n 'nEstado: '; /usr/local/sbin/adsl-status


Lo que hace el script anterior es llamar al comando ppp para que se conecte con “proveedor”
definido en /etc/ppp/ppp.conf y esperar unos segundos (sleep) por diez veces, hasta que otro script
(adsl-status) devuelva cierto, es decir que devuelva la dirección IP asignada por el proveedor. A este
script lo debemos crear a mano y darle permisos de ejecución:
$ sudo touch /usr/local/sbin/adsl-status
$ sudo chmod +x /usr/local/sbin/adsl-status


Luego editamos el archivo con el siguiente contenido:
#!/bin/sh

IP=$(/sbin/ifconfig tun0 | awk '/netmask/{print $2}')

if [ -z   quot;$IPquot; ]; then
   echo   quot;Enlace ADSL no esta conectado.quot;
   exit   1
else
   echo   quot;ADSL conectado, Direccion IP $IPquot;
   exit   0
fi


De esta manera, cada vez que arranque el sistema, se iniciarán los servicios por defecto (como SSH,
Inetd, etc.), y los que decidimos que iniciaran automáticamente como Packet Filter y el script de
conexión a Internet. Aunque en realidad OpenBSD ejecuta automáticamente todos los comandos
que se introduzcan en /etc/rc.local, por eso hay que tener especial cuidado al editar este archivo,
sino, pueden ocurrir errores al inicio y si no tenemos un monitor dedicado para ver los mensajes del
sistema, no vamos a saber cual es el error. Por eso es recomendable al principio monitorear todos
los mensajes de arranque del sistema.
Luego nos queda asociar un dominio a la dirección IP que nos asigna el proveedor, que se verá a
continuación.

Asociando un dominio .com.ar
En primer lugar debemos tener un dominio registrado en
http://www.nic.ar, cuyos pasos se pueden resumir como sigue:
   ●   Registrar persona
   ●   Registrar entidad
   ●   Registrar dominio
El trámite a veces es un poco largo, pero lo más importante es a la hora de registrar el dominio, ya
que debemos agregar como servidores DNS a los que nos provee el servicio de DNS gratuito para
asociar la IP al dominio. De los más conocidos podemos encontrar a:
   ●   Zoneedit
   ●   FreeDNS
   ●   DnsExit
   ●   Entre otros
El que conozco en particular es Zoneedit, es gratuito y permite asociar hasta 5 dominios sin costo.
Luego de registrarnos, nos pide el nombre de dominio inicial, y nos provee los DNS necesarios para
ponerlos en nic.ar. La siguiente es una captura de mi cuenta de Zoneedit donde se ven los DNS, el
nombre de dominio y la IP asociada.

Actualización de la IP
Para actualizar el dominio a la IP que nos asigna el proveedor existen varios métodos que se pueden
utilizar con Linux y *BSD. Los más sensillos son usando la linea de comandos, con los programas
Lynx o Wget usando las siguientes sintaxis:
   ●   lynx -source -auth=username:password 'http://dynamic.zoneedit.com/auth/dynamic.html?
       host=www.mydomain.com'
   ●   wget -O - --http-user=username --http-passwd=password 'http://dynamic.zoneedit.com/auth/
       dynamic.html?host=www.mydomain.com'
Como OpenBSD no viene con wget de serie, tendremos que usar Lynx (que por cierto, no es mucho
problema). Si probamos esto, deberiamos obtener el mensaje de que ya ha sido actualizado el
dominio a la dirección IP que nos ha asignado el proveedor.

Automatizando la actualización de IP
Como queremos que todo se haga de manera automática, lo mejor es instalar el paquete ddclient
mediante el comando (suponiendo que elegimos los repositorios de Argentina):
$ sudo pkg_add -v
http://openbsd.md5.com.ar/pub/OpenBSD/4.3/packages/i386/ddclient-3.7.2.tgz


Luego de la instalación, se crea el directorio y archivo de configuración en /etc/ddclient. Lo que
debemos modificar con los datos de la cuenta en Zoneedit es el archivo /etc/ddcliente/ddclient.conf
que debe contener como mínimo lo siguiente:
daemon=300                                     #   check every 300 seconds
syslog=yes                                     #   log update msgs to syslog
mail=gustavo                                   #   mail all msgs to root
mail-failure=gustavo                           #   mail failed update msgs to root
pid=/var/run/ddclient.pid                      #   record PID in file.
ssl=yes                                        #   use ssl-support.Works with ssl-library
use=web                                        #   via web
##
## ZoneEdit (zoneedit.com)
##
server=www.zoneedit.com,            
protocol=zoneedit1,                 
login=nomre_cuenta,                 
password=$uP3r$3&r3tP@s$            
gustavocortez.com.ar




Ahora es necesario ejecutar ddclient y probar su funcionamiento. Los parámetros que utiliza son
muy sencillos, pero si ya hemos editado el archivo de configuración, no harán falta parámetros
adicionales, pero por ejemplo para ejecutarlo como “daemon”, que envíe información a Syslog y
cualquier otra información a nuestra cuenta local, debemos ejecutar ddclient con los siguientes
argumentos:
   ●   ddclient -daemon=0 -syslog -quiet retry -mail gustavo
Pero con solo ejecutar “ddclient” a secas, deberíamos ver un proceso similar a este:
   ●   8776 C0- I     2:49.43 perl: ddclient - sleeping for 280 seconds (perl)
Como se había indicado en el archivo de configuración, ddclient se ejecuta (en busca de cambios en
la IP) cada 300 segundos. Además para saber que el dominio se ha actualizado, ddclient envía un
mensaje al usuario designado con la información siguiente (por ejemplo):
SUCCESS: updating gustavocortez.com.ar: IP address set to 190.226.158.2 (200:
Update succeeded.)
regards,
   ddclient@superhijitus.red.lan (version 3.7.1)


Si ocurre algún error, también se notifica por correo. Además OpenBSD envía información diaria
del estado del sistema, si se han modificado archivos, el promedio de uso del equipo, y demás
información con respecto al disco. Por esta razón es importante tener bien configurado Sendmail al
menos para usuarios locales.
Volviendo a ddclient, si todo ha salido bien, debemos agregarlo al archivo /etc/rc.local para que
inicie automáticamente con el sistema. Pero hay que tener en cuenta que antes debemos estar
conectados, por eso el comando se lo ejecuta posteriormente al script de conexión. Con esta linea
luego del script de conexión basta:
   ●   echo -n 'Estableciendo dominios... '; /usr/local/sbin/ddclient -file /etc/ddclient/ddclient.conf

Utilidades de un dominio asociado
Con esta explicación es suficiente para tener el equipo servidor con OpenBSD totalmente
automatizado y listo para ser utilizado con solo encenderlo y esperar unos minutos a que se inicie y
se establezca la conexión.
El interés de tener un dominio asociado a la IP que nos asigna el proveedor puede ser que
quieramos tener un servidor Web local con wiki o blog para poder acceder a él desde otro lugar.
También puede resultar importante establecer la conexión por SSH para realizar tareas
administrativas.

Configuración de los clientes
Hasta ahora solamente se ha hablado de establecer la conexión a Internet
con el servidor OpenBSD y que “supuestamente” permite la conexión de los
clientes a Internet a través de la puerta de enlace del mismo.
Pero si la configuración en los clientes no se han realizado adecuadamente
es posible que nunca lleguemos a conectarnos. De esta manera, hay que
configurar los clientes para que tengan dirección IP fija que pertenezcan a la
red del servidor (por ejemplo a la red 192.168.0.0), su puerta de enlace
apunte a la IP de servidor y los DNS pueden ser del OpenBSD (si lo hemos
configurado para iniciarlo en el arranque) o del proveedor.
Si tenemos varios equipos en casa, con diferentes sistemas operativos, la mejor solución es
configurar un servidor DHCP en el servidor, para evitar asignar direcciones IP manualmente a cada
equipo. En BSD el cliente de DHCP se denomina dhclient y se puede configurar para iniciar en el
arranque. En Linux también tenemos por defecto un cliente DHCP (a menos que usemos Gentoo,
ahí tendríamos que instalarlo a mano).

Servidor DHCP
Un servidor DHCP permite al equipo asignar automáticamente direcciones IP de determinado rango
a los nuevos clientes (equipos de la red). Esta funcionalidad, nos ahorra mucho tiempo y esfuerzo
de lo que sería configurar IP y Gateway en cada equipo que se una a la red.
En OpenBSD resulta muy sencillo configurar el servidor DHCP, nada más indicando que inicie al
arranque en el archivo /etc/rc.conf cambiamos la linea:
dhcpd_flags=NO
por
dhcpd_flags=””


Luego editamos la configuración propiamente dicha de DHCP donde se indica el rango de IP y los
DNS que se les va a transmitir a los usuarios. El primer archivo es el /etc/dhcpd.conf que debe
tener lo siguiente (al menos así lo tengo yo):
shared-network LOCAL-NET {
        option domain-name quot;red.lanquot;;
        option domain-name-servers 192.168.0.1;

            subnet 192.168.0.0 netmask 255.255.255.0 {
                    option routers 192.168.0.1;

                       range 192.168.0.32 192.168.0.127;
            }

}


El otro archivo es donde se indica la interfaz por la que “entrarán” los cliente a solicitar la
información de la red. Este archivo es /etc/dhcpd.interfaces y en mi caso contiene el nombre de la
interfaz de red local:
      ●   rl0
De esta manera ya tenemos configurado el servidor DHCP para que acepte conexiones a través de la
red local (interfaz rl0) y asigne un rango de IP de 192.168.0.32 a 192.168.0.127, lo cual permite 95
clientes simultaneamente. Los clientes solo deben saber que tienen que buscar un servidor DHCP.

Retoques finales
Ahora que tenemos un sistema robusto, seguro y muy flexible en cuanto a la configuración del
mismo, podemos proceder a realizar unos retoques finales para dormir tranquilos.
Para ver los servicios que estoy ejecutando en mi sistema OpenBSD 4.3 basta con un “ps ax” con la
siguiente salida:
$ ps ax
  PID TT        STAT        TIME   COMMAND
    1 ??        Is       0:00.06   /sbin/init
20075 ??        Is       0:01.72   syslogd: [priv] (syslogd)
11440 ??        I        0:07.20   syslogd -a /var/named/dev/log -a /var/empty/dev/log
23321 ??        Is       0:00.05   pflogd: [priv] (pflogd)
 4388 ??        I        0:19.11   pflogd: [running] -s 116 -i pflog0 -f /var/log/pflog
(pflog
 2601 ??        Is       0:00.03   named: [priv] (named)
23128 ??        I        1:15.80   named
23920 ??        Is       0:00.11   /usr/sbin/dhcpd rl0
32432 ??        Is       0:00.23   inetd
 5577 ??        Is       0:00.07   /usr/sbin/sshd
14417 ??        Is       0:29.58   sendmail: accepting connections (sendmail)
20139 ??        Is       0:01.32   cron
10485 ??        Is       0:07.62   sshd: gustavo [priv] (sshd)
32341 ??        I        0:31.25   sshd: gustavo@ttyp0 (sshd)
28682 ??        Is       7:23.01   ppp -ddial arnet
25835 ??        I        2:19.97   /usr/sbin/pppoe -i ne1
 9284 ??        Is       0:00.01   /usr/local/bin/svnserve -d --listen-host 192.168.0.1 -
r /va
24124 ??        Is       0:00.12 /usr/local/bin/svnserve -d --listen-host 190.137.64.32
-r /
28303   p0    Is       0:00.96   -ksh (ksh)
14206   p0    R+       0:00.00   ps -ax
 8776   C0-   I        2:55.17   perl: ddclient - sleeping for 50 seconds (perl)
22579   C0    Is+      0:00.06   /usr/libexec/getty std.9600 ttyC0


Se pueden ver los servicios que ya se han explicado su configuración y además algunos otros como
dos servidores de Subversion e inetd, que seguramente todos lo tienen levantado.
El servicio inetd es un conjunto de servicios que se iniciar de acuerdo a la demanda o solicitud de
un servicio determinado. En muchos casos es conveniente desactivar estos servicios para no crear
agujeros de seguridad, ya que los servicios básicos que ofrece son: ftp, finger, ident, pop3, daytime,
entre otros. Estos datos se encuentran en /etc/inetd.conf y habilitarlos es tan simple como
descomentar una linea o comentarla para deshabilitarlo. En particular utilizo pop3 para recoger el
correo de mi usuario local, a pesar de que no es seguro ya que las contraseñas y datos se envian en
texto plano, por lo que no es recomendable realizar esto en redes de mayor tamaño, donde siempre
hay alguien husmeador datos (con tcpdump por ejemplo) y mirando el tráfico de la red.
Luego las conexiones de terminales se pueden limitar a solamente una terminal virtual, de manera
que se libera memoria innecesaria. El archivo de terminales se encuentre en /etc/ttys, y solo hay que
cambiar el valor “on” por el valor “off”:
console quot;/usr/libexec/getty std.9600quot;              vt220     off secure
ttyC0   quot;/usr/libexec/getty std.9600quot;              vt220     on secure
ttyC1   quot;/usr/libexec/getty std.9600quot;              vt220     off secure

Asegurando el entorno
Para mejorar un poco la seguridad del sistema, se puede quitar la contraseña del usuario “root” para
evitar cualquier intrusión. Es decir, de la misma manera que se usa en Ubuntu, con el comando
“sudo” se pueden realizar las operaciones del sistema. Para agregar un usuario al grupo wheel, es
necesario el comando “gpasswd -a <usuario> wheel”. Además debemos asegurarnos de que al
ejecutar “visudo” para editar el archivo de configuración de sudo, contenga la linea:
   ●    %wheel ALL=(ALL) SETENV: ALL
Y luego quitar la contraseña de root, eliminando la cadena de texto “extraño” del archivo
/etc/master.passwd de manera que quede así:
   ●    root::0:0:daemon:0:0:Root &:/root:/bin/ksh
Así nadie va a poder ingresar como root. Pero también debemos ser cuidadosos a la hora de agregar
usuarios despistados al grupo wheel.

Configurando SendMail
Sendmail se puede configurar para repartir correo de forma local, o también
para enviar correo externo. En este caso hay que cambiar la linea de
configuración de /etc/rc.conf con el valor predeterminado que viene con
OpenBSD para permitir envios externos, no solo local:
sendmail_flags=quot;-L sm-mta -C/etc/mail/sendmail.cf -bd -q30mquot;
spamd_flags=NO          # for normal use: quot;quot; and see spamd(8)
spamd_black=NO          # set to YES to run spamd without
greylisting
spamlogd_flags=quot;quot;       # use eg. quot;-i interfacequot; and see
spamlogd(8)


Luego en /etc/mail/aliases debemos agregar el nombre de usuario para que nos llegue el correo del
sistema y no al usuario root (supuestamente deshabilitado), quedando así:
# Well-known aliases -- these should be filled in!
root:gustavo
manager:gustavo
dumper:gustavo


Como este archivo debe generar una base de datos en /etc/mail/aliases.db, dentro del directorio /etc/
mail debemos ejecutar el comando “make”. Esto es muy importante, sino los cambios no sufren
efecto. Luego hay que indicar al servidor que dominios acepta para el envio de correo. Es
recomendable poner la dirección IP de la red local, para que los usuarios de la red local puedan
enviar correo usando Sendmail. Por ejemplo, el archivo /etc/mail/relay-domains podría quedar así:
192.168.0
red.lan


De esta manera, reiniciando el sistema o reiniciando sendmail, todo debería funcionar como se ha
indicado. Por ejemplo podemos probar enviando un correo a alguna cuenta externa, pero
seguramente lo van a tomar como SPAM porque los dominios personales muy frecuentemente se
etiquetan como SPAM por los servicios de correo conocidos.

Conclusiones
En este informe se han dado detalles de configuración de los sistemas OpenBSD, así también como
una pequeña introducción teórica para conocer los fundamentos de su desarrollo y la diferencia con
otros sistemas derivados. También se ha hecho incapié en organizar los servicios que se van a
ofrecen sin extendernos demasiado debido seguramente a las limitaciones de hardware, ya que
seguro se trata de equipos viejos.
Por otro lado se ha intentado mantener un esquema en cuanto a la instalación y configuración de los
diferentes servicios, para que de una manera simple y rápida podamos tener un servidor funcional
en poco tiempo para aprovechar luego a investigar en los comandos que trae, las aplicaciones, los
ajustes de seguridad que se puedan hacer y los servicios adicionales que se pueden instalar.
Por último se han detallado algunas configuraciones finales para incentivar a los administradores a
continuar con el mantenimiento y mejora de sus servidor hogareño, ya que es la única manera de
aprender a mantener un servicio fiable es practicando y buscando mejoras.

Referencias
   ●   http://www.openbsd.org/es/
   ●   http://www.openbsderos.org/
   ●   http://www.zoneedit.com/doc/dynamic.html
   ●   http://ice.coding.com.br/openbsd/utilizando-o-openbsd-como-desktop.html
   ●   http://en.wikipedia.org/wiki/OpenBSD
   ●   http://es.wikipedia.org/wiki/OpenBSD

Weitere ähnliche Inhalte

Was ist angesagt?

NetFlow Analyzer Training Part I: Getting the initial settings right
NetFlow Analyzer Training Part I: Getting the initial settings rightNetFlow Analyzer Training Part I: Getting the initial settings right
NetFlow Analyzer Training Part I: Getting the initial settings rightManageEngine, Zoho Corporation
 
Dell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready NodesDell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready NodesAndrew McDaniel
 
VM Job Queues in CloudStack
VM Job Queues in CloudStackVM Job Queues in CloudStack
VM Job Queues in CloudStackShapeBlue
 
Cloud stack vs openstack vs eucalyptus
Cloud stack vs openstack vs eucalyptusCloud stack vs openstack vs eucalyptus
Cloud stack vs openstack vs eucalyptusAshok Kumar
 
OpenStack Ironic - Bare Metal-as-a-Service
OpenStack Ironic - Bare Metal-as-a-ServiceOpenStack Ironic - Bare Metal-as-a-Service
OpenStack Ironic - Bare Metal-as-a-ServiceRamon Acedo Rodriguez
 
Tips and Tricks for SAP Sybase IQ
Tips and Tricks for SAP  Sybase IQTips and Tricks for SAP  Sybase IQ
Tips and Tricks for SAP Sybase IQDon Brizendine
 
(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터Gasida Seo
 
Proxmox Talk - Linux Fest Northwest 2018
Proxmox Talk - Linux Fest Northwest 2018Proxmox Talk - Linux Fest Northwest 2018
Proxmox Talk - Linux Fest Northwest 2018Richard Clark
 
Microsoft Remote Desktop Services
Microsoft Remote Desktop ServicesMicrosoft Remote Desktop Services
Microsoft Remote Desktop ServicesRonnie Isherwood
 
vmware_cloud_foundation_on_vxrail_technical_customer_presentation.pptx
vmware_cloud_foundation_on_vxrail_technical_customer_presentation.pptxvmware_cloud_foundation_on_vxrail_technical_customer_presentation.pptx
vmware_cloud_foundation_on_vxrail_technical_customer_presentation.pptxVitNguyn252054
 
Windows Server 2016 First Look (Part 1)
Windows Server 2016 First Look (Part 1)Windows Server 2016 First Look (Part 1)
Windows Server 2016 First Look (Part 1)Tuan Yang
 
53458737 manual-de-usuario-de-pfsense-firewall
53458737 manual-de-usuario-de-pfsense-firewall53458737 manual-de-usuario-de-pfsense-firewall
53458737 manual-de-usuario-de-pfsense-firewallSebastian Berrios Vasquez
 
VMware Advance Troubleshooting Workshop - Day 3
VMware Advance Troubleshooting Workshop - Day 3VMware Advance Troubleshooting Workshop - Day 3
VMware Advance Troubleshooting Workshop - Day 3Vepsun Technologies
 
VMware Horizon (view) 7 Lab Manual
VMware Horizon (view) 7 Lab Manual VMware Horizon (view) 7 Lab Manual
VMware Horizon (view) 7 Lab Manual Sanjeev Kumar
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchTe-Yen Liu
 
VMware vSphere technical presentation
VMware vSphere technical presentationVMware vSphere technical presentation
VMware vSphere technical presentationaleyeldean
 
Packet flow on openstack
Packet flow on openstackPacket flow on openstack
Packet flow on openstackAchhar Kalia
 
IBM Websphere concepts
IBM Websphere conceptsIBM Websphere concepts
IBM Websphere conceptsKuldeep Saxena
 
Websphere Application Server V8.5
Websphere Application Server V8.5Websphere Application Server V8.5
Websphere Application Server V8.5IBM WebSphereIndia
 
Proxmox ve-datasheet
Proxmox ve-datasheetProxmox ve-datasheet
Proxmox ve-datasheetMiguel Angel
 

Was ist angesagt? (20)

NetFlow Analyzer Training Part I: Getting the initial settings right
NetFlow Analyzer Training Part I: Getting the initial settings rightNetFlow Analyzer Training Part I: Getting the initial settings right
NetFlow Analyzer Training Part I: Getting the initial settings right
 
Dell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready NodesDell VMware Virtual SAN Ready Nodes
Dell VMware Virtual SAN Ready Nodes
 
VM Job Queues in CloudStack
VM Job Queues in CloudStackVM Job Queues in CloudStack
VM Job Queues in CloudStack
 
Cloud stack vs openstack vs eucalyptus
Cloud stack vs openstack vs eucalyptusCloud stack vs openstack vs eucalyptus
Cloud stack vs openstack vs eucalyptus
 
OpenStack Ironic - Bare Metal-as-a-Service
OpenStack Ironic - Bare Metal-as-a-ServiceOpenStack Ironic - Bare Metal-as-a-Service
OpenStack Ironic - Bare Metal-as-a-Service
 
Tips and Tricks for SAP Sybase IQ
Tips and Tricks for SAP  Sybase IQTips and Tricks for SAP  Sybase IQ
Tips and Tricks for SAP Sybase IQ
 
(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터(2014년) Active Active 데이터센터
(2014년) Active Active 데이터센터
 
Proxmox Talk - Linux Fest Northwest 2018
Proxmox Talk - Linux Fest Northwest 2018Proxmox Talk - Linux Fest Northwest 2018
Proxmox Talk - Linux Fest Northwest 2018
 
Microsoft Remote Desktop Services
Microsoft Remote Desktop ServicesMicrosoft Remote Desktop Services
Microsoft Remote Desktop Services
 
vmware_cloud_foundation_on_vxrail_technical_customer_presentation.pptx
vmware_cloud_foundation_on_vxrail_technical_customer_presentation.pptxvmware_cloud_foundation_on_vxrail_technical_customer_presentation.pptx
vmware_cloud_foundation_on_vxrail_technical_customer_presentation.pptx
 
Windows Server 2016 First Look (Part 1)
Windows Server 2016 First Look (Part 1)Windows Server 2016 First Look (Part 1)
Windows Server 2016 First Look (Part 1)
 
53458737 manual-de-usuario-de-pfsense-firewall
53458737 manual-de-usuario-de-pfsense-firewall53458737 manual-de-usuario-de-pfsense-firewall
53458737 manual-de-usuario-de-pfsense-firewall
 
VMware Advance Troubleshooting Workshop - Day 3
VMware Advance Troubleshooting Workshop - Day 3VMware Advance Troubleshooting Workshop - Day 3
VMware Advance Troubleshooting Workshop - Day 3
 
VMware Horizon (view) 7 Lab Manual
VMware Horizon (view) 7 Lab Manual VMware Horizon (view) 7 Lab Manual
VMware Horizon (view) 7 Lab Manual
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitch
 
VMware vSphere technical presentation
VMware vSphere technical presentationVMware vSphere technical presentation
VMware vSphere technical presentation
 
Packet flow on openstack
Packet flow on openstackPacket flow on openstack
Packet flow on openstack
 
IBM Websphere concepts
IBM Websphere conceptsIBM Websphere concepts
IBM Websphere concepts
 
Websphere Application Server V8.5
Websphere Application Server V8.5Websphere Application Server V8.5
Websphere Application Server V8.5
 
Proxmox ve-datasheet
Proxmox ve-datasheetProxmox ve-datasheet
Proxmox ve-datasheet
 

Ähnlich wie Armar un servidor casero con OpenBSD

Ähnlich wie Armar un servidor casero con OpenBSD (20)

web hosting
web hostingweb hosting
web hosting
 
Almacenamiento en la nube ricky
Almacenamiento en la nube rickyAlmacenamiento en la nube ricky
Almacenamiento en la nube ricky
 
computacion
computacioncomputacion
computacion
 
Cloud computing (trabajo de informática) (3)
Cloud computing (trabajo de informática) (3)Cloud computing (trabajo de informática) (3)
Cloud computing (trabajo de informática) (3)
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Ingeniería del software (bd en la nube)
Ingeniería del software (bd en la nube)Ingeniería del software (bd en la nube)
Ingeniería del software (bd en la nube)
 
Informe
InformeInforme
Informe
 
Almacenamiento en la nube
Almacenamiento en la nubeAlmacenamiento en la nube
Almacenamiento en la nube
 
Almacenamiento en la nube
Almacenamiento en la nubeAlmacenamiento en la nube
Almacenamiento en la nube
 
Aliaga
AliagaAliaga
Aliaga
 
Administrar una red
Administrar una redAdministrar una red
Administrar una red
 
Fcaa2a cbf6acd7e93c4711abfceb7e3ba6b21a
Fcaa2a cbf6acd7e93c4711abfceb7e3ba6b21aFcaa2a cbf6acd7e93c4711abfceb7e3ba6b21a
Fcaa2a cbf6acd7e93c4711abfceb7e3ba6b21a
 
844819974 x
844819974 x844819974 x
844819974 x
 
Administracion de una red de area local
Administracion de una red de area localAdministracion de una red de area local
Administracion de una red de area local
 
Nuevas tendencias
Nuevas tendenciasNuevas tendencias
Nuevas tendencias
 
Implementacion de un servidor zentyal
Implementacion de un servidor zentyalImplementacion de un servidor zentyal
Implementacion de un servidor zentyal
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Word2
Word2Word2
Word2
 

Mehr von Sergio Vallejo

Introducción al Software Libre y Linux
Introducción al Software Libre y LinuxIntroducción al Software Libre y Linux
Introducción al Software Libre y LinuxSergio Vallejo
 
Tutorial de Python - Pyar
Tutorial de Python - PyarTutorial de Python - Pyar
Tutorial de Python - PyarSergio Vallejo
 
Ubunchu 2: cli con gnomos
Ubunchu 2: cli con gnomosUbunchu 2: cli con gnomos
Ubunchu 2: cli con gnomosSergio Vallejo
 
Ubunchu, el manga de Ubuntu en español
Ubunchu, el manga de Ubuntu en españolUbunchu, el manga de Ubuntu en español
Ubunchu, el manga de Ubuntu en españolSergio Vallejo
 
La Catedral y el Bazar
La Catedral y el BazarLa Catedral y el Bazar
La Catedral y el BazarSergio Vallejo
 
Seminario "Diseño y Creación de Videojuegos" UNT 2008
Seminario "Diseño y Creación de Videojuegos" UNT 2008Seminario "Diseño y Creación de Videojuegos" UNT 2008
Seminario "Diseño y Creación de Videojuegos" UNT 2008Sergio Vallejo
 

Mehr von Sergio Vallejo (7)

Introducción al Software Libre y Linux
Introducción al Software Libre y LinuxIntroducción al Software Libre y Linux
Introducción al Software Libre y Linux
 
Tutorial de Python - Pyar
Tutorial de Python - PyarTutorial de Python - Pyar
Tutorial de Python - Pyar
 
Tuxinfo Nº 20
Tuxinfo Nº 20Tuxinfo Nº 20
Tuxinfo Nº 20
 
Ubunchu 2: cli con gnomos
Ubunchu 2: cli con gnomosUbunchu 2: cli con gnomos
Ubunchu 2: cli con gnomos
 
Ubunchu, el manga de Ubuntu en español
Ubunchu, el manga de Ubuntu en españolUbunchu, el manga de Ubuntu en español
Ubunchu, el manga de Ubuntu en español
 
La Catedral y el Bazar
La Catedral y el BazarLa Catedral y el Bazar
La Catedral y el Bazar
 
Seminario "Diseño y Creación de Videojuegos" UNT 2008
Seminario "Diseño y Creación de Videojuegos" UNT 2008Seminario "Diseño y Creación de Videojuegos" UNT 2008
Seminario "Diseño y Creación de Videojuegos" UNT 2008
 

Kürzlich hochgeladen

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 

Kürzlich hochgeladen (15)

9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 

Armar un servidor casero con OpenBSD

  • 1. Servidor casero con Gustavo Cortez – gustavo@lugtucuman.org.ar Estructura y configuración de una red local para el hogar Resúmen Instalación, configuración y estructura de un servidor dependiendo de las necesidades de cada familia que este a la vanguardia de la tecnología, así también como el presupuesto con que se cuenta. En este informe se utiliza el sistema operativo OpenBSD para que realice las tareas de acceso a internet, filtrado de paquetes, asociación a un dominio, entre otras funciones. Lo que se va a tratar aquí es la configuración y alcance del sistema, pasando por la estructura de red recomendada para cada caso en particular. Índice de contenido Resúmen...............................................................................................................................................1 Introducción..........................................................................................................................................2 Objetivos...............................................................................................................................................2 Planificación.........................................................................................................................................3 Esquema de conexión...........................................................................................................................3 Costo de implementación.....................................................................................................................5 Servidor............................................................................................................................................5 Modem ADSL y Switch...................................................................................................................6 Cableado..........................................................................................................................................6 Sistemas BSD.......................................................................................................................................7 Comparación de los sistemas BSD..................................................................................................7 FreeBSD......................................................................................................................................7 OpenBSD....................................................................................................................................7 NetBSD.......................................................................................................................................7 Introducción a OpenBSD.................................................................................................................7 Software incluído.............................................................................................................................8 ¿Qué son los paquetes y los portes?.................................................................................................9
  • 2. Recomendaciones para la instalación............................................................................................10 OpenBSD como entorno de escritorio................................................................................................10 Configuración de la conexión a Internet............................................................................................10 Configuración de PPP....................................................................................................................11 Permitir el acceso a Internet...........................................................................................................12 Automatizando la conexión................................................................................................................14 Asociando un dominio .com.ar......................................................................................................14 Actualización de la IP...............................................................................................................15 Automatizando la actualización de IP.......................................................................................15 Utilidades de un dominio asociado................................................................................................18 Configuración de los clientes.............................................................................................................18 Servidor DHCP..............................................................................................................................18 Retoques finales..................................................................................................................................19 Asegurando el entorno...................................................................................................................20 Configurando SendMail.................................................................................................................20 Conclusiones.......................................................................................................................................21 Referencias.........................................................................................................................................21 Introducción Hace algunos años las necesidades de comunicación en un hogar se limitaban al uso de la linea telefónica (sea fija o móvil), dejando de lado la conexión a Internet que en la mayoría de los casos, se trataban de terminales que se conectaban a la red y no se compartía el ancho de banda con otras computadoras, utilizando el limitado enlace telefónico para transferencia de datos. Con la llegada de la banda ancha y los constantes cambios de PC por una nueva y más potente, las familias podían contar con más de una computadora personal, ya que vender la vieja PC no generaba más ganancias de las que se podría aprovechar conectándola en red y compartiendo la costosa banda ancha que había en aquella época. Pero aún así, no se disponía de una PC libre para que realizara la conexión, sino que se la usaba como una terminal de trabajo más. Luego con la disminución de precios de la banda ancha y de las PC, los usuarios hogareños ya podían contar con pequeñas redes domésticas en las que compartir documentos, música, fotos y hasta la conexión a Internet por banda ancha, no resultaba muy costoso. Además, se podía disponer de la PC más vieja como “servidor” de Internet. Por eso es que, compartir la conexión, ya no necesitaba depender de la PC principal (o la más “grande” o nueva) sino que se comenzaba a pensar en una política más inteligente para ofrecer servicio continuado y seguro a toda la familia. Esto es ni más ni menos que utilizar una PC de recursos moderados para que ofrezca servicios a toda la red interna con todas las ventajas que supone un sistema libre, seguro y flexible como OpenBSD.
  • 3. Por otro lado, si somos estudiantes de carreras relacionadas con las redes de comunicaciones, esta es una buena excusa para aprender a construir una infraestructura de red estable, segura y de la manera más simple posible utilizando software libre y sin necesidad de gastar tanto dinero en equipamiento nuevo. Objetivos A veces puede resultar complicado plantear lo que se quiere obtener con un servidor casero, ya que en muchos casos los requerimientos de usuarios va creciendo con el tiempo, además que esta variable depende de la edad de los usuarios. Por ejemplo, si se va a restringir ciertos sitios a menores de edad o limitar el uso horario de la mensajería instantánea, se van a necesitar software adicional y por consiguiente, varios retoques de configuración. Por esta razón voy a plantear aquí los objetivos básicos con los que va a contar nuestro servidor casero: ● Instalación base de OpenBSD ● Configuración de la conexión a Internet ● Asociación de un dominio propio ● Configuración de Packet Filter ● Correo interno con SendMail ● Servidor DHCP ● Retoques en la configuración general del sistema ● Automatización del sistema de arranque ● Utilización de algunas herramientas de red y del sistema El orden de objetivos principales aparecen de acuerdo al nivel en que se configuran (o pueden configurar). A pesar de estas propuestas, se pueden hacer muchas cosas más en OpenBSD como servidor casero. A continuación pueden ver un listado de las cosas que se pueden hacer, pero no se van a cubrir con profundidad en este informe: ● Sistema de control de versiones ● Squid ● Servidor Web con contenido dinámico ● SendMail externo ● Servidor de DNS ● Extremo VPN con Isakmp ● Muchos más... Como pueden ver, las posibilidades de expandir los servicios con OpenBSD son “casi” infinitas, tal que no tendríamos tiempo de listar todas ellas. Por esta razón es la importancia de plantearse inicialmente cuales son los requerimientos de los miembros de la familia a la hora de utilizar la conexión a Internet. Planificación Tal como había mencionado en el apartado anterior, se deben plantear principalmente los servicios que se van a ofrecer a los usuarios, pero muchas veces no se sabe bien lo que se va a necesitar.
  • 4. Por eso es importante en primera medida, ponernos en lugar de los usuarios (aunque seguro que nosotros mismos somos los usuarios más complicados), y en base a esto reunir las características que se van a configurar en el sistema. Estas se pueden resumir en lo siguiente: ● Servicio de Internet ● Seguridad de la red local ● Transparencia en la configuración de los terminales Con estas tres características ya somos capaz de iniciarnos en la práctica del asunto. Esquema de conexión Luego de pasar por el marco teórico y de reflexión sobre el asunto, ya podemos pensar en cómo conectar los aparatos y qué vamos a necesitar comprar. La siguiente figura nos muestra un esquema generalizado de la conexión que se va a realizar con OpenBSD. De esta manera se logra acceder a Internet mediante OpenBSD y el Modem ADSL. Pero esto es solamente si se tiene una sola PC, cosa que no era lo que habiamos previsto anteriormente, que es conectar a dos o más computadoras simultaneamente a Internet. Para realizar esto se necesita de un Switch que se encarga de distribución de datos a la PC que los ha solicitado. Volviendo al esquema y para no complicarnos antes de tiempo, paso a describir cada uno de los componentes. El primer elemento es una PC con dirección IP 192.168.0.35 que ha sido asignada por el segundo elemento (que es el sistema OpenBSD de IP 192.168.0.1) previamente configurado por el Administrador del sistema para que asignara el acceso correspondiente, mediante la interfaz de red correspondiente. El siguiente elemento es el firewall se encarga de retener intrusos entrometidos que quieran ingresar a nuestra red local y al mismo servidor con fines maliciosos. Por último, el Modem ADSL realiza la conversión de interfaz que utiliza el servidor (Ethernet) hacia la línea telefónica que previamente detecta el enlace con el proveedor y obtiene un enlace WAN a través de la boca tipo RJ11 estándar de las líneas de teléfono. En la siguiente figura se puede ver con más detalles de los elementos que participan en la conexión a Internet, y también se pueden ver dos PC que comparten el acceso. Las mismas estan conectadas a un Switch que se encarga de “repartir” los datos entre los emisores y receptores de la red. Por otro lado, la máquina que funciona como servidor en este caso, debe disponer de dos placas de red, en la cual una se conecta a la red local (LAN) mediante el Switch y la otra se conecta directamente al Modem ADSL con soporte Ethernet. Más adelante vamos a ver cómo configurar el Modem ADSL para que trabaje en modo bridge entre la interfaz Ethernet y la línea telefónica. También se puede ver en el gráfico, que luego de llegar el cable al poste telefónico, este sale del troncal local y va a las oficinas de comunicación, que a su ves lo transmiten con el proveedor de
  • 5. conexión (en nuestro caso es Telecom). La verificación del nombre de usuario y contraseña se realiza finalmente en el proveedor de acceso a internet, derivado por Telecom, y finalmente “sale” la conexión al mundo. Costo de implementación Como se han descripto anteriomente, los materiales que se utilizan en este proyecto, van desde un equipo completo (sin monitor) hasta unos metros de cable para las conexiones. En este apartado, voy a describir los materiales necesarios junto a su precio estimado. Servidor El servidor puede ser una máquina de hace varios años atrás pero en buen funcionamiento. Debe tener su gabinete en buenas condiciones y con los coolers correspondientes. Es recomendable mantener estas características, ya que el equipo puede mantenerse encendido varias horas, e incluso días sin ser reiniciado o apagardo, por lo que la refrigeración es punto clave para mantener un buen servicio y funcionamiento del servidor, además de alargar la usabilidad del mismo. Si no se dispone de un PC disponible para instalarlo como servidor, hoy en día existe la posibilidad de comprar un equipo de marca en desuso por menos de 300 pesos. Por ejemplo, el equipo que estoy usando actualmente (y se muestra en la imágen) tiene las
  • 6. siguientes características: ● Intel Pentium (P54C) (GenuineIntel 586-class) 166 Mhz ● Memoria RAM 95 MB ● Disco rígido QUANTUM BIGFOOT_CY4320A de 4134MB ● 1 Placa de red Realtek 8139 de 10/100 Mbps ● 2 Placas de red NE2000 (RTL8019) de 10/100 Mbps Por supuesto que todos los componentes funcionan sin problemas, incluso la lectora de CD, disquetera, coolers, fuente y memoria. Si no disponen de placas de red, se pueden conseguir por menos de 20 pesos, pero hay que tener cuidado en identificar el chipset Realtek y no de otra marca que suelen vender por el mismo precio pero que no funcionan con OpenBSD. Modem ADSL y Switch El modem ADSL y Switch son componentes que hay que elegirlos como cajas cerradas, ya que no se pueden “fabricar” como hicimos con el servidor OpenBSD en el que se va a configurar lo mismo que grandes comerciantes como Cisco o 3Com hacen, pero por mucho menos dinero. En cuanto al modem ADSL, nos debemos asegurar de que cuenta con una interfaz Ethernet para conectar la placa de red del servidor y no solo con el puerto USB como la mayoría de los modems económicos. El precio de estos aparatos no supera los 150 pesos, cumpliendo la única función de bridge entre la interfaz Ethernet y la línea telefónica. El switch también es un elemento muy común usado en redes hogareñas y se pueden conseguir a un precio muy económico. Cableado El cableado es un componente importante que afecta en el rendimiento de la red. Muchas veces uno culpa al proveedor de servicios que nos dan una conexión demasiado lenta, cuando muchas veces esto se debe a una mala instalación de los cables de red. Para ver que la velocidad de conexión es adecuada, basta con una simple transmisión de archivos entre las terminales. Si se trata de una red a 100 Mbps, la velocidad teórica a alcanzar debería ser de 12,5MB/s, aunque si se alcanza un 75 o 90% está muy bien también.
  • 7. Hoy en día, como todos los switch soportan las normas de cableado 568-B (normal) y 568-A (cruzado), lo más conveniente es armar directamente cables cruzados, por si alguna vez deja de funcionar el switch o queremos simplemente conectar dos PC directamente. La categoría del cable a utilizar también es importante, y actualmente es fácil conseguir Cat-5e a precios razonables. La siguiente imágen muestra el conjunto de equipos que utiliza el dominio openbsd.org para guardar los repositorios y paquetes de las últimas versiones de OpenBSD.
  • 8. Sistemas BSD En esta sección voy a dar una pequeña introducción a los sistemas BSD en general y a OpenBSD en particular, su desarrollo, licencia y los aspectos más destacados. También daré algunas recomendaciones de la instalación y la configuración básica luego de una instalación limpia Comparación de los sistemas BSD Existen muchas variantes de sistemas BSD, pero en esta ocación realizaré una pequeña descripción de las tres más conocidas. FreeBSD La idea de FreeBSD es producir un sistema operativo utilizable para cualquier propósito, como Ubuntu, Tuquito, Fedora, SuSE, es decir, un sistema de propósitos generales. Se intenta que sea fácil de usar y contenga una gran cantidad de paquetes (programas) para instalar. De hecho, ya hay distribuciones que incluyen un FreeBSD como núcleo.
  • 9. OpenBSD OpenBSD esta orientado a la seguridad más que nada. Las políticas de seguridad son muy estrictas en el desarrollo, ya que cada código que incluyen son auditados exaustivamente para corregir la mayor cantidad de bugs posibles. NetBSD NetBSD esta diseñado como sistema operativo que pueda ser distribuido gratuitamente a profecionales, entusiastas e investigadores, para que lo usen como quieran. El objetivo principal de este sistema es la portabilidad a través de la mayor cantidad de equipos, tanto de 32 como de 64 bits. También hacen incapié en la buena escritura del código, la estabilidad y eficiencia del sistema. Introducción a OpenBSD El proyecto OpenBSD es un sistema operativo libre tipo Unix, multiplataforma, basado en 4.4BSD. Los esfuerzos de desarrollo se concentran en la portabilidad, cumplimiento de normas y regulaciones, corrección del código, seguridad proactiva y criptografía integrada. OpenBSD incluye emulación de binarios para la mayoría de los programas de los sistemas SVR4 (Solaris), FreeBSD, Linux, BSD/OS, SunOS y HP-UX. Actualmente soporta las siguientes plataformas de hardware: ● alpha ● amd64 ● cats ● hp300 ● hppa ● i386 ● mac68k ● macppc
  • 10. mvme68k ● mvme88k ● sparc ● sparc64 ● vax OpenBSD es totalmente libre. El código binario es de libre distribución. El código fuente es de libre ditribución. Todas las partes componentes de OpenBSD tienen unos derechos de autor con unos términos razonables que permiten su libre distribución. Esto incluye la posibilidad de reutilizar la mayor parte del árbol de fuentes de OpenBSD, tanto para el uso personal como para el comercial. En una distribución regular de OpenBSD no se puede incluir ningún tipo de código que se encuentre bajo licencias más estrictas o restrictivas. El motivo por el que se lo mantiene así es que de este modo se salvaguarda la libre redistribución y uso de OpenBSD. También se puede utilizar, entre otros, con fines personales, académicos, en instituciones gubernamentales y organizaciones no gubernamentales, y en empresas privadas o públicas. Una de las opciones interesantes es que OpenBSD o partes de él también pueden ser incorporados libre y gratuitamente en productos comerciales. Con frecuencia, los nuevos usuarios quieren saber si OpenBSD es muy superior a algunos otros sistemas operativos tipo UNIX. No existe una respuesta, y esta pregunta suele dar pie a innumerables (e infructuosos) debates encendidos. Bajo ninguna circunstancia se debe formular una pregunta de este tipo en una lista de correo de OpenBSD. A continuación exponemos algunas razones por las que OpenBSD es un sistema operativo de gran utilidad. Si este es un sistema que vaya a servir a los propósitos de un usuario o no, es una cuestión que sólo el mismo usuario podrá contestar: ● Funciona en varios tipos diferentes de plataformas de hardware ● Está reconocido por muchos profesionales de la seguridad informática como el sistema operativo tipo UNIX más seguro; esto es el resultado de una intensa e interminable auditoría de seguridad sobre el código fuente ● Es un sistema operativo con todas las funcionalidades de UNIX que se puede adquirir de forma gratuita ● Integra las últimas tecnologías en seguridad para la implementación de cortafuegos (filtros de IP) y redes privadas virtuales (VPN) dentro de un entorno distribuido ● Aprovecha el intenso desarrollo actual en muchas áreas, y ofrece la oportunidad de trabajar con tecnologías emergentes dentro de una comunidad internacional de programadores de sistemas y usuarios finales La siguiente imágen muestra una estimación de la ubicación geográfica de los desarrolladores de OpenBSD.
  • 11. Software incluído OpenBSD se distribuye con varios productos de software de terceras partes. Estos son algunos: ● XFree86, sin el estorbo de una nuevo cambio en la licencia; el entorno de X Window, con parches locales. Para la plataforma i386 también se incluyen los servidores de la versión 3.3 de X a fin de ofrecer un soporte de tarjetas gráficas adicional. Se instala con los archivos de instalación x*.tgz. ● GCC, el compilador de C de GNU. El equipo de OpenBSD ha añadido la tecnología de protección de pila Propolice, activada en la instalación predeterminada, y que se usa en todo el modo de usuario y en las aplicaciones compiladas en OpenBSD. Se instala como parte del archivo comp35.tgz. ● Perl, con parches y mejoras del equipo de OpenBSD. ● Apache, el servidor de web. El equipo de OpenBSD ha añadido el entorno chroot como predeterminado, la revocación de privilegios, y otras mejoras relacionadas con la seguridad. Además también incluye soporte para mod_ssl 2.8.16 y DSO. ● OpenSSL, con parches y mejoras del equipo de OpenBSD. ● Groff, el procesador de texto. ● Sendmail, el servidor de correo, con el parche de seguridad parse8.359.2.8. ● BIND, el servidor de DNS. OpenBSD ha implementado muchas mejoras en la operación de chroot y otros temas relacionados con la seguridad. ● Lynx, el navegador de texto de web. Con soporte añadido para HTTPS, más parches del equipo de OpenBSD. ● Sudo, que permite a los usuarios ejecutar órdenes individuales como si fueran el usuario root. ● OpenSSH. En realidad hay muchos más software en la instalación estándar, pero sería muy engorroso
  • 12. nombrarlos a todos. Podemos revisar las referencias para ver un listado completo. ¿Qué son los paquetes y los portes? Los paquetes son binarios precompilados de algunos de los programas más usados. Están preparados para usarlos directamente en un sistema OpenBSD. Al igual que los portes, los paquetes son muy fáciles de mantener y actualizar. Aquí se puede ver una lista de las herramientas que se utilizan para gestionar paquetes: ● pkg_add - utilidad para instalar distribuciones de paquetes de software ● pkg_create - utilidad para crear distribuciones de paquetes de software ● pkg_delete - utilidad para desinstalar distribuciones de paquetes de software previamente instalados ● pkg_info - utilidad para mostrar información sobre paquetes de software Por otra parte, el árbol de portes es un conjunto de archivos Makefile listos para ser bajados, parcheados, configurados e instalados en programas de modo usuario para que pueda ejecutarlos en el entorno de OpenBSD sin tener que hacerlo todo a mano. Se puede obtener el árbol de portes desde el directorio /pub/OpenBSD/<versión>/ports.tar.gz en cualquiera de los servidores de FTP de OpenBSD. Los portes más recientes se encuentran disponibles desde el módulo quot;portsquot; del árbol de cvs, o por ftp en /pub/OpenBSD/snapshots/ports.tar.gz. Sin embargo, para la mayoría de usuarios, instalar los paquetes en lugar de los portes será una opción mejor. Los paquetes se generan desde los portes, y vienen precompilados y listos para usar. OpenBSD tiene en todo momento tres versiones “activas”: ● Release: La versión final que se incluye en el CD. ● Stable: La versión estable, o sea la final con mejoras de seguridad y fiabilidad añadidas. ● Current: La versión en desarrollo de OpenBSD. Una vez que conocemos los fundamentos y algunas bases de la filosofía OpenBSD pasamos a la instalación, pero como en las referencias podemos encontrar un tutorial muy detallado de la instalación, aquí solo voy a listar algunas recomendaciones de acuerdo a mi experiencia instalando este sistema. Recomendaciones para la instalación Las recomendaciones que puedo darles para una instalación limpia son las siguientes: ● Bajar siempre la última versión e instalarla en un disco vacío ● Seguir los pasos de particionado como se detalla en uno de los links de referencias ● Si se va a instalar un servidor, evitar compartir el sistema con otro sistema operativo ● Intente usar las herramientas que vienen por defecto, y si se usa como servidor, no instalar el entorno gráfico y mucho menos los grandes paquetes de KDE o Gnome ● Si se van a realizar pruebas, primero intente con una máquina virtual Falta decir que se configura la placa de red inicialmente, el nombre de host, las ip, gateway y contraseña de root.
  • 13. Una vez finalizada la instalación, se deben completar los siguientes archivos de configuración: ● /etc/myname: debe aparecer el nombre de host completo, por ejemplo host.red.lan ● /etc/mygate: deberíamos usar la misma dirección IP que la definida como local del OpenBSD OpenBSD como entorno de escritorio A pesar de que OpenBSD esta orientado a la seguridad y no para ser usado como terminal de usuario con entorno gráfico y demás, muchos intrépidos lo utilizan como sistema principal con vistosos escritorios y con la seguridad explotada al máximo. Aquí veremos algunas capturas de pantalla de escritorios OpenBSD para que veamos que no solo con Linux se pueden conseguir vistosos escritorios. Configuración de la conexión a Internet Suponiendo que ya hemos instalado correctamente OpenBSD en el futuro equipo servidor, ahora precedemos a configurar la conexión a Internet. Primero hay que conectar la placa de red libre (que no esta conectada al switch), a la interfaz ethernet del modem ADSL, y vamos al archivo /etc/hostname.interfaz, donde “interfaz” se debe reemplazar por la interfaz de red. Por ejemplo en mi equipo tengo lo siguiente:
  • 14. lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33208 groups: lo inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x5 rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:08:54:b2:48:b6 media: Ethernet autoselect (100baseTX full-duplex) status: active inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::208:54ff:feb2:48b6%rl0 prefixlen 64 scopeid 0x1 ne1: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:c0:df:ab:2e:f1 media: Ethernet autoselect (10baseT full-duplex) inet6 fe80::2c0:dfff:feab:2ef1%ne1 prefixlen 64 scopeid 0x2 ne2: flags=8822<BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST> mtu 1500 lladdr 00:c0:df:ab:0b:e9 media: Ethernet autoselect (10base2) La interfaz lo0 corresponde a loopback o interfaz local. Las interfaces de red son rl0, ne1 y ne1, de las cuales, la primera se conecta al switch y tiene asignada una dirección IP (192.168.0.1), mientras la segunda interfaz esta conectada directamente al modem ADSL. La última interfaz no esta conectada, pero se la puede usar para configurar zonas DMZ. Para que esto sea posible, en el archivo /etc/hostname.ne1 se escribe solamente: up De esta manera se inicia la placa de red y se la activa para usar con el Modem ADSL. Configuración de PPP Para establecer la conexión se utiliza un protocolo de comunicación punto a punto (PPP), que será encargado de realizar la autenticación con el proveedor de servicio, entre otros detalles necesarios por el protocolo. Pero PPP no esta solo, y como se trata de una conexión por la interfaz ethernet, se utiliza otro protocolo que se encarga de encapsular a PPP sobre la capa ethernet, llamada PPPoE (PPP over Ethernet) que ofrece además cifrado y compresión de datos. El archivo que debemos modificar para realizar la conexión a Internet desde OpenBSD es /etc/ppp/ppp.conf que lleva todos los parámetros necesarios para la comunicación, incluyendo los nombres de usuarios y contraseñas, por lo que es muy recomendable que solamente pueda ser leido por el administrador (root). Un ejemplo de configuración puede ser la siguiente: default: set log Phase Chat LCP IPCP CCP tun command proveedor: set redial 15 0 set reconnect 15 10000 set device quot;!/usr/sbin/pppoe -i ne1quot; set speed sync disable acfcomp protocomp deny acfcomp enable lqr set lqrperiod 5 set dial set login set timeout 0 set authname quot;nombre@arnet_o_cualquiera-tuc-xxxquot; set authkey quot;$uP3rP@s$w0rdquot;
  • 15. add! default HISADDR Luego ejecutando desde la linea de comandos lo siguiente: $ sudo ppp -ddial proveedor Working in ddial mode Using interface: tun0 $ Si nos aparece lo mismo de arriba, significa que las cosas andaron bien. Para comprobarlo, podemos mirar en los procesos del sistema con “px ax” y localizar que los siguientes dos procesos aparezcan: ● 28682 ?? Is 0:00.23 ppp -ddial arnet ● 25835 ?? I 0:00.08 /usr/sbin/pppoe -i ne1 Y para saber la dirección IP que nos ha asignado el proveedor, podemos ejecutar “ifconfig” para ver el nuevo dispositivo túnel que ha creado ppp llamado tun0: tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1492 groups: tun egress inet 190.137.64.32 --> 200.3.60.15 netmask 0xffffffff De esta manera, sabemos que estamos conectado y que la dirección IP que nos asignaron es 190.137.64.32. Además como el archivo ppp.conf indicaba en la última linea, se agregaron a las tablas de ruteo la dirección de gateway del proveedor por defecto: $ route show -inet Routing tables Internet: Destination Gateway Flags Refs Use Mtu Interface default 200.3.60.15 UGS 2 11740 - tun0 loopback localhost UGRS 0 0 33208 lo0 localhost localhost UH 1 120 33208 lo0 192.168.0/24 link#1 UC 2 0 - rl0 superhijitus 00:08:54:b2:48:b6 UHLc 1 466 - lo0 192.168.0.35 00:1e:90:22:26:1c UHLc 1 166475 - rl0 200.3.60.15 host32.190-137-64. UH 1 0 1492 tun0 BASE-ADDRESS.MCAST localhost URS 0 0 33208 lo0 Como podemos ver, el destino “default” tiene el gateway del proveedor para la nueva interfaz tun0. Pero si intentamos hacer un ping a algún dominio, seguro no vamos a poder, pues aún no se han configurado los servidores DNS. Como OpenBSD viene con un servidor de DNS preconfigurado y listo para usar con direcciones de Internet, podemos iniciarlo con el comando “named &” y editar el archivo /etc/resolv.conf con los siguientes valores: lookup file bind search red.lan nameserver 192.168.0.1 nameserver 200.45.191.35 La linea de lookup dice donde buscar primero para resolver nombres, en este caso en el archivos /etc/hosts y si no se encuentran ahí, utiliza el servidor DNS. A veces es buena práctica agregar el DNS del proveedor por si aún no hemos ejecutado o configurado Named en nuestro OpenBSD. Hasta aquí, si todo ha salido bien, podemos acceder a Internet desde el servidor, pero aún no hemos permitido que los demás equipos de la red, puedan acceder a Internet.
  • 16. Permitir el acceso a Internet Si ya podemos conectarnos a Internet desde OpenBSD, ya sea probando alguna página con lynx o viendo si responden a ping dominios conocidos, podemos proseguir a permitir el acceso de las otras PC. Para esto hay que cambiar el valor 0 (cero) por 1 (uno) del archivo /etc/ sysctl.conf en las lineas: ● net.inet.ip.forwarding=1 # 1=Permit forwarding (routing) of IPv4 packets ● net.inet6.ip6.forwarding=1 # 1=Permit forwarding (routing) of IPv6 packets Luego activar el firewall Packet Filter que viene de serie en OpenBSD en el archivo /etc/rc.conf para que se ejecute en el inicio del sistema. También podemos habilitar otros servicios útiles como Named: ● named_flags=quot;quot; # for normal use: quot;quot; ● pf=YES # Packet filter / NAT Nada más nos queda configurar PF para que realice las operaciones de NAT (traducción de direcciones de red), es decir para que los equipos de la red local puedan acceder a Internet con la IP pública asignada por el proveedor. Un ejemplo de configuración podría ser: # Interfaces de red ext_if=quot;tun0quot; int_if=quot;rl0quot; # Direcciones IPv4 privadas priv_nets = quot;{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }quot; # Politicas set block-policy return set loginterface $ext_if # Normalizacion scrub in all # Ruteo, NAT y redireccionamiento nat on $ext_if from $int_if:network to any -> ($ext_if) # Reglas de filtrado block all pass quick on $int_if all pass quick on lo0 all pass quick on $ppp_if all block drop in quick on $ext_if from $priv_nets to any block drop out quick on $ext_if from any to $priv_nets # Permite el trafico desde la red interna pass in on $int_if from $int_if:network to any keep state pass out on $int_if from any to $int_if:network keep state # Permite salida de paquetes tcp, udp, icmp pass out on $ext_if proto tcp all modulate state flags S/SA pass out on $ext_if proto { udp, icmp } all keep state Estos parámetros de configuración permiten la navegación libre por Internet, con todos los puertos del servidor bloqueados. Ahora podemos reiniciar el sistema y PF ser inicia junto con los servicios
  • 17. de red, además de agregar una interfaz para monitorear su funcionamiento: pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33208 groups: pflog Por ejemplo para monitorear los mensajes que envía PF se puede hacer un “tcpdump -i pflog0”. De esta manera, reiniciando el sistema, y luego conectándonos a Internet mediante “ppp -ddial proveedor”, estariamos dando acceso a todas las máquinas de la red. Lo que nos queda es automatizar un poco las cosas. Automatizando la conexión Para que no sea necesario acceder al servidor cada vez que nos quieramos conectar, y con solo encender el equipo, realice la conexión de forma automática, debemos crear y modificar unos cuantos archivos. En primer lugar debemos configurar el archivo /etc/rc.local agregando al final del archivo lo siguiente: echo -n 'Estableciendo PPPoE DSL: '; ppp -ddial proveedor echo -n 'Estableciendo conexion: ' for i in 10 9 8 7 6 5 4 3 2 1 0; do sleep 3 echo -n quot;$iquot; if /usr/local/sbin/adsl-status > /dev/null; then break fi done echo -n 'nEstado: '; /usr/local/sbin/adsl-status Lo que hace el script anterior es llamar al comando ppp para que se conecte con “proveedor” definido en /etc/ppp/ppp.conf y esperar unos segundos (sleep) por diez veces, hasta que otro script (adsl-status) devuelva cierto, es decir que devuelva la dirección IP asignada por el proveedor. A este script lo debemos crear a mano y darle permisos de ejecución: $ sudo touch /usr/local/sbin/adsl-status $ sudo chmod +x /usr/local/sbin/adsl-status Luego editamos el archivo con el siguiente contenido: #!/bin/sh IP=$(/sbin/ifconfig tun0 | awk '/netmask/{print $2}') if [ -z quot;$IPquot; ]; then echo quot;Enlace ADSL no esta conectado.quot; exit 1 else echo quot;ADSL conectado, Direccion IP $IPquot; exit 0 fi De esta manera, cada vez que arranque el sistema, se iniciarán los servicios por defecto (como SSH, Inetd, etc.), y los que decidimos que iniciaran automáticamente como Packet Filter y el script de conexión a Internet. Aunque en realidad OpenBSD ejecuta automáticamente todos los comandos que se introduzcan en /etc/rc.local, por eso hay que tener especial cuidado al editar este archivo, sino, pueden ocurrir errores al inicio y si no tenemos un monitor dedicado para ver los mensajes del
  • 18. sistema, no vamos a saber cual es el error. Por eso es recomendable al principio monitorear todos los mensajes de arranque del sistema. Luego nos queda asociar un dominio a la dirección IP que nos asigna el proveedor, que se verá a continuación. Asociando un dominio .com.ar En primer lugar debemos tener un dominio registrado en http://www.nic.ar, cuyos pasos se pueden resumir como sigue: ● Registrar persona ● Registrar entidad ● Registrar dominio El trámite a veces es un poco largo, pero lo más importante es a la hora de registrar el dominio, ya que debemos agregar como servidores DNS a los que nos provee el servicio de DNS gratuito para asociar la IP al dominio. De los más conocidos podemos encontrar a: ● Zoneedit ● FreeDNS ● DnsExit ● Entre otros El que conozco en particular es Zoneedit, es gratuito y permite asociar hasta 5 dominios sin costo. Luego de registrarnos, nos pide el nombre de dominio inicial, y nos provee los DNS necesarios para ponerlos en nic.ar. La siguiente es una captura de mi cuenta de Zoneedit donde se ven los DNS, el nombre de dominio y la IP asociada. Actualización de la IP Para actualizar el dominio a la IP que nos asigna el proveedor existen varios métodos que se pueden utilizar con Linux y *BSD. Los más sensillos son usando la linea de comandos, con los programas Lynx o Wget usando las siguientes sintaxis: ● lynx -source -auth=username:password 'http://dynamic.zoneedit.com/auth/dynamic.html? host=www.mydomain.com' ● wget -O - --http-user=username --http-passwd=password 'http://dynamic.zoneedit.com/auth/ dynamic.html?host=www.mydomain.com' Como OpenBSD no viene con wget de serie, tendremos que usar Lynx (que por cierto, no es mucho problema). Si probamos esto, deberiamos obtener el mensaje de que ya ha sido actualizado el dominio a la dirección IP que nos ha asignado el proveedor. Automatizando la actualización de IP Como queremos que todo se haga de manera automática, lo mejor es instalar el paquete ddclient mediante el comando (suponiendo que elegimos los repositorios de Argentina): $ sudo pkg_add -v http://openbsd.md5.com.ar/pub/OpenBSD/4.3/packages/i386/ddclient-3.7.2.tgz Luego de la instalación, se crea el directorio y archivo de configuración en /etc/ddclient. Lo que debemos modificar con los datos de la cuenta en Zoneedit es el archivo /etc/ddcliente/ddclient.conf
  • 19. que debe contener como mínimo lo siguiente: daemon=300 # check every 300 seconds syslog=yes # log update msgs to syslog mail=gustavo # mail all msgs to root mail-failure=gustavo # mail failed update msgs to root pid=/var/run/ddclient.pid # record PID in file. ssl=yes # use ssl-support.Works with ssl-library use=web # via web ## ## ZoneEdit (zoneedit.com) ## server=www.zoneedit.com, protocol=zoneedit1, login=nomre_cuenta, password=$uP3r$3&r3tP@s$ gustavocortez.com.ar Ahora es necesario ejecutar ddclient y probar su funcionamiento. Los parámetros que utiliza son muy sencillos, pero si ya hemos editado el archivo de configuración, no harán falta parámetros adicionales, pero por ejemplo para ejecutarlo como “daemon”, que envíe información a Syslog y cualquier otra información a nuestra cuenta local, debemos ejecutar ddclient con los siguientes argumentos: ● ddclient -daemon=0 -syslog -quiet retry -mail gustavo Pero con solo ejecutar “ddclient” a secas, deberíamos ver un proceso similar a este: ● 8776 C0- I 2:49.43 perl: ddclient - sleeping for 280 seconds (perl) Como se había indicado en el archivo de configuración, ddclient se ejecuta (en busca de cambios en la IP) cada 300 segundos. Además para saber que el dominio se ha actualizado, ddclient envía un
  • 20. mensaje al usuario designado con la información siguiente (por ejemplo): SUCCESS: updating gustavocortez.com.ar: IP address set to 190.226.158.2 (200: Update succeeded.) regards, ddclient@superhijitus.red.lan (version 3.7.1) Si ocurre algún error, también se notifica por correo. Además OpenBSD envía información diaria del estado del sistema, si se han modificado archivos, el promedio de uso del equipo, y demás información con respecto al disco. Por esta razón es importante tener bien configurado Sendmail al menos para usuarios locales. Volviendo a ddclient, si todo ha salido bien, debemos agregarlo al archivo /etc/rc.local para que inicie automáticamente con el sistema. Pero hay que tener en cuenta que antes debemos estar conectados, por eso el comando se lo ejecuta posteriormente al script de conexión. Con esta linea luego del script de conexión basta: ● echo -n 'Estableciendo dominios... '; /usr/local/sbin/ddclient -file /etc/ddclient/ddclient.conf Utilidades de un dominio asociado Con esta explicación es suficiente para tener el equipo servidor con OpenBSD totalmente automatizado y listo para ser utilizado con solo encenderlo y esperar unos minutos a que se inicie y se establezca la conexión. El interés de tener un dominio asociado a la IP que nos asigna el proveedor puede ser que quieramos tener un servidor Web local con wiki o blog para poder acceder a él desde otro lugar. También puede resultar importante establecer la conexión por SSH para realizar tareas administrativas. Configuración de los clientes Hasta ahora solamente se ha hablado de establecer la conexión a Internet con el servidor OpenBSD y que “supuestamente” permite la conexión de los clientes a Internet a través de la puerta de enlace del mismo. Pero si la configuración en los clientes no se han realizado adecuadamente es posible que nunca lleguemos a conectarnos. De esta manera, hay que configurar los clientes para que tengan dirección IP fija que pertenezcan a la red del servidor (por ejemplo a la red 192.168.0.0), su puerta de enlace apunte a la IP de servidor y los DNS pueden ser del OpenBSD (si lo hemos configurado para iniciarlo en el arranque) o del proveedor. Si tenemos varios equipos en casa, con diferentes sistemas operativos, la mejor solución es configurar un servidor DHCP en el servidor, para evitar asignar direcciones IP manualmente a cada equipo. En BSD el cliente de DHCP se denomina dhclient y se puede configurar para iniciar en el arranque. En Linux también tenemos por defecto un cliente DHCP (a menos que usemos Gentoo, ahí tendríamos que instalarlo a mano). Servidor DHCP Un servidor DHCP permite al equipo asignar automáticamente direcciones IP de determinado rango a los nuevos clientes (equipos de la red). Esta funcionalidad, nos ahorra mucho tiempo y esfuerzo de lo que sería configurar IP y Gateway en cada equipo que se una a la red. En OpenBSD resulta muy sencillo configurar el servidor DHCP, nada más indicando que inicie al arranque en el archivo /etc/rc.conf cambiamos la linea:
  • 21. dhcpd_flags=NO por dhcpd_flags=”” Luego editamos la configuración propiamente dicha de DHCP donde se indica el rango de IP y los DNS que se les va a transmitir a los usuarios. El primer archivo es el /etc/dhcpd.conf que debe tener lo siguiente (al menos así lo tengo yo): shared-network LOCAL-NET { option domain-name quot;red.lanquot;; option domain-name-servers 192.168.0.1; subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; range 192.168.0.32 192.168.0.127; } } El otro archivo es donde se indica la interfaz por la que “entrarán” los cliente a solicitar la información de la red. Este archivo es /etc/dhcpd.interfaces y en mi caso contiene el nombre de la interfaz de red local: ● rl0 De esta manera ya tenemos configurado el servidor DHCP para que acepte conexiones a través de la red local (interfaz rl0) y asigne un rango de IP de 192.168.0.32 a 192.168.0.127, lo cual permite 95 clientes simultaneamente. Los clientes solo deben saber que tienen que buscar un servidor DHCP. Retoques finales Ahora que tenemos un sistema robusto, seguro y muy flexible en cuanto a la configuración del mismo, podemos proceder a realizar unos retoques finales para dormir tranquilos. Para ver los servicios que estoy ejecutando en mi sistema OpenBSD 4.3 basta con un “ps ax” con la siguiente salida: $ ps ax PID TT STAT TIME COMMAND 1 ?? Is 0:00.06 /sbin/init 20075 ?? Is 0:01.72 syslogd: [priv] (syslogd) 11440 ?? I 0:07.20 syslogd -a /var/named/dev/log -a /var/empty/dev/log 23321 ?? Is 0:00.05 pflogd: [priv] (pflogd) 4388 ?? I 0:19.11 pflogd: [running] -s 116 -i pflog0 -f /var/log/pflog (pflog 2601 ?? Is 0:00.03 named: [priv] (named) 23128 ?? I 1:15.80 named 23920 ?? Is 0:00.11 /usr/sbin/dhcpd rl0 32432 ?? Is 0:00.23 inetd 5577 ?? Is 0:00.07 /usr/sbin/sshd 14417 ?? Is 0:29.58 sendmail: accepting connections (sendmail) 20139 ?? Is 0:01.32 cron 10485 ?? Is 0:07.62 sshd: gustavo [priv] (sshd) 32341 ?? I 0:31.25 sshd: gustavo@ttyp0 (sshd) 28682 ?? Is 7:23.01 ppp -ddial arnet 25835 ?? I 2:19.97 /usr/sbin/pppoe -i ne1 9284 ?? Is 0:00.01 /usr/local/bin/svnserve -d --listen-host 192.168.0.1 - r /va 24124 ?? Is 0:00.12 /usr/local/bin/svnserve -d --listen-host 190.137.64.32
  • 22. -r / 28303 p0 Is 0:00.96 -ksh (ksh) 14206 p0 R+ 0:00.00 ps -ax 8776 C0- I 2:55.17 perl: ddclient - sleeping for 50 seconds (perl) 22579 C0 Is+ 0:00.06 /usr/libexec/getty std.9600 ttyC0 Se pueden ver los servicios que ya se han explicado su configuración y además algunos otros como dos servidores de Subversion e inetd, que seguramente todos lo tienen levantado. El servicio inetd es un conjunto de servicios que se iniciar de acuerdo a la demanda o solicitud de un servicio determinado. En muchos casos es conveniente desactivar estos servicios para no crear agujeros de seguridad, ya que los servicios básicos que ofrece son: ftp, finger, ident, pop3, daytime, entre otros. Estos datos se encuentran en /etc/inetd.conf y habilitarlos es tan simple como descomentar una linea o comentarla para deshabilitarlo. En particular utilizo pop3 para recoger el correo de mi usuario local, a pesar de que no es seguro ya que las contraseñas y datos se envian en texto plano, por lo que no es recomendable realizar esto en redes de mayor tamaño, donde siempre hay alguien husmeador datos (con tcpdump por ejemplo) y mirando el tráfico de la red. Luego las conexiones de terminales se pueden limitar a solamente una terminal virtual, de manera que se libera memoria innecesaria. El archivo de terminales se encuentre en /etc/ttys, y solo hay que cambiar el valor “on” por el valor “off”: console quot;/usr/libexec/getty std.9600quot; vt220 off secure ttyC0 quot;/usr/libexec/getty std.9600quot; vt220 on secure ttyC1 quot;/usr/libexec/getty std.9600quot; vt220 off secure Asegurando el entorno Para mejorar un poco la seguridad del sistema, se puede quitar la contraseña del usuario “root” para evitar cualquier intrusión. Es decir, de la misma manera que se usa en Ubuntu, con el comando “sudo” se pueden realizar las operaciones del sistema. Para agregar un usuario al grupo wheel, es necesario el comando “gpasswd -a <usuario> wheel”. Además debemos asegurarnos de que al ejecutar “visudo” para editar el archivo de configuración de sudo, contenga la linea: ● %wheel ALL=(ALL) SETENV: ALL Y luego quitar la contraseña de root, eliminando la cadena de texto “extraño” del archivo /etc/master.passwd de manera que quede así: ● root::0:0:daemon:0:0:Root &:/root:/bin/ksh Así nadie va a poder ingresar como root. Pero también debemos ser cuidadosos a la hora de agregar usuarios despistados al grupo wheel. Configurando SendMail Sendmail se puede configurar para repartir correo de forma local, o también para enviar correo externo. En este caso hay que cambiar la linea de configuración de /etc/rc.conf con el valor predeterminado que viene con OpenBSD para permitir envios externos, no solo local: sendmail_flags=quot;-L sm-mta -C/etc/mail/sendmail.cf -bd -q30mquot; spamd_flags=NO # for normal use: quot;quot; and see spamd(8) spamd_black=NO # set to YES to run spamd without greylisting spamlogd_flags=quot;quot; # use eg. quot;-i interfacequot; and see spamlogd(8) Luego en /etc/mail/aliases debemos agregar el nombre de usuario para que nos llegue el correo del
  • 23. sistema y no al usuario root (supuestamente deshabilitado), quedando así: # Well-known aliases -- these should be filled in! root:gustavo manager:gustavo dumper:gustavo Como este archivo debe generar una base de datos en /etc/mail/aliases.db, dentro del directorio /etc/ mail debemos ejecutar el comando “make”. Esto es muy importante, sino los cambios no sufren efecto. Luego hay que indicar al servidor que dominios acepta para el envio de correo. Es recomendable poner la dirección IP de la red local, para que los usuarios de la red local puedan enviar correo usando Sendmail. Por ejemplo, el archivo /etc/mail/relay-domains podría quedar así: 192.168.0 red.lan De esta manera, reiniciando el sistema o reiniciando sendmail, todo debería funcionar como se ha indicado. Por ejemplo podemos probar enviando un correo a alguna cuenta externa, pero seguramente lo van a tomar como SPAM porque los dominios personales muy frecuentemente se etiquetan como SPAM por los servicios de correo conocidos. Conclusiones En este informe se han dado detalles de configuración de los sistemas OpenBSD, así también como una pequeña introducción teórica para conocer los fundamentos de su desarrollo y la diferencia con otros sistemas derivados. También se ha hecho incapié en organizar los servicios que se van a ofrecen sin extendernos demasiado debido seguramente a las limitaciones de hardware, ya que seguro se trata de equipos viejos. Por otro lado se ha intentado mantener un esquema en cuanto a la instalación y configuración de los diferentes servicios, para que de una manera simple y rápida podamos tener un servidor funcional en poco tiempo para aprovechar luego a investigar en los comandos que trae, las aplicaciones, los ajustes de seguridad que se puedan hacer y los servicios adicionales que se pueden instalar. Por último se han detallado algunas configuraciones finales para incentivar a los administradores a continuar con el mantenimiento y mejora de sus servidor hogareño, ya que es la única manera de aprender a mantener un servicio fiable es practicando y buscando mejoras. Referencias ● http://www.openbsd.org/es/ ● http://www.openbsderos.org/ ● http://www.zoneedit.com/doc/dynamic.html ● http://ice.coding.com.br/openbsd/utilizando-o-openbsd-como-desktop.html ● http://en.wikipedia.org/wiki/OpenBSD ● http://es.wikipedia.org/wiki/OpenBSD