viernes, 13 de marzo de 2015

COMANDOS MSDOS

Iniciar


Para poder trabajar en MSDOS clicamos inicio, en la barra de búsqueda ponemos ejecutar, escribimos cmd y pulsamos enter. Se nos abrirá una consola de fondo negro y letras blancas indicando la ruta donde nos encontramos.


Comandos de gestión de directorios


dir

Lista todos los ficheros y directorios de la ruta en la que nos encontramos.
Sintaxis: dir [unidad\directorio\fichero]


cd

Permite cambiar de un directorio a otro
Sintaxis: cd [unidad:]\[ruta\directorio]

cd..

Volver un directorio o fichero atrás

tree

Comprueba la estructura de archivos

md

Crea directorio
Sintaxis: md [unidad\ruta\] <nombre>

rd

Borra un directorio
Sintaxis: rd [unidad\ruta\] <nombre>

Comandos de gestión de archivos


type

Ver el contenido de los archivos de texto
Sintaxis: type [unidad:]\[ruta\directorio]\ <archivo>


print

Imprime archivo de texto
Sintaxis: print [unidad:]\[ruta\directorio]\ <archivo>

copy

Copia el fichero de origen al fichero de destino
Sintaxis: copy <ficherodeorigen> <ficherodedestino>

rename

Renombra un fichero
Sintaxis: rename <nombreactual> <nuevonombre>

move

Mueve ficheros de un directorio a otro
Sintaxis: move <origen> <destino>

fc

Compara dos ficheros y verifica si las copias son exactas
Sintaxis: fc fichero1 fichero2

del

Borra uno o varios archivos
Sintaxis: del [unidad:]\[ruta\directorio]\ <archivo>

edit

editor de texto MSDos (hay que tenerlo instalado para que funcione, si no es el caso, abrir el notepad con esta instrucción "notepad archivo.txt")
Sintaxis: edit [unidad:]\[ruta\directorio]\ <archivo.txt>

Atributos de ficheros



R: solo lectura
A: para saber si un fichero fue modificado
H: para ocultar un fichero
S: para identificar los archivos propios del sistema

atrib

Visualiza o modifica los atributos de un fichero
Sintaxis: atrib <fichero> <+/-> </h/s/a/r>


DIA CIENTO OCHENTA Y UNO 13/03/2015

Hoy hemos dedicado el día a los comandos del MS DOS , ejercicios, teoría etc.
En diseño presentamos las portadas de CD´s y dimos la teoría de los movimientos postmodernistas.

jueves, 12 de marzo de 2015

DIA CIENTO OCHENTA 12/03/2015

Hoy dediqué toda la mañana a terminar la composición psicodélica, dado que el resto lo tenía todo finalizado, incluso me sobró un poco de tiempo para hacer algún diseño.
Hoy no tuvimos clase de diseño ni avanzamos teoría en programación dado que fué la junta de evaluación, posteriormente nos entregaron las notas. Yo tengo un 8,04 en programación y un 7,6 en diseño.

miércoles, 11 de marzo de 2015

DIA CIENTO SETENTA Y NUEVE 11/03/2015

Hoy a parte de subir la teoría pertinente al blog, realizamos distintos ejercicios sobre la gestión de permisos en linux.
El equipo de Northink se reunió para decidir definitivamente cuál será la tarjeta. El manual está terminado y lo siguiente será establecer un manual de procedimientos que constará de distintos archivos con escritos sobre presentación de logotipos, entrevista con clientes etc para un funcionamiento óptimo del grupo.
En diseño dedicamos el tiempo expresamente al ejercicio en desarrollo sobre la portada del CD psicodélica.
Hoy tuvimos una reunión de evaluación ya que habrá junta de evaluación y teníamos que seleccionar un representante y transmitirle qué queríamos que comentara en la reunión.

EJERCICIOS PERMISOS LINUX

Ejercicio 1



Ejercicio 2



Ejercicio 3



Ejercicio 4



Ejercicio 5



Ejercicio 6



Ejercicio 7


En este caso, hemos denegado el permiso de ejecución a cualquiera que intente acceder al directorio (propietario, grupo y otros), por tanto, es evidente que no nos permita el acceso cuando pretendemos lograrlo sin modificar este comando.


Ejercicio 8




GESTION DE PERMISOS EN LINUX



