Freebsd

55
Instalación y Configuración de un servidor con FreeBSD http://www.gulo.org Diego Pérez Montes – GULO - [email protected]

Transcript of Freebsd

Page 1: Freebsd

Instalación y Configuraciónde un servidor con FreeBSD

http://www.gulo.org

Diego Pérez Montes – GULO - [email protected]

Page 2: Freebsd

Sobre este documento...http://www.gulo.org

Copyright (c) 2007 Diego Pérez Montes.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the address http://www.gnu.org/licenses/fdl.txt

Copyright (c) 2007 Diego Pérez Montes.

Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre de GNU, Versión 1.2 o cualquier otra versión posterior publicada por la Free Software Foundation; sin Secciones Invariantes ni Textos de Cubierta Delantera ni Textos de Cubierta Trasera. Una copia de la licencia está incluida en la direción http://www.gnu.org/licenses/fdl.txt

* Solo se considerará válida a efectos legales la versión inglesa de la licencia de este documento.

Page 3: Freebsd

Índicehttp://www.gulo.org

1 - Breve Historia.

2 – Licencia.

3 – FreeBSD vs GNU/Linux.

4 - Estructura básica de un sistema FreeBSD.

5 - Instalación Paso a Paso.

6 - Administración básica del sistema.

7 - Instalación de un “FAMP”.

8 - Más información

Page 4: Freebsd

Breve Historiahttp://www.gulo.org

- Primera versión liberada en 1993, apoyada por la Universidad de California, Berkeley.

- Basada en 386BSD y 4.3BSD-Lite (“Net/2”).

- Versión 2.0 “reinventada” por problemas legales (entre Novell y la Universidad de Berkeley), usó 4.4BSD-Lite y se “taparon” los agujeros de código incompleto.

RAMAS:

-CURRENT: En este momento 7.x

-RELEASE : En este momento 6.x

-STABLE : En este momento 6.x (con parches)

Page 5: Freebsd

Breve Historiahttp://www.gulo.org

- Objetivos del Proyecto (Jordan Hubbard):

-Software para cualquier propósito -Software “sin compromiso alguno”. -Conseguir que el Software llegue a todo el mundo.

- Siempre ha sido una apuesta por parte de los ISP y grandes empresas.

- Curosidad: Su mascota se llama Beastie (pronunciado BeeS Dee), ha sido “perseguido” por entidades religiosas.

Page 6: Freebsd

Licenciahttp://www.gulo.org

- Licencia “new BSD” (también se permite GPL o LGPL si se desea).

- No se ofrece ningún tipo de garantía.

- No hay restricciones de uso del software, incluso se puede llevar a código cerrado.

- Se debe de mantener el aviso de copyright en el código.

- Es mucho más libre (y permisiva) que la propia GPL.

Page 7: Freebsd

Licenciahttp://www.gulo.org

- Ha originado sistemas operativos como MacOS X (Darwin).

- MacOS X tiene una combinación de software libre (FreeBSD en esencia) y código cerrado (las modificaciones en el nucleo, el interfaz Aqua...)

Page 8: Freebsd

FreeBSD VS GNU/Linuxhttp://www.gulo.org

- En FreeBSD se pueden ejecutar binarios de GNU/Linux (y otros sistemas UNIX), pero no al revés.

- FreeBSD es mucho más maduro que GNU/Linux.

- Se ha ganado “mejor reputación”.

- FreeBSD puede dar un rendimiento notablemente superior a GNU/Linux.

- GNU/Linux es más escalable.

- Hay mucha más comunidad tras GNU/Linux.

- Muchas más diferencias en:http://people.freebsd.org/~murray/bsd_flier.html

Page 9: Freebsd

Estructura básicahttp://www.gulo.org

KERNEL: Monolítico, bastante maduro.

Page 10: Freebsd

Estructura básicahttp://www.gulo.org

SISTEMA DE FICHEROS:

- Sistema Usado: Unix File System (UFS1/UFS2)

- Soporta ficheros de tamaño “ilimitado” y puede gestionar hasta 8 Zettabytes (2^33 TB).

- Es una gran estructura de directorios.

-No existe (a nivel lógico) ninguna separación entre discos o particiones, solo existe un gran sistema de ficheros.

