Freebsd
Transcript of Freebsd
Instalación y Configuraciónde un servidor con FreeBSD
http://www.gulo.org
Diego Pérez Montes – GULO - [email protected]
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.
Í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
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)
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.
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.
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...)
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
Estructura básicahttp://www.gulo.org
KERNEL: Monolítico, bastante maduro.
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).
Estructura básicahttp://www.gulo.org
SISTEMA DE FICHEROS:
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.
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/
Instalación – Inicio...http://www.gulo.org
Instalación – Regiónhttp://www.gulo.org
Instalación – Tecladohttp://www.gulo.org
Instalación – sysinstallhttp://www.gulo.org
- Seguiremos el tipo de instalación “standard”.
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.
Instalación – Particionamientohttp://www.gulo.org
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.
Instalación – Etiquetashttp://www.gulo.org
Instalación – Etiquetashttp://www.gulo.org
- Ahora crearemos las etiquetas, las “particiones” dentro del sistema BSD.
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.
Instalación – Paqueteshttp://www.gulo.org
Instalación – Mediohttp://www.gulo.org
Instalación – Por Red...http://www.gulo.org
Instalación – Última oportunidad!http://www.gulo.org
Instalación – Config. de Redhttp://www.gulo.org
Instalación – Usuarioshttp://www.gulo.org
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 :)
Instalación - Finhttp://www.gulo.org
Instalación – Usuarioshttp://www.gulo.org
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
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
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
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]
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"
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:
Administración - sysinstallhttp://www.gulo.org
MENU PRINCIPAL:
Administración - sysinstallhttp://www.gulo.org
SUBMENU CONFIGURE [Parte 1]:
Administración - sysinstallhttp://www.gulo.org
SUBMENU CONFIGURE [Parte 2]:
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
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'
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
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
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
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/
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
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
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
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]
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]
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
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.
Fin de la presentación.http://www.gulo.org
Muchas gracias por su atención!
¿Preguntas?