GNU/Linux ofrece menor flexibilidad que windows en la gestión de permisos, ya que no existe la posibilidad de asignar permisos a usuarios ni a grupos concretos.

Existen tres tipos de permisos:

r (lectura)
w (escritura)
x (ejecución)

Estos permisos pueden ser otorgados en tres niveles:


  • propietario: el usuario que creó el fichero
  • grupo: conjunto de usuarios que pertenecen al mismo grupo que el propietario
  • otros: resto de usuarios del sistema
Para poder establecer los permisos sobre un determinado archivo o directorio, se utiliza una cadeba de 10 caracteres:



El primer caracter hace alusión al tipo de archivo, habiendo tres variantes:

- : archivo
d :directorio
l :enlace

Sólo se pueden cambiar los permisos de un archivo o un directorio si se es un propietario o el superusuario root.

Para hacerlo se utiliza el comando chmod con la sintaxis:

chmod {a, u, g, o}{+, -}{r, w, x} fichero

Las llaves significan que hay que escoger una o varias de estas opciones

{a, u, g, o} indican a qué usuarios afectará el cambio de permisos

  • a (all): todos los usuarios
  • u (user): propietario
  • g (group): usuarios del grupo del propietario
  • o (other): resto de usuarios del sistema
{+, -} indica si vamos a activar o desactivar el permiso que continua

{r, w, x} son los permisos de lectura, escritura y ejecución

Ejemplo: chmod a+r fichero

               Da permiso de lectura a todos los usuarios

También podemos usar el chmod con códigos numéricos:


                                                         R = 4    W = 2    X = 1

Ejemplo:

-rwx------ = chmod 700 fichero

Se puede cambiar el propietario de un fichero mediante el comando chown

Sintaxis: chown nuevopropietario fichero

También se puede cambiar el grupo de un fichero mediante el comando chgrp

sintaxis: chgrp nuevogrupo fichero





martes, 10 de marzo de 2015

SEGURIDAD Y PRIVILEGIOS DE ACCESO EN LINUX

En un sistema GNU/Linux todo es un archivo, comprendido los archivos especiales que designan los periféricos. Linux divide los archivos en varias categorías:



  • Los directorios



  • Los archivos ordinarios (programas, archivos de configuración, archivos de datos, etc...)



  • Los archivos especiales (tipo bloc o carácter)



El sistema de archivos en GNU/Linux está organizado en un árbol de directorios, no habiendo necesidad de mencionar el nombre del disco o de la partición para tener acceso.

En un sistema GNU/Linux, se atribuyen privilegios a todos los archivos por 3 identidades: 

  • El propietario- es el usuario que ha creado el archivo o el usuario que root ha designado como propietario



  • El grupo (que no es necesariamente el grupo del propietario)



  • Los otros (aquellos que no hacen parte del grupo)



El comando ls –l nos permite mostrar los privilegios de un archivo en GNU/Linux. Para cada identidad (ver más arriba), existen 3 privilegios para acceder:


  • r - read (privilegio de lectura)



  • w - write (privilegio de escritura)



  • x - execute (privilegio de ejecución)



La visualización de los privilegios está representada por una cadena de 9 caracteres, precedida de un carácter, que representa el tipo de archivo. Estos 9 caracteres, reagrupados de 3 en 3 (rwx rwx rwx), definen las 3 identidades (propietario, grupo y los otros). Para cada privilegio existente vemos una letra entre r,w o x (ver más arriba) y si no existe un privilegio utilizamos un guion.


Significado Símbolo Propietario Grupo Otros

______________________________________________________________________

archivo regular -

directorio d

periférico carácter c

periférico bloc b r w x r w x r w x

enlace simbólico l

tube llamado p

socket local s


Ejemplo: -rwxr-x--- Lo que significa que:


  • Se trata de un archivo regular (el 1er carácter es un guion -) 

  • El propietario tiene todos los privilegios (ReadWriteExecute o sea LeerEscribirEjecutar)



  • Los miembros del grupo tienen el privilegio de Leer (el 1er carácter es r) y Ejecutar (el 3er



  • Carácter es x), en cambio no tienen el privilegio de Escribir (el 2do carácter es un guion -)



  • Los otros no tienen ningún privilegio, ni de lectura, ni de escritura, ni de ejecución (los 3 caracteres son guiones - )

Privilegios especiales


El Sticky bit




