Documente Academic
Documente Profesional
Documente Cultură
La seguridad en UNIX
El UNIX en sus inicios no fue diseado para ser un sistema seguro, dado que en principio fue
concebido para uso acadmico y, por ello, estaba abierto a todo el mundo. Una vez ya
extendido su utilizacin, aparecieron distintas marcas que empezaron a ofrecer en sus
distribuciones el nivel de seguridad necesario para los actuales requerimientos que se le
suponen a este sistema. Las implicaciones de seguridad se pueden dividir en tres reas o
dominios dependiendo de la parte del sistema que se vea involucrado: la seguridad en las
cuentas, la del sistema de ficheros, y la de red. La seguridad en cmputo es un problema real
en sistemas multiusuarios que trabajan en red y tienen acceso a Internet. Cuando se trabaja
con los servidores UNIX con instalaciones por omisin, es comn que se asignen cuentas sin
password o con passwords por defecto; el tener algunos servicios abiertos, o que los sistemas
de archivos sean susceptibles al momento de compartirse en red, etc. Estas son caractersticas
de un sistema operativo vulnerable.
Los administradores de servidores con sistemas UNIX tienen la responsabilidad de mantener
niveles de seguridad, de acuerdo con el tipo de los usuarios y las polticas establecidas de uso
y confiabilidad para los servidores.
En este curso se revisaran los elementos necesarios para aprender a implementar y configurar
mtodos de seguridad, en redes UNIX.
No utilizar el nombre de la cuenta [(login), tal cual, al revs, en maysculas], nombre ,ni
apellidos ,ni nombres de familiares.
No emplear informacin personal que pueda ser obtenida fcilmente ,ni una
contrasea slo con nmeros o con la misma letra y tampoco palabras que se
encuentren en los diccionarios.
Utilizar palabras que sean fciles de recordar para que no haya que escribirlas.
Emplear una contrasea que pueda ser tecleada rpidamente sin necesidad de mirar al
teclado y no escribirlos en ningn sitio, ni siquiera ficheros, etc.
Tomar una lnea de un poema o cancin y quedarnos con la primera letra de cada
palabra, por ejemplo: '' De dnde vienes, mortal que del barro has llegado para un
momento brillar y regresar despus a tu apagada patria?'' el posible password (con 10
palabras bastan), ''Ddvmqdbhl''.
Poner alternativamente entre una consonante y una vocal, dos vocales, esto
proporciona palabras que no tienen sentido y que normalmente son pronunciables,
como ''routboo'', ''quadpop'' y as .Elegir dos palabras cortas y unirlas por un smbolo de
puntuacin.
El problema de no seguir estas reglas es que existen programas que van probando
passwords hasta que encuentran el correcto. Una vez escogido una contrasea es
importante seguir una poltica adecuada, unas reglas generales pueden ser:
stiky Si est activo indica al sistema operativo trate de manera especial el texto imagen
de un fichero ejecutable. Tiene poco significado hoy en da y es ms para
compatibilidad con antiguas versiones de UNIX.
En ocasiones se abusa de esta facilidad. Si un hacker llegar a ser un determinado
usuario, puede ser posible que sea capaz de ejecutar programas como ese usuario. Si
gana el EUID 0 podr editar el fichero de passwords y crearse una cuenta de root.
Los programas que tienen los bits de setuid o setguid activos no son seguros. Hay que
tener especial cuidado cuando se escriben dichos programas. Existen numerosos
paquetes de software que intentan que estas shells sean seguras, pero no se ha
conseguido resolver del todo. No se deben permitir nunca en UNIX. El problema de
un script con este bit activo es que puede ser interrumpido, dejando al usuario que lo
utiliza con los privilegios del propietario. Esto se puede hacer, por ejemplo, para el .profile.
Para evitar esto hay que usar la orden trap. Tambin hay que tener cuidado cuando se
llama a un programa ejecutable desde una shell, puesto que se ejecutar sobre su
propia shell, que puede interrumpirse tambin. Para prevenir esto, es preciso lanzar el
programa con el comando exec. Los distintos shells tratan de forma distinta el EUI:
Bourne Shell. Esta shell por defecto protege contra esto e ignora el EUID y el EGID,
activndolos a UID y GID respectivamente. Este comportamiento puede deshabilitarse con
la opcin -p.
Korn Shell . Esta shell no tiene la posibilidad anterior. En cualquier, caso va a leer
el /etc/suid_profile si el EUID no es igual al UID, y lo mismo para EGID y el GID.
C-Shell. No permite que se ejecuten shell scripts con el bit setuid activo. Si se invoca
con la opcin `-b&,acute; deshabilita esta caracterstica.
2.2El Sticky bit en los directorios.
Cuando el sticky bit est activo en los directorios, quiere decir que los usuarios no pueden
borrar o cambiar el nombre de ficheros de otros usuarios que estn en el mismo. Esto es
til para el directorio /tmp.
2.3Seguridad en las bibliotecas compartidas
Las bibliotecas compartidas son muy comunes en Solaris. Permiten ahorrar memoria a la
hora de ejecutar los procesos. Los programas que usan las mismas funciones, no
precisan, tienen su propia copia de las mismas en memoria. Se enlazan en tiempo de
ejecucin. La mayor parte de los comandos de /etc/bin usan esta caracterstica. El
comando ldd permite conocer qu bibliotecas usa cada programa. Por ejemplo:
Esto, para el comando cat, no es importante, pero si fuese un programa setuid, el creador
de la nueva biblioteca podra ejecutar la parte de cdigo que quisiese, como un usuario
ms privilegiado. Para evitar esto, es posible, hacer que un programa ignore la variable
LD_LIBRARY_PATH usando una nueva variable denominada LD_RUN_PATH:
Si ahora ''prog'' tiene el bit setuid activo se ignorar el valor de LD_LIBRARY_PATH. Todos
los programas de /usr/bin estn compilados de esta forma. Es una buena idea examinar
cules de nuestras aplicaciones que corren con setuid activo ignoran LD_LIBRARY_PATH.
2.4Encriptacin de ficheros
Debido a la posibilidad de escuchar los paquetes que circulan por la red, es importante
que no se transmitan passwords sin encriptar por ella. Pero el hecho de enviar las
contraseas encriptadas plantea el problema de la comunicacin de las claves. Uno de
los servicios que usan autentificacin de red es el de RPC. Algunas aplicaciones que
usan este servicio son Admintool y NIS+. Las modalidades de autentificacin que se
pueden usar en Solaris 2 son:
Las caractersticas de seguridad que incluyen cada una de ellas son la siguientes:
a. Autentificacin DES. Usa el estndar de encriptacin DES y criptografa de llave
pblica para llevar a cabo la autentificacin de usuarios y sistemas. En el sistema de
criptografa de llave pblica el cliente y el servidor obtienen una clave comn
denominada de conversacin. El servidor deduce la clave conversacin combinando la
clave pblica del cliente con su clave privada y viceversa. El cliente establece sus claves
pblicas y privadas usando el comando keylogin, como root. Un usuario, normalmente, lo
lleva a cabo de forma transparente cada vez que accede al sistema.
b.Autentificacin Kerberos. Este sistema de autentificacin fue desarrollado por el MIT
dentro del proyecto Athena. Usa autentificacin DES para encriptar unas etiquetas que
se asignan cuando se accede al sistema. Duran un cierto periodo de tiempo, por defecto
8 horas. La clave debe mostrarse cada vez que el usuario accede a ficheros.
3.4Hosts compartidos
La existencia de lo que se denominan hosts compartidos permite la posibilidad de
acceder, desde uno a otro, sin necesidad de introducir la contrasea. Por esta razn son
claramente inseguros. El fichero /etc/host.equiv use usa para indicar los hosts
compartidos. Si un usuario quiere hacer un rlogin o un rsh y tiene una cuenta en el
sistema local con el mismo nombre, se le permite el acceso sin que se le requiera de
nuevo la contrasea. Hay que llegar a un compromiso entre funcionalidad y seguridad a
la hora de la configuracin de estos ficheros .El fichero .rhosts , en el directorio local de
cada usuario, permite hosts compartidos para una determinada combinacin de mquina
y usuario. Se usa normalmente para acceder a las cuentas en diferentes mquinas
pertenecientes a distintas organizaciones, que no se incluyen en el
fichero /etc./hosts.equiv. Este fichero presenta ms problemas de seguridad que el otro
ya que no lo controla el administrador.
3.5Terminales seguros
En la versin de UNIX Solaris 2, aparece el concepto de terminal ''seguro''. Slo se
permitir el acceso de root desde un terminal, cuando junto a la entrada correspondiente
del mismo en el fichero /etc/ttytab, aparezca la palabra secure. Por defecto en Sun todos
los terminales se consideran seguros. La configuracin ms segura es eliminar la
palabra secure de todas las entradas incluso de la consola. Con esto se consigue que el
root deba entrar primero con su nombre de usuario y usar despus el comando su. As se
puede llevar un control de quines han sido los que han entrado como root en el sistema.
3.6Seguridad del sistema NFS
El NFS se dice no para permitir a los usuarios compartir(exportar en Solaris 1) los ficheros
a travs de la red. Uno de los usos ms comunes de NFS es para las estaciones sin disco.
Hay que tener en cuenta varios aspectos para lograr que este sistema sea seguro. El
fichero /etc/exports es el fichero ms importante en la configuracin de NFS, en l se
indica qu ficheros se exportan. Un ejemplo de una entrada de este fichero puede ser la
siguiente:
Si
entrado como root en el sistema.
3.10El servicio de correo electrnico
esto
funciona
habremos
2.
Si creamos alias para que los mensajes sean enviados a programas, hay que estar
completamente seguro de que es imposible obtener una shell o enviar un mensaje a
una shell de esos programas.
3.
Asegurarse
que
el password ''withard''
configuracin, sendmail.cf.
4.
se
elimina
del
fichero
de