- Todos los discos adicionales deben ser integrados en la estructura ya existente (montando cada partición como un subdirectorio del sistema de ficheros).

Page 11: Freebsd

Estructura básicahttp://www.gulo.org

SISTEMA DE FICHEROS:

Page 12: Freebsd

Estructura básicahttp://www.gulo.org

ÚTILES BASE:

- Las típicas para gestionar cualquier sistema UNIX (ls,cd,cp,rm...)

- También incluye herramientas propias de BSD (como por ejemplo el manejo del sistema de paquetería).

- Librerías del API de C.

- La mayoría es contribución del proyecto GNU.

Page 13: Freebsd

Instalación – Conseguir FreeBSDhttp://www.gulo.org

- FreeBSD soporta una amplia gama de arquitecturas (alpha, amd64, i386, ia64, pc98, powerpc y sparc).

- El sistema de paquetes más actualizado es el de i386.

- http://www.freebsd.org/where.html

- Seleccionar la plataforma, versión y entrar en “[ISO]”

- Para nuestra instalación nos bastará el cd “bootonly” (el último -STABLE: 6.2-RELEASE-i386-bootonly.iso para i386)

- Se puede probar “online” en la plataforma “Free Live OS Zoo”: http://connessi.webminds.cs.unibo.it:8880/

Page 14: Freebsd

Instalación – Inicio...http://www.gulo.org

Page 15: Freebsd

Instalación – Regiónhttp://www.gulo.org

Page 16: Freebsd

Instalación – Tecladohttp://www.gulo.org

Page 17: Freebsd

Instalación – sysinstallhttp://www.gulo.org

- Seguiremos el tipo de instalación “standard”.

Page 18: Freebsd

Instalación – Particionamientohttp://www.gulo.org

- Todo el sistema de ficheros irá en una única partición (incluida la SWAP), en este caso son 2 GB.

Page 19: Freebsd

Instalación – Particionamientohttp://www.gulo.org

Page 20: Freebsd

Instalación – Boot Managerhttp://www.gulo.org

- FreeBSD tiene su propio BootManager (boot0), pero en caso de tener GRUB (o LILO) bastará con seleccionar “None” y añadir la entrada del nuevo sistema.

Page 21: Freebsd

Instalación – Etiquetashttp://www.gulo.org

Page 22: Freebsd

Instalación – Etiquetashttp://www.gulo.org

- Ahora crearemos las etiquetas, las “particiones” dentro del sistema BSD.

Page 23: Freebsd

Instalación – Etiquetashttp://www.gulo.org

- La SWAP debería de ser al menos el doble del tamaño de la RAM, en este caso supondremos 96 MB de memoria principal.

Page 24: Freebsd

Instalación – Paqueteshttp://www.gulo.org

Page 25: Freebsd

Instalación – Mediohttp://www.gulo.org

Page 26: Freebsd

Instalación – Por Red...http://www.gulo.org

Page 27: Freebsd

Instalación – Última oportunidad!http://www.gulo.org

Page 28: Freebsd

Instalación – Config. de Redhttp://www.gulo.org

Page 29: Freebsd

Instalación – Usuarioshttp://www.gulo.org

Page 30: Freebsd

Instalación – Finhttp://www.gulo.org

- Sólo nos queda por escribir el password de root (superusuario).

- Tras esto ya tenemos nuestra instalación lista para empezar a trabajar :)

Page 31: Freebsd

Instalación - Finhttp://www.gulo.org

Page 32: Freebsd

Instalación – Usuarioshttp://www.gulo.org

Page 33: Freebsd

Administración - Usuarioshttp://www.gulo.org

- Añadir Usuario: - adduser - pw useradd nombre_usuario [-g grupo]

- Eliminar Usuario: - rmuser [nombre_usuario] - pw userdel nombre_usuario

- Crear Grupo: - pw groupadd nombre_grupo

- Eliminar Grupo: - pw groupdel nombre_grupo

Page 34: Freebsd

Administración - Usuarioshttp://www.gulo.org

- Potente utilidad: pw (ver man pw)

- Añadir Usuario: - adduser - pw useradd nombre_usuario [-g grupo]

- Eliminar Usuario: - rmuser [nombre_usuario] - pw userdel nombre_usuario

- Crear Grupo: - pw groupadd nombre_grupo

- Eliminar Grupo: - pw groupdel nombre_grupo

Page 35: Freebsd

Administración - Usuarioshttp://www.gulo.org

- Información de un Usuario: - pw usershow nombre_usuario - Bloquear Usuario: - pw block nombre_usuario - Desbloquear Usuario: - pw unblock nombre_usuario

- Cambiar Información de un Usuario: - chpass nombre_usuario

- Cambiar Password de un Usuario: - passwd nombre_usuario

Page 36: Freebsd

Administración - Ficheroshttp://www.gulo.org

- Cambiar de directorio: - cd directorio

- Copiar fichero: - cp fichero_origen fichero_destino

- Crear directorio: - mkdir directorio

- Borrar fichero/directorio: - Si fichero: rm fichero - Si directorio: rm -r directorio

- Cambiar permisos de un fichero/directorio: - chmod modo fichero - Cambiar propietario de un fichero/directorio: - chown usuario[:grupo] fichero [-R]

Page 37: Freebsd

Administración - Redhttp://www.gulo.org

- La configuración está en /etc/rc.conf

hostname="guloBSD" ifconfig_ed0="inet 10.0.2.15 netmask 255.255.255.0" defaultrouter="10.0.2.1"

Page 38: Freebsd

Administración - sysinstallhttp://www.gulo.org

- Utilizada anteriormente en la instalación del sistema. - Gran potencia y facilidad de uso desde el modo consola. - En la opción “Configure” podemos encontrar todas las opciones disponibles:

Page 39: Freebsd

Administración - sysinstallhttp://www.gulo.org

MENU PRINCIPAL:

Page 40: Freebsd

Administración - sysinstallhttp://www.gulo.org

SUBMENU CONFIGURE [Parte 1]:

Page 41: Freebsd

Administración - sysinstallhttp://www.gulo.org

SUBMENU CONFIGURE [Parte 2]:

Page 42: Freebsd

Administración - GNU/Linuxhttp://www.gulo.org

- FreeBSD es altamente compatible con los binarios de Linux (entre otros sistemas UNIX)-> 90% - Basta con dos pasos: - Cargar el módulo necesario: kldload linux - Instalar las bibliotecas de ejecución:

- En determinados casos los binarios Linux rinden mejor en FreeBSD que en Linux.

- Falla en llamadas específicas i386 (por ejemplo el modo virtual).

- Ejecución:

[root@GuloBSD]# cd /usr/ports/emulators/linux_base [root@GuloBSD]# make install distclean

[root@GuloBSD]# brandelf -t Linux binario_linux

Page 43: Freebsd

Administración - Paqueteríahttp://www.gulo.org

- Instalar un paquete: pkg_add -r nombre_paquete

- Eliminar un paquete: pkg_delete nombre_paquete

- Ver paquete instalados: pkg_info

- Buscar paquete:

- http://www.freebsd.org/ports/index.html - Si se tiene un sistema de ports instalado:

[root@GuloBSD]# cd /usr/ports

[root@GuloBSD]# make search key='paquete_buscado'

Page 44: Freebsd

Administración - Paqueteríahttp://www.gulo.org

- Por defecto descarga todo de ftp.freebsd.org

- Se puede cambiar facilmente el repositorio:

- Lista de Repositorios: http://mirrorlist.freebsd.org/FBSDsites.php

[root@GuloBSD]# export PACKAGEROOT=protocolo://nuevo_repositorio

Page 45: Freebsd

Administración - Portshttp://www.gulo.org

- Para Instalarlo, dentro de sysinstall: Configure ->Distributions->Ports

- Quedará almacenado en /usr/ports

- Para buscar un paquete:

- Instalar un paquete:

[root@GuloBSD]# cd /usr/ports

[root@GuloBSD]# make search key='paquete_buscado'

[root@GuloBSD]# cd /usr/ports/tipo_paquete/paquete_buscado

[root@GuloBSD]# make install

Page 46: Freebsd

Administración - Portshttp://www.gulo.org

- Por ejemplo para buscar e instalar Bash:

[root@GuloBSD]# cd /usr/ports

[root@GuloBSD]# make search key='bash' ... Port: bash-3.1.10_1 Path: /usr/ports/shells/bash Info: The GNU Project's Bourne Again SHell Maint: [email protected] B-deps: gettext-0.14.5_2 libiconv-1.9.2_2 R-deps: gettext-0.14.5_2 libiconv-1.9.2_2 WWW: http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html ... [root@GuloBSD]# cd shells [root@GuloBSD]# cd bash [root@GuloBSD]# make install

Page 47: Freebsd

Administración - Portshttp://www.gulo.org

- Para ver la lista de paquetes instalados y poder desinistalarlos es mejor usar el sistema de paqueteria (pkg_info y pkg_delete)

- Como apunte final: hay más de 13.000 ports.

- Un buen site para mantenerse al día de actualizaciones de ports:http://www.freshports.org/

Page 48: Freebsd

Administración - Kernelhttp://www.gulo.org

- Los módulos están en /boot/kernel/*.ko

- Listar módulos activos: kldstat

- Cargar nuevo módulo: kldload nombre_modulo

- Descargar módulo: klundload nombre_modulo

[root@GuloBSD]# kldstat Id Refs Address Size Name 1 9 0xc0400000 691928 kernel 2 1 0xc0a92000 58554 acpi.ko 3 1 0xc3674000 2000 fire_saver.ko

Page 49: Freebsd

Administración - Kernelhttp://www.gulo.org

- Gestión de opciones y módulos a cargar en el arranque del sistema (añadir lineas necesarias):

/boot/loader.conf

- Se puede encontrar las posibles opciones en /boot/defaults/loader.conf

Page 50: Freebsd

Administración - Kernelhttp://www.gulo.org

- En FreeBSD /proc no es usado, se debe de usar sysctl .

- Se trata de un interfaz para configurar el sistema FreeBSD que está corriendo.

- Es posible configurar hasta 500 variables.

Uso:

- Ver todas las variables: sysctl -a

- Ver una variable: sysctl variable

- Cambiar variable: sysctl variable=nuevo_valor

Page 51: Freebsd

Administración - Kernelhttp://www.gulo.org

- Por ejemplo para modificar el número máximo de procesos soportados por el kernel:

- Se pueden cambiar cosas como los parámetros de los discos, de TCP/IP, límites del kernel...

[root@GuloBSD]# sysctl kern.maxproc

kern.maxproc: 4036

[root@GuloBSD]# sysctl kern.maxproc=4500

kern.maxproc: 4036 -> 4500

[Esto en realidad debería de ser cambiado en /boot/loader.conf]

Page 52: Freebsd

Servicios - FAMPhttp://www.gulo.org

- FAMP = FreeBSD & Apache & MySQL & PHP

- Instalación Apache: pkg_add -r apache

- Instalación MySQL: pkg_add mysql40-server

- Instalación PHP4: pkg_add -r php4

- Configuración de Apache: /usr/local/etc/apache/

- Documento raíz web: /usr/local/www/data/

- Manejo de Apache: apachectl [start|stop|restart]

Page 53: Freebsd

Servicios - FAMPhttp://www.gulo.org

- Para que Apache arranque automáticamente con el sistema:

- Instalar el CMS Joomla: pkg_add -r joomla

- Quedará instalado en /usr/local/www/data

[root@GuloBSD]# echo “apache_enable="YES"” >> /etc/rc.conf

Page 54: Freebsd

Más Información...http://www.gulo.org

●En la red:• The FreeBSD Project. http://www.freebsd.org/• El Demonio.org. http://www.eldemonio.org/• Google BSD. http://www.google.com/bsd• Un Secreto bien guardado:FreeBSD. Enrique Matías

(http://cronopios.net/Textos/freebsd_instalacion_y_primeros_pasos.pdf)• FreeBSD:Instalación y Primeros Pasos. Enrique Matías

(http://cronopios.net/Textos/freebsd_un_secreto_bien_guardado.pdf)• Evolution of the Unix File System. Brad Schonhorst

(http://www.nycbug.org/uploads/FFS.pdf)• FreeBSD Architecture HandBook.

(http://www.freebsd.org/doc/en_US.ISO8859-1/books/arch-handbook/)●En la Biblioteca:

• The FreeBSD Corporate Networker's Guide. Ted Mittelstaedt.

• Embedded FreeBSD cookbook [Recurso de Internet] . Paul Cevoli.

Page 55: Freebsd

Fin de la presentación.http://www.gulo.org

Muchas gracias por su atención!

¿Preguntas?