Implementación de servidores bajo GNU/Linux

Anuncio
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
De esta manera
Acceder al Código del Programa
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
Descargar