Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES C A M P U S A R A G Ó N “MIS EXPERIENCIAS EN EL DIPLOMADO DESARROLLO E IMPLEMENTACIÓN DE SISTEMAS CON SOFTWARE LIBRE EN LINUX” TRABAJO DE TITULACIÓN BAJO LA MODALIDAD DE “SEMINARIOS Y CURSOS DE ACTUALIZACIÓN Y CAPACITACIÓN PROFESIONAL” PARA OBTENER EL TITULO DE: “ I N G E N I E R O E N C O M P U T A C I Ó N ” P R E S E N T A : GISELLE CONCEPCIÓN CORTÉS VENCES ASESOR: ING. JOSÉ MANUEL QUINTERO CERVANTES MÉXICO 2006 UNAM – Dirección General de Bibliotecas Tesis Digitales Restricciones de uso DERECHOS RESERVADOS © PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL Todo el material contenido en esta tesis esta protegido por la Ley Federal del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). El uso de imágenes, fragmentos de videos, y demás material que sea objeto de protección de los derechos de autor, será exclusivamente para fines educativos e informativos y deberá citar la fuente donde la obtuvo mencionando el autor o autores. Cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por el respectivo titular de los Derechos de Autor. AGRADECIMIENTOS A Dios Por tener en la tierra a un siervo de Dios, quien me ha dado la enseñanza de tu hermosa palabra de amor y de bendición. Gracias te doy Dios por concederme salud y fuerza para lograr mis metas y compartirlas con mis seres queridos. A mis padres Por darme una hermosa enseñanza y un camino de verdad, por apoyarme en el transcurso de mis estudios y compartir conmigo este logro. A mi hermana Jazmín Este trabajo te lo dedico para que te de fuerza y valor para que sigues adelante luchando por todos tus objetivos. A mi hermana Nazareth Quien desde niña me vio luchando y esforzándome para lograr este sueño, quien me ha brindado su apoyo y amor, sigue luchando para que tú también seas parte de este hermoso triunfo que yo he logrado. A Pablo Quien ha sido mi compañero y amigo en el transcurso de estos años y vio mi esfuerzo reflejado en este trabajo y me ha apoyado para seguir adelante y cumplir con todas mis metas. A todos (as) que han visto mi esfuerzo y mi lucha para llegar a ser una Ingeniera. A todos muchas gracias. ÍNDICE ÍNDICE …….…………………………………………………………………………1 INTRODUCCIÓN ……………………………………………………………………….5 OBJETIVOS……………………………………………………………………………….7 OBJETIVO GENERAL..…………………………………………..…..……………7 OBJETIVOS ESPECÍFICOS.....…………………………………………………….7 CAPÍTULO I "MÓDULOS DEL DIPLOMADO”……………………………………...9 MÓDULO 1 “SISTEMA OPERATIVO LINUX”……………………………………...11 I.1.1 INTRODUCCIÓN ………………………………………………………………13 I.1.2 HISTORIA DE LINUX………………………………………………………………14 I.1.3 CARACTERÍSTICAS DE LINUX ………………………………………………15 I.1.4 DISTRIBUCIONES MÁS COMUNES ………………………………………15 I.1.5 COMPONENTES DEL SISTEMA OPERATIVO LINUX ……………………….17 I.1.6 COMANDOS BÁSICOS ………………………………………………………17 I.1.7 RUTAS ABSOLUTAS Y RELATIVAS……………………………………………..19 I.1.8 REDIRECCIONAMIENTO ………………………………………………………19 I.1.8.1 Redireccionamiento de salida………………………………………………19 I.1.8.2 Redireccionamiento de entrada ………………………………………19 I.1.9 FILTROS ……………………………………………………………………...20 I.1.9.1 Grep ……………………………………………………………………...20 I.1.10 PERMISOS ……………………………………………………………………...20 I.1.10.1 chmod (Permisos) ……………………………………………………...20 I.1.11 LIGAS……………………………………………………………………………..20 I.1.11.1 Liga Suave ……………………………………………………………...21 I.1.11.2 Liga Dura …………………………………………………………….. 21 MÓDULO 2 “ INSTALACIÓN Y ADMINISTRACIÓN DE LINUX” .....……………...23 I.2.1 INTRODUCCIÓN ……………………………………………………………...25 I.2.2 INSTALACIÓN DE SLACKWARE LINUX……………………………………....26 I.2.2.1 Pasos para la instalación del Slackware:...………………………………....26 I.2.3 EDITOR VI ……………………………………………………………………...28 I.2.3.1 ENTRADA AL EDITOR vi ………………………………………………………29 MÓDULO 3 “ EDITORES PARA LA CREACIÓN DE PÁGINAS WEB” ..…………31 I.3.1 INTRODUCCIÓN ……………………………………………………………...33 I.3.2 HISTORIA DE HTML……………………………………………………………...34 I.3.2.1 WWW ……………………………...………………………………34 I.3.2.2 HTML ……………………………………………………………...34 I.3.3 ESTRUCTURA DE UN PROGRAMA EN HTML ………………………………34 I.3.4 COMANDOS BÁSICOS ……………………………………………………...35 I.3.4.1 Tipos de Letras ……………………………………………………...35 I.3.4.2 Cabeceras ……………………………………………………………………..35 I.3.4.3 Listas ……………………………………………………………………………..36 I.3.4.3.1 Listas no Numeradas ….…………………………………………..37 I.3.4.3.2 Listas Numeradas ……………………………………………………...37 I.3.4.4 Separadores horizontales ……………………………………………...38 I.3.4.5 Imágenes ……………………………………………………………………..38 I.3.4.6 Tablas……………………………………………………………………………..39 I.3.4.7 Frames……………………………………………………………………………..40 MÓDULO 4 “ ADMINISTRACIÓN DE SERVIDORES WWW CON LINUX”…..….43 I.4.1 INTRODUCCIÓN ……………………………………………………………...45 I.4.2 INSTALACIÓN ……………………………………………………………...46 I.4.3 CGIS ……………………………………………………………………………..47 MÓDULO 5 “ PROGRAMACIÓN CON PHP” ………………………………………49 I.5.1 INTRODUCCIÓN ………………………………………………………………51 I.5.2 INSTALACIÓN ………………………………………………………………52 I.5.3 COMANDOS BÁSICOS ………………………………………………………53 I.5.3.1 Comentarios en php ………………………………………………………53 I.5.3.2 Variables ....…………………………………………………………...54 I.5.3.3 Cadenas ........………………………………………………………...54 I.5.3.4 Operadores…………..……………………………………………………...54 I.5.4 BLOQUES Y SENTENCIAS ………………………………………………………54 I.5.4.1 El ciclo for...............………………………………………………………...54 I.5.5 FUNCIONES ……………………………………………………………………...55 MÓDULO 6 “ ITERACIÓN DE WWW CON BASES DE DATOS” ………………57 I.6.1 INTRODUCCIÓN ……………………………………………………………...59 I.6.2 INSTALACIÓN ……………………………………………………………...60 I.6.3 COMANDOS PARA MYSQL………………………………………………………61 I.6.3.1 TABLA DE COMANDOS ………………………………………………62 MÓDULO 7 “ INTRODUCCIÓN A LA SEGURIDAD EN CÓMPUTO”…….………65 I.7.1 INTRODUCCIÓN ……………………………………………………………...67 I.7.2 SEGURIDAD EN LINUX ……………………………………………………...68 I.7.2.1 Amenaza ……………………………………………………………..68 I.7.2.2 Vulnerabilidad ……………………………………………………..69 I.7.2.3 Riesgo……………………………………………………………………..69 I.7.2.4 Tipos de Intrusos ……………………………………………………..69 I.7.2.5 Definición de Sistema de Cómputo Seguro ……………………………...69 I.7.2.6 Servicios y políticas de Seguridad ……………………………………..70 I.7.2.7 Servicios …………………………………………………………….70 I.7.3 SEGURIDAD FÍSICA …………………………………………………………..70 I.7.3.1 Medidas para mejorar la seguridad física de su instalación: ……………70 I.7.4 SEGURIDAD MEDIANTE CONTRASEÑAS ……………………………71 I.7.5 VIRUS …………………………………………………………………………...71 I.7.5.1 Variantes relacionadas con virus ……………………………………72 I.7.5.1.1 Los gusanos …………………………………………………………...72 I.7.5.1.2 Bombas lógicas …………………………………………………...72 I.7.5.1.3 Troyanos …………………………………………………………...72 MÓDULO 8 “ LENGUAJE DE PROGRAMACIÓN CON JAVA” ……………73 I.8.1 INTRODUCCIÓN …………………………………………………………...75 I.8.2 JAVA …………………………………………………………………………...76 I.8.3 CARACTERÍTICAS ……………………………………………………………76 I.8.3.1 ¿Qué es la Programación Orientada a Objetos (POO)?…………………76 I.8.3.2 ¿Qué es una clase?.………………………………………………………77 I.8.3.3 ¿Qué es un objeto? ……………………………………………………77 I.8.4 MÉTODOS DE UN OBJETO ……………………………………………………78 I.8.4.1 Constructor ……………………………………………………………78 I.8.4.2 La herencia ……………………………………………………………78 I.8.5 APPLETS ……………………………………………………………………79 CAPÍTULO II “ PROYECTOS REALIZADOS”……………………………………..81II.1 TUTORIALES Y LIBROS DE CONSULTA …………………………….83 II.1.1 Diagrama ……………………………………………………………………84 II.1.2 Códigos……………………………………………………………………………85 II.2 MINI AGENDITA ……………………………………………………………87 II.2. 1 Diagrama ……………………………………………………………………87 II.2.2 Códigos……………………………………………………………………………87 II.2.3 AGENDITA ……………………………………………………………………87 CONCLUSIONES ………………………………………………………………….114 BIBLIOGRAFÍA ………………………………………………………………….119 INTERNET ………………………………………………………………………….119 INTRODUCCIÓN INTRODUCCIÓN El Ingeniero en Computación es la persona que posee los conocimientos para el desarrollo, diseño y mantenimiento de hardware, software y las redes de computadoras, elaborando programas de cómputo con el fin de encontrar soluciones para el desarrollo computacional. Un ingeniero tiene los siguientes objetivos: • Poseer la capacidad para resolver problemas mediante el uso de herramientas computacionales. • Administrar recursos de cómputo, llevando un control de las necesidades de la empresa. • Buscar nuevo software, hardware y telecomunicaciones. • Mantenimiento de sistemas y redes de cómputo. • Estar actualizado, para mantenerse al día de los nuevos productos que haya en el mercado. En la época actual se han realizado estudios y aplicaciones que han ido logrando junto con el desarrollo de la computación, el uso de distintas aplicaciones para diversos organismos usando tecnologías avanzadas y estudio de nuevas metodologías, el desarrollo Web, el estudio y el manejo del sistema operativo linux que en la actualidad está teniendo mucho auge en el campo de la computación donde las compañías se han ido interesando cada ves más, es por eso que ya en la actualidad se pide que se tengan conocimientos en linux, para tener la información protegida y con menos probabilidades de que la información almacenada sea robada por alguna persona ajena. Aquí entra el estudio de la seguridad informática, siendo hoy en día uno de los factores más importantes, uno como ingeniero debe estar actualizado y mantenerse informado para que no se tengan problemas con los archivos que se guardan en la computadora y se puedan proteger de los famosos “Hackers”. Teniendo en cuenta que en estos días uno debe de estar al tanto de los desarrollos que se han ido surgiendo en la computación; donde los conocimientos adquiridos en el transcurso de la carrera se puedan reforzar con la práctica y con nuevos conceptos que han ido surgiendo a través del tiempo en lo que es la programación, sistemas operativos, bases de datos y en la seguridad informática. INTRODUCCIÓN Una manera de aprovechar la demanda de especialización y la demostración de los conocimientos y aptitudes que uno posee, es desarrollarlos eficazmente, brindando los servicios y las ventajas que ofrece linux a las organizaciones. Para estar al tanto de las nuevas tecnologías se ha cursado el diplomado de Desarrollo e Implementación de Sistemas con Software Libre Linux, cursado en DGSCA Mascarones, donde se llevó a cabo una completa actualización y un aprovechamiento de los conocimientos que se quieren obtuvieron en el transcurso del Diplomado. El Diplomado ha dado la oportunidad de mejorar y conocer más a fondo los métodos de programación, como es en el desarrollo Web, las bases de datos, seguridad informática, el desarrollo de aplicaciones y métodos de programación que ayudan a obtener la práctica, además de que con el diplomado no solo es de quedarse con lo que se enseña, sino también se debe de investigar y practicar para que en un futuro los proyectos que se realicen sean de calidad y satisfacción personal. En este proyecto lo que se busca es hacer un resumen general de lo que fue el Diplomado, para dar una explicación más fondo de lo que se vio. El proyecto contiene dos capítulos, el primer capítulo habla de un resumen general de los módulos que conformó el Diplomado. En el segundo capítulo se habla de los proyectos que se hicieron en el transcurso de Diplomado y por último se considerarán las conclusiones, donde se dará una opinión general acerca del Diplomado. OBJETIVOS OBJETIVOS Objetivo General Realizar un resumen general con base a los conocimientos obtenidos en el transcurso del diplomado Desarrollo e Implementación de Sistemas en Software Libre en Linux, para poner en práctica lo aprendido en el campo laboral. Objetivos Específicos Para poder cumplir el objetivo establecido en el punto anterior, se plantean objetivos intermedios que se pueden ver como peldaños, por los cuales es necesario pasar para alcanzar el objetivo deseado. El propósito de cubrir estás pequeñas metas es adquirir un conjunto de habilidades y datos los cuales se aplican para resolver los problemas y desarrollar el sistema. Los objetivos específicos que se plantearon en el desarrollo de este trabajo son los siguientes: • Aprender el sistema operativo Linux, conociendo sus ventajas, su desarrollo, los programas libres que se utilizan en Linux y así tener una base para conocer más a fondo el sistema. • Estudiar los fundamentos de los sistemas, ventajas y la relación que tiene con otros sistemas operativos como es Windows. • Obtener los conocimientos que se adquieren en programación y utilizarlos para el proyecto. • Realizar proyectos que apliquen lo que se aprendió en los módulos del Diplomado. • Estudiar los fundamentos de la Seguridad en Informática para tener una mejor utilización de los archivos que se tienen almacenados en la computadora y no puedan robar la información que se tiene. CAPÍTULO I MÓDULOS DEL DIPLOMADO MÓDULO 1 “SISTEMA OPERATIVO LINUX” MÓDULO I I.1.1 INTRODUCCIÓN LINUX es un sistema operativo, donde el usuario puede interactuar con la computadora. La principal característica que lo diferencia del resto de los sistemas operativos es que es libre, esto significa que no se tiene que pagar ningún tipo de licencia por el uso del mismo. El sistema esta formado por el kernel, que es el que se encarga de administrar los archivos y directorios junto con un gran número de programas que hacen posible su utilización. Este módulo contiene la historia de Linux, quien fue su creador, porque surgió, sus características, su uso, tipos de distribuciones, tipos de comandos, su utilización, la forma de hacer ligas, como copiar y borrar archivos, etc. El Sistema Operativo que se manejará en el transcurso del diplomado es Slackware Linux, diseñado con dos objetivos: • Facilidad para usar y estabilidad. • Seguridad. Slackware Linux cumple con todos los requisitos que un sistema operativo puede contener ya que proporciona a los usuarios una facilidad para realizar tareas especificas o bien para utilizarse ya en el ámbito de la programación. Slackware es un sistema totalmente equipado para utilizarse de forma cotidiana. Las herramientas que se pueden encontrar en slackware pueden ir desde las básicas como son: mandar un e-mail, el uso de Open Office que es muy similar a Office en Windows, navegar por Internet, chatear por el messenger etc, hasta para ser utilizado para la creación de páginas Web, programación con Java, etc. Con esta tecnología se ha brindado al usuario y el desarrollado de programas con un control total y la legalidad sobre el software que se ejecuta, sustituyendo las tecnologías existentes con reemplazos libres sin tener que pagar alguna licencia por el uso de estos programas, con formatos abiertos, seguridad y acceso total al funcionamiento de los sistemas operativos dando la oportunidad de practicar y proporcionar ideas para realizar nuevosproyectos. El propósito del módulo I es brindar a los usuarios un conocimiento general de lo que es Linux y cuales son las herramientas necesarias para su utilización. MÓDULO I I.1.2 HISTORIA DE LINUX A través del tiempo Linux se ha ido desarrollando rápidamente, siendo un sistema operativo de libre distribución como es Unix. Fue desarrollado originalmente por Linus Torvalds en el año de 1991, siendo él un informático que estudió en la Universidad de Helsinki en Finlandia. Linus Torvalds se dedicó a escribir el código para crear su propio sistema operativo al que llamaría Linux basándose en un sistema llamado Minix (un sistema Unix básico) y con la ayuda de programadores con grandes conocimientos basados en el sistema Unix (Linux Guía Práctica, Martín, Anaya Multimedia). A principios de 1996 uno de los procesos fundamentales para Linux era la creación de su propio logo, al igual que Microsoft, Linux creo el suyo. Hubo muchas sugerencias, entre ellas tiburones, águilas, bestias, etc. Se menciona que Linus Tolvalds estaba fascinado con los pingüinos, desde entonces se empezaron a crear distintos tipos de pingüinos hasta encontrar el que estuviera perfecto para darle nombre al sistema operativo (Linux Guía Práctica, Martín, Anaya Multimedia). Con esto se dibujo al pingüino perfecto que le daría vida y seguridad Linux. Su nombre es Tux. El nombre de Tux proviene de Tuxedo y de smoking, ya que los pingüinos parece que visten de smoking. De ahí se tiene el logo de Linux. Así fueron pasando los años más programas se fueron desarrollando también en versiones libres que ahora se encuentran disponibles para este sistema operativo, y la calidad de los mismos para ser utilizados bajo Linux, entre ellos se tienen a: Apache, PHP, Potsgresql, MySQL, etc. La gran mayoría de los mismos vienen acompañados del código fuente y se distribuyen gratuitamente bajo los términos de licencia de la GNU Public License. En los últimos tiempos, ciertas casas de software comercial han empezado a distribuir sus productos para Linux y la presencia del mismo en empresas aumenta rápidamente por la excelente relación calidad-precio que se consigue con Linux. MÓDULO I I.1.3 CARACTERÍSTICAS DE LINUX Linux posee todas las características de los sistemas comerciales usados en los entornos de trabajo más exigentes y se encuentra actualmente en unas cotas de eficacia que le hacen dominar el mercado de los grandes servidores y, estar cada vez más presente en los equipos de los usuarios domésticos. Algunas de sus principales características son: • Es un sistema operativo de tiempo compartido • Multiproceso. Permite la ejecución de varias aplicaciones simultáneamente. • Multiusuario. Distintos usuarios pueden acceder a los recursos del sistema simultáneamente aunque se trate de una instalación en una sola máquina. • Multiplataforma. Funciona con la mayoría de plataformas del mercado: Intel 386/486/Pentium, Motorola 680, Sun. • Shells programables que lo convierten en el sistema más flexible que existe. • Soporte para cualquier cantidad y tipo de dispositivos directamente en el núcleo. • Soporte para la mayoría de sistemas de ficheros. • Multitareas describe la habilidad de ejecutar aparentemente, al mismo tiempo, numerosos programas sin obstaculizar la ejecución de cada aplicación. • Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente. Estas características lo convierten, probablemente, en uno de los sistemas más avanzados que existen. I.1.4 DISTRIBUCIONES MÁS COMUNES El tipo de plataforma se refiere a la arquitectura del hardware sobre el que va a correr Linux, para ello se debe conocer las características del hardware para adquirir el tipo de distribución apropiada de acuerdo al equipo donde se va a instalar. MÓDULO I Para la instalación de Linux lo que se necesita es una distribución (es una recopilación de programas y ficheros organizados para su instalación, para que le de un ambiente gráfico a la computadora). Hay distintos tipos de distribuciones, se pueden obtener a través de Internet o comprando los CDs de las mismas, conteniendo todo lo necesario para instalar Linux bastante completo. Aunque es muy tardado casi todas las principales distribuidores de Linux, ofrecen la posibilidad de bajar sus distribuciones, aunque es recomendable comprar los CDs para tenerlos a la mano en caso de tener que volver a instalar el sistema en un futuro. Todas las distribuciones utilizan la versión del Kernel que se actualiza constantemente, las distribuciones varían y son diferentes en el ambiente gráfico esto depende mucho de los diseñadores y programadores que le dan su toque especial, implementación de nuevas herramientas, programas, formatos gráficos, etc. (Linux Guía Práctica, Martín, Anaya Multimedia) A continuación se presentan algunas de las distribuciones que se pueden encontrar: DISTRIBUCIONES http://www.slackware.com/ http://www.redhat.com/ http://www.debian.org/ http://www.mandrake.com/ http://www.suse.com/ http://www.knopper.net/ MÓDULO I Al instalar Linux también se puede utilizar la misma paquetería y las mismas funciones que se realizaban en Windows como es el de hacer trabajos en Word, Excel; navegar por Internet; chatear, etc. Desde luego que en Linux también se puede hacer estas mismas cosas. Para cualquier tarea de oficina se pueden usar OpenOffice.org, KOffice, StarOffice, para usar el Internet se cuenta con una gran cantidad de Navegadores como es el Mozilla, el Nestcape, entre otros, también se puede utilizar el messenger para chatear con los amigos. I.1.5 COMPONENTES DEL SISTEMA OPERATIVO LINUX LINUX está compuesto básicamente de cuatro capas: • La capa está en el interior está conformada por el hardware, que es el conjunto de piezas físicas del equipo de cómputo. • La segunda capa es el Kernel o núcleo del sistema, su función principal es interpretar las instrucciones proporcionadas por el usuario y convertirlas en lenguaje de máquina e indicarle al hardware lo que tiene que realizar con dicha información. • La tercera capa está conformada por el grupo de los Shells o intérpretes de comandos, los cuales funcionan como la interfaz entre el usuario y el kernel. Proporcionan las herramientas para que el usuario se pueda comunicar con el núcleo del sistema de LINUX. • La cuarta y última capa es donde se encuentra el usuario junto con los programas y aplicaciones que se le han agregado al sistema como hojas de cálculo, lenguajes de programación, manejadores de bases de datos, procesadores de texto, etc. I.1.6 COMANDOS BÁSICOS La estructura de los comandos es muy rígida y generalmente siguen la misma sintaxis, es decir, siempre se escribe primero el comando, en seguida las opciones si se requieren y al final los argumentos necesarios. Algunos de los comandos que se vieron en el transcurso del módulo son los siguientes: MÓDULO I Tabla de Comandos COMANDOS DESCRIPCION EJEMPLOS pwd Imprime el directorio actual de trabajo. pwd grep mike /etc/passwd grep Busca patrones en archivos. mkdir dir Permite crear directorios. mkdir temp ls Muestra una lista del contenido del directorio actual de trabajo. ls rm -r dir Éste comando borra directorios. rm –r caperta cal [[mes] año] Muestra un calendario del Mes/año. cal 1 2025 cd [dir] Cambia de directorio. Cd /root chown Cambia el dueño un archivo. chown nobody miscript file arch Muestra el tipo de un archivo. file arc_desconocido mv fich1 ...fichN dir Mueve un archivo(s) a un directorio mvarchivo archivo1 kill Matar un proceso. kill 234 cat Ver contenido de un archivo. cat archivo passwd Cambia la contraseña. passwd who / rwho Muestra información de los Usuarios. who clear Borra la pantalla. clear vi fich Edita un archivo. Vi archivo MÓDULO I I.1.7 RUTAS ABSOLUTAS Y RELATIVAS Las rutas absolutas siempre inician con el símbolo de “/” que indica el punto más alto de la estructura de directorios, a partir de aquí se debe poner la ruta completa para llegar al punto donde se quiera realizar una tarea. Ejemplo: cd /home Las rutas relativas nunca inician con el símbolo de raíz (/) en lugar de ello inician la ruta a partir del directorio actual de trabajo. Ejemplo: cd ../.. I.1.8 REDIRECCIONAMIENTO I.1.8.1 Redireccionamiento de salida El carácter mayor que (>) permite redireccionar la salida de un programa hacia un archivo. Ejemplo: ls > milista Manda la salida del comando ls a un archivo llamado milista, el resultado del comando “ls” no se imprime en pantalla, sino en el archivo indicado. I.1.8.2 Redireccionamiento de entrada El carácter menor que (<) permite redireccionar un archivo hacia un programa. Ejemplo: cat < milista MÓDULO I Este comando manda el archivo milista hacia el programa cat mostrando en pantalla el contenido del archivo milista. I.1.9 FILTROS I.1.9.1 Grep El comando busca patrones en archivos. Por defecto devuelve todas las líneas que contienen un patrón determinado en uno o varios archivos. I.1.10 PERMISOS Existen tres tipos de permisos que se aplican tanto a los archivos como a los directorios, ellos son: • r lectura • w escritura • x ejecución I.1.10.1 chmod (Permisos) Permite modificar los permisos de los archivos y directorios y la asignación de permisos, se puede hacer de dos formas mediante el método simbólico o mediante el método octal. Ejemplo: chmod 777 archivo I.1.11 LIGAS Existen dos tipos de ligas, una de ellas es la de tipo suave y la otra es de tipo dura. MÓDULO I I.1.11.1 Liga Suave Es un vínculo hacia un archivo pero la liga es de tamaño muy pequeño ya que solo hace referencia al archivo que se esta ligando, funciona como un acceso directo y generalmente asocia a un programa de nombre complejo con una liga la cual tiene un nombre más fácil de recordar. Sintaxis de la liga suave: ln –s nom_archivo nom_liga El comando ln permite que se generen ligas en este caso con la opción “–s” se va a indicar al sistema que se esta generando una liga de tipo suave. I.1.11.2 Liga Dura La liga dura al igual que la liga suave mantiene una relación con un archivo el cual esta ligado, la diferencia es que al comparar el tamaño de la liga con el archivo, ambos tienen el mismo tamaño, al editar el contenido de un archivo, esté se actualiza automáticamente con el otro, pero a comparación de un archivo común es que la liga esta asociada al mismo archivo con el que esta ligado. Sintaxis de la liga dura: ln nom_archivo nom_liga En este caso se está generando una liga dura, al aplicar el comando “ln” sin opciones el sistema interpreta el comando como la creación de una liga dura. MÓDULO 2 “INSTALACIÓN Y ADMINISTRACIÓN DE LINUX” MÓDULO II I.2.1 INTRODUCCIÓN En el segundo módulo se verá la instalación y administración del Sistema Operativo Linux, donde se conocerá como instalar Slackware y como usarlo en su forma gráfica. La principal característica que debe tenerse en cuenta es que siempre se debe de contar con un administrador de sistema, ya que es la persona que tiene la responsabilidad de configurar, mantener y actualizar el sistema donde se este trabajando. Cuidando el funcionamiento del software, hardware y periféricos de forma que estén disponibles para ser utilizados por los usuarios. Se tienen los siguientes puntos importantes en la administración del sistema: • Proporcionar un ambiente seguro, eficiente y confiable • Brindar un funcionamiento confiable del sistema. • Se divide el trabajo entre varios administradores, dependiendo del tamaño del sistema. Cocimientos como administrador: • Técnicas de Programación • Dominio de al menos un lenguaje de programación • Funcionamiento del sistema operativo • Técnicas de administración del Sistema Operativo • Conocimientos básicos de hardware y mantenimientos de dispositivos • Manejo del editor “vi” pues es común en este sistema. Tareas administrativas comunes: • Administración usuarios. • Configuración de dispositivos. • Programar respaldos periódicamente. • Capacitar usuarios. • Asegurar el sistema. • Registrar los cambios del sistema. • Asesorar a los usuarios. MÓDULO II I.2.2 INSTALACIÓN DE SLACKWARE LINUX Slackware no requiere de un sistema extremadamente potente para ejecutarse. Para instalarlo solo se necesita un procesador 386, unidad de CD-ROM, unidad de floppy Drive 1.44 MB, memoria Ram 16M-64M, espacio en Disco Duro de 500M a 3G, y el software que se puede bajar de la pagina de Slackware. I.2.2.1 Pasos para la instalación del Slackware: Se debe de tener configurado el Bios para que inicie con la opción de arranque de CD-ROM, para que esta sea la forma más sencilla de instalar Linux Slackware. Si no se tiene ningún Sistema Operativo en nuestra máquina se puede hacer la instalación, metiendo los discos que pertenecen a Slackware. Pero si hay un Sistema Operativo en la máquina como puede ser Windows XP, solamente hay que instalar en Windows el programa que se llama Partition Magic, con el programa se divide el disco duro en segmentos que se deseen, en este caso se tendrán dos uno será para Slackware y uno para Windows XP, se dá la instrucción de particionar el disco duro y se asigna el especio deseado, después se reinicia la máquina y queda el espacio para Slackware y el espacio para Windows,. Después de haber mencionado estos puntos se procede a la instalación. Se introduce el primer disco de Slackware, donde aparecerá una pantalla que nos dará la bienvenida, en la parte inferior de esta pantalla aparecerá el indicador boot, cargando las imágenes de los discos del boot y root. Después de arrancar la instalación detectará la mayor parte del hardware que está instalado en nuestra máquina. El primer paso de instalación es la configuración de nuestro teclado donde se elige la opción es.map del menú que es el mapa (ubicación de las teclas dependiendo del idioma) del teclado para la configuración en español se da aceptar y continuar con la instalación. Después se registra ante el sistema para que se asigne un shell y seguir con la instalación, para esto se da la instrucción root. A continuación se particiona el disco con fdisk /dev/hda y se n para crear una nueva partición, se genera una partición primaria dando la letra p, para la swap se puede trabajar con 256 M, se guardan los cambios realizados, y se continua con la instalación, con el comando setup, se desplega el asistente de instalación ahora en MÓDULO II formato gráfico en forma de menú se elige KEYMAP para elegir el tipo de teclado como ya se había hecho, automáticamente se detecta la partición del swap y nos solicita darle formato y damos YES y luego OK. Se elige la partición donde se va instalar, dando la opción de formatear para que se tenga el espacio donde se va a instalar Linux. A continuación se pide el tipo de sistema de archivoscon el cual se va a formatear la partición y para esto se da la opción reiserfs. Ya terminado el formateo de todas las particiones entrega un reporte con información de la(s) particiones. El siguiente paso es elegir el recurso desde el cual se va a realizar la instalación y se elige que se instale desde modo CD. Se selecciona la instalación de forma automática y en modo full para la instalación de los paquetes. Para la instalación del Kernel se debe instalar desde el CD. A continuación se da skip, no se instala el modem a menos de que se tenga un modem integrado en la tarjeta principal, se da la instrucción yes para que se reconozcan los dispositivos del hardware. Para instalar Lilo de manera experta, se pone la instrucción Begin y se da OK, e instantáneamente se hace la configuración de Lilo. Elegimos la resolución que se desea para el modo texto y para el modo consola en casi todas las tarjetas video soportan una resolución de 1024x768x256. El siguiente paso es decir donde se instala Lilo, lo recomendable es instalarlo en MBR del disco duro y damos OK. Se elige un tiempo de antes de que inicie con el sistema, se da forever, se elige el Sistema Operativo que es Windows y se pone la etiqueta del sistema que sería Windows XP, y a continuación se da para la de Linux y se pone el nombre de Linux Slackware y de esta forma se instalará los dos sistemas operativos. Se selecciona el tipo de mouse que está conectado a la computadora, en este caso sería PS2, OK, yes, yes, se procede a configurar la red, el sistema puede detectarla automáticamente, sino se procede a su configuración, después se selecciona continuar y se da que NO para definir la zona horaria que sería American/México_City. Para iniciar con la interfaz gráfica se selecciona que se inicie con la interfaz de KDE, se selecciona yes. Después pedirá una contraseña para el usuario administrador root, se selecciona OK y a continuación se da exit y se reinicia el equipo. MÓDULO II Al reiniciar el equipo se encuentra con la pantalla de Lilo donde se podrá seleccionar el sistema operativo que se desee puede ser Windows o Linux y con esto se acaba con la instalación. Entrando a Linux, el sistema pedirá el nombre del usuario y el password, se pondrá el que se le haya asignado (este es a nuestro gusto), en este caso el usuario será root y el password tendrá una contraseña 9999999. Y con esto se tendrá acceso a Linux y ya se puede trabajar en el sistema operativo. Con esto se ha finalizado la instalación del sistema operativo Slackware, mostrando su forma gráfica muy similar al sistema operativo Windows, para programar se encuentran editores, para hacer trabajos de escuela se utiliza el Open Office que ayuda a la realizar tareas de escuela, etc. Hay distintos tipos de editores que se pueden encontrar en Linux, un editor es una ventana de la consola o terminal que ayuda a visualizar el archivo que se este programando o bien que se quiera leer. Entre los editores más utilizados que se pueden encontrar en Linux son: • Editor Pico • Editor Vi • Editor Emacs En el diplomado se maneja el editor “vi” que a continuación se dará un resumen general para saber sus funciones y como se puede utilizar. I.2.3 EDITOR VI El editor vi es el editor que se maneja mucho en Linux. Siendo un editor con bastante flexibilidad, es potente y un poco difícil al principio, debido a la gran cantidad de opciones que tiene pero conforme a la práctica puede llegar a convertirse en el más cómodo y rápido. (El libro de Linux, Adison Wesley) Está hecho para escribir y modificar ficheros de texto sencillos, programas, etc. No permite justificar párrafos, utilizar distintos tipos de letra, escribir a varias columnas, insertar gráficos, etc. El editor “vi” es el más utilizado en ordenadores que utilicen el sistema operativo Linux. (El libro de Linux, Adison Wesley). MÓDULO II En “vi” existen 3 modos de trabajo: • Modo comando: cada tecla tiene un significado, y se puede desplazar el cursor, copiar, pegar, mover, borrar, etc. Hay que tener mucho cuidado, pues un comando en minúsculas o en mayúsculas tienen efectos muy diferentes. • Modo texto: se emplea para añadir o modificar el texto del documento. • Modo ex: inserción de comandos del editor de líneas ex. Se emplea para cambios masivos en el documento. I.2.3.1 ENTRADA AL EDITOR vi Si está en un terminal trabajando con un ordenador central que funcione con el sistema operativo LINUX (en cualquiera de sus muchas variantes), se usará el programa vi para editar un fichero con el siguiente comando: Sólo se da “vi” y el nombre de archivo ejemplo: Vi [nombre archivo] Entre los comandos más importantes y más utilizados para el editor “vi” se tienen los siguientes: Comandos Descripción :w [nombre del archivo] - guardar archivo en disco. :q Termina de teclear. :q! Termina sin guardar. :y Editar otro archivo. :! Comando - Ejecuta un comando. :r [archivo] - Leer otro archivo a partir del cursor. :x Guarda y finaliza. MÓDULO 3 “EDITORES PARA LA CREACIÓN DE PÁGINAS WEB” MÓDULO III I.3.1 INTRODUCCIÓN Desde que se creo el Internet, las personas han creado páginas Web, sea para una empresa, para una compañía disquera o bien para uso personal, este desarrollo ha llegado a ser todo un arte, ya que la realización de una página no es una tarea fácil y se necesita mucha creatividad. Una forma de programar es con el uso de HTML que significa HyperText Markup Language, es muy sencillo de usar ya que permite escribir el código del programa en una forma estructurada y agradable, con enlaces que conducen a otros documentos o fuentes de información relacionadas, y con inserciones multimedia (gráficos, sonido, etc.). La descripción se basa en especificar en el texto la estructura lógica del contenido (títulos, párrafos de texto normal, enumeraciones, definiciones, citas, etc.) así como los diferentes efectos que se quieren dar (especificar los lugares del documento donde se quiera colocar el tipo de letra que se desee, puede ser cursiva, negrita, o un gráfico determinado), después de que se termina el código para comprobar como va quedando la página se utiliza un navegador como Explorer o Netscape, que permite visualizar la página y se vea si va quedando bien. Una característica muy importante de este lenguaje es que es portable, es decir, se pueden visualizar las páginas con cualquier sistema operativo y por supuesto también crearlas . El Módulo III está diseñado para ayudar a profundizar la creación de páginas Web utilizando la programación en HTML, esta programación es muy sencilla y su utilización sirve para la creación y manipulación de las páginas Web. El lenguaje HTML se usa como un lenguaje de publicación de documentos en Internet. Ya que permite la realización de páginas que se visualizan en Internet, teniendo como objetivo mostrar información acerca de documentos o de empresas que se encuentran en Internet. Existen muchas herramientas que ayudan para la creación de las páginas, como es el caso de las etiquetas constituyen la filosofía de este lenguaje. Ya que por medio de ellas se pueden controlar los elementos tipográficos del texto como es el: tipo, color y tamaño de las fuentes, el estilo (negrita, cursiva, etc.), así como también la inserción de tablas, listas, formularios, la inserción de fotos, sonidos, fondos, etc. MÓDULO III I.3.2 HISTORIA DE HTML I.3.2.1 WWW Es el servicio Web o WWW que es la forma de representar la información enInternet basada en páginas. Una página WWW puede incluir tres tipos de información: texto, gráficos e hipertexto (Html Dinámico a través de ejemplos. Bobadilla). I.3.2.2 HTML Es el lenguaje que se utiliza para crear documentos de hipertexto para WWW, su utilización es muy sencilla. Para programar HTML se necesita de un editor, como es el caso del block de notas o bien en Linux se maneja también un editor llamado Kwrite que es el que sirve para hacer los programas y las páginas Web. (Html Dinámico a través de ejemplos, Bobadilla). I.3.3 ESTRUCTURA DE UN PROGRAMA EN HTML Para comenzar sólo necesitas un editor de texto para escribir las páginas como se mencionó anteriormente, puede ser en un block de notas y un navegador para visualizarlas. En general la estructura de un código HTML es la siguiente: <HTML> <TITLE>Título de la ventana</TITLE> <BODY> ......comandos y texto...... </body> </HTML> Como se puede comprobar, estos comandos tienen una orden de inicio y otra de fin, que no es más que el mismo comando con el signo / que ayuda a finalizar el programa y se cierre la instrucción. Los comandos pueden figurar en letras mayúsculas o en minúsculas indistintamente. La secuencia lógica de estas órdenes es la siguiente: • Inicio de un documento HTML • Inicio del título. MÓDULO III • Título (que conviene poner para identificar la página de cara al visitante). • Final del título. • Inicio del cuerpo de la página, esto es, de aquello que se quiere visualizar. • Fin del cuerpo de la página. • Fin del documento HTML. I.3.4 COMANDOS BÁSICOS HTML se compone de una serie de comandos que son interpretados por el visualizador, o programa que se utiliza para navegar por el WWW. HTML no reconoce los finales de línea, por esta razón aunque se utilice distintas líneas en el fichero serán visualizadas de forma continua. Para esto existen los comandos básicos para dar un salto de línea. El primero produce un salto de línea, <BR> pasando el texto a la línea siguiente. El segundo define un final de párrafo <P> dejando una línea en blanco de separación. I.3.4.1 Tipos de Letras Con HTML se pueden especificar distintos tipos de letra. Los más utilizados son letra en negrita, cursiva y courier que utilizan los códigos B, I, TT respectivamente, como lo demuestra el siguiente código: letra <B>negrita</B>, letra <I>cursiva</I> y letra <TT>courier</TT>. donde se verá de la siguiente manera: letra negrita, letra cursiva y letra courier. I.3.4.2 Cabeceras HTML dispone de seis cabeceras o tipos de letra predefinidos de distinto tamaño, que se utilizan para marcar los títulos o resaltes en las páginas. Se activan con el comando <Hn> y se desactivan con </Hn>, donde n es un número de 1 a 6. Las cabeceras son las siguientes: MÓDULO III <h1>Cabecera tipo 1</h1> <h2>Cabecera tipo 2</h2> <h3>Cabecera tipo 3</h3> <h4>Cabecera tipo 4</h4> <h5>Cabecera tipo 5</h5> <h6>Cabecera tipo 6</h6> Ejemplo: Cabecera tipo 1 Cabecera tipo 2 Cabecera tipo 3 Cabecera tipo 4 Cabecera tipo 5 Cabecera tipo 6 Con este ejemplo se muestran los distintos tipos de cabeceras que ayudarán a darle forma a la página. La h1 es la cabecera más grande y h6 es la cabecera más pequeña. Las cabeceras provocan un salto de línea, aunque no se le indique. I.3.4.3 Listas La presentación de información en forma de listas se puede realizar de dos formas básicas: como listas ordenadas (<OL>...</OL>) y como listas no ordenadas (<UL>...</UL>). Las listas ordenadas anteceden a cada párrafo un número, y las no ordenadas una marca (círculo o cuadrado). En ambos casos el número o la marca, sólo aparecerá si el párrafo se inicia con la orden <LI>. Un tercer tipo de listas denominadas listas de definición, se utiliza para presentar la información sin marcas, ni números, sino jugando con los sangrados de los párrafos. MÓDULO III I.3.4.3.1 Listas no Numeradas Para hacer una lista no numerada se realizan los siguientes pasos: 1. Se comienza la lista con una marca <UL>. 2. Se teclea la marca <LI> seguido de un objeto, no se necesita teclear </LI>. 3. Termina la lista tecleando </UL>. Ejemplo: <UL> <LI>manzanas <LI>peras <LI>uvas </UV> Obteniendo como resultado: • manzanas • peras • uvas I.3.4.3.2 Listas Numeradas Una lista numerada es también llamada una lista ordenada, es idéntica a una lista no numerada, excepto que ahora se usa <OL> en lugar <UL>. Los objetos son ordenados utilizando la marca <LI>. Ejemplos: <OL> <LI>naranjas <LI>duraznos <LI>uvas </OL> Se obtiene como resultado lo siguiente: 1. naranjas 2. duraznos 3. uvas MÓDULO III I.3.4.4 Separadores horizontales Un recurso para adornar las páginas son las líneas horizontales, que se obtienen con la orden <HR>. Dependiendo de los visualizadores, este separador horizontal puede modificarse en longitud y en altura. La modificación en altura se realiza con la orden <HR size="n"> donde n representa la anchura de la línea en puntos. La longitud del separador puede modificarse con la orden <HR width="n">. Ambas órdenes pueden combinarse en un separador que, en cualquier caso, siempre aparecerá centrado. Ejemplos: <HR> <HR size="20"> <HR width="200"> <HR size="20", width="200"> El resaltado de las líneas horizontales depende del color de fondo de la página, o de la imagen que se sitúe como fondo. I.3.4.5 Imágenes La etiqueta img que sirve para que WWW muestre una imagense tiene la siguiente sintaxis: <img src = image_URL > MÓDULO III Ejemplo: <IMG SRC="linux.gif" WIDTH=70 HEIGHT=100> I.3.4.6 Tablas La tabla es un elemento de HTML para acomodar imágenes o texto en una presentación. La sintaxis y manejo de las etiquetas de tabla es básicamente la siguiente: <table> y </table> Dentro de estas dos etiquetas que se colocan todas las otras etiquetas, textos e imágenes que darán forma y contenido a la tabla. Las tablas son descritas por líneas de izquierda a derecha. Cada una de estas líneas es definida por otra etiqueta y su cierre: <tr> y </tr> Dentro de cada línea habrá diferentes celdas. Cada una de estas celdas será definida por otro par de etiquetas: <td> y </td>. Dentro de estas etiquetas es donde se coloca el contenido. Ejemplo: <html> <body> <table border=1> <tr> <td>Fila 1 Columna 1</td> <td> Fila 1 Columna 2</td> MÓDULO III </tr> <td>Fila 2 Columna 1</td> <td> Fila 2 Columna 2</td> </tr> </table> </body> </html> Fila 1 Columna 1 Fila 1 Columna 2 Fila 2 Columna 1 Fila 2 Columna 2 Al principio puede resultar un poco complicado trabajar con estas estructuras, pero si se desea crear una página de calidad, tarde o temprano se tendrá que agarrarle la onda, para que cuando se realice una página también contenga tablas y le de más visualización. I.3.4.7 Frames Para hacer una división de una página en marcos se realiza con las etiquetas <FRAMESET> y <FRAME>. Un <FRAMESET> puede definir las siguientes distribuciones: • Un conjunto de marcos dispuestos uno sobre otro (distribución en filas), o bien • Un conjunto de marcos dispuestos uno al lado de otro (distribución en columnas). Además puede incluir otras etiquetas <FRAMESET>, de modo que se tienen multitud de combinaciones. Los principales modificadores de esta etiqueta son rows y cols, mediante los que se indica el tamaño de los distintos marcos; rows se utiliza en la distribución en filas, indicando el alto de pantalla que ocupará cada frame, y cols que se emplea en la distribución en columnas, especificando el ancho de pantalla de los marcos. Así, por ejemplo, si se quiere definir tres marcos dispuestos en fila, se puede escribir losiguiente: <FRAMESET rows="20%,60%,20%"> MÓDULO III Como se ve, el tamaño puede especificarse en porcentajes poniendo el símbolo del porcentaje %, pero también se puede expresar en píxeles poniendo sólo el número. Un valor especial es el asterisco *, que significa utilizar todo el espacio que queda. Esto es útil para asegurar que un marco tiene siempre un espacio mínimo disponible. Por ejemplo, si se especifica un menú de 200 píxeles y el resto con *, se asegura de que el tamaño del menú nunca es menor de 200 píxeles. De esta manera, a grandes rasgos se ha visto las sentencias que se utilizan en html, que después esto servirá de mucha ayuda para el siguiente el módulo de PHP y a manera de pequeños ejemplos también se ha mostrado como se utilizan y cual es su manejo en la programación con HTML. MÓDULO 4 “ADMINISTRACIÓN DE SERVIDORES WWW CON LINUX” MÓDULO IV I.4.1 INTRODUCCIÓN Instalación del servidor Apache, se aprenderá como se ha de instalar el servidor Apache en este módulo, el cual ayudará a visualizar los programas que se realicen en el módulo. Apache lo que hace es visualizar los códigos en el navegador. ¿Porque se escogió Apache? En el transcurso del curso se hablará de Apache y de su gran uso por lo que a continuación se dirán sus principales características: • Robusto, Soporte de un gran número de transacciones. • Configurable para diferentes entornos de trabajo. • Con un alto nivel de seguridad. • Disponible para una gran variedad de plataformas. • Soporte. • Soporte para conexión con programas como PHP, Mysql. • Incluye el código fuente del servidor. • Soporte para accesos restringidos. • Y además es libre y gratuito. Además de esto, Apache ayuda a poder hacer la conexión de las páginas creadas en PHP y MySQL como se verá más adelante en los siguientes módulos. ¿Porque no usar otro servidor? Hay muchos servidores pero su utilización no es muy favorable o tienen algunas desventajas como son: • Hay algunos que pueden introducir virus más fácilmente. • Tienen un débil sistema de seguridad, y es más sencillo que los Hackers nos roben información. • Inestables. • Inseguros. • No tienen mucho soporte. MÓDULO IV I.4.2 INSTALACIÓN . La información de la última versión de Apache se puede encontrar en http://www.apache.org/. En esta Web se podrá encontrar las versiones finales, versiones beta e información de sitios y réplicas en la Web. Para la instalación se utilizará el httpd-2.0.53.tar.gz, ¿porque el tar.gz? porque es un archivo comprimido lo cual permite que no pese tanto y se pueda bajar más rápidamente de la página antes menciona, al bajarlo se debe guardar en root, donde se va a descomprimir el archivo httpd, para esto se siguen los siguientes pasos: Primero se ve si ya se tienen instalado apache con la siguiente instrucción: ps –fea | grep httpd Esta instrucción buscará si se tiene instalado ya apache, si ya se tiene instalado Apache, lo que se hace es desinstalarlo con el comando pkgtool, este comando sirve para desinstalar los paquetes que se tengan en la máquina, se procede a desinstalar Apache. Después de haber hecho esto, se procede a instalar la versión que se bajó de la página de Apache. Se descomprime apache con el comando tar: tar –zxvf httpd-2.0.53.tar.gz Al descomprimir el archivo se crea una carpeta que se llama httpd-2.0.53, se introduce en está carpeta y después se continúa con la instalación dando un: ./configure –prefix=/usr/local/apache2 A continuación se teclea la siguiente instrucción: make Y después: make install MÓDULO IV NOTA: Este procedimiento puede tardar unos minutos. Se entra al directorio cd /usr/local/apache2/bin y dentro de este directorio se da la instrucción ./apachectl star para levantar el Apache y si se quiere detener se hace con ./apachectl stop. Para checar que esta bien se puede ver en un navegador dando la siguiente dirección httpd://localhost y se prueba que Apache este corriendo, si es así quiere decir que la instalación estuvo bien. Se debe de tener en cuenta que al entrar a la carpeta httpd.conf, hay que cambiar algunas líneas que a continuación se mencionaran: Se entra a cd /usr/local/apache2/conf/ y después al vi httpd.conf para cambiar unas líneas, esto es para que corra bien el Apache, en la línea 219 se ve que se tenga LISTEN 80 (Listen es el puerto donde escuchará el servidor, por default es el 80). I.4.3 CGIs Los CGIs definen un modelo de programación que puede ser implementado con múltiples lenguajes que ofrecen un dinamismo en la creación de un sitio Web, además de que son programas que corren en el servidor, recibiendo parámetros desde el cliente y su salida es enviada al navegador. CGI es una norma para establecer comunicación entre un servidor Web y un programa, de tal modo que este último pueda interactuar con Internet. El propósito de los CGI´s es proveer "inteligencia" e “interactividad” a un sitio Web; por ejemplo encontrar un sitio en Yahoo utilizando sólo los links que se proveen puede ser una labor frustrante, sin embargo usar el formulario y solicitar una búsqueda personalizada suele frustrar (un poco) menos, ya que un CGI provee de una respuesta hecha a la medida (eso dice la teoría) de la consulta. Existen otras herramientas para lograr esto en cierta medida, tales como JavaScript. MÓDULO 5 “PROGRAMACIÓN CON PHP” MÓDULO V I.5.1 INTRODUCCIÓN PHP es uno de los programas más utilizados para el desarrollo Web ya su función es darle más vida y más estabilidad a las páginas Web. PHP se desarrolla junto con la programación en HTML para visualizar las páginas que se crean se utiliza el servidor apache y dentro de algún navegador se podrá ver la página que se realice. PHP significa Hypertext Preprocessor, aunque originalmente significaba Personal Home Page Tools. Todos los archivos que se creen en PHP normalmente se denominan con la extensión PHP. La ventaja que tiene PHP sobre otros lenguajes de programación es que se ejecuta en el servidor, además de que permite intercalar las sentencias que contiene PHP en unión con las de HTML y que las páginas Web que se crean con PHP son más dinámicas y se pueden combinar con más gráficos. A pesar de que hay muchas versiones de PHP cómo PHP, PHP3 y PHP4, se consiguió una plataforma potente y estable para la programación de páginas del lado del servidor. Estas versiones han servido de mucha ayuda para la comunidad de desarrolladores haciendo posible que PHP sea el lenguaje más utilizado en la Web para la realización de páginas avanzadas. En este módulo se verá como se instala PHP, la versión que se utiliza es PHP4, ya que en ese entonces esta era la última versión, sin embargo, en la actualidad ya se puede encontrar la nueva versión que es PHP 5. Para que este programa se pueda manipular y le de más vida a las páginas Web, más estilo a los programas desarrollos y más seguridad a subir una página a la red. También este lenguaje de programación ayuda a interactuar con las bases de datos como es con Postgresql, MySql, etc. PHP está diseñado para ser más seguro que cualquier otro lenguaje de programación. Con PHP se pueden hacer varias combinaciones de código que ayudará a mejorar las páginas Web, uno de este tipo de combinación puede ser con Smarty que permite aplicar otro tipo de programación más segura y más eficiente haciendo que PHPmejore su calidad en las páginas Web. MÓDULO V I.5.2 INSTALACIÓN Para la instalación de PHP se tendrán los siguientes pasos para poder tener PHP en Linux: Primero se matan los apachitos para que no hagan ruido. Después de bajar la versión PHP más reciente para Linux, que en este caso puede ser la versión 5 ó la 4, se guarda en la carpeta temporal (tmp) y se descomprime con el comando tar zxvf php-4-2-3.tar.gz. Se entra a la carpeta que se creo php-4-2-3 y se da la instrucción siguiente: ./configure –prefix=/usr/local/php –with-apxs2=/usr/local/apache2/bin/apxs –with- mysql Después para empezar a correr la instalación se da: Make Y para terminar la instalación se da la instrucción: make intall Se pasa al directorio cd /usr/local/apache2 y se crea una liga: ls –l/modules/libphp4.so ls –l conf/httpd.conf Con el vi se entra al archivo conf/httpd.conf y se busca la línea Load Module php4-module… y en la línea 869 se va adicionar lo siguiente: AddType application/x-httpd-php .php Para probarlo se hace un ejemplo en el vi dentro de cd /usr/local/apache2/htdocs y nuestro ejemplo se llamará hola.php <?php print “hola a todos”; ?> MÓDULO V En el navegador se teclea http://localhost/hola.php y listo, se tiene el ejemplo que se hizo en el navegador que dice: “hola a todos” Con esto se puede comprobar que el ejemplo hecho ha quedado bien junto con la instalación. I.5.3 COMANDOS BÁSICOS A grandes rasgos sólo se mencionan los comandos que permiten la creación de páginas Web y como se pueden utilizar. En PHP siempre se inicia con el lenguaje HTML y también se inicia con “<?” y finalizará con “?>”, el código irá entre “<?php y ?>” a continuación se verá un pequeño ejemplo para ver como se realiza un programa con PHP y entender mejor su sintaxis. <html> <head> <title>Ejemplo PHP</title> </head> <body> <?php echo 'Hola, este es un ejemplo con PHP!'; ?> </body> </html> “Print y echo” ayuda a imprimir lo que se ponga entre las instrucciones, es decir lo que imprimirá en pantalla es l o siguiente: ‘Hola, este es un ejemplo con PHP!’ I.5.3.1 Comentarios en PHP Existen varias formas de incluir comentarios y estas son: // Esto da comienzo a una línea con comentarios. // Esto es un comentario /* Esto da comienzo a un grupo de líneas de comentario, se cierra con */ /* Esto es un comentario MÓDULO V I.5.3.2 Variables En PHP no es necesario declarar la variable, es decir, no es necesario decirle al programa si una variable es una cadena o un número entero, ya que PHP se encargará de definirla por sí mismo. (PHP 5 a través de ejemplos, Gutiérrez, A. y Bravo) Todas las variables en PHP empiezan con el carácter dólar "$", este comando es para que se reconozcan las variables. I.5.3.3 Cadenas Las cadenas en PHP se especifican rodeadas por comillas simples o por comillas dobles: $strCadena1 = "Hola Mundo<BR>"; I.5.3.4 Operadores Los operadores son símbolos especiales que se utilizan para realizar tanto operaciones matemáticas como de comparación. Se verá a continuación unos ejemplos de los operadores que son los más utilizados en PHP. • + Suma varios números 5 + 4 = 9 • - Resta varios números 5 - 4 = 1 • * Realiza una multiplicación 3 * 3 = 9 • / Realiza una división 10/2 = 5 • % Devuelve el residuo de una división 10 % 3 = 1 I.5.4 BLOQUES Y SENTENCIAS I.5.4.1 El ciclo for A grandes rasgos sólo se mencionan uno de los ciclos que es de los más usados este es el ciclo “for”, que repite una sentencia o un bloque de sentencias, mientras una condición se cumpla. Se utiliza la mayoría de las veces cuando se desea repetir una sentencia con un determinado número de veces. La forma general de la sentencia “for” es la siguiente: MÓDULO V for(inicialización;condición;incremento) { sentencias; } I.5.5 FUNCIONES En general se ha visto como se utiliza PHP y por último se mencionará que son las funciones, como se utilizan y un ejemplo para ver su aplicación en un programa en PHP. (PHP 5 a través de ejemplos, Gutiérrez, A. y Bravo) Una de las herramientas más importantes en cualquier lenguaje de programación son las funciones. Una función consiste en un conjunto de rutinas y acciones que a lo largo del script van a ser ejecutadas una multitud de veces agrupados en una FUNCION y desde cualquier punto del script puede ser llamada y ejecutada. A su vez, esta función puede recibir parámetros externos de los cuales dependa el resultado de una función. Las funciones deben ser colocadas siempre antes de realizar la llamada a la función (como es lógico). La sintaxis de una función es la siguiente: function nombre(parámetros) { instrucciones de la función } Para llamar a la función sería de la siguiente forma: nombre (parámetros) Un ejemplo para entender el uso de funciones es el siguiente: <?php function sumaRecursiva($a, $b) { $suma = $a + $b; MÓDULO V return $suma; } function dosmasdos() { $sumatoria = sumaRecursiva(2,2); echo $sumatoria; } ?> Con la función sumaRecursiva se debe pasar los dos parámetros y dentro de dicha función se realiza la suma de los dos. Y luego la regresa con la palabra clave return. Finalmente existe la función dosmasdos(), que declara una variable local con el resultado que devuelve sumaRecursiva, si los parámetros son 2 y 2. De este modo, sumaRecursiva retorna la suma de dos más dos que es 4, y dosmasdos() simplemente lo imprime en pantalla. (PHP 5 a través de ejemplos, Gutierrez). Un hecho relevante que cabe destacar es que las variables que se declaren dentro de la función sólo existirán o tendrán dicho valor dentro de la función. En general todas las funciones sirven para evitar escribir códigos repetitivos durante la ejecución del scrip, ya que solamente se manda llamar a una función. Para reafirmar los conocimientos obtenidos más adelante se verá en el Capitulo II un proyecto que es el de Mini Agendita donde se utilizará todo lo visto en este Módulo. MÓDULO 6 “ITERACIÓN DE WWW CON BASES DE DATOS” MÓDULO VI I.6.1 INTRODUCCIÓN Una base de datos es un conjunto de tablas en las que se almacenan distintos registros como artículos de una tienda virtual, proveedores o clientes de una empresa, películas en cartelera en el cine, etc. Inicialmente MySQL carecía de elementos que se consideraban esenciales en las bases de datos, tales como eficiencia y seguridad. Poco a poco los elementos faltantes en MySQL han sido incorporados para lograr una mejor eficiencia, estos elementos se han introducido por medio los desarrolladores de software libre. Entre las características disponibles en las últimas versiones se puede destacar: • Amplio subconjunto del lenguaje SQL. • Disponibilidad en gran cantidad de plataformas y sistemas. • Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles. • Transacciones y claves foráneas. • Conectividad segura. • Replicación. • Búsqueda e indexación de campos de texto. En el módulo VI se va a interactuar con las bases de datos haciendo la conexión con PHP como se habló en módulo anterior, las bases de datos se harán en MySQL esto ayudará a darles mejor soporte con PHP con el que se hará la conexión. Estos dos componentes hacen la mejor combinación de manejadores de datos para sitios Web. Para hacer la conexión con Mysql se debe tener en la máquina instalado Apache, PHP y MySQL; donde más adelante se verá como se hace la instalación y que se debe de cambiar para que PHP tenga conexión con Mysql. SQL, "StructuredQuery Language" representa un método estricto y más general de almacenamiento de datos que estándares anteriores. MySQL es el SQL más popular en la plataforma Linux, ya que es rápido y eficiente. A continuación se muestra como se instala MySQL en Linux, que se debe de configurar para que se pueda hacer la conexión y además se observarán los principales comandos que ayudan a crear las bases de datos. MÓDULO VI 1.6.2 INSTALACIÓN Primero se debe entrar a la página de Mysql http://www.mysql.com/. Para poder descargar la última versión que hay y proceder a la instalación, se guarda en la carpeta temporal (tmp) después se procede a descomprimir utilizando el comando: tar xvf mysql… Se entra a la carpeta que se creó y después a cd /usr/local, donde se crea una liga suave: ln –s /tmp/mysql Standard-4.1.12 …/ mysql A continuación se entra en la carpeta cd mysql y con esto se checa dentro de los siguientes directorios con cd usr/local/mysql scripts/mysql_intall_db—usr=mysql Se cambian los permisos con: Chown –R root . Chown –R mysql data Chgrp –R mysql . Y se levanta el demonio de mysql: bin/mysqld_safe –user=mysql & Y con esto se tendrá instalado MySQL. Después de eso se procede a crear la primera base de datos; pero antes de eso se verá algunas definiciones para comprender mejor el significado de cada comando que servirá para realizar las bases. MÓDULO VI I.6.3 COMANDOS PARA MYSQL La estructura básica de una base de datos puede contener múltiples bases de datos, cada base de datos contiene un conjunto de tablas. Cada tabla está compuesta de un conjunto de columnas diseñadas y cada elemento de la tabla es una fila (PHP 5 a través de ejemplos, Gutierrez, A. y Bravo Enero 2005). Para conectarse al servidor, usualmente se necesita de un nombre de usuario (login) y de una contraseña (password), y si el servidor al que se desea conectar está en una máquina diferente de la que se tiene, también se necesitará indicar el nombre o la dirección IP de dicho servidor. Una vez que se conocen estos tres valores, se podrá conectar de la siguiente manera: shell> mysql -h NombreDelServidor -u NombreDeUsuario –p Se introduce la contraseña para el nombre de usuario que se este usando. Si la conexión al servidor MySQL se pudo establecer de manera satisfactoria, se recibirá el mensaje de bienvenida donde se indica que se está dentro de mysql: shell>mysql -h casita -u root -p Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5563 to server version: 3.23.41 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> Es aquí donde se comienza a realizar la creación de las bases de datos. Se tienen sentencias que permiten la manipulación de datos soportado por la mayoría de los servidores SQL y que constituyen una gran parte de todas las cosas que se pueden hacer sobre una base de datos. 1. SELECT (selecciona la tabla) 2. INSERT (nos ayuda a insertar campos en nuestra tabla) 3. UPDATE (Actualizar un conjunto de renglones de la tabla) 4. DELETE (elimina renglones) MÓDULO VI Se debe tener en cuenta que un comando para Mysql debe ir seguido por un punto y coma. A continuación se verá una tabla de los comandos principales de Mysql: I.6.3.1 TABLA DE COMANDOS Instrucción Descripción Muestra el conjunto de bases de datos presentes en el servidor Show databases; Determina la base de datos sobre la que vamos a trabajar Use nombre_de_la_base Create Database nombre_de_la_base; Crea una nueva base de datos con el nombre especificado Drop Database nombre_de_la_base; Elimina la base de datos del nombre especificado Muestra las tablas presentes en la base de datos actual Show tables; Describe nombre_de_la_tabla; Describe los campos que componen la tabla Drop Table nombre_de_la_tabla; Borra la tabla de la base de datos Crea los registros de la tabla a partir de un fichero de texto en el que separamos por tabulaciones todos los campos de un mismo registro. Load Data Local Infile "archivo.txt" Into Table nombre_de_la_tabla; Quit Salir de MySQL Se presenta un ejemplo para poner en práctica los comandos que anteriormente se mencionaron: Ejemplo: Mysql> CREATE DATABASE prueba; >USE prueba; >CREATE TABLE amigo ->( ->id integer PRIMARY KEY, ->nombre varchar(30), MÓDULO VI ->apellido_materno varchar(30)); >show tables; >describe amigo; >INSERT INTO amigo (id nombre, apellido, apellido_materno) VALUES (1, ‘Juan Carlos’, ‘Yescas’, ‘Quiroz’); > INSERT INTO amigo VALUES (2, ‘Giselle’, ‘Cortés’, ‘Vences’); >select * from amigo; >DROP TABLE amigo A grandes rasgos se ha mostrado como se haría una pequeña base de datos que servirá como ejemplo para entender mejor los comandos que se utilizan para realizar la base y las tablas. MÓDULO 7 “INTRODUCCIÓN A LA SEGURIDAD EN CÓMPUTO” MÓDULO VII I.7.1 INTRODUCCIÓN En este último módulo se hablará de la seguridad en cómputo bajo Linux que se enfoca a mejorar la seguridad en la máquina en la que se trabaja, pero esto ya depende de los administradores, pues ellos deben de tener el control de las máquinas que se estén manejando ya sea para una empresa o bien para un centro de cómputo, además de que también se debe de tener precaución para poder llevar un control definido de los datos e información que se tengan almacenados en la máquina, para que está no pueda ser jaqueada o en su defecto que sea robada la información por alguna otra persona. Aunque Linux es un sistema muy robusto e incorpora las características de seguridad, a pesar de todo resulta fundamental dedicar cierto tiempo y recursos para conocer cuáles son sus debilidades, vías frecuentes de ataque y adoptar posteriormente las medidas más eficaces para contrarrestarlas. A menudo un sistema operativo es tan seguro como la astucia y habilidad de su administrador. Lo primero que se tiene en mente es que no existe nada como un sistema completamente seguro. Todo lo que puede hacer es aumentar la dificultad para que alguien pueda no pueda entrar en el sistema. En el caso medio de un usuario que tenga su máquina en casa, no se requiere demasiado para mantener alejado al cracker. Para usuarios y empresas que tienen grandes requisitos (bancos, compañías de telecomunicaciones, etc.) se requiere mucho más trabajo. Además de que también se debe de tener un estricto control de estos porque como son empresas más grandes, ya que es más probable que estos tipos de personas quieran robar la información que se tenga almacena en el sistema. Otro factor a tener en cuenta es que cuanto más incremente la seguridad del sistema puede que haya más intrusos por lo que la seguridad se vuelve más pesada, en otras palabras, el sistema va a contar con muchas medidas de seguridad y esto a lo mejor puede molestar a los usuarios, llegando a ser un poco incomodo. Por ejemplo, si se le da a una persona ajena una contraseña, esta persona puede hacer un mal uso de ella lo cual puede provocar que se meta al sistema y robe información. Es por eso que se recomienda que solo el administrador maneje las contraseñas. Otro caso es cuando hay una conexión a Internet por lo que se debe configurar el sistema. Para esto se debe establecer una "Política de Seguridad" que indique qué niveles requiere los sitios para ser visitados y qué medidas de evaluación se realizan. MÓDULO VII I.7.2 SEGURIDAD EN LINUX El sistema que se tenga (una empresa o en casa) siempre debe de estar actualizado, estando seguro de que ha instalado las versiones actuales de los programasque pueden proteger el equipo, esto puede ser con antivirus además de estar al tanto de las nuevas alertas de seguridad, escanear el equipo para eliminar la basura que se pueda alojar de las páginas Web que se estén visitando. Al hacer esto le ayudará a conseguir que el sistema sea mucho más seguro. Además, con la generalización de las conexiones con Internet y el rápido desarrollo del software, la seguridad se está convirtiendo en una cuestión cada vez más importante. Ahora, la seguridad es un requisito básico, ya que la red global es insegura. Pero se debe tener en cuenta que ningún sistema es "completamente" seguro. El único sistema seguro es aquel que no está conectado en red, que está apagado y encerrado bajo llave. Otra forma de aumentar la seguridad es no teniendo conexión con Internet, pero seguro que no es lo que se quiere. Porque desgraciadamente el uso de Internet se ha convertido en un recurso necesario para la mayor parte de las personas y empresas que hay en todo el mundo. Resumiendo, a nadie le gustaría que desconocidos abran su correo privado, que miren en sus cajones, que se hagan copias de las llaves de su escritorio o de su tarjeta de crédito. Es por eso que se ha creado la seguridad para tener un control de los objetos personales, de la información y también para navegar en Internet. I.7.2.1 Amenaza La amenaza proviene de alguien que tiene motivos para obtener acceso sin autorización a su red o equipo. Debe decidir en quién confía para dotar de acceso a su sistema y qué amenaza puede representar. Las amenazas proceden de varios tipos de intrusos, y además se refiere a un evento (robo de información, infección por virus de cómputo, etc.). MÓDULO VII I.7.2.2 Vulnerabilidad La vulnerabilidad describe el nivel de protección de su equipo frente a otra red, y la posibilidad potencial para alguien que pueda obtener acceso no autorizado. I.7.2.3 Riesgo Peligro: Es la probabilidad de que se presente una amenaza. I.7.2.4 Tipos de Intrusos Entre los diferentes tipos de intrusos están: El Curioso - Este tipo de intruso está interesado básicamente en qué tipo de sistema y datos posee. El Malicioso - Este tipo de intruso pretenderá, bien hacerle caer su sistema, modificar su página web o cualquier otra cosa que le cueste tiempo y dinero recuperar. El Intruso muy personalizado - Este tipo de intruso trata de usar su sistema para ganar popularidad o mala fama. Puede usar su sistema para promocionar sus habilidades. La Competencia - Este tipo de intruso está interesado en los datos que tiene en su sistema. Puede ser alguien que piense que tiene algo que le puede interesar y robarse la información. Ataques - Acción o acciones que tienen por objetivo el que cualquier parte de un sistema que contenga información, deje de funcionar. I.7.2.5 Definición de Sistema de Cómputo Seguro “Es un sistema de cómputo aquel que es seguro y se puede confiar en que se comportará como se espera que lo haga ya que el dueño de la máquina debe de estar al pendiente de actualizaciones para que la información que se almacena en la computadora y que está no sea robada. Ya que deben de tener algunos derechos para poder acceder a la computadora, pero de esto ya se encarga el administrador o dueño brindando ciertos privilegios para los usuarios que la utilicen.” MÓDULO VII I.7.2.6 Servicios y políticas de Seguridad • Un servicio de seguridad es una característica que debe tener un sistema para satisfacer una política de seguridad. • Una política de seguridad especifica las características de seguridad que una organización debe observar y proveer con el fin de salvaguardar su información. I.7.2.7 Servicios • Primeros sistemas de autenticación se basan en claves de acceso: nombre usuario, claves de acceso, nips, passwords, etc. • Son fáciles de usar y no requieren de un hardware especial. • Siguen siendo el sistema de autenticación más usado hoy en día. I.7.3 SEGURIDAD FÍSICA Para mantener un equipo seguro se debe de tomar en cuenta que hay factores externos que pueden dañarlo, como en el caso del polvo que se acumula en las partes más importante de los aparatos y acorta la vida útil de los medios magnéticos, de las unidades ópticas y de cintas. El polvo puede acumularse en los sistemas de ventilación y bloquear el flujo de aire, impidiendo que este se regenere. Para esto es recomendable que se de una limpieza seguida para evitar que el polvo se acumule y pueda dañar la parte interna de CPU. Otros aspectos de la seguridad informática física es prevenir el acceso de personas no autorizadas. El control del acceso a las computadoras hace que sea más difícil que alguien robe o que dañe los datos o el equipo. I.7.3.1 Medidas para mejorar la seguridad física de su instalación: • No se debe de dejar el sistema, las unidades de cinta, las terminales o las estaciones de trabajo sin vigilancia durante largos períodos de tiempo. • Conviene establecer algunas restricciones de acceso en los lugares donde se encuentren estos dispositivos. MÓDULO VII • No deje la consola del sistema u otros dispositivos de terminal conectados como raíz y sin supervisión alguna. • Guarde las copias de seguridad en una zona segura y limite el acceso a dicha zona. I.7.4 SEGURIDAD MEDIANTE CONTRASEÑAS Lo recomendable es el uso de contraseñas, muchas veces los usuarios desean utilizar contraseñas sencillas y fáciles de recordar, para recordarlas fácilmente, pero por lo general esto nos es recomendable. La seguridad basada en contraseñas requiere una atención casi constante. La contraseña raíz es fundamental. Ya que cualquiera que conozca la contraseña puede acceder a todas las partes de su sistema e incluso puede estar conectado a él a través de una red. Se recomienda cambiar la contraseña raíz seguidamente ya que esto puede funcionar para que los que intente acceder no puedan ya que no contendrá la misma contraseña de acceso, el administrador debe seleccionarla cuidadosamente y debe de guardarla cuidadosamente en un lugar seguro. Donde se pueda recordarla y tenerla a la mano o bien grabársela de memoria para poder evitar que otros usuarios puedan descifrarla o bien puedan entrar al sistema. Las contraseñas deberán de tener una longitud mínima de 6 caracteres; sin embargo en la mayoría de las contraseñas solo se reconocen los 8 primeros. Esto significa que, si es más larga, la contraseña se modifica al escribirse. • Para hacer una buena contraseña puede ser en seleccionar 2 palabras cortas y conectarlas por medio de un signo de puntuación. Esta combinación de caracteres con palabras hace que el craker difícilmente la pueda adivinar pero debemos tener en cuenta que el usuario debe recordarla sin problemas. • Otro método para seleccionar contraseñas es tomar una frase que vaya a recordarla fácilmente y utilizar la primera letra de cada palabra. I.7.5 VIRUS Un virus se define como una porción de código de programación cuyo objetivo es implementarse a si mismo en un archivo ejecutable y multiplicarse sistemáticamente de MÓDULO VII un archivo a otro. Es decir infecta los archivos que se tengan almacenados en la computadora. La "invasión" o "reproducción", de los virus están diseñados para realizar una acción concreta en los sistemas informáticos sin la autorización del usuario. I.7.5.1 Variantes relacionadas con virus Hay distintas clases de virus y cada día se inventan mucho más. Algunos antivirus pueden detectarlos y eliminarlos para proteger la máquina. Entre los que se pueden encontrar son: • Troyanos • Gusanos • Bomba lógica I.7.5.1.1 Los gusanos Es un programa que produce copias de sí mismo de un sistema a otro a través de la red. En las máquinas que se instala, produce enormes sobre-cargas
Compartir