Download El sistemas operativo gratuito Linux es de libre
Document related concepts
Transcript
Introducción El sistemas operativo gratuito Linux es de libre distribución, nos proporciona suficientes herramientas y mecanismos para una buena administración, el sistemas operativo Linux fue inspirado en el sistema UNIX A pesar de que Linux es, en sentido estricto, el sistema operativo,2 parte fundamental de la interacción entre el núcleo y el usuario (o los programas de aplicación) se maneja usualmente con las herramientas del proyecto GNU y con entornos de escritorio basados en GNOME, que también forma parte del proyecto GNU aunque tuvo un origen independiente. Sin embargo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linux para referirse a la unión de ambos proyectos. linux La manipulación del sistema operativo Linux suele parecer algo complejo en su manipulacion en la actualidad, pero se están haciendo esfuerzos para que su manejo sea fácil de manipular Linux es, a simple vista, un Sistema Operativo. Como sistema operativo, Linux es muy eficiente y tiene un excelente diseño. Es multitarea, multiusuario, multiplataforma y multiprocesador; en las plataformas Intel corre en modo protegido; protege la memoria para que un programa no pueda hacer caer al resto del sistema; carga sólo las partes de un programa que se usan; comparte la memoria entre programas aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema de memoria virtual por páginas; utiliza toda la memoria libre para cache; permite usar bibliotecas enlazadas tanto estática como dinámicamente; se distribuye con código fuente; usa hasta 64 consolas virtuales; tiene un sistema de archivos avanzado pero puede usar los de los otros sistemas; y soporta redes tanto en TCP/IP como en otros protocolos. .Es una implementación de libre distribución UNIX para computadoras personales (PC), servidores, y estaciones de trabajo. Fue desarrollado para el i386 y ahora soporta los procesadores i486, Pentium, Pentium Pro y Pentium II, así como los clones AMD y Cyrix. También soporta máquinas basadas en SPARC, DEC Alpha, PowerPC/PowerMac, y Mac/Amiga Motorola 680x0. En otros sistemas operativos, como Windows 95 y 98, no existe un paralelismo real, pues son los procesos los que se �ceden� el procesador. Por tanto, si un programa quiere acaparar el procesador no tendrá excesivos problemas para hacerlo. Pero Linux no solo asigna el tiempo de procesador entre los programas sino que también asigna de manera eficiente la memoria evitando que dos programas intenten escribir en la misma porción de memoria. Y en el último caso de que esto ocurra, el núcleo del sistema operativo para ambos procesos y en ningún caso reiniciará la máquina. Un sistema multiusuario concurrente (o multiusuario) permite que varios usuarios utilicen la máquina simultaneamente, bien sea en local o en remoto, con su propio espacio de trabajo. En Windows 95/98/Me/NT se maneja el concepto de multiusuario secuencial, esto significa que el sistema puede albergar varios usuarios pero nunca simultaneamente. GNU/Linux es multiplataforma porque existen versiones para PC, PowerPC, Sparc, Macintosh, Amstrad, ARM, Motorola 68K. La filosofía de las maquinas con administrador y usuarios, básicamente, se trata de un concepto muy sencillo: en el sistema habrá un administrador (root) encargado de realizar las tareas básicas de configuracián, mantenimiento e instalacián de nuevos programas, al servicio del resto de los usuarios. Este posee los privilegios de añadir, quitar y modificar características de cualquier otro usuario de la máquina. Así mismo, como se ha dicho antes cada usuario dispone de su propio espacio de trabajo, individual e inviolable (salvo por el administrador, si se diera el caso), en el cual puede decidir si quiere compartir su trabajo con algún grupo dentro de la misma máquina o dejarlo privado para uso personal. Esto se consigue configurando los permisos del archivo. El usuario root posee privilegios sobre todos los archivos del sistema. Por lo tanto, un despiste del administrador puede provocar que toda la información que tengamos sea borrada, cambiar archivos que no deberán tocarse, por lo que se recomienta trabajar como root solamente en caso de que sea indispensable. Esta forma de trabajo permite que un usuario normal "juegue" con el sistema sin poner en peligro su integrad. La única información que podrá perderse será la propia del usuario, que se solucionará volviendo a generar su cuenta. Esto es ideal para que un usuario investigue las posibilidades de Linux, sin que esto pueda provocar perdidas en el sistema operativo. Además, si algún programa es dañino para el sistema, por fallos en su ejecución, no podrá afectar a todo el sistema, como mucho a los ficheros del usuario. Este es uno de los motivos por los que apenas hay virus en sistemas unix ya que su distribución es muy dificil. Si se usa la máquina como un usuario normal, los virus no podrán borrar ni el disco duro, ni infectar programas del sistema, ni afectar a practicamente nada. A diferencia de otros sistemas operativos el trabajo con Linux no se hace desde un entorno grafico si no desde línea de consola dispone de varios programas que interpreta los comandos asignados por el usuario este programa se llama Shell basado en UNIX. Características de Linux Los beneficios derivados del uso del sistema operativo UNIX, y por lo tanto de Linux, provienen de su potencia y flexibilidad. Estos son resultado de numerosas características integradas al sistema, las que están disponibles tan pronto como se inicia. Multitareas Multitareas describe la habilidad de ejecutar aparentemente, al mismo tiempo, numerosos programas sin obstaculizar la ejecución de cada aplicación. Esto se conoce como multitareas preferente, porque cada programa tiene garantizada la posibilidad de correr, esto es, cada programa no se ejecuta sino que hasta que el sistema operativo lo aparta para permitir que otros programas corran. Este tipo de multitareas es exactamente lo que Linux hace. Para compreder mejor la capacidad de multitareas de Linux, se examinará desde otra perspectiva. El microprocesador de una computadora puede hacer una sola cosa a la vez, pero es capaz de completar esas tareas individuales en periodos tan breves que son dificiles de captar. La mente humana es incapaz de detectar la diferencia entre una demora tan breve y algo que ocurra simultáneamente. De tal forma que pareciera que las tareas se realizan al mismo tiempo. Es fácil apreciar los beneficios de tener capacidades de multitareas preferente. Además de reducir los tiempos muertos (lapso en el que no puede proseguir su trabajo en una aplicación porque el proceso no termina aún), la flexibilidad de no tener que cerrar las ventanas de aplicaciones antes de abrir y trabajar en otras es mucho mas conveniente. Multiusuario La capacidad de Linux para asignar tiempo del microprocesador a numerosas aplicaciones simultáneas se prestó como consecuencia a servir a numerosas personas al mismo tiempo, cada una ejecutando una o más aplicaciones. La particularidad en realidad destacada de Linux y sus características de multiusuario y multitareas, es que mas de una persona puede trabajar en la misma versión de la misma aplicación de manera simultánea, desde las mismas terminales o desde terminales separadas. Esto no debe confundirse con numerosos usuarios que actualizan un archivo a un tiempo, particularidad que es potencialmente desconcertante y peligrosa a la vez que indeseable. Shells programables Esta es otra característica que hace de UNIX y en consecuencia de Linux, lo que es: el sistema operativo más flexible. Aunque en los últimos anõs se han agregado interfaces gráficas al sistema UNIX, casi todas las utilerías para emplear y administrar Linux, se ejecutan mediante la escritura de comandos. En Linux, al intérprete de la línea de comando de le conoce como shell, que no es otra cosa mas que un programa disenãdo para aceptar comandos y ejecutarlos. Varios tipos de programas pueden emplearse como shells, pero en casi todas las versiones de Linux existen diversos shells estándares disponibles. Los shells de Linux, son equivalentes al COMMAND.COM que emplea MSDOS. Ambos aceptan y ejecutan comandos, y corren archivos de procesamiento por lotes y programas. Independencia de dispositivos bajo Linux Al igual que UNIX, Linux comparte muchos de los mismos beneficios de la independencia de dispositivos. Por desgracia, una de las mejores características de Linux es al mismo tiempo una de sus mayores desventajas: su independencia del mundo comercial. Linux ha sido desarrollado durante los últimos anõs por una variedad de programadores de todo el mundo, quienes no tienen acceso a todos los equipos creados para las PCs de IBM y las compatibles. De hecho, Linux no corre en algunas PCs de IBM, en especial las que utilizan el bus de microcanal. Como último recurso, puesto que se tiene el código fuente para el núcleo, se puede modificar el núcleo para trabajar con los nuevos dispositivos. Comunicaciones y capacidades de red La superioridad de UNIX y de Linux sobre otros sistemas operativos es igual de evidente en sus utilerías para comunicaciones y red. El envío de mensajes internos o la transferencia de archivos puede hacerse mediante algunos comandos de Linux, entre los que están write, cal, mail, mailx asi como cu y uucp. El intercambio de información entre usuarios del mismo sistema se lleva a cabo por medio de comunicación terminal a terminal, correo electrónico y un calendario automático que sirve como administrador y programador de información. Portabilidad de sistemas abiertos En la interminable búsqueda de la estandarización, muchas organizaciones han asumido un interés renovado en la dirección en la que están evolucionando los sistemas operativos. La portabilidad es la capacidad de transportar un sistema operativo de una plataforma a otra para que siga funcionando del mismo modo en que lo hacía. La portabilidad que proporciona los medios para que diferentes plataformas de cómputo que corren UNIX se comuniquen adecuada y efectivamente con cualquiera de las otras sin necesidad de agregar interfaces de comunicación especiales, costosas y de última hora. Ningún otro sistema operativo puede satisfacer esta demanda. DISTRIBUCIONES LINUX Distribuciones populares Entre las distribuciones Linux más populares se incluyen: Arch Linux, una distribución basada en el principio KISS, con un sistema de desarrollo continuo entre cada versión (no es necesario volver a instalar todo el sistema para actualizarlo). Debian, una distribución mantenida por una red de desarrolladores voluntarios con un gran compromiso por los principios del software libre. Fedora, una distribución lanzada por Red Hat para la comunidad. Ubuntu, una popular distribución para escritorio basada en Debian y mantenida por Canonical. Kubuntu, la versión en KDE de Ubuntu. Linux Mint, una popular distribución derivada de Ubuntu. Chakra project, una popular distribución para escritorio, inicialmente basada en Arch Linux, actualmente se encuentra en un desarrollo independiente. openSUSE, originalmente basada en Slackware es patrocinada actualmente por la compañía SUSE (The Attachmate Group). Puppy Linux, versión para equipos antiguos o con pocos recursos que pesa unos 130 MiB. CentOS, una distribución creada a partir del mismo código del sistema Red Hat pero mantenida por una comunidad de desarrolladores voluntarios. Gentoo, una distribución orientada a usuarios avanzados, conocida por la similitud en su sistema de paquetes con el FreeBSD Ports, un sistema que automatiza la compilación de aplicaciones desde su código fuente. Knoppix, fue la primera distribución live en correr completamente desde un medio extraíble. Está basada en Debian. Mandriva, mantenida por la compañía francesa del mismo nombre, es un sistema popular en Francia y Brasil. Está basada en Red Hat. PCLinuxOS, derivada de Mandriva, pasó de ser un pequeño proyecto a una popular distribución con una gran comunidad de desarrolladores. Red Hat Enterprise Linux, derivada de Fedora, es mantenida y soportada comercialmente por Red Hat. Slackware, una de las primeras distribuciones Linux y la más antigua en funcionamiento. Fue fundada en 1993 y desde entonces ha sido mantenida activamente por Patrick J. Volkerding. Slax, es un sistema Linux pequeño, moderno, rápido y portable orientado a la modularidad. Está basado en Slackware. Dragora y Trisquel, que van adquiriendo importancia entre las distribuciones que sólo contienen software libre. Canaima, es un proyecto socio-tecnológico abierto, construido de forma colaborativa, desarrollado en Venezuela y basado en Debian. Tuquito Basada en Ubuntu, distribución desarrollada en argentina con buenas interfaces gráficas y drivers universales. Recomendada para usuarios iniciales. Distribuciones especializadas Otras distribuciones se especializan en grupos específicos: OpenWrt, diseñada para ser empotrada en dispositivos enrutadores. Edubuntu, un sistema del proyecto Ubuntu diseñado para entornos educativos. LULA, distribución académica para universidades. Proyecto LULA. MythTV, orientada para equipos multimedia o grabadores de vídeo digital. Musix, una distribución de Argentina destinada a los músicos. mkLinux, Yellow Dog Linux o Black Lab Linux, orientadas a usuarios de Macintosh y de la plataforma PowerPC. 64 Studio, una distribución basada en Debian diseñada para la edición multimedia. ABC GNU/Linux, distribución para la construcción de clusters Beowulf desarrollado por Iker Castaños Chavarri, Universidad del País Vasco. Mercado Numerosos estudios cuantitativos sobre software de código abierto están orientados a tópicos como la cuota de mercado y la fiabilidad, muchos de estos estudios examinan específicamente a Linux.El mercado de Linux crece rapidamente, y los ingresos por software de servidores, escritorios, y empaquetados, que corren bajo Linux, se estima que llegarán a $35.7 billones en 2008 . La creciente popularidad de Linux se debe a las ventajas que presenta ante otros tipos de software. Entre otras razones se debe a su estabilidad, al acceso a las fuentes (lo que permite personalizar el funcionamiento y auditar la seguridad y privacidad de los datos tratados), a la independencia de proveedor, a la seguridad, a la rapidez con que incorpora los nuevos adelantos tecnológicos ( IPv6 , microprocesadores de 64 bits ), a la escalabilidad (se pueden crear clusters de cientos de computadoras ), a la activa comunidad de desarrollo que hay a su alrededor, a su interoperatibilidad y a la abundancia de documentación relativa a los procedimientos. Richard Stallman , creador del proyecto GNU Hay varias empresas que comercializan soluciones basadas en Linux: IBM , Novell , Red Hat , Rxart , Canonical Ltd. ( Ubuntu ), así como miles de PYMES que ofrecen productos o servicios basados en esta tecnología. UBUNTU La primera versión de Ubuntu fue lanzada el 20 de octubre de 2004,1 y en la actualidad ya lleva varias versiones estables lanzadas. Las versiones estables se liberan cada 6 meses, y Canonical proporciona ayuda técnica y actualizaciones de seguridad para la mayoría de las versiones de Ubuntu durante 18 meses, excepto para las versiones LTS (Long Term Support), para las que ofrece 3 años para la versión de escritorio y 5 años para la versión de servidor, a partir de la fecha del lanzamiento. Luego de la liberación de su versión 12.04, todas las versiones LTS sea de escritorio o de servidor, tendrán un soporte de 5 años.2 La nomenclatura de las versiones no obedece principalmente a un orden de desarrollo, se compone del dígito del año de emisión y del mes en que esto ocurre, por ejemplo: Ubuntu 10.04 (2010, abril). Con cada nuevo lanzamiento del sistema operativo se incluye una nueva versión del entorno de escritorio GNOME y de X.Org, ya que cada nueva versión de Ubuntu es publicada aproximadamente un mes después de cada lanzamiento de GNOME, y estas a su vez ocurren un mes después de cada lanzamiento de X.Org. Cuando finaliza el soporte de una versión de Ubuntu se eliminan sus repositorios de todos los servidores con los que cuenta esta distribución Linux, es decir, primero en los principales y luego en el resto de servidores espejo repartidos por todo el mundo. Debian Linux Es un sistema operativo libre, desarrollado por más de mil voluntarios alrededor del mundo, que colaboran a través de Internet. La dedicación de Debian al software libre, su base de voluntarios, su naturaleza no comercial y su modelo de desarrollo abierto la distingue de otras distribuciones del sistema operativo GNU. Todos estos aspectos y más se recogen en el llamado Contrato Social de Debian. Nació en el año 1993, de la mano del proyecto Debian, con la idea de crear un sistema GNU usando Linux como núcleo ya que el proyecto Debian, organización responsable de su mantenimiento en la actualidad, también desarrolla sistemas GNU basados en otros núcleos (Debian GNU/Hurd, Debian GNU/NetBSD y Debian GNU/kFreeBSD). Uno de sus principales objetivos es separar en sus versiones el software libre del software no libre. El modelo de desarrollo es independiente aempresas, creado por los propios usuarios, sin depender de ninguna manera de necesidades comerciales. Debian no vende directamente susoftware, lo pone a disposición de cualquiera en Internet, aunque sí permite a personas o empresas distribuir comercialmente este softwaremientras se respete su licencia. Debian Linux puede instalarse utilizando distintos mecanismos de instalación, como DVD, CD, BluRay, memorias USB y diskettes, e incluso directamente desde la red. Fedora (AFI: /fəˈdɔrə/) es una distribución Linux para propósitos generales basada en RPM, que se caracteriza por ser un sistema estable, la cual es mantenida gracias a una comunidad internacional de ingenieros, diseñadores gráficos y usuarios que informan de fallos y prueban nuevas tecnologías. Cuenta con el respaldo y la promoción de Red Hat. El proyecto no busca sólo incluir software libre y de código abierto, sino ser el líder en ese ámbito tecnológico.3 4 Algo que hay que destacar es que los desarrolladores de Fedora prefieren hacer cambios en las fuentes originales en lugar de aplicar los parches específicos en su distribución, de esta forma se asegura que las actualizaciones estén disponibles para todas las variantes de Linux.3 Max Spevack en una entrevista afirmó que: "Hablar de Fedora es hablar del rápido progreso del software libre y de código abierto."3 Durante sus primeras 6 versiones se llamó Fedora Core, debido a que solo incluía los paquetes más importantes del sistema operativo. La última versión es Fedora 17, puesta a disposición del público el29 de mayo del 2012. De acuerdo a DistroWatch, Fedora es la tercera distribución de Linux más popular, por detrás de Linux Mint y Ubuntu. 2 estructura de directorios en Linux Es “muy muy importante” conocer la estructura de directorios en Linux, ya que ello nos permite saber que tipo de información contiene. Esto nos ayudará para tener una mejor visión de cómo está organizado el sistema operativo GNU/Linux, además con ello sabremos dónde localizar lo que necesitamos. Aquí una breve explicación sobre el tema. /: (Raíz) Es el nivel más alto dentro de la jerarquía de directorios (PRINCIPAL) . De aquí parten los demás directorios y subdirectorios. /bin: (Binarios) Contiene los binarios básicos, que son los ejecutables del sistema operativo. /boot: (Arranque) Aquí se encuentran todos aquellos archivos necesarios para que el sistema inicie. /dev: (Dispositivos) En esta carpeta se encuentran todos los archivos que nos permiten interactuar con los dispositivos hardware de nuestro ordenador. Por ejemplo los usb, sda (o hda) con la información de cada uno de ellos. /etc: (Etcétera) Aquí se guardan los ficheros de configuración de los programas instalados. /home: (Hogar) Contiene las carpetas por defecto de los usuarios, (sería algo así como el “Documents and Settings” del sistema operativo Windows). /lib: (Bibliotecas) Contiene las librerías del sistema y los drivers. /lost+found: (Perdidos y encontrados) información que se guardó de manera incorrecta debido a algún fallo del sistema, se crea en cada partición independientemente. /media: (Media/medios) Directorio donde puede ser utilizado como punto de montaje para las Unidades Extraíbles. Por ejemplo, los dispositivos USB, disqueteras, unidades de CD/DVD. /mnt: (Montaje) Es un directorio que se suele usar para montajes temporales de unidades. Por ejemplo, Directorios compartidos dentro de una red, alguna partición de Windows, etc. /opt: (Opcionales) Destinado para guardar/instalar paquetes adicionales de aplicaciones. /proc: (Procesos) Información de los datos del kernel del sistema de ficheros de Linux, Virtualización y procesos en ejecución. /root: (Casa del Administrador) Es el directorio /home del administrador. Es el único /homeque no está incluido -por defecto- en el directorio HOME. /sbin (Binarios del Sistema): Son los ejecutables de administración, tales como mount, umount, etc. /srv: (Servicios) En este directorio residen las carpetas accesibles por el programa cliente de un determinado servicio ofrecido por algunos servidores configurados en el sistema. Por ejemplo Apache, ProFtpd, etc. /sys: (Sistema) Información sobre los dispositivos tal y como los ve el kernel Linux. /tmp: (Temporales) Es un directorio donde se almacenan ficheros temporales. Cada vez que se inicia el sistema este directorio se borran. /usr: (Compartido de Usuarios) Es el directorio padre de otros subdirectorios de importancia. Se encuentran la mayoría de los archivos del sistema, aplicaciones, librerías, manuales, juegos… Es un espacio compartido por todos los usuarios del sistema. /var: (Variables) Ficheros y datos que cambian frecuentemente (logs, bases de datos, colas de impresión…) Hasta aquí hemos visto una descripción de los directorios principales, lo cual no quiere decir que dentro no haya subdirectorios. Observemos algo un poco más completo: Dentro de la categorización de los directorios encontramos: Estáticos: Contiene archivos binarios, bibliotecas, y otros archivos están en Read Only (Solo lectura) que no cambian sin la intervención del administrador. /bin, /sbin, /boot, /opt. Dinámicos: Son aquellos que los archivos dentro de estos van cambiando. Generalmente se encuentra como Read-Write (Lectura-Escritura). /var/spool, /var/lock, /var/mail, /home. Compatibles: Se pueden encontrar archivos comunes que van a estar en cualquier distribución. /usr/bin, /opt No Compatibles: Contiene archivos que no son compatibles con otras distribuciones./etc, /boot, /var/run, /var/lock. http://www.linux-es.org/distribuciones 2 comandos básicos de Linux cd - sirve para cambiar el directorio compress - con este comando se comprimen archivos en formato .Z cp - hace una copia de un archivo chmod - cambia los permisos de un archivo o directorio chown - cambia el propietario del archivo o directorio df - muestra el espacio libre en disco du - muestra el espacio utilizado en disco fdformat - formatea un disquete fdisk - se utiliza para particiona unidades file - determina el tipo de archivo a través del análisis parcial de su contenido find - hace una búsqueda a un archivo determinado fsck - examina el sistema de archivos gzip - descomprime un archivo en formato GZip ln - crea un enlace simbólico o físico, dependiendo de la opción ls - lista el contenido de un directorio mkdir - crea un directorio mkfs - crea un nuevo sistema de archivos mkswap - crea un espacio de intercambio more - muestra el contenido de un archivo mount - monta una unidad o partición en el sistema de archivos mv - mueve un archivo y también se utiliza para renombrar pwd - devuelve la cadena correspondiente al directorio actual rm - borra un archivo rmdir - borra un directorio swapon - activa el espacio de intercambio swapoff - desactiva el espacio de intercambio tar - empaqueta o desempaqueta un archivo en formato .tar type - muestra la ubicación de un archivo señalando su "path" umount - desmonta una unidad o partición en el sistema de archivos Para el manejo de procesos: free - muestra la memoria libre y utilizada halt - apaga la maquina kill - mata un proceso señalando el número de éste ldd - muestra las librerías necesarias para ejecutar un proceso ps - muestra todos los procesos que se están ejecutando en el sistema pstree - muestra todos los procesos que se están ejecutando en el sistema, pero en forma de árbol reboot - reinicia el sistema shutdown - cierra el sistema top - monitorea procesos y el estado del sistema uname - muestra información del sistema Para el manejo de usuarios: adduser - crea una cuenta de usuario chsh - este comando cambia la shell de un usuario groups - muestra el listado de grupos de usuarios del sistema id - muestra la información de usuario y grupo de un determinado usuario logout - se sale del sistema deslogueando al usuarui, peromitiendo iniciar sesión con otro usuario passwd - cambia la contraseña de un determinado usuario su - le da privilegios de root (administrador) a un usuario talk - permite hablar con otros usuarios users - lista los usuarios conectados al sistema who - muestra información de los usuarios conectados al sistema whoami - muestra nuestra información De red: ping - manda paquetes esperando una respuesta del lugar que le indiquemos ifconfig - muestras las tarjetas de red (Ethernet) iwconfig - muestra Las tarjetas de red (Wifi) host "destino" - muestra la IP del "destino" 3 MC Midnight Commander es una aplicación que funciona en modo texto. La pantalla principal consiste en dos paneles en los cuales se muestra el sistema de ficheros. Se usa de un modo similar a otras aplicaciones que corren en el shell o interfaz de comandos de Unix. Las teclas de cursor permiten desplazarse a través de los ficheros, la tecla insertar se usa para seleccionar ficheros y las Teclas de función realizan tareas tales como borrar, renombrar, editar, copiar ficheros, etc. Las versiones más recientes de Midnight Commander incluyen soporte para el ratón para facilitar el manejo de la aplicación. Historia El gestor de ficheros Midnight Commander fue creado por el desarrollador mexicano de software libre Miguel de Icaza mientras cursaba la licenciatura en Matemáticas en la facultad de ciencias de la Universidad Nacional Autónoma de México (UNAM) donde a la edad de 18 años comenzó a participar en el proyecto GNU. Su primera aportación fue el gestor de archivos o ficheros Midnight Commander. [editar]Características Midnight Commander posee características tales como la capacidad de explorar el contenido de los ficheros RPM, trabajar con formatos de archivos comunes como si de un simple directorio se tratasen. Incluye un gestor de transferencias FTP o cliente del protocolo FISH. También incluye un editor llamado mcedit. Mcedit es un ejecutable independiente, el cual también puede ser usado de forma independiente a Midnight Commander. Esta aplicación permite visualizar el contenido de ficheros y disfrutar de características como la de resaltar la sintaxis para ficheros de código fuente de ciertos lenguajes de programación, y la capacidad de trabajar tanto en modo ASCII como en modo Hexadecimal. Los usuarios pueden reemplazar mcedit con el editor que prefieran. Midnight Commander también puede renombrar grupos de ficheros, a diferencia de otros gestores de ficheros que solamente pueden renombrar un fichero cada vez. Esto es interesante en la manipulación de largas colecciones de ficheros, por ejemplo, para ajustar los nombres a un nuevo sistema de nombrado. Midnight Commander también puede mover ficheros a otro directorio al mismo tiempo que lo renombra. Permite al usuario especificar los nombres de ficheros originales y finales empleando máscaras de caracteres. Esto hace que se puedan renombrar ficheros empleando la potencia de las Expresiones Regulares de Unix o Linux con una interfaz de usuario interesante que es el que ofrece Midnight Commander. Además, el usuario puede seleccionar cuando utilizar y cuando no patrones del Shell o Interfaz de Comandos. Todas estas características están disponibles a través del menú File > Rename/Move. (Pulsando F1 accedemos a una breve explicación de las opciones, incluyendo ejemplos sobre como usar máscaras) [editar]Tipo de Licencia Midnight Commander es incluido en la mayoría de las distribuciones Linux y se distribuye bajo la licencia pública general de GNU. Es muy popular en GNU/Linux debido a que está basado en las versátiles interfaces de texto, tales como Ncurses o S-Lang, la cual permite que se ejecute en una consola regular, en un terminalXWindow, sobre conexiones SSH y todos los tipos de shells remotos. 4- WINE Wine (acrónimo recursivo en inglés para Wine Is Not an Emulator, que significa «Wine no es un emulador») es una reimplementación de lainterfaz de programación de aplicaciones de Win16 y Win32 para sistemas operativos basados en Unix. Permite la ejecución de programas diseñados para MS-DOS, y las versiones de Microsoft Windows 3.11, 95, 98, Me, NT, 2000, XP, Vista y 7 El nombre Wine inicialmente fue un acrónimo para WINdows Emulator.1 Este significado fue cambiado posteriormente al acrónimo recursivo actual. Wine provee de: Un conjunto de herramientas de desarrollo para portar código fuente de aplicaciones Windows a Unix. Un cargador de programas, el cual permite que muchas aplicaciones para Windows 2.0/3.x/9X/ME/NT/2000/XP/Vista y Win 7 se ejecuten sin modificarse en varios sistemas operativos unix-like como GNU/Linux, BSD, Solaris y Mac OS X Compatibilidad binaria Soporte para programas de la familia MSDOS y Windows (3.x/9x/NT/2000/XP/2003/Vista/2008/7). Soporte para llamadas de funciones de Windows de 64, 32 y 16 bits. Código x86 de 64, 32 y 16 bits. Extensas bibliotecas de interrupciones para programas utilizando llamadas de modo real INTxx. Capacidades avanzadas de trunking. Posibilidad de añadirle más bibliotecas de enlace dinámico (DLL), incluso las nativas de Windows, las cuales están ubicadas en la carpetaC:\Windows\System32, y pueden ser instaladas en wine copiando dichas librerías en la carpeta ~/.wine/drive_c/windows/system32. Diseño de ingeniería inversa para mejorar la solución frente a errores. Ejecución sobre otras arquitecturas no Intel bajo emulación, con QEMU (Darwine era una bifurcación de Wine hecha para Mac OS X PowerPC, pero el proyecto quedó abandonado). [editar]Gráficos Puede dibujar en entornos gráficos basados en X11, SDL texto/ttydrv. Pantalla remota para cualquier terminal X. Soporte total de GDI y parcial GDI32. Soporte de DirectX para juegos. Puede utilizar impresoras para sistemas Microsoft Windows de 16 bits de forma nativa. Interfaz interna de impresión PostScript. Capacidad de meta-archivo. Capacidad de ejecución en una o varias ventanas. Posibilidad de instalar temas visuales de formato msstyle, los nativos de Windows. [editar]Otras características Soporte de sonido y entradas alternativas. Soporte de módems o dispositivos por puerto serie. Trabajo en red con Winsock TCP/IP. Soporte de escáneres ASPI. Soporte de controles avanzados típicos de programas para Microsoft Windows de 32 bits. [editar]Wine API Diseñado para ser compatible con código para Windows de 32 bits. Programas de muestra Documentación generada automáticamente de las API Compilador fuente de 32 bits Capacidad parcial de codificación Unicode Internacionalización: Wine está disponible en 16 lenguas Depurador integrado y mensajes de rastreo configurables procedimiento instalación packet traicer Una vez descargado el .bin abrimos una consola y le damos permiso ejecución (x) al paquete: chmod +x PacketTracer533_i386_installer-deb.bin Una vez que el paquete tiene los permisos necesarios procedemos a ejecutarlo con la orden (./) ./PacketTracer533_i386_installer-deb.bin Nos pedirá que demos “Enter” para leer la licencia del paquete Una vez que terminemos de leer la licencia escribimos “Y”, y nos pedirá la contraseña para instalar el programa Y listo ya tenemos Packet Trace en nuestro Ubuntu luego de una larga y ardua instalación :P. Wine está soportado oficialmente por Ubuntu lo que implica que puedes instalarlo directamente utilizando el Gestor de paquetes Synaptic. Acude, por tanto, a Sistema – Administración – Gestor de paquetes Synaptic e introduce tu contraseña de root. Utiliza el campo de búsqueda para localizar todos los paquetes disponibles tecleando la palabra wine. Localiza el paquete wine y haz clic con el botón derecho del ratón para seleccionar la opción marcar para instalar. El sistema te ofrece el listado de paquetes que deberán ser instalados con la aplicación. Pulsa el botón Marcar para aceptar la selección. Haz clic sobre el botón Aplicar para iniciar el proceso. Ubuntu te informará de los cambios que está a punto de realizar en el sistema: la instalación de nuevos paquetes, la descarga de los mismos y su peso, el espacio que se utilizará en disco, etc. Pulsa finalmente el botón Aplicar para finalizar el proceso. Cuando el proceso finalice cierra la última ventana y, por último, cierra también Synaptic. Ya completada la instalación acude a Aplicaciones – Wine – Programs – Accesorios – Bloc de notas y comprueba como este programa de sistemas windows funciona sin problemas en Ubuntu. Después de unos segundos (más la primera vez que uses Wine), aparecerá el bloc de notas de Windows en pantalla. ARES 1º Instalar Wine sudo apt-get update sudo apt-get install wine 2º Instalar Ares Cuando ya tenemos wine instalado, descargamos la ultima version de Ares, hacemos clic derecho sobre el paquete y seleccionamos "Abrir con Wine". (ahora wine abrirá el instalador de Ares tal como si nos encontramos en windows) Si al abrirse ares les aparece el aviso de "Instalador de Gecko de Wine", Le dan a "Instalar". 3º Recomendaciones Al abrir Ares conectarse manualmente, es decir, ir a "Panel de Control", hacer clic en "Desconectar" y luego en "Conectar". Sino, puede que tu ares quede en "conectando" por siempre xD. Es normal que Ares se demore en conectar (más que en windows) Recuerda cambiar la carpeta de descarga a una de tu preferencia Para tener a Ares en el menú de Aplicaciones vallan a "Aplicaciones/Wine/Configure Wine". En la Pestaña de aplicaciones, presionar el boton "Añadir Aplicación" y buscan el archivo ares.exe como si estuviean en windows (osea entran a Archivos de programa, ares y seleccionan ares.exe) Luego le dan a aceptar y deberia aparecer la aplicación en el menú dentro del apartado Wine. No tratar de maximizar ni minimizar la ventana. Es muy probable que wine se cuelge al tratar de hacerlo. 5 linux como router Pasos para seguir: 1. Configuración de las interfaces de red 2. Activación de enrutamiento 3. Configuración de servicio NAT 4. Configuración de servicio DHCP 5. Configuración de servicio DNS de cache Configuracion de las interfaces de red Antes de todo nos deshacemos de network-manager: apt-get remove network-manager Ahora modificamos /etc/network/interfaces: # The loopback network interface auto lo iface lo inet loopback # External auto eth1 iface eth1 inet dhcp # Internal auto eth0 iface eth0 inet static address 192.168.0.1 network 192.168.0.0 netmask 255.255.255.0 broadcast 192.168.0.255 Como podéis ver hemos configurado la interfaz de red interna (eth0) para que tenga una IP estática privada (192.168.0.1/24), y la interfaz externa para que obtenga su configuración de red mediante dhcp. Para aplicar la configuración ejecutamos: /etc/init.d/networking restart Activacion de enrutamiento Para convertir nuestro Linux en un router tenemos que modificar el archivo /etc/sysctl.conf. Hay que añadir la linea: net.ipv4.ip_forward = 1 Para aplicar la configuracion ejecutamos: sudo sysctl -p Configuración de servicio NAT NAT es un mecanismo inventado para solucionar problema de falta de direcciones IPv4. La maquina que hace NAT oculta todos los equipos de la red local, haciendo las peticiones a Internet en sus nombres. Para configurar el servicio NAT en nuestra maquina con Linux añadimos dos reglas al firewall (iptables): iptables -P FORWARD ACCEPT iptables --table nat -A POSTROUTING -o eth1 -j MASQUERADE Para que estas reglas sobrevivan reboot, las tenemos que añadir también a /etc/rc.local Configuración de servicio DHCP El servicio DHCP sirve para la suministrar la configuración de red (IP, mascara, gateway, DNS) a los equipos de nuestra LAN. Para hacerlo hay que instalar un programa dnsmasq, que nos servirá para poner funcionando tanto el servicio DHCP como el DNS de cache. apt-get install dnsmasq La configuración es bastante simple. Teneis que abrir el archivo /etc/dnsmasq.conf, vaciar su contenido y añadir estas lineas: listen-address=192.168.0.1 cache-size=300 dhcp-range=192.168.0.4,192.168.0.20,24h Especificamos la dirección IP en la que el programa va a escuchar las solicitudes DHCP y DNS, el tamaño máximo de cache y el rango de direcciones IPs dinámicas disponibles a los equipos de red local (dnsmasq es bastante inteligente para averiguar automáticamente el resto de los parámetros de configuración de red que tendrá que ir suministrando a los equipos de nuestra LAN). Reiniciamos el programa: sudo /etc/init.d/dnsmasq restart Configuración de servicio DNS de cache El servicio de DNS de cache hace la resolución de nombres de dominios a direcciones IP para los equipos de red local. Vamos a ponerlo funcionando con dnsmasq, el mismo programa que ya nos hace el DHCP. En principio no nos hara falta tocar la configuración de dnsmasq. El programa cogerá la configuración necesaria acerca de los servidores DNS desde el archivo /etc/resolv.conf. Ahora bien, en el principio de articulo hemos dicho que nuestra interfaz de red externa (eth1) obtendrá su configuración de red mediante DHCP del router de proveedor de Internet. Esto se supone que el contenido de /etc/resolv.conf se modificara automáticamente después de cada reboot. Así que vamos a configurar el programa-cliente DHCP de nuestro router para que incluye la IP de nuestro router en el archivo /etc/resolv.conf cada vez que obtenga la configuración de red. Modificaremos el archivo /etc/dhcp3/dhclient.conf. Allí habrá que buscar la linea: #prepend domain-name-servers 127.0.0.1; Y cambiarla por: prepend domain-name-servers 192.168.0.1; Hemos terminado la configuración. Para aplicarla ejecutamos el comando: sudo /etc/init.d/networking restart SERVIDOR VNC Vamos a configurar un servidor y cliente vnc en Ubuntu 11.04. Hay varios servidores y clientes disponibles, pero vamos a utilizar como servidor uno de los más sencillos que existen que es el x11vnc y como cliente usaremos a vncviewer. Primeramente daremos paso a la instalación del cliente, desde la consola hacemos: sudo apt-get install x11vnc Transcurridos unos minutos ya tendremos el servidor instalado. Ahora vamos a arrancar el servidor utilizando la siguiente instrucción: x11vnc -bg -gui -passwd mi_contraseña -bg: Con este parametro iniciaremos el servidor en segundo plano (back ground), esto nos sirve por si deseamos cerrar la consola desde donde lo lanzamos el servidor siga activo. -gui: Con esto arrancamos junto con el servidor la interfaz grafica para que le podemos configurar ciertas cosas. -passwd: Seguido de esto debemos de colocar un password para que los clientes se conecten al servidor. Al ejecutar la linea anterior, la consola quedara bloqueda por el lanzamiento del servidor, y se iniciara la consola grafica de configuración, como se muestra en la siguiente imagen: En el menu Actions, se realizan operaciones como detener el servidor y salir de él. Dentro del menu permissions se pueden hacer operaciones interesantes como: allow: Aqui podemos especificar una lista de direcciones ip de equipos a los que se les permitira acceso, esto es muy util cuando en nuestra red tenemso ip’s fijas. Al darle clic en allow, se pone un cuadro de texto en la parte inferior, donde podemos especificar separadas por comas, las direcciones ip permitidas, cuando hayamos terminado de escribir la lista pulsamos en el boton “Ok”. forever: Esta opcion la debemos de marcar para que cuando un cliente se desconecta, no se cierre la conexión, es decir, que siga escuchando peticiones para nuevas conexiones. viewonly: Solo ver, esta opción si esta marcada solo permitira a los clientes observar el escritorio del servidor, pero no podra manipularlo. La interfaz de configuración grafica la podemos cerrar sin problema y el servidor seguira corriendo. Este servidor escucha por el puerto 5900, por lo que hay que asegurarnos que no este bloqueado este puerto ni este siendo usado por otro servicio. Y con esto terminamos la configuración del servidor, ya esta corriendo y listo para recibir peticiones de un cliente y que este inicie sesión gráfica remota. Si queremos cerrar el servidor desde consola hacemos: sudo killall x11vnc Ahora vamos a configurar un cliente. Cliente vnc. El cliente que vamos a utilizar se llama vncviewer, al igual que el servidor x11vnc se encuentra en los1 repositorios oficiales de Ubuntu por lo que no hay nigún problema para instalarlo haciendo, dicho cliente viene como parte del paquete xtightvncviewer, por lo que primero instalamos ese: sudo apt-get install xtightvncviewer Una vez hecho esto lanzamos el cliente de la siguiente manera: vncviewer Al hacer esto nos saldra la siguiente ventana, donde especificaremos el ip del servidor: Escribimos el ip del servidor y pulsamos enter. Despues se nos pide el password, que es el mismo que escribimos cuando arrancamos el servidor. Despues de haber proporcionado el password ya se iniciara la sesión gráfica remota. SERVIDOR FTP Introducción. FTP (File Transfer Protocol) o Protocolo de Transferencia de Archivos (o ficheros informáticos) es uno de los protocolos estándar más utilizados en Internet siendo el más idóneo para la transferencia de grandes bloques de datos a través de redes que soporten TCP/IP. El servicio utiliza los puertos 20 y 21, exclusivamente sobre TCP. El puerto 20 es utilizado para el flujo de datos entre cliente y servidor. El puerto 21 es utilizando para el envío de órdenes del cliente hacia el servidor. Prácticamente todos los sistemas operativos y plataformas incluyen soporte para FTP, lo que permite que cualquier computadora conectada a una red basada sobre TCP/IP pueda hacer uso de este servicio a través de un cliente FTP. VSFTPD (Very Secure FTP Daemon) es un sustento lógico utilizado para implementar servidores de archivos a través del protocolo FTP. Se distingue principalmente porque sus valores por defecto son muy seguros y por su sencillez en la configuración, comparado con otras alternativas como Wu-ftpd. Actualmente se presume que VSFTPD es quizá el servidor FTP más seguro del mundo. Sustento lógico necesario. yum -y install vsftpd Ficheros de configuración. /etc/vsftpd.user_list Lista que definirá usuarios a enjaular o no a enjaular, dependiendo de la configuración. /etc/vsftpd/vsftpd.conf Fichero de configuración. Procedimientos. Utilice un editor de texto y modifique el fichero /etc/vsftpd/vsftpd.conf. A continuación analizaremos los parámetros a modificar o añadir, según serequiera para necesidades particulares. Parámetro anonymous_enable. Se utiliza para definir si se permitirán los accesos anónimos al servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera. anonymous_enable=YES Parámetro local_enable. Es particularmente interesante si se combina con la función de jaula (chroot). Establece si se van a permitir los accesos autenticados de los usuarios locales del sistema. Establezca como valor YES o NO de acuerdo a lo que se requiera. local_enable=YES Parámetro write_enable. Establece si se permite el mandato write (escritura) en el servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera. write_enable=YES Parámetro ftpd_banner. Este parámetro sirve para establecer el banderín de bienvenida que será mostrado cada vez que un usuario acceda al servidor. Puede establecerse cualquier frase breve que considere conveniente. ftpd_banner=Bienvenido al servidor FTP de nuestra empresa. Estableciendo jaulas para los usuarios: parámetros chroot_local_user y chroot_list_file. De modo predeterminado los usuarios del sistema que se autentiquen tendrán acceso a otros directorios del sistema fuera de su directorio personal. Si se desea recluir a los usuarios a solo poder utilizar su propio directorio personal, puede hacerse fácilmente con el parámetro chroot_local_user que habilitará la función de chroot() y los parámetros chroot_list_enable y chroot_list_file para establecer el fichero con la lista de usuarios que quedarán excluidos de la función chroot(). chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/vsftpd.chroot_list Con lo anterior, cada vez que un usuario local se autentique en el servidor FTP, solo tendrá acceso a su propio directorio personal y lo que este contenga. No olvide crear el fichero /etc/vsftpd/vsftpd.chroot_list, ya que de otro modo no arrancará el servicio vsftpd. touch /etc/vsftpd/vsftpd.chroot_list Control del ancho de banda. Parámetro anon_max_rate. Se utiliza para limitar la tasa de transferencia en bytes por segundo para los usuarios anónimos, algo sumamente útil en servidores FTP de acceso público. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios anónimos: anon_max_rate=5120 Parámetro local_max_rate. Hace lo mismo que anon_max_rate, pero aplica para usuarios locales del servidor. En el siguiente ejemplo se limita la tasa de transferencia a 5 Kb por segundo para los usuarios locales: local_max_rate=5120 Parámetro max_clients. Establece el número máximo de clientes que podrán acceder simultáneamente hacia el servidor FTP. En el siguiente ejemplo se limitará el acceso a 5 clientes simultáneos. max_clients=5 Parámetro max_per_ip. Establece el número máximo de conexiones que se pueden realizar desde una misma dirección IP. Tome en cuenta que algunas redes acceden a través de un servidor proxy o puerta de enlace y debido a esto podrían quedar bloqueados innecesariamente algunos accesos. en el siguiente ejemplo se limita el número de conexiones por IP simultáneas a 5. max_per_ip=5 Aplicando los cambios. A diferencia de otros servicios FTP, VSFTPD no requiere configurarse como servicio sobre demanda. Por lo tanto no depende de servicio xinetd. La versión incluida en distribuciones como Red Hat™ Enterprise Linux 3.0 y White Box Enterprise Linux 3.0 puede inicializarse, detenerse o reinicializarse a través de un guión similar a los del resto del sistema. De modo tal, podrá inicializarse, detenerse o reinicializarse a través del mandato service y añadirse al arranque del sistema en un nivel o niveles de corrida en particular con el mandato chkconfig. Para ejecutar por primera vez el servicio, utilice: service vsftpd start Para hacer que los cambios hechos a la configuración surtan efecto, utilice: service vsftpd restart Para detener el servicio, utilice: service vsftpd stop Para añadir VSFTPD al arranque del sistema en todos los niveles de corrida, utilice: chkconfig vsftpd on Modificaciones necesarias en el muro cortafuegos. Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo Shorewall, es necesario abrir los puerto 20 y 21 por TCP (FTP-DATA y FTP, respectivamente). SERVIDOR HTTP Servidor WEB En primer lugar tendremos que tener instalado dicho programa, que estando en Debian será de lo más fácil (siendo root): # apt-get install apache Una vez instalado, pasemos a su configuración, que se basará en la edición de algunos archivos de configuración del apache (repito que es necesario tener privilegios de administrador). Lo primero de todo será editar /etc/apache/httpd.conf, su archivo principal, en el cual personalizaremos apache para ajustarlo a nuestras necesidades. Recuerdo lo de las copias de seguridad, para poder restaurar el archivo en caso de que fallemos: # cp /etc/apache/httpd.conf /etc/apache/httpd.conf.old # vi /etc/apache/httpd.conf Nos aparecerá una pantalla negro con líneas. Algunas de estas líneas empiezan con el símbolo "#", eso indica que no serán leídas como código, sino como comentarios, y por lo tanto serán ignoradas. Esto resulta útil para apuntar lo que hacemos, aclarar alguna línea de código... Es hora de modificar el archivo. Para ello buscaremos la línea siguiente: ServerType standalone Esto significa que ServerType coje el valor de standalone. Es la manera en que se ejecutará el servidor. Lo dejaremos así. A medida que vayas bajando, notarás que hay muchas más definiciones del tipo "Variable valor", de momento no tocaremos nada porque son propias del funcionamiento de apache y no nos interesa cambiar nada, por lo tanto dejaremos los valores por defecto que se nos indica. Cuando llegamos a ### Section 2: 'Main' server configuration es cuando empezaremos a indicar lo que deseemos. Vamos bajando y encontraremos las siguientes definiciones: Port 80 Es el puerto donde apache escuchará. Por defecto el 80, ya que si pusiéramos otro cualquiera, deberíamos especificarlo en la petición de la URL. Si ponemos 7001 por ejemplo, para visitar la página tendríamos que poner en el navegador "http://www.dominio.org:7001". Por lo que lo dejamos en 80. User www-data Group www-data Nombre de usuario y grupo con el cual se ejecutará el servidor. Es necesario, por razones de seguridad, no poner ni root ni cualquier usuario privilegiado. wwwdata es el que traía por defecto y me pareció el más apropiado. ServerAdmin webmaster@dns Se especifica la dirección de email a la que se enviarán los mensajes de error. En nuestro caso pondremos webmaster@dns que es la dirección de email local del administrador de la web. ServerName dominio.org Nombre del servidor. Este valor tiene que ser un DNS válido o la IP del servidor web. Dado que compremos dominio.org, será lo que pondremos. DocumentRoot /home/web Indica el path (ruta completa) de la carpeta donde guardaremos los archivos de la página principal. En nuestro caso /home/web. <Directory /var/www/> Esta etiqueta no debe quedarse así, sino que se tiene que canviar /var/www/ por lo que pusimos en DocumentRoot. Así que quedaría: <Directory /home/web/> UserDir /home/todos/*/tu_web Path del directorio que almacenará la página personal de cada usuario. /home/todos/*/tu_web es lo que puse. Así, si alguien escribe en el navegador www.dominio.org/~eberney entrará en la página personal del usuario eberney. DirectoryIndex index.html index.htm default.htm index.php Será el fichero o ficheros que tomará el servidor como índice del directorio web. Se suele poner "index.html", aunque se admiten varios más separándolos con espacios (default.html, index.php, index.asp...). No sabía con qué trabajarían los usuarios, así que puse los que se me ocurrieron en ese momento. Hay muchas más opciones que deberían comentarse, pero no es el caso, nosotros solo queremos lo mínimo para que funcione bien. Ahora falta poner una página en el DocumentRoot que hayamos escogido. Crearemos la carpeta indicada, en mi caso: # mkdir /home/web Y editaremos cualquier archivo html para probar si funciona: # vi /home/web/index.html Escribimos: <html> Hola </html> Salimos del editor vi (:wq). Después de haber configurado el apache toca reiniciarlo con el siguiente comando: # apachectl restart Solo nos queda comprobar que todo funciona bien. # lynx localhost lynx es un navegador en modo texto para visitar páginas web desde la consola. Tendría que aparecernos en pantalla "Hola" (el contenido de /home/web/index.html). Pero esto es en ámbito local, por lo que si desde cualquier ordenador conectado a internet que esté fuera de la LAN ponemos en el navegador www.dominio.org no saldrá la página, por varias razones: -El router no tiene abierto el puerto publico 80 ni redirigido a nuestro servidor apache. -Falta aplicar el uso de VirtualHosts en el servidor apache. La primera es lo mismo que hicimos con el servidor DNS, pero cambiando el puerto a 80, que es el de la web. El segundo problema se puede resolver fácilmente. De nuevo tenemos que editar el archivo /etc/apache/httpd.conf e irnos al final de todo donde hay las etiquetas llamadas VirtualHost. Tenemos que buscar y sustituir lo siguiente: NameVirtualHost 192.168.0.5:80 La dirección con el puerto 192.168.0.5:80 es la del servidor apache que tenemos en la ethernet. Y ahora abrimos la etiqueta siguiente: <VirtualHost 192.168.0.5> DocumentRoot /home/web/ DirectoryIndex index.php index.html index.htm ServerAdmin ntn@drdoom.net ServerName dominio.org ServerAlias *.dominio.org ErrorLog /home/web/logs/logerror CustomLog /home/web/logs/access-log common </VirtualHost> Esto crea un host virtual en 192.168.0.5 con características explicadas con anterioridad, excepto el ErrorLog, archivo donde se guardan los errores, y el CustomLog, fichero donde se almacenará un registro de todos los accesos a la web. Finalmente llega el esperado momento de la prueba, poner en marcha apache otra vez: # apachectl restart Ahora, desde cualquier lugar de internet podría uno visitar www.dominio.org. http://www.sorgonet.com/collaborations/servidor-ies/ SERVIDOR DE BASE DE DATOS Procedimientos. MySQL™ es incluido actualmente en la mayoría de las distribuciones de GNU/Linux de hoy en día, por lo que no habrá problema alguno en conseguir los binarios necesarios y propios de la distribución que se utilice. Bastará con instalar los incluidos en el CD de instalación o bien los disponibles entre los paquetes de actualización para la distribución que se utilice. Pregunte al sistema si se encuentran instalados los paquetes que componen MySQL™: rpm -q mysql mysql-server De no estar instalados, o bien si hay paquetes más recientes entre las actualizaciones disponibles, cambie a súper usuario o bien ingrese como root al sistema. Si utiliza Red Hat™ Enterprise Linux, procederemos a instalar lo necesario del siguiente modo: up2date -i mysql mysql-server Si utiliza White Box Enterprise Linux o bien otros clones de Red Hat™ Enterprise Linux, se ejecutar lo siguiente: yum -y install mysql mysql-server Lo anterior descargará las más recientes actualizaciones de seguridad de MySQL™ para Fedora™ Core, junto con todo lo que haga falta para satisfacer todas las dependencias de biblotecas y otro software. Si utiliza Red Hat™, CentOS o White Box Enterprise Linux 4.0, ejecute system-configsecuritylevel (mod gráfico), vaya a la pestaña de SELinux y en la sección de SELinux Service Protection habilite la casilla que dice Disable SELInux protection for mysqld daemon. De otro modo MySQL no podrá siquiera iniciar. Desactivar protección de SELinux para mysqld. La manera más apropiada de iniciar el servicio mysqld será ejecutado el siguiente mandato: /sbin/service mysqld start Procederemos a agregar a MySQL™ al los niveles de corrida 3, 4 y 5, de modo que la siguiente vez que se tenga que iniciar el equipo, MySQL™ se encuentre habilitado. /sbin/chkconfig --level 345 mysqld on Después de iniciado MySQL™ por primera vez, como root ejecute el mandato mysql: # mysql Esto nos ingresará directamente y sin mayor preámbulo al Shell de MySQL™, donde lo primero será asignar una contraseña cifrada al usuario root, ya que no es conveniente, de manera alguna y sin pretexto, dejar MySQL™ de este modo. Primero indicaremos que base de datos utilizar, en este caso será la principal y única existente, mysql: > use mysql Ahora haremos petición para que se muestren las tablas: > show tables; Procederemos hacer una petición para que se muestre el contenido de la tabla user: > select * from user; Esto hará que se vea, entre otras muchas cosas, lo siguiente: +-------------------------+----------+------------------+-------------+ | Host | User | Password | Select_priv | +-------------------------+----------+------------------+-------------+ | localhost | root | | Y | +-------------------------+----------+------------------+-------------+ Como se podrá ver, el usuario root no tiene asignada una contraseña, por lo que cualquiera que se identifique como root tendrá acceso. Asignaremos una contraseña del siguiente modo (sea cuidadoso con lo que teclea como contraseña): > update user set Password=PASSWORD('nuevo_password') where user='root'; Ejecute de nuevo el siguiente mandato: > select * from user; Notará que ahora hay un criptograma en el campo que corresponde a la contraseña de root. +-------------------------+----------+------------------+-------------+ | Host | User | Password | Select_priv | +-------------------------+----------+------------------+-------------+ | localhost | root |4593274b8e0d68j852| Y | +-------------------------+----------+------------------+-------------+ Refresquemos los privilegios a fin de que tomen efecto los cambios. > flush privileges Salgamos ahora a fin de regresar y poder probar la nueva contraseña. > quit Ingrese de nuevo al Shell de MySQL™: mysql Notará que ya no se puede acceder como antes, y regresa un mensaje de error. ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO) Ejecute ahora el mismo mandato, pero especificando un usuario (-u root) y solicitando se pregunte por una contraseña (-p): mysql -u root -p A continuación se le pedirá ingrese una contraseña, tras lo cual obtendrá de nuevo acceso al Shell de MySQL™ Creando y destruyendo bases de datos. Para crear una nueva base de datos, puede utilizarse el mandato mysqladmin con el parámetro create: mysqladmin -u root -p create dbejemplo Si queremos eliminar dicha base de datos, utilizamos el parámetro drop en lugar de create. mysqladmin -u root -p drop dbejemplo Otorgando permisos a los usuarios. En adelante el usuario root solo se utilizará para tareas administrativas y creación de nuevas bases de datos. Resultará conveniente delegar a los usuarios ordinarios el manejo de sus propias bases de datos. Una vez generada una base de datos, debemos determinar con que usuario y desde que equipo en la red local, se podrá tener acceso, así como los privilegios para modificar esta. Lo más común, y seguro, es asignar el acceso solo desde el mismo servidor (localhost), a menos que el desarrollo web o aplicación se localice en otro equipo. Genere un base de datos denominada directorio: mysqladmin -u root -p create directorio En seguida acceda al Shell de MySQL™ y ejecute lo siguiente, suponiendo que se desea asignar permisos sobre las tablas de la base de datos directorioal usuario jbarrios del equipo local: GRANT select, insert, update, create, alter, delete, drop ON directorio.* TO jbarrios@localhost IDENTIFIED BY 'password_del_usuario_jbarrios'; Al concluir, usted tendrá una base de datos "jbarrios" que podrá ser utilizada y modificada por el usuario jbarrios desde el servidor donde se encuentra instalada la base de datos, es decir, localhost. Esto establecerá un nivel de seguridad apropiado, y garantizará que de ser descifrada una contraseña de un usuario, está no podrá ser utilizada desde un equipo remoto. Si, por ejemplo, se requiere permitir el acceso a una base de datos jbarrios desde otro equipo en la red local con fines administrativos, podemos otorgar el acceso al usuario jperez del equipo que, según el DNS de la LAN, se denomina como maquina1.mi-red-local.org, es decirjperez@maquina1.mi-red-local.org. GRANT select, insert, update, create, alter, delete, drop ON directorio.* TO jperez@maquina1.mi-red-local.org IDENTIFIED BY 'password_del_usuario_jperez'; El muro corta-fuegos. MySQL™ escucha peticiones en el puerto 3306, tanto para TCP como para UDP. Puede implementar un Firewall o muro muro corta-fuegos que cierre dicho puerto, de modo tal que solo se puede acceder a MySQL™ desde la red local. Las siguientes líneas de ejemplo suponen que el servidor donde se encuentra instalado MySQL™ posee dos interfaces de red, eth0 y eth1, de las cuales la primera (eth0) corresponde a la interfaz de acceso hacia la red local y la segunda (eth1) corresponde a la interfaz de acceso hacia la red mundial. # MySQL™ /sbin/iptables -t filter -A INPUT -p tcp -s 0/0 -d 0/0 --dport 3306 i eht1 -j DROP /sbin/iptables -t filter -A INPUT -p udp -s 0/0 -d 0/0 --dport 3306 i eth1 -j DROP Si se requiere acceder remotamente hacia MySQL™ desde fuera de la red local, con fines meramente de administración, como sería algunos casos particulares, se requerirá añadir las siguientes líneas en el guión de Firewall o muro muro corta-fuegos a fin de abrir los puertos correspondientes. # MySQL™ /sbin/iptables -t filter -A INPUT -p tcp -s 0/0 -d 0/0 --dport 3306 j ACCEPT /sbin/iptables -t filter -A INPUT -p udp -s 0/0 -d 0/0 --dport 3306 j ACCEPT