El Sticky bit es un privilegio especial en el que el comportamiento es diferente para los archivos ejecutables y directorios. Corresponde a la letra t o al número 1000. Si los privilegios de ejecución no son dados entonces es la letra T que corresponde.

  • los archivos ejecutables – el programa permanecerá en memoria para ser ejecutado posteriormente

  • los directorios – si el sticky bit es otorgado en un directorio, sólo el propietario podrá eliminar sus archivos (es el caso de los directorios /tmp y /var/tmp en GNU/Linux)

Ejemplo:

$ ls -l / | grep tmp;ls -l /var | grep tmpdrwxrwxrwt 12 root root 1024 2006-07-22 14:18 tmpdrwxrwxrwt 4 root root 4096 2006-07-22 10:23 tmp


Para mostrar los privilegios de /tmp y /var/tmp. Se observa que el último carácter en la serie de los 9 en los privilegios es una t y no una x o un guión.



Los privilegios de endoso


SetUID y SetGID Los privilegios de endoso en GNU/Linux están representados por:




  • La letra s (si se ha otorgado el privilegio x)



  • La letra S (si no se ha otorgado el privilegio x)



Numéricamente el privilegio de endoso está representado de la manera siguiente:



  • 4000 – para el endoso de la identidad del propietario



  • 2000 – para el endoso de la identidad del grupo



El comportamiento de los privilegios de endoso.



  • Para los archivos de programas o ejecutable



                                  - SUID = 4000 – el proceso tiene los privilegios del propietario del                                            programa ejecutado



                                  - SGID = 2000 - el proceso tiene los privilegios del grupo del programa                                    ejecutado



                                   - Para los directorios



                                   - SGID = 2000 – los archivos que se encuentran en el directorio                                              pertenecen al grupo del directorio



Los privilegios de endoso son muy importantes para la seguridad. En lugar de dar el acceso a un archivo, se da el privilegio de acceso a un comando. El kernel o núcleo, al momento de la ejecución del comando endosa la identidad del propietario o del grupo del comando en lugar de la del usuario que ha ejecutado el comando. Por lo tanto el acceso al archivo se hace por medio del comando y no directamente. Cuando un usuario se conecta a un sistema GNU/Linux, éste posee 2 UID (UserIDentity) y 2 GID (GroupIDentity): el real y el efectivo.

Al momento de la ejecución de un comando los UID y GID son los reales, los efectivos son
atribuidos al comando.

Cuando los privilegios de endoso no son otorgados, entonces los UID y GID efectivos son
idénticos a los UID y GID reales.

Si los privilegios de endoso son otorgados entonces el UID y/o GID efectivos son los del
comando. Lo que quiere decir que los UID y GID efectivos son los que controlan los privilegios de acceso a un comando.

Para conocer los archivos con los privilegios de endoso de su sistema escriba en un terminal el comando siguiente:


# find / -perm -2000 -o -perm -4000 -exec ls -l {} \; 2>/dev/null


Un buen ejemplo es el comando crontab. Este comando crea un archivo en
/var/spool/cron/crontabs para el usuario que ha ejecutado el comando crontabs. El acceso al directorio /var/spool/cront/crontabs es prohibido a los usuarios excepto root.

$ cd /var/spool/cron/crontabs/
bash: cd: /var/spool/cron/crontabs/: Permiso no concedido

Cuando el usuario lanza el comando crontab –e (para editar su archivo
/var/spool/cron/crontabs/nom_user), el comando se ejecuta con el UID y GID real del usuario pero con el UID y GID efectivo de root.

$ ls -l /usr/bin/crontab
-rwxr-sr-x 1 root crontab 26872 2004-07-28 22:44 /usr/bin/crontab

Vemos que el comando crontab es el propietario de root y que hace parte del grupo crontab con el privilegio SGID. Y como root tiene el privilegio de crear en /var/spool/cron/crontabs el archivo.

# ls -l /var/spool/cron/crontabs/lami20j
-rw------- 1 lami20j crontab 225 2006-07-22 16:00 /var/spool/cron/crontabs/lami20


Podemos ver que el usuario lami20j es el propietario del archivo y que tiene los privilegios de lectura y escritura. Sin embargo no lo puede hacer directamente.


Comandos


Chmod

