Implementación de Servidores bajo el Sistema GNU/LINUX Ing. Alejandro Escalante aescalan@ine.gob.mx 9 de Marzo de 2006
INE- DARI
Temario • Introducción • Perspectiva histórica •¿Qué es GNU/Linux? • Instalación • Preparativos • Hardware y software • Aspectos de configuración • Particiones y el disco duro • El proceso de instalación • Las cuentas de usuarios
• Uso de comandos básicos • El software GNU/Linux • Actualización, archivos RPM • Configuración de red (LAN) • Configuración de servicios • web, vsftp, ssh, sftp • sendmail • squirrelmail
I. Introducción a GNU/Linux Perspectiva histórica
Hasta los comienzos de 1980 era común compartir y modificar código, para ser implementado en diferentes plataformas. Empresas comerciales comienzan a obligar a sus programadores a firmar contratos de confidencialidad para no revelar el código de los programas desarrollados. Quienes revelaran datos de esos programas serían considerados “piratas”. En 1984, un investigador del Laboratorio de Inteligencia Artificial del MIT, Richard Stallman, renuncia al mismo en contraposición a la prohibición a no poder compartir el código de programas entre colegas. Funda en ese momento una Fundación en apoyo al Software Libre. Free Software Fundation. Se plantea la siguiente pregunta: ¿ Hay algún programa que yo pueda realizar y compartir a una nueva comunidad?
La respuesta no fue difícil de encontrar
Sistema Operativo Así podría existir una nueva comunidad cooperando e invitar a cualquiera a unirse
Un S.O. similar UNIX, para fácil migración de usuarios
Nace de esta manera el Proyecto GNU GNU es un acrónimo recursivo de GNU´s Not UNIX
El S.O. contaría para comenzar con:
• Ensambladores • Compiladores • Depuradores • Editores de Texto • Aplicaciones • Etc.
Introducción. Algunas fechas 1962 CTSS @ MIT: tiempo compartido y protección 1967 MULTICS @ MIT, Bell, GE: el SO más avanzado de su época. Multiusuario, multiproceso, árbol de ficheros, intérprete de órdenes (shell). 1973 UNIX@ Bell (Thompson, Ritchie) escrito en C 1978 3BSD @ Berkeley memoria virtual paginada 1980 4BSD @ Berkeley (DARPA) Internet 1984 GNU (Richard Stallman) Emacs 1988 X y NeWS: sistema de ventanas distribuido 1990 Normalización : Sun + AT&T, POSIX, XOPEN 1991 386BSD, Kernel Linux, versiones libres
Introducción - Definiciones El Software Libre nada tiene que ver con su valor económico,sino con la Libertad. Free Software no es Software Gratis, sino Software Libre Para que un software sea considerado libre, debe cumplir con lo siguiente: • Libertad para ejecutar un programa con cualquier propósito • Libertad para modificar el programa y adaptarlo a sus necesidades • Libertad para distribuir copias gratuitamente • Libertad para distribuir versiones modificadas Para ello es necesario
Acceder al Código del Programa
De esta manera
Toda la comunidad se beneficia
Nace así el CopyLEFT. Su implementación jurídica es la GNU GPL General Public Licence - Licencia Pública General
Introducción. Migración Algunas aplicaciones Oficina
StarOffice OpenOffice Koffice AbiWord Gnumeric
Bases de Datos PostgreSQL MySql DB2 (IBM) Oracle (Comercial) Informix (Comercial)
Mail Evolution StarOffice Netscape Kmail Mozilla
Navegadores Netscape Konqueror Galeon Firefox Mozilla
Desarrollo Emacs Glade KDE Studio Kylix JBuider
Soluciones Web
Seguridad Informática
- Servidores Apache - Desarrollo PHP – MySql - Servidores de Mail - SendMail
- Libre de Virus - Firewalls - iptables - Proxy - Squid - Herramientas de Auditoria
Introducción . ¿Qué es GNU/Linux? Comienzos de los 90
El S.O. GNU estaba casi listo.
Surge la necesidad de un núcleo De manera totalmente independiente al Proyecto GNU, Linus Torvalds junto a un grupo de programadores había dado los primeros pasos en el desarrollo de un núcleo similar a MINIX y UNIX compatible.
Linus pone a disposición ese kernel bajo las licencias GPL y pasa a ser parte del proyecto GNU
Es gracias a LINUX que en la actualidad podemos ver funcionar un Sistema GNU
Introducción - Características Principales • Sistema Operativo similar a UNIX. • Libre • Soporta 486, Pentium, AMD, Cyrix, SPARC, DEC, Alpha,PowerPC, Mac • Uso Personal (PC), Servidores y Estaciones de Trabajo • Soporta redes TCP/IP y otros protocolos
Multi-Usuario, Multi-Tarea, MultiPlataforma
Introducción. Mas de 80 Distintas Distribuciones REDHAT FEDORA
DEBIAN KNOPPIX
Es la más extendida – Eso da gran ventaja. Buenos entornos gráficos. Buen Soporte. Fácil instalar Preferida por los Programadores – Es la más grande “no comercial” – Aventaja a las demás en herramientas. Fácil instalación.
SUSE
Es amena. Buenas herramientas de administración. Buenos manuales en español. Viene con KDE.
MANDRAKE
Usa el mismo formato de archivos que RedHat y Suse (RPM) Es la más fácil de instalar. Trae GNOME. Se actualiza muy seguido.
CENTOS
Orientada a servidores en producción, sistema con soporte para grandes equipos, basado en RHEL
II. Instalación de GNU/Linux Requerimientos mínimos de hardware • CPU 486, celeron, pentium, pentium pro, II, III, IV, centrino, AMD Athlon, Athlon XP, Familia x86 AMD64, Power PC, Itanium • Bus ISA, EISA, PCI, VESA, AGP, USB, FIREWIRE • RAM >256 Mb • HD >4Gb
Aspectos de configuración • Aceptar licencia GPL • Espacio en disco, particiones • Tipo de instalación, personal, estación de trabajo, servidor • Uso horario,Idioma, teclado, red
II. Instalación de GNU/Linux CENTOS • Es una distribución basada en Redhat Enterprise • Libre, orientado a servidor • El costo de RHEL es de 3,000 USD • Estabilidad • Compatibilidad • Actualizaciones • Soporte
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
II. Instalación de GNU/Linux
Administración de Usuarios Metas de una administración correcta de usuarios
Usuarios Propios de Linux Usuarios de Alto Privilegio Usuarios Privados: Grupos Privados:
• Privacidad • Organización • Compartir recursos • Niveles de Privilegio Mail, FTP, Daemons, etc. Root, alguno que asigne Root Determinados por los permisos Usuarios con iguales privilegios
useradd
Agrega usuarios
passwd
Cambia la contraseña
usermod
Modifica datos de un usuario
userdel
Elimina usuarios
chmod
Cambia permisos
Seguridad en LINUX 1) Seguridad Física
• Políticas de contraseñas 2) Políticas de Seguridad
• Políticas de respaldos • Determinación de niveles de Acceso • Políticas de bitácoras
• No preocuparse por Virus Informáticos 3) Seguridad Lógica Nivel Software
• Estar al tanto de vulnerabilidades y emparchar o actualizar software con fallas • Desactivar todos los servicios que no se utilicen • Cerrar puertos no utilizados • Contar con reglas de Firewall (iptables) • Programación Segura • Auditar permanentemente la Red
La contraseña • Función de dispersión: consiste en un sistema de cifrado en un solo sentido. • Visible: /etc/passwd • Elegirla adecuadamente: – Evitar palabras del diccionario, nombres, números – Evitar palabras en idiomas comunes – Combinar letras con números – Elegir claves que tengan algún sentido (que sea fácil de recordar) – Cambiarla con cierta frecuencia
Otras formas de acceder
• Desde el entorno local en modo textual – máquina login: – Password: • Desde otro sistema de la red – En modo textual • ssh usuario@maquina – En modo gráfico • ssh –X usuario@maquina kcalc • scp archivo usuario@maquina:archivo
Facilidades de interacción • Renombrar órdenes complicadas – alias rm=”/bin/rm -i” • Manejar la historia – Utilizar las flechas – history – !! (repetir la última orden) – !3 (repetir el 3) – !expre:p (busca la última orden ejecutada que empieza por expre) • Directorios de usuarios ~ ~alex • Completar el nombre de archivos <TAB>
Tipos de órdenes • Informativas – man (por secciones), info, mozilla, lynx, gv – date, cal, ps, pwd • Ejecutivas – De usuario: lpr, cp, mv, rm – De sistema: sync, halt, reboot, shutdown • Procesadoras – editores (kedit, kwrite, nedit, pico, vi, emacs) – od, strings, head, tail, grep, awk – diff, find
Sistema de ficheros • Uniforme
– ficheros, directorios, dispositivos, comunicación – un fichero es una secuencia de bytes – el significado se lo da el programa que lo usa • sufijos y prefijos • tipo o números mágicos
• Nombres largos • Maneja otros tipos de sistemas de ficheros – BSD 4.2 (dispositivos y particiones) – CD-ROM (ISO, RockRide, Joliet) – Memoria – FAT 16, FAT 32 o NTFS – Remotos (NFS, NetBios)
Sistema de ficheros jerárquico • El sistema de ficheros es jerárquico – Se parte de una estructura mínima / – El resto se monta en alguna de las ramas
• mount (también se puede ver con df) /dev/hda4 on / type ext2 (rw) none on /proc type proc (rw) /dev/hda2 on /usr type ext2 (rw) /dev/hda5 on /home type ext2 (rw) /dev/hdb2 on /windows type vfat (rw,noexec,nosuid) none on /dev/pts type devpts (rw,mode=0622) /dev/hdc on /mnt/cdrom type iso9660 (ro,noexec,nosuid,nodev,user=tomas)
• Sistema de ficheros distribuido – monta dispositivos de otras máquinas como directorios locales.
Navegación por el sistema de ficheros • Camino absoluto
– Para acceder a un fichero hay que dar su camino absoluto desde la raíz del sistema.
– cat /usr/share/doc/gcc-3.0/README – cd $HOME – cd ~
• Camino relativo – cd /usr/share/doc/gcc-3.0 – pwd – cat README – cd ../gzip ; cat README
• ls -alrt directorio (ordenados por tiempo, incluidos .*) • ls -R directorio (clasificado y recursivo)
Manipulación de ficheros mkdir directorios rmdir directorios
crear directorios borra directorios
rm ficheros rm -r nombres -i -f
borra ficheros borra recursivo borra preguntando borra sin preguntar
mv nombreA nombreB mv fichero directorio
cambia nombres mover ficheros
cp ficheroA ficheroB cp ficheroA directorioB
copiar copiar a otro directorio
cp -r directorioA directorioB -p -i
copiar recursivo conservando atributos preguntando
FIN Ing. Alejandro Escalante aescalan@ine.gob.mx