Diferencia entre revisiones de «Página principal»

De Seguridad y Calidad en Servidores Web
Saltar a: navegación, buscar
(Instalando aplicaciones en CentOS)
Línea 1: Línea 1:
=Linux=
+
=Introducción=
 
Wiki de la asignatura Seguridad y Calidad en Servidores Web del Grado de Multimedia de la Universitat Oberta de Catalunya
 
Wiki de la asignatura Seguridad y Calidad en Servidores Web del Grado de Multimedia de la Universitat Oberta de Catalunya
  
 
En este wiki encontraréis las instrucciones básicas de Linux que necesitaréis para poder hacer la práctica de la asignatura.
 
En este wiki encontraréis las instrucciones básicas de Linux que necesitaréis para poder hacer la práctica de la asignatura.
  
== Introducción ==
+
== GNU/Linux ==
 +
GNU/Linux (aunque habitualmente suele conocerse como Linux) es un sistema operativo (SO) libre. Nació a partir del núcleo Linux creado en 1991 por Linus Torvalds. El núcleo (Linux) junto con el resto de aplicaciones que componen un sistema operativo (creadas en el proyecto GNU) es lo que habitualmente conocemos como GNU/Linux o, simplemente, Linux. Actualmente es ampliamente utilizado como servidor web, entre otras cosas por que puede instalarse en diferentes máquinas, es estable y libre. Así, Facebook, Gmail, LinkedIn o Yahoo utilizan servidores GNU/Linux, lo cual puede dar una idea de la importancia de este SO.
 +
Prácticamente todas las empresas de alojamiento web (hosting en inglés) ofrecen planes de alojamiento basados en Linux. También para grandes empresas pueden crearse redes de servidores funcionando con GNU/Linux.
 +
Para simplificar, a partir de este momento, nos referiremos a GNU/Linux como Linux, aunque conviene no olvidar que Linux es tan solo el núcleo del sistema.
 +
 
 +
[['''El sistema operativo''']]
 +
La función de cualquier sistema operativo (SO) es proporcionar una interfaz para utilizar las prestaciones del hardware de un ordenador. Los programadores acceden a estas prestaciones a través del SO y pueden diseñar aplicaciones de propósito específico para usuarios finales. Éstos, a su vez, utilizan el SO para poder ejecutar dichas aplicaciones.
 +
Linux pertenece a la familia de sistemas denominada Unix y su filosofía está heredada de este tipo de sistemas. En lo que sigue, cuando definamos muchas de las características, funcionamiento e incluso comandos de Linux, podemos asumir que se puede aplicar a prácticamente cualquier sistema Unix con mínimos cambios. Así por ejemplo, ya podemos decir que Linux es un sistema multiusuario y multitarea, es decir, permite a varios usuarios trabajar simultáneamente y ejecutar diversas aplicaciones a la vez. Estas características determinan de forma importante el funcionamiento del sistema, el cual debe garantizar que toda esta carga de trabajo simultánea se lleve a cabo de forma segura y eficiente.
 +
Linux está organizado por capas. La capa más profunda corresponde al hardware, que proporciona una serie de servicios (proceso, gestión de ficheros, impresión, etc.). La única capa que interactúa directamente con el hardware es el núcleo (kernel). De esta manera, los programas no necesitan saber nada sobre el hardware y sólo se comunican con el núcleo. Una de las ventajas de esta estructura es que la mayoría de programas son independientes del hardware y pueden portarse de un modelo de ordenador a otro.
 +
Las aplicaciones que funcionan sobre el núcleo constituyen el último nivel y el único visible para los usuarios. Algunas de estas aplicaciones son utilidades básicas para la gestión de la información y la ejecución de programas y ya vienen con el sistema operativo, por lo que es habitual hablar de Linux refiriéndonos no sólo al núcleo, sino también a dicho conjunto de utilidades, desarrolladas por el proyecto GNU.
 +
 
 +
¿Quién me escucha?
 +