El comando Chmod (CHangeMODe) permite definir y cambiar los privilegios de acceso de un archivo o un conjunto de archivos. Entre las opciones del comando chmod (las que no son numerosas – ver man chmod) citaré solamente dos:

  • v para verbose (visualización en la salida estándar STDOUT del resultado del comando)

  • R trata los directorios recursivamente (aplicación del comando al árbol de directorios completo del directorio en cuestión)

Hay dos modos de usar el comando chmod:

  • de modo literal

  • de modo numérico

El modo literal Si ha leído atentamente hasta aquí, entonces debería adivinar el modo literal.

Este es el uso de letras que ya le son conocidas r, w y x para especificar los privilegios que se deseen. La novedad es que vamos a utilizar también letras para designar las identidades de las que hemos hablado líneas arriba: el propietario, el grupo y los otros. Chmod utiliza la notación siguiente:


u- para el propietario (user)

g- para el grupo (group)

o-para los otros (other)

a- para todos (all)


Otra notación será utilizada para atribuir y/o retirar privilegios.


+ (más) para atribuir

- (menos) para retirar

= (igual) para fijar el acceso exacto


Aquí un pequeño esquema de construcción para chmod


Identidad Operador Tipo de acceso

_____________________________________

u + r

chmod g - w

o = x

a

_____________________________________

No podemos imaginar todas las combinaciones posibles, aun si eso parece posible considerando que existen pocos operadores y privilegios. Lo que complica las cosas es más bien el número de usuarios, el número de archivos y su repartición en el(los) disco(s) y las particiones de las que no se conoce tampoco el número, etc. En cambio algunas reglas le ayudarán si alguna vez utiliza el comando chmod.

Varias identidades y tipos de acceso pueden ser utilizadas.


Ej: chmod go-wx archivo para los miembros del grupo y los otros retiramos el privilegio de
escritura y ejecución.

  • varios conjuntos de operadores y tipos de acceso pueden ser utilizados.

                        - Ej: chmod o+r-w archivo atribuye el privilegio de lectura pero retira el                                     privilegio de escritura para los otros.

                        - las cadenas pueden ser combinadas separándolas por comas.

                        - Ej: chmod u+x,og-w archivo atribuye el privilegio de ejecución para el                                   propietario y retira los derechos de escritura para los miembros del grupo y                           los otros. ¡Atención!
                        No hay ningún espacio entre las cadenas separadas por las comas.

                       - Para aplicar el comando chmod a un directorio y su contenido (sub-                                    directorios, archivos) se utiliza el comando chmod -R privilegios Directorio

Trucos:

  • Cuando se ha omitido la identidad, será utilizado el valor a

                       - chmod -R +w directorio

                       - el tipo de acceso puede ser omitido si el signo igual (=) es utilizado para                              eliminar todos los accesos

                       - chmod o= archivo

El modo numérico

Proprietario Grupo Otros

__________________________________________________________________

LecturaEscrituraEjec LecturaEscrituraEjec LecturaEscrituraEjec

__________________________________________________________________

400 200 100 40 20 10 4 2 1


Para comprender el uso de chmod con el modo numérico a continuación un ejemplo. 

Ejemplo:

en un archivo deseamos establecer los privilegios siguientes: -propietario Lectura + escritura

+ejecución = 400 + 200 + 100 =700 -grupo Lectura + ejecución = 40 + 10 = 50 -los otros Lectura

+ ejecución = 4 + 1 = 5 En total esto da 700 + 50 + 5 = 755 Ahora vamos a utilizar el resultado

obtenido con chmod. chmod -v 0755 archivo o chmod 0755 archivo pero en este caso el

resultado del comando no es mostrado en la salida estándar Podemos escribir simplemente

chmod 755 archivo En resumen, el principio no es complicado. Establecemos los privilegios

que deseamos para cada identidad y hacemos la adición. Por el resto chmod se encarga. Ahora que hemos visto el modo numérico de utilizar el comando chmod, supongo que quizás haya encontrado la respuesta a una pregunta que tal vez le haya atravesado el espíritu. Se trata de la atribución de los privilegios de endoso.


SUID SGID Sticky bit

__________________________

4000 2000 1000

__________________________


Para agregar un privilegio de endoso, aparte de los privilegios habituales, inserte en el cálculo el o los privilegios de endoso que necesite. Tomemos el caso precedente 700 + 50 + 5 = 755

Para agregar el privilegio de endoso del grupo escribimos 2000 + 700 + 50 + 5 = 2755
¡Recuerde! Se trata de los privilegios para un comando, lo que significa que el privilegio de
ejecución debe ser otorgado. Que yo sepa no hay manera de regresar a los privilegios
precedentes una vez que haya ejecutado el comando.

Una idea descabellada sería guardar en primer lugar los privilegios existentes en un
archivo con ls -l o ls –Rl y enseguida crear un script para analizar este archivo, pero esto
complicaría las cosas y a decir verdad nunca he necesitado hacerlo. Otra idea, también
descabellada, seria salvar con tar par luego, en caso que perdiera los privilegios, regresar a la configuración original. Por consiguiente antes de modificar los privilegios de un archivo o un árbol de directorios primero dé una ojeada a los privilegios que ya existen.


umask

El comando umask permite definir los privilegios por defecto de un archivo o directorio al
momento de ser creados. Dicho de otro modo, éste indica los privilegios que se deben retirar al momento de su creación. El comando umask, al igual que el comando umask (modo numérico) toma como argumentos 3 cifras, que esta vez representan los privilegios que no deseamos otorgar. $ umask 0022 archivo Hay que saber que el periodo de vida del comando umask está limitado a la sesión shell activa. Para una duración permanente ver los archivos de configuración de su shell. Para el shell bash podemos utilizar el archivo ~/.bashrc

La comprensión de los privilegios para los archivos en un sistema GNU/Linux está bastante ligada a la gestión de los usuarios y grupos. Además de los privilegios que hemos visto líneas arriba, en un sistema GNU/Linux encontramos también los ACLs (Access Control List) que permiten otorgar privilegios suplementarios

DIA CIENTO SETENTA Y OCHO 10/03/2015

Hoy seguimos con teoría acerca de linux, la gestión de usuarios, seguridad etc.
Por otro lado, en diseño gráfico estamos por el penúltimo movimiento vanguardista, hoy ha sido exactamente el minimalismo. A su vez, seguimos con la portada del CD, que está llevando bastante trabajo por la cantidad de elementos que contendrá.

COMO FUNCIONA EL DISCO DURO DEL PC



¿Qué es?


El disco duro es el dispositivo del sistema de memoria del PC que almacena los programas y archivos de forma permanente. Es capaz, por tanto, de no olvidar nada aunque no reciba corriente eléctrica. 


¿Cómo se organiza la información?


La distribución lógica que tiene internamente un disco duro es responsabilidad del sistema operativo. Este se encarga de organizarlo y permitir el acceso a los distintos ficheros.

Estos ficheros se organizan en carpetas que a su vez pueden contener otras subcarpetas.
Entre otros sistemas de ficheros los más comunes son el NTFS y FAT pertenecientes a los entornos Windows o los ext2, ext3 y ext4 de Linux.


Dentro de un disco duro hay varios platos (entre 2 y 4), que son discos (de aluminio o cristal) concéntricos y que giran todos a la vez. El cabezal (dispositivo de lectura y escritura) es un conjunto de brazos alineados verticalmente que se mueven hacia dentro o fuera según convenga, todos a la vez. En la punta de dichos brazos están las cabezas de lectura/escritura, que gracias al movimiento del cabezal pueden leer tanto zonas interiores como exteriores del disco.

Cada plato tiene dos caras, y es necesaria una cabeza de lectura/escritura para cada cara (no es una cabeza por plato, sino una por cara).  

Las cabezas de lectura/escritura nunca tocan el disco, sino que pasan muy cerca (hasta a 3 nanómetros). Si alguna llega a tocarlo, causaría muchos daños en el disco, debido a lo rápido que giran los platos (uno de 7.200 revoluciones por minuto se mueve a 120 km/h en el borde). 


lunes, 9 de marzo de 2015

SEGURIDAD BASICA EN LINUX

La progresiva disminución de costes del hardware, así como la constante mejora de su funcionalidad, ha generado un aumento considerable de instalación de redes tanto a nivel empresarial como doméstico.
Por otra parte, la conexión de dichas redes a Internet ha experimentado en estos últimos años un crecimiento exponencial debido, igualmente, al bajo coste de las tarifas de conexión. Este acceso masivo de redes interconectadas provoca un grave problema de seguridad y es a partir de finales de los años '80 cuando comienzan a aparecer los primeros gusanos de Internet

De esta forma salta la alarma respecto de la seguridad de los sistemas informáticos y comienzan a aparecer organizaciones cuya misión es ofrecer soluciones frente a problemas de seguridad.


Respecto de un sistema informático se puede decir que es seguro si está 'fuera de peligro', es decir está protegido. Pero, conseguir llegar a esta situación es prácticamente imposible. No existe un sistema completamente seguro. Todos los sistemas tienen sus vulnerabilidades, bien del propio sistema operativo o de las aplicaciones ejecutadas sobre él. Y todo lo que se puede hacer es aumentar la dificultad para que el sistema quede comprometido.

Otro punto que hay que tener en cuenta es que, en la medida en que el sistema es mas seguro se pierde funcionalidad. Hay que encontrar, por tanto, un equilibrio entre seguridad y funcionalidad. Desactivar todos aquellos servicios que no sean necesarios y proteger el sistema en todo aquello que sea básico es imprescindible.
Como es sabido, en un sistema Linux el usuario root es el que tiene el control total sobre el sistema. Puede hacer lo que quiera. Lógicamente, a un pirata informático lo que le interesa es obtener ese estatus de usuario root y a partir de ahí utilizar la máquina para los fines que el persiga, como utilizarla como pasarela para dejar falsas pistas sobre sus 'malas acciones', o junto con otras máquinas llevar a cabo un ataque distribuido de denegación de servicio (DDoS) , o ejecutar sus programas con la CPU de la máquina atacada, obtener datos para luego comercializar con ellos,...
La ventaja que tiene Linux frente a otros sistemas operativos es que es libre (Open Source) y su código fuente esta disponible para todo aquel que quiera verlo, estudiarlo, probarlo y corregirlo.Cualquier versión beta que se publique del núcleo de Linux es probada por una gran cantidad de programadores que hacen de banco de pruebas, bajo las mas diversas condiciones y que de esa forma colaboran a que el producto final sea de calidad.
La seguridad en un sistema se basa en los mecanismos de protección que ese sistema proporciona. Estos mecanismos deben permitir controlar qué usuarios tienen acceso a los recursos del sistema y qué tipo de operaciones pueden realizar sobre esos recursos.
Todo mecanismo de protección debe manejar 2 conceptos:

  • Recursos: son las partes del sistema utilizadas por los procesos.

  • Dominios de protección: son el conjunto de recursos y operaciones sobre estos recursos que podrán utilizar todos aquellos procesos que se ejecuten sobre él.

En general, en un sistema LINUX, el conjunto de recursos está formado por todos los archivos del sistema, y el dominio será un usuario y los procesos que el ejecuta y que, por tanto, tengan el mismo UID efectivo.
Para controlar el acceso de los dominios a los recursos se utilizan las Listas de Control de Acceso por cada recurso.
En Linux, para conseguir Listas de tamaño constante, se utilizan 2 técnicas:

  • Reducir el numero de operaciones posibles sobre un recurso (archivo): podemos controlar 3 operaciones sobre los archivos, que son la lectura (r), escritura (w) y la ejecución (x).

  • Reducir el número de dominios que aparecen en la lista. Esto se consigue mediante el concepto de grupos de usuarios.

Todos los usuarios de un sistema Linux deben pertenecer, al menos, a un grupo. Existen 3 grupos o categorías en la relación entre un dominio ( usuario ) y un recurso (archivo ):

  • Propietario: indica quién creó el archivo

  • Grupo del propietario: reúne a todos los usuarios que pertenecen al grupo del propietario.

  • Resto de usuarios: los que no crearon el archivo y no pertenecen al grupo del propietario.

Cuando encendemos el ordenador se ejecuta un software, llamado BIOS (Basic Input/Output System) cuya función es determinar la configuración de la máquina y proporcionar un sistema básico de control sobre los dispositivos. Este software se suele almacenar en memoria ROM (Read o­nly Memory) o FLASH que permite la actualización de la BIOS sin cambiar el chip.


LILO acepta una serie de opciones en línea cuando se ejecuta. En concreto, el argumento single es el más peligroso, ya que arranca Linux en modo monousuario y por defecto, la mayoría de las distribuciones vuelcan a un prompt de root en una shell de comandos sin pedir ningún tipo de contraseña. Es una puerta de entrada al sistema que se debe de cerrar.
GRUB es un gestor multiarranque de carga directa. No tiTambién se puede conseguir una shell para cambiar la password del root introduciendo en las opciones en línea del LILO lo siguiente:

linux init=/bin/bash rw

Estos agujeros de seguridad se puede minimizar añadiendo al archivo de configuración de LILO /etc/lilo.conf las opciones siguientes:

  • delay = 0 que controla la cantidad de tiempo (en décimas de segundo) que LILO espera a que el usuario introduzca datos antes de arrancar la opción por defecto.

  • prompt fuerza al usuario a introducir algo y LILO no arranca el sistema automáticamente. Puede ser útil en servidores para eliminar los reinicios desatendidos.

  • restricted, situada en la imagen/es a proteger, pide una contraseña si se pasan opciones en tiempo de arranque (como linux single).

  • password=CLAVE (contraseña no cifrada). Junto con la opción anterior y situadas dentro de la sección de la partición Linux a proteger evitan el acceso en modo 'single' desde el prompt del LILO. Si no se añade la opciónrestricted, la password se pedirá en cualquier caso.


Es importante eliminar el permiso de lectura sobre /etc/lilo.conf para el grupo y los otros, y de esa forma que no se pueda 'ver' la contraseña de LILO.
El comando chattr permite transformar el archivo /etc/lilo.conf en invariable, lo cual significa que, tenga los permisos que tenga, el archivo no se puede borrar, renombrar, escribir en él, o crearle enlaces. Solo el root puede hacerlo.

# chattr +i /etc/lilo.conf

Para luego introducir cualquier modificación en este archivo habrá que quitar el flag de invariable:

# chattr -i /etc/lilo.conf

Nada de lo dicho tiene sentido si no hemos desactivado desde la BIOS la opción de arranque desde diskette, ya que en él puede haber un LILO completamente distinto. O también se puede arrancar con un disco de una distribución y a continuación arrancar el núcleo como Linux single.
Si el gestor de arranque utilizado es el GRUB GNU el nivel de seguridad introducido es mayor.
ene un numero limitado de núcleos arrancables (bootables) y permite arrancar cualquier tipo de sistema operativo sin necesidad de conocer la posición física de su núcleo en el disco, solo la partición correspondiente.
GRUB presenta varias ventajas respecto de LILO, como, por ejemplo, no es necesario instalarlo cada vez que hacen modificaciones en su archivo de configuracion. Si que es necesario ejecutar la orden grub-install cuando se ha ejecutado un apt-get upgrade, para cargar la nueva version del paquete grub.
Para crear un diskette de arranque de GRUB hay que copiar los archivos 'stage1' y 'stage2' (etapas de ejecución del GRUB) del directorio /boot/grub/ en el primero y segundo bloque del diskette:

# dd if=stage1 of=/dev/fd0 bs=512 count=1

# dd if=stage2 of=/dev/fd0 bs=512 seek=1

Es importante disponer de este diskette por si hay algún fallo en el MBR y no arranca el equipo. Otra forma mas sencilla de obtener este diskette es, sin montar la unidad floppy, ejecutar la orden:

# cat /boot/grub/stage1 /boot/grub/stage2 > /dev/fd0

De la misma forma, es tambien interesante hacer una copia del MBR a diskette (o cualquier otro medio), sobre todo si se tienen varios sistemas operativos instalados.

# dd if=/dev/hda of=/floppy/arranque.mbr count=1

Si, por seguridad, se quieren suprimir las operaciones interactivas desde GRUB, añadir la directiva password en el archivo de configuración de GRUB /boot/grub/menu.lst de la forma:
password --md5 PASSWORD

GRUB de esta forma desactiva cualquier control interactivo hasta que se pulse p y se introduzca la contraseña correcta. El argumento md5 indica a GRUB que almacene la password encriptada. Si no se indica estará en texto plano. Ejecutar

# grub

grub> md5crypt

pide la password y la devuelve encriptada. Se debe copiar en /boot/grub/menu.lst.
Otra medida de control de acceso al sistema puede consistir en provocar rearranques sucesivos del sistema cuando se intente entrar en el en modo 'single'. Para ello habrá que añadir, en el archivo de configuración /etc/inittab, alguna de las líneas siguientes:

ls:S:wait: shutdown -t0 -r now

ls:S:off:/sbin/sh

ls:S:once:/shutdown -r now

ls:S:once:/bin/sh -c `exec login`

Todas ellas impiden, de formas diversas, la entrada al sistema en modo single root (S).


La palabra de protección contiene 16 bits cuyo contenido se interpreta según se muestra en la figura siguiente:



La palabra de protección forma parte del contenido del nodo-i del archivo, que es la estructura que almacena información relativa a dicho archivo, como son el propietario, grupo, fechas de creación-modificación-acceso, tamaño, etc. Parte de los contenidos del nodo-i son visibles con la orden ls y la opción -l.

-rwxr--r-- 1 root root 512 Nov 24 17:59 arranque.mbr

Es conveniente que el administrador asigne al sistema, por defecto, una máscara de permisos umask restrictiva. Por ejemplo 077 e incluirla en /etc/profile. La orden umask establece los permisos que no se asignaran a los archivos. En el caso de 077 (---rwxrwx) al crear un archivo tendrá los permisos rw-------. Ejecución no se asigna por defecto.
Dentro de la palabra de protección del archivo, en la que se reflejan los diferentes permisos para los diferentes tipos de usuarios, existen unos bits que ocupan las posiciones 10, 11, y 12 cuyo estado puede comprometer de alguna forma la seguridad del sistema. Estos bits son:
  1. Sticky-bit (bit t/T sobre other) que activado sobre un directorio indica que un archivo de ese directorio solo puede ser borrado por: el propietario del archivo, el propietario del directorio o el root. Si aparece t, el bit sticky está a uno y el bit de ejecución de otros (other) está también a 1. Si aparece T el bit sticky está a uno y el bit de ejecución de otros está a 0. La orden que activa el sticky-bit sobre el directorio /home/usuario1/ es la siguiente:

# chmod +t /home/usuario1/

# ls -l /home

drwxr-xr-t 13 usuario1 usuario1 4096 Apr 16 2004 usuario1

Esta opción está activada por defecto en los directorios del sistema /tmp y /var/tmp/, que son utilizados por muchos programas. Estos programas presuponen que nadie puede borrar sus archivos una vez que han sido creados. Si se elimina de ellos el sticky-bit pueden quedar expuestos a ataques symlink. Este tipo de ataque aprovecha la creación de archivos temporales, por parte de algunos programas, en estos directorios y si dichos archivos tienen los permisos adecuados es posible crear enlaces simbólicos entre ellos y archivos del sistema, como /etc/passwd, y conseguir el permiso de escritura sobre él al ejecutar dicho script.

  • Bit SGID (bit s/S sobre group) que activado sobre un archivo, da los derechos del grupo a quien lo ejecuta, y solo durante la ejecución. Si aparece s el bit de setgid está a uno y el bit de ejecución del grupo está a 1. Si aparece Sel bit de setgid está a uno y el bit de ejecución del grupo está a 0.

  • Bit SUID (bit s/S sobre owner) que activado en un archivo ordinario, asigna los derechos del propietario del archivo a quien lo ejecuta, y solo durante el tiempo de ejecución. El sentido de s/S es el mismo que en SGID. La orden que activa el bit SUID sobre un archivo es la siguiente:

# chmod +s /home/archivo

El clásico ejemplo de archivo setuidado es el comando /usr/bin/passwd. Y es necesario que sea asi, ya que el usuario que cambia su password debe poder escribir sobre el archivo /etc/shadow cuya propiedad es del root y necesita temporalmente los privilegios del root.

-rwsr-xr-x 1 root root 26616 May 10 2004 /usr/bin/passwd

Si alguno de los programas con el bit SUID activado presenta algún agujero de seguridad, a través de ellos un potencial atacante puede adquirir privilegios de root. Por lo tanto es importante comprobar qué archivos en el sistema son SUID y vigilar si aumentan en número. Las ordenes siguientes permiten conocer qué archivos del sistema tienen activado el bit SGID y el bit SUID:

# find / -type f ( -perm -2000 -o -perm -4000 )

donde 2000 y 4000 son números en octal.

Es importante que el administrador impida la ejecución de archivos con el bit SUID activado en aquellos directorios en los que los usuario tienen permiso de escritura, como es el caso de /home. La primera medida sera aislar /home en una partición de disco independiente y a continuación, en el archivo /etc/fstab, activar la opción nosuid para dicha partición.

analytics