Professional Documents
Culture Documents
Instalación de Servicios Básicos en OpenBSD 5
Instalación de Servicios Básicos en OpenBSD 5
Instalación de Servicios Básicos en OpenBSD 5
Edgar Rodolfo
rodolfobsd@gmail.com
LICENCIA BSD
Copyright 2012 Edgar Rodolfo Vargas Alata, All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS SOFTWARE IS PROVIDED BY EDGAR RODOLFO VARGAS ALATA AS IS AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL EDGAR RODOLFO VARGAS
ALATA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
The views and conclusions contained in the software and documentation are those of the
authors and should not be interpreted as representing official policies, either expressed or
implied, of Edgar Rodolfo Vargas Alata.
Traduccin:
Copyright 2012 Edgar Rodolfo Vargas Alata, Todos los derechos reservados.
La redistribucin y el uso en formas de fuente y binario, con o sin modificaciones, estn
permitidos siempre que se cumplan las siguientes condiciones:
1. Las redistribuciones del cdigo fuente deben conservar el aviso de copyright anterior,
esta lista de condiciones y el siguiente descargo de responsabilidad.
Edgar Rodolfo
Edgar Rodolfo
NDICE DE CONTENIDO:
1. Licencia BSD...................................................................................................2
2. Introduccin.....................................................................................................5
3. Configuracin bsica del sistema ....................................................................6
a. Configuracin de red ...........................................................................6
i. Interfaces de red ......................................................................6
ii. Gateway y DNS .......................................................................7
4. Instalando paquetes ........................................................................................8
a. Aadiendo expot PKG_PATH a .profile ...............................................8
b. Creacin de usuarios ...........................................................................9
c. Descargar index.txt ..............................................................................9
5. Servidor DHCP ................................................................................................11
6. Servidor DNS ..................................................................................................12
7. Servidor web ...................................................................................................16
a. VirtualHost ...........................................................................................17
b. Php 5.3 en OpenBSD ..........................................................................17
8. Servidor de correo ...........................................................................................19
a. Configurar postfix (bsico) ...................................................................20
b. Certificados SSL para postfix y dovecot ...............................................21
c. Instalar y configurar dovecot (bsico) ..................................................23
d. Squirrelmail y roundcubemail ...............................................................24
9. Servidor FTP ...................................................................................................32
10. Mysql...............................................................................................................34
11. Servidor proxy .................................................................................................36
12. Cortafuegos con PF ........................................................................................44
13. Conclusiones...................................................................................................46
14. Referencias .....................................................................................................46
Edgar Rodolfo
INTRODUCCION
Muchas veces nos encontramos con algunas redes pequeas, medianas o incluso
grandes, entonces surgen algunas preguntas como: Hay software para poder
automatizar algunas cosas? Por ejemplo dar una identificacin a una mquina
automticamente o asignar una ip a usa sola mquina, estamos manejando datos y cada
vez crece, necesitamos base de datos y luego consultar de alguna manera, se puede
hacer ello con software libre? Con qu lenguaje de programacin? Podemos hacer
servicios en red? Y el software usado es bueno? Etc., etc., etc., la respuesta es SI, si
hay software para usar en mquinas con bajos recursos y tambin dicho software se
puede usar en mquinas con altos recursos y modernas, los problemas de compatibilidad
de dicho software con el hardware son pocos, casos donde el hardware es nuevo o algo
no comn en el mercado podra traer problemas, en mi experiencia he visto que el
problema puede ser con error de hardware o como dije hardware no soportado con el
sistema operativo, o muy reciente, en la mayora de los casos va a funcionar haciendo
que funcione y leyendo la informacin del software a usar.
Despus de mencionar algunos aspectos ahora nos toca dar una visin general de lo que
trataremos en ste documento:
En sta oportunidad usaremos a OpenBSD 5.1 para solucionar algunas cosas en redes
LAN.
OpenBSD es un sistema operativo UNIX-LIKE, muy bueno para servicios en red, nuestra
red tendr la siguiente forma:
Como vemos aqu en la figura de arriba, nuestro OpenBSD ser nuestro cortafuegos y a
la vez dar algunos servicios a nuestra red lan y tambin a la red de cara a internet,
podramos hacer que desde internet consultaran a un servicio como el web, no es lo ideal,
pero existe ste caso, la mejor forma sera tener servicios en mquinas separadas y
desde el firewall redireccionar a dichas mquinas, algunas veces no se cuenta con la
infraestructura por ello tomaremos el caso de la figura de arriba, aunque se podra
virtualizar en una sola mquina, pero eso ya es otra historia, en resumen aqu nuestro
OpenBSD ser nuestro cortafuegos y nuestro servidor para una red local y prestar algn
servicio hacia afuera en caso de que se desee alguna vez consultar desde internet.
Edgar Rodolfo
Vemos que nuestra arquitectura es amd64, podra ser i386 u otra, tambin vemos el
nombre de host y las interfaces, em0 es la interfaz de cara al router y em1 es la interfaz
de cara a la red LAN, existen otras interfaces, como lo0 y otras 2, pero no son fsicas,
aqu em0 y em1 son las tarjetas Ethernet y las que usaremos.
#ifconfig a
El comando de arriba nos muestra todas las interfaces, reconocidas, crearemos archivos
para em0 y em1, supongo que no he configurado nada cuando estaba instalando
OpenBSD 5.1
#vi /etc/hostname.em0
#vi /etc/hostname.em1
6
Edgar Rodolfo
Deben estar en /etc, en el FAQ dice que ah se crea, en man hostname.if no lo he visto,
entonces creamos y ponemos contenido.
Tambin ponemos ip y nombre en /etc/hosts, para saber por qu, leer man hosts.
Gateway y DNS
La puerta de enlace est en /etc/mygate y el archivo donde se pone las ip que resuelve
los nombres a ip est en /etc/resolv.conf, leer man resolv.conf y mygate.
Edgar Rodolfo
Edgar Rodolfo
Edgar Rodolfo
Edgar Rodolfo
SERVIDOR DHCP
Comenzaremos con el servicio DHCP, OpenBSD ya trae algunos servicios por defecto
(httpd bajo charrot, DNS, SSH) y uno de ellos es DHCP, para ubicar el archivo usamos:
#find / -iname dhcpd.conf
Configuramos lo necesario, luego agregamos una lnea a /etc/rc.conf.local, ESTE
ARCHIVO NO EXISTE, lo debe crear usted, y por qu? Lea man rc.conf y encontrar la
respuesta, tambin en dicho archivo se aaden lneas para que otros servicios inicien en
tiempo de arranque.
Se puede escribir usando vi /etc/rc.conf.local o mejor con echo:
#echo dhcpd_flags=em1 >> /etc/rc.conf.local
Y por qu dhcpd_flags? Por qu no dhcp=YES? Por qu no estamos en otro BSD lea:
#less /etc/rc.conf
Y mire que servicios ya tiene en /etc/rc.d, por ah debe estar el script dhcpd y otros como
httpd, named, etc.
Se ha puesto em1 porque queiro que a esa interfaz dhpcd me asigne ips no a otras
inetrfaces.
Cmo debera quedar para que funcione en forma bsica?
11
Edgar Rodolfo
SERVIDOR DNS
Se configura DNS de forma bsica, el objetivo es resolver nombres por ips y a la inversa,
es autoritativo, bsico, como siempre si desea ms, lea man named.conf o ir a la pgina
de ISC.
12
Edgar Rodolfo
#cd /var/named/
Ah estn los archivos y directorios, bind ya viene en OpenBSD y no se necesita instalar.
Listemos todos los necesarios y sus permisos (por cierto solo a rndc.key se cambi)
He comentado acl clients (por comodidad) he agregado allow-query (para que puedan
consultar) y como ven estn los forwarders.
13
Edgar Rodolfo
Rev.openbsd51.edu:
14
Edgar Rodolfo
Para saber que significa cada lnea recomiendo leer man named.conf, yo me he basado
en la documentacin de FreeBSD del handbook:
(http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-dns.html) en la
parte DNS.
Se ha creado rndc.key, leer man rndc con:
#rndc-confgen a
Ello escribe en /etc un archivo rndc.key el cual he copiado a la ubicacin correspondiente
/var/named/etc y he cambiado los permisos:
#chown named:named rndc.key
#cat rndc.key >> /var/named/etc/named.conf
#echo named_flags= >> /etc/rc.conf.local
#/etc/rc.d/named start
#tail f /var/log/messages
Resolver muchas dudas y dnde hace falta hacer cambios.
Deber resolver:
15
Edgar Rodolfo
Esta misma mquina tambin da servicio de correo, se usa virtualhost para aprovechar
una ip y usar varios nombres:
mail.openbsd51.edu, mail2.openbs51.edu, db.openbsd51.edu, info.openbsd51.edu
SERVIDOR WEB
Apache ya est instalado, entonces a configurarlo:
Est bajo chroot habr que tener mucho cuidado en algunos aspecto, la configuracin
est en /var/www/conf/httpd.conf, la configuracin por defecto nos va a servir para nuestro
caso, se modifica algunas lneas y lo principal es habilitar virtualhost, cabe mencionar que
no se cambia el lugar por defecto para el contenido web:
Si se desea cambiar la ruta del contenido entonces se tiene que cambiar en httpd.conf
algunas lneas como document root y otras relacionadas.
La configuracin bsica hecha:
#vi /var/www/conf/httpd.conf
16
Edgar Rodolfo
Listen 80, ser servidor web y se quiere acceso desde las dos interfaces, interna y
externa.
Por ah muestra include /var/www/conf/modules/*conf, ah est la configuracin para dar
soporte a php (luego aadiremos) no ser necesario escribir en httpd.conf el mdulo y
AddType.
ServerName www.openbsd51.edu, se escribe
Lo dems se ha dejado por defecto, ya est escrito como DocumentRoot, etc.
VirtualHost
Edgar Rodolfo
18
Edgar Rodolfo
SERVIDOR DE CORREO
Usaremos como MTA a postfix y dovecot para imap y pop3
Aqu si aadiremos usando pkg_add:
19
Edgar Rodolfo
#crontab e
Edgar Rodolfo
inet_interfaces = all
mydestination, copie una lnea donde incluya a $mydomain
mynetwork = 10.0.0.0/8, 127.0.0.0/8, u otro segmento de red.
home_mailbox = Maildir/
smtpd_tls_cert_file = /etc/ssl/postfix.pem
smtpd_tls_key_file = /etc/ssl/private/postfix.pem
smtpd_use_tls = yes
Ser suficiente para el objetivo en nuestra red LAN.
Generando certificados ssl
#openssl req new -x509 days 3650 nodes out /etc/ssl/postfix.pem keyout
/etc/ssl/private/postfix.pem
#chmod 0755 /etc/ssl/postfix.pem
#chmod 0755 /etc/ssl/private/postfix.pem
El mismo procedimiento se realiza para dovecot (se cambia postfix por dovecot), se
ingresa la informacin necesaria.
Iniciamos postfix:
#/etc/rc.d/postfix start
Para iniciar en tiempo de arranque del sistema:
vi /etc/rc.conf.local
Buscamos la lnea relacionada a pkg_scripts y aadimos postfix (pkg_scripts = postfix),
LOS PAQUETES AADIDOS USANDO pkg_add y que sean servicios desde OpenBSD
4.9 se inician de esa forma, existe otra, pero esta es la que usaremos, recordar leer
siempre cuando termina de aadir software.
Veamos en accin a postfix:
21
Edgar Rodolfo
22
Edgar Rodolfo
23
Edgar Rodolfo
#vi /etc/dovecot/conf.d/10-mail.conf
Copiamos la lnea y descomentamos
mail_location = maildir: /Maildir
Solo por ahora eso es necesario para nuestro propsito.
Nosotros usaremos un navegador web para enviar y recibir correo, usaremos el protocolo
http.
Notas extras: muchos sitios para correo usan https, en ste caso no se usa https,
tenemos virtualhost , una sola ip para varios nombres, si desea usar https tiene que hacer
algunas cosas que estn fuera del alcance de ste documento.
Instalar squirrelmail y roundcubemail para gestionar correo
Squirrelmail es un software que nos ayuda a enviar y recibir correo va web, lo mismo
hace roundcubemail.
Squirrelmail no est en paquetes binarios precompilados, descargaremos el .tar.gz y
haremos funcionar bajo chroot en apache.
Descargamos el software desde la web roundcubemail:
$links www.google.com.pe
Buscamos y descargamos:
24
Edgar Rodolfo
Arriba escriba d
25
Edgar Rodolfo
26
Edgar Rodolfo
Cuando ya termine de agregar lo que usted necesita escriba s y salga del asistente.
Asi como est no lograr ingresar, apache est bajo chroot, todos los archivos necesarios
deben estar en /var/www, entonces creamos y damos algunos permisos:
#mkdir -p /var/www/var/local/squirrelmail/data
#mkdir /var/www/var/local/squirrelmail/attach
#chown -R www:www /var/www/var/local/squirrelmail
#/var/www/htdocs/squirrelmail/config/conf.pl
Eso fu todo, ahora a enviar y recibir correo.
Es importante crear data y attach.
Veamos en accin a squirrelmail:
27
Edgar Rodolfo
28
Edgar Rodolfo
29
Edgar Rodolfo
Luego de terminar lo arriba mencionado volver al asistente via web, y presionar contine,
debe pasar a otra interfaz donde le indica algo final.
Estando en el directorio roundcubemail:
#mv installer installer.old
O borre el directorio installer, tambin roundcubemail le dice que cambie permisos a los
directorios temp y logs
#chmod R 777 temp
#chmod R 777 logs
NOTA IMPORTANTE:
#ln /var/run/mysql/mysql.sock /var/run/mysql/mysql.sock
Es necesario, apache est en chroot, en la seccin mysql server se dar ms detalles.
30
Edgar Rodolfo
31
Edgar Rodolfo
SERVIDOR FTP
Necesitamos ftp para transferir archivos en la red lan, pure-ftpd es el que usaremos, no
hay archivo de configuracin, instalamos y la configuracin por defecto es suficiente para
nuestro propsito, reitero si desea algo ms avanzado encryptando el trfico etc., etc., lea
la documentacin del software.
#grep i pure-ftpd index.txt
#pkg_add v pure-ftpd-1.0.35
Aadimos en rc.conf.local a pure_ftpd
32
Edgar Rodolfo
33
Edgar Rodolfo
34
Edgar Rodolfo
Lea los mensajes y haga lo que le indica luego de correr el comando en la flecha de
arriba.
Ahora agrega a mysqld a rc.conf.local en pkg_scripts, es para que inicie en tiempo de
arranque, pero antes puedes iniciarlo sin problemas.
#/etc/rc.d/mysqld start
Funciona, pero desde navegador web no podemos acceder a mysql, es porque apache
nuestro servidor web est en chroot, entonces crearemos unos directorios y haremos un
enlace con ln y por ltimo pondremos algunas lneas en /etc/rc.local
#mkdir p /var/www/var/run/mysql
#ln /var/run/mysql/mysql.sock /var/run/mysql/mysql.sock
Con la lnea de arriba ya se puede acceder desde phpmyadmin, para que haga ello cada
vez en tiempo de inicio hacemos en /etc/rc.local
35
Edgar Rodolfo
Edgar Rodolfo
37
Edgar Rodolfo
38
Edgar Rodolfo
#squid z
#/etc/rc.d/squid start
Veamos en accin a squid
39
Edgar Rodolfo
40
Edgar Rodolfo
41
Edgar Rodolfo
Arriba la mquina 10.0.0.200 salta el proxy porque est en las Ips permitidas, abajo tiene
una ip distinta a los permitidos y se bloquea:
42
Edgar Rodolfo
Un proxy transparente se puede saltar con tunnel, con https, pero con lo expuesto arriba
se hace un poco difcil y no tan simple de saltar el proxy.
43
Edgar Rodolfo
En el siguiente punto se explica las reglas que hace que el proxy sea transparente.
CORTAFUEGOS CON PF
Las imgines muestran lo que contiene Pf (/etc/pf.conf)
No olvide que si la mquina es Gateway active el forwarding, LO DICE
EXPLICITAMENTE EN el archivo pf.conf al inicio, entonces copiamos y descomentamos
en /etc/sysctl.conf
Nuestro archivo pf.conf contiene:
44
Edgar Rodolfo
45
Edgar Rodolfo
CONCLUSIONES
Se concluye que OpenBSD es un sistema operativo ideal para servicios en red.
Haciendo uso del software libre podemos lograr realizar tareas similares a las que realiza
algn software propietario.
REFERENCIAS
Oficial:
http://www.openbsd.org/faq/index.html
Otros:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-dns.html
http://openbsdcolombia.org/documentos/
http://workaround.org/comment/2509
http://bitsenlared.wordpress.com/2012/08/22/squirrlmail-en-openbsd-5-1/
http://wiki.squid-cache.org/ConfigExamples/Streams/Other
http://www.alcancelibre.org/staticpages/index.php/19-0-como-squid-general
Pginas man (incluidas en el sistema operativo)
46