Una de las ideas fundamentales de Linux que deriva de la estructura de capas es que los usuarios no ‘hablan’ directamente con el sistema, sino que lo hacen a través de una aplicación denominada intérprete de comandos (shell). Esta aplicación está constantemente ‘escuchando’ todo lo que el usuario teclea e interpreta (a partir de unas ciertas reglas sintácticas) sus peticiones.
 +
El intérprete de comandos dispone de una serie de comandos internos que él mismo ejecuta, pero, asimismo, puede ejecutar otros comandos externos, pasándoles las opciones que el usuario ha especificado. En la imagen vemos el comando cat que permite visualizar el contenido de un fichero especificado por el usuario. Algunos comandos ejecutan aplicaciones que proporcionan sus propia interfaz y conjuntos de órdenes para interactúar con los usuarios, como el editor de textos vi.
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 +
 
 
La práctica de esta asignatura la vamos a hacer en máquinas virtuales del servicio [http://aws.amazon.com/es/ec2/ ec2 de Amazon]. Este servicio ofrece mucha flexibilidad a la hora de crear nuevos proyectos web, pues permite ampliar el número de máquinas conforme se van necesitando.
 
La práctica de esta asignatura la vamos a hacer en máquinas virtuales del servicio [http://aws.amazon.com/es/ec2/ ec2 de Amazon]. Este servicio ofrece mucha flexibilidad a la hora de crear nuevos proyectos web, pues permite ampliar el número de máquinas conforme se van necesitando.
  

Revisión del 13:05 23 feb 2015

Introducción

Wiki de la asignatura Seguridad y Calidad en Servidores Web del Grado de Multimedia de la Universitat Oberta de Catalunya

En este wiki encontraréis las instrucciones básicas de Linux que necesitaréis para poder hacer la práctica de la asignatura.

GNU/Linux

GNU/Linux (aunque habitualmente suele conocerse como Linux) es un sistema operativo (SO) libre. Nació a partir del núcleo Linux creado en 1991 por Linus Torvalds. El núcleo (Linux) junto con el resto de aplicaciones que componen un sistema operativo (creadas en el proyecto GNU) es lo que habitualmente conocemos como GNU/Linux o, simplemente, Linux. Actualmente es ampliamente utilizado como servidor web, entre otras cosas por que puede instalarse en diferentes máquinas, es estable y libre. Así, Facebook, Gmail, LinkedIn o Yahoo utilizan servidores GNU/Linux, lo cual puede dar una idea de la importancia de este SO. Prácticamente todas las empresas de alojamiento web (hosting en inglés) ofrecen planes de alojamiento basados en Linux. También para grandes empresas pueden crearse redes de servidores funcionando con GNU/Linux. Para simplificar, a partir de este momento, nos referiremos a GNU/Linux como Linux, aunque conviene no olvidar que Linux es tan solo el núcleo del sistema.

'''El sistema operativo''' La función de cualquier sistema operativo (SO) es proporcionar una interfaz para utilizar las prestaciones del hardware de un ordenador. Los programadores acceden a estas prestaciones a través del SO y pueden diseñar aplicaciones de propósito específico para usuarios finales. Éstos, a su vez, utilizan el SO para poder ejecutar dichas aplicaciones. Linux pertenece a la familia de sistemas denominada Unix y su filosofía está heredada de este tipo de sistemas. En lo que sigue, cuando definamos muchas de las características, funcionamiento e incluso comandos de Linux, podemos asumir que se puede aplicar a prácticamente cualquier sistema Unix con mínimos cambios. Así por ejemplo, ya podemos decir que Linux es un sistema multiusuario y multitarea, es decir, permite a varios usuarios trabajar simultáneamente y ejecutar diversas aplicaciones a la vez. Estas características determinan de forma importante el funcionamiento del sistema, el cual debe garantizar que toda esta carga de trabajo simultánea se lleve a cabo de forma segura y eficiente. Linux está organizado por capas. La capa más profunda corresponde al hardware, que proporciona una serie de servicios (proceso, gestión de ficheros, impresión, etc.). La única capa que interactúa directamente con el hardware es el núcleo (kernel). De esta manera, los programas no necesitan saber nada sobre el hardware y sólo se comunican con el núcleo. Una de las ventajas de esta estructura es que la mayoría de programas son independientes del hardware y pueden portarse de un modelo de ordenador a otro. Las aplicaciones que funcionan sobre el núcleo constituyen el último nivel y el único visible para los usuarios. Algunas de estas aplicaciones son utilidades básicas para la gestión de la información y la ejecución de programas y ya vienen con el sistema operativo, por lo que es habitual hablar de Linux refiriéndonos no sólo al núcleo, sino también a dicho conjunto de utilidades, desarrolladas por el proyecto GNU.

¿Quién me escucha? Una de las ideas fundamentales de Linux que deriva de la estructura de capas es que los usuarios no ‘hablan’ directamente con el sistema, sino que lo hacen a través de una aplicación denominada intérprete de comandos (shell). Esta aplicación está constantemente ‘escuchando’ todo lo que el usuario teclea e interpreta (a partir de unas ciertas reglas sintácticas) sus peticiones. El intérprete de comandos dispone de una serie de comandos internos que él mismo ejecuta, pero, asimismo, puede ejecutar otros comandos externos, pasándoles las opciones que el usuario ha especificado. En la imagen vemos el comando cat que permite visualizar el contenido de un fichero especificado por el usuario. Algunos comandos ejecutan aplicaciones que proporcionan sus propia interfaz y conjuntos de órdenes para interactúar con los usuarios, como el editor de textos vi.







La práctica de esta asignatura la vamos a hacer en máquinas virtuales del servicio ec2 de Amazon. Este servicio ofrece mucha flexibilidad a la hora de crear nuevos proyectos web, pues permite ampliar el número de máquinas conforme se van necesitando.

Como vamos a hacer un uso de las máquinas un poco especial (puesto que no las vamos a poner en producción), el funcionamiento será un poco especial, aunque nada complicado, el proceso será el siguiente:

  • Antes de conectarnos a nuestra máquina deberemos ponerla en marcha a través del enlace correspondiente del aula. Es importante volver a pararla una vez dejemos de usarla.
  • Una vez aparezca como funcionando copiaremos su dirección IP (cambia cada vez que se arranca) y ya podremos conectarnos a ella. Para hacerlos tenemos dos opciones dependiendo del sistema operativo que usemos.
    • En Linux o Mac, basta con abrir una ventana del terminal y poner ssh user@xxx.xxx.xxx.xxx (Deberéis sustituir las x por los números que aparezcan en la IP).
    • En Windows la opción mejor es bajarse la aplicación PuTTy. No necesita instalación y es muy fácil de usar.
  • Se os pedirá una contraseña. La habréis recibido por correo. Es obligatorio cambiar esa contraseña la primera vez que se accede a la máquina.

Como veréis, vamos a trabajar con la línea de comandos, con lo que será necesario que conozcáis al menos los comandos que deberéis usar durante el desarrollo de la práctica.

Algunas ideas básicas

  • Los archivos en Linux, igual que en otros sistemas operativos, se organizan en un árbol de directorios (o carpetas) a partir de una raíz. En Linux el directorio raíz es / (en Windows es \)
  • El camino o ruta (path) es la dirección del directorio donde se encuentra un archivo. Así, un archivo (con nombre nombre_archivo) que esté en el directorio A, que a su vez está en el directorio B, que a su vez está en el directorio raíz, estará en la ruta /B/A/ y nos referiremos a él como /B/A/nombre_archivo
  • En Linux mayúsculas y minúsculas se tratan como letras diferentes. Es importante usarlas correctamente.
  • Si alguna vez listamos algo que no cabe en la pantalla, podemos redireccionarlo (con | ) hacia el comando less para que nos permita subir y bajar por el contenido. Por ejemplo: ls -la | less (la barra la encontraréis en vuestro teclado en la tecla 1)

Enlaces a materiales de referencia

Os pedirá el primer apellido y el DNI (20+DNI) para poder acceder. Es posible que la primera vez no os permita bajar correctamente el archivo que queráis, volver a atrás y volver a entrar soluciona el problema...

Comandos básicos de Linux

Instalando aplicaciones en CentOS

Manuales