sg t1 practicas_linux
Post on 13-Jun-2015
697 Views
Preview:
TRANSCRIPT
PRACTICAS SEGURIDAD
SERVIDORES LINUX
SEGURIDAD TRIMESTRE-1 2º A.S.I.R
Débora García García
SEGURIDAD TRIMESTRE-1 Débora García García
1
ÍNDICE
Probar el comando chage y ver cómo se modifica el fichero shadow. .............................................. 3
Modificar los parámetros de contraseña de login.defs y ver cómo afechcta a la creación de nuevos
usuarios. .......................................................................................................................................... 4
3.- Modificar el fichero securetty para impedir el acceso de root a los ttys (pruébalo intentando
entrar en la consola como root). ...................................................................................................... 5
4.- Modificar el fichero de configuración de ssh para impedir el acceso de root por ssh. .................. 6
5.- Crea un grupo wheel si no existe y modifica el fichero PAM para el servicio su, de forma que
sólo los usuarios pertenecientes a ese grupo puedan hacer su. .......................................................... 6
6.- Modificar el fichero PAM adecuado para hacer que los usuarios listados en un fichero sólo
puedan acceder a través de xdm (no deben poder acceder en la consola ni mediante ssh)................. 7
7.- Probar el comando usermod para hacer que la cuenta de un usuario expire en 30 das desde hoy. 8
8.- Crear una cuenta de invitado con acceso restringido. .................................................................. 8
(a) Crear una cuenta normal y en el /etc/passwd cambiar el shell estándar por uno restringido. .... 8
(b) Borrar en el home del usuario todos los cheros (incluidos los .bashrc, .bash prole, etc.) ......... 8
(c) Crear un fichero .bash_profile vacío, con permiso de lectura para propietario, grupo y otros y
cuyo propietario sea root. ............................................................................................................ 9
(d) Modificar el propietario del home del usuario a root, y dar permisos de lectura y ejecución a
grupo y otros (así el usuario sólo puede entrar en la cuenta, pero no hacer nada mas). ................. 9
(e) Crear un directorio bin (propietario root, permiso rx a grupo y otros) dentro del home del
usuario, y en ese directorio ponemos enlaces simbólicos a los comandos que usara el usuario (p.e.
ls, cp, cat, vi). .............................................................................................................................. 9
(f) En él .bash_profile crear la variable PATH para que acceda a ese directorio bin .................... 10
(g) Crea dentro del home un directorio de trabajo work, propiedad del usuario con permisos rwx
para el mismo. ........................................................................................................................... 10
(h) En el .bash_profile haz que el usuario al entrar se redirija a ese directorio work (cd
/home/invitado/work)) ............................................................................................................... 10
9.- Instalar el paquete sudo y ver las páginas de manual de sudo y sudoers .................................... 11
10.- Crear un fichero de configuración con las siguientes características ....................................... 11
(a) los usuarios del grupo wheel deben poder apagar y reiniciar la maquina usando su contraseña
.................................................................................................................................................. 11
(b) un par de usuarios concretos deben poder configurar la red .................................................. 11
(c) debéis utilizar alias para comandos y usuarios ...................................................................... 11
(d) los logs de sudo deben ir a un chero de log concreto ............................................................ 11
11.- Probar a ejecutar los comandos con esos usuarios y examinar los logs generados ................... 12
12.- En el servidor, instalar el paquete tcpd, si no está ya instalado. ............................................... 12
13.- Examinar las páginas de manual de tcpd y hosts Access. ........................................................ 12
14.- Configurar los ficheros hosts.allow y hosts.deny para: ........................................................... 12
a) denegar el acceso a todo el mundo a todos los servicios (en hosts.deny) ver el tiene sobre los
clientes (intentar conectarse por ssh, o autenticarse como usuario LDAP). ................................ 12
SEGURIDAD TRIMESTRE-1 Débora García García
2
b) permitir (en hosts.allow) acceso desde los sistemas de la red local a los siguientes servicios y
comprobar que funcionan: ......................................................................................................... 12
SSH (demonio sshd) .................................................................................................................. 12
LDAP (demonio slapd) .............................................................................................................. 12
NFS (demonios portmap, nfsd y mountd) .................................................................................. 12
c) en hosts.allow indicar que todas las conexiones de FTP sean denegadas, y que se envíe un mail
a un usuario mostrando un mensaje de intento de conexión. ...................................................... 13
d) probar los comandos tcpdchk y tcpdmatch ............................................................................ 14
15.- Examina los ficheros de configuración de PAM en el sistema real. ......................................... 14
16.- Modifica el archivo /etc/security/time.conf para que el acceso por ssh al servidor esté prohibido
para todos los usuarios excepto root los fines de semana y fuera de horas de trabajo. .................... 14
17.- Instalar el paquete acl , ver las páginas de manual de setfac y getfacl ..................................... 15
18.- Remontar la partición /home con soporte ACL ....................................................................... 15
19.- Crear varios cheros y probar diferentes permisos por medio de las ACLs ............................... 15
20.- Definir permisos por defecto para un directorio y ver como se propagan los permisos a los
ficheros creados en ese directorio .................................................................................................. 16
21.- Ejecuta un bash en chroot ....................................................................................................... 17
(a) Crea un directorio /var/chroot/shell ...................................................................................... 17
(b) Crea dentro de este directorio los directorios necesarios para ejecutar bash .......................... 17
por lo menos debes crear /var/chroot/shell/bin y copiar /bin/bash a ese directorio ...................... 17
usa la opción -p de cp para preservar permisos de los cheros que copias .................................... 17
(c) comprueba con ldd las libreras necesarias para ejecutar bash y cópialas al directorio adecuado
.................................................................................................................................................. 17
(d) ejecuta bash con: .................................................................................................................. 17
# chroot /var/chroot/shell /bin/bash ............................................................................................ 17
mira en /proc que el directorio raíz del shell lanzado ................................................................. 17
(e) Añade el comando ls a la jaula ............................................................................................. 17
(f) Ejecuta el shell como un usuario no privilegiado con chrootuid ............................................ 17
22.- Instala Apache2 chroot usando makejail ................................................................................. 17
(a) Instala los paquetes apache2 y makejail................................................................................ 17
(b) Copia el chero /usr/share/doc/makejail/examples/apache.py a /etc/makejail ......................... 18
(c) Modifica el chero para adaptarlo a apache2, indicándole los paquetes apropiados ................ 18
(d) Sigue las instrucciones en www.debian.org/doc/manuals/securingdebian- ............................ 18
howto/ap-chroot-apache-env.en.html para realizar la instalación y lanzar el apache en chroot .... 18
SEGURIDAD TRIMESTRE-1 Débora García García
3
Probar el comando chage y ver cómo se modifica el fichero shadow.
Chage debora -l
Archivo: /etc/shadow
Se han modificado el número de días con: chage –M 5 debora
SEGURIDAD TRIMESTRE-1 Débora García García
4
Modificar los parámetros de contraseña de login.defs y ver cómo afecta a la creación de nuevos usuarios.
Vemos como está por defecto.
Modificación: /etc/logins.defs Estos son los parámetros por defecto.
SEGURIDAD TRIMESTRE-1 Débora García García
5
Esta es la modificación.
Comprobamos con: chage –l usuario
Modificar el fichero securetty para impedir el acceso de root a los ttys (pruébalo intentando entrar en la consola como root).
Editar archivo: /etc/securetty Añadimos la siguiente línea
Comprobamos: sudo login root
SEGURIDAD TRIMESTRE-1 Débora García García
6
Modificar el fichero de configuración de ssh para impedir el acceso de root por ssh.
Modificar el archivo: /etc/ssh/sshd_config Fijar el parámetro PermitRootLogin no
Añadir al archivo: /etc/securetty
Comprobamos:
Crea un grupo wheel si no existe y modifica el fichero PAM para el servicio su, de forma que sólo los usuarios pertenecientes a ese grupo puedan hacer su. Crear el grupo Wheel: addgroup Wheel Crear un usuario para Wheel: adduser usu Añadir el usuario al grupo: usermod –G Wheel usu Abrir el archivo /etc/pam.d/su y descomentar la línea:
SEGURIDAD TRIMESTRE-1 Débora García García
7
Modificar el fichero PAM adecuado para hacer que los usuarios listados en un fichero sólo puedan acceder a través de xdm (no deben poder acceder en la consola ni mediante ssh).
Crear un fichero que contenga la lista de usuarios bloqueados: nano /etc/bloqueados. Introducimos los nombres en la lista.
Para negar el acceso editamos el fichero /etc/pam.d/login Añadimos: auth required pam listfile.so ítem=user sense=deny file=/etc/bloqueados onerr=succeed
Al logearnos, no nos lo permite.
SEGURIDAD TRIMESTRE-1 Débora García García
8
Probar el comando usermod para hacer que la cuenta de un usuario expire en 30 das desde hoy.
Hay que ejecutar el comando en el terminal para que la cuenta de “usu” expire en el tiempo indicado: usermod –e $(date + %Y)-11-03 usu.
Crear una cuenta de invitado con acceso restringido.
(a) Crear una cuenta normal y en el /etc/passwd cambiar el shell estándar por uno restringido. Crear cuenta de usuario: adduser normal Modificar: /etc/password
El usuario normal está restringido
(b) Borrar en el home del usuario todos los cheros (incluidos los .bashrc, .bash prole, etc.) Ver ficheros: ls –a /home/normal
SEGURIDAD TRIMESTRE-1 Débora García García
9
Borrar todos los ficheros: rm –R /home/normal/
(c) Crear un fichero .bash_profile vacío, con permiso de lectura para propietario, grupo y otros y cuyo propietario sea root. Crear el fichero: > /home/normal/.bash_profile
Permisos: chmod 444 /home/normal/.bash_profile
(d) Modificar el propietario del home del usuario a root, y dar permisos de lectura y ejecución a grupo y otros (así el usuario sólo puede entrar en la cuenta, pero no hacer nada mas).
Chown root /home/normal (en nuestro caso ya está por defecto como vemos en el apartado anterior). Chmod 755 /home/normal/
(e) Crear un directorio bin (propietario root, permiso rx a grupo y otros) dentro del home del usuario, y en ese directorio ponemos enlaces simbólicos a los comandos que usara el usuario (p.e. ls, cp, cat, vi).
Crear directorio: mkdir /home/normal/bin Permisos: chmod 755 /home/normal/bin
Enlaces simbólicos: ln –s Borrar enlaces simbólicos: unlink enlace
SEGURIDAD TRIMESTRE-1 Débora García García
10
(f) En él .bash_profile crear la variable PATH para que acceda a ese directorio bin Crear variable: PATH=$PATH:/home/normal/bin/
(g) Crea dentro del home un directorio de trabajo work, propiedad del usuario con permisos rwx para el mismo. Crear directorio: mkdir work Permisos: chmod 755 work Propiedad: chown normal work
(h) En el .bash_profile haz que el usuario al entrar se redirija a ese directorio work (cd /home/invitado/work)) Añadir al archivo: /home/normal/.bash_profile cd /home/normal/work
SEGURIDAD TRIMESTRE-1 Débora García García
11
Sudo login normal
Instalar el paquete sudo y ver las páginas de manual de sudo y sudoers Instalar apt-get install sudo Para ver el manual de los comando utilizamos la orden man sudo y man sudoers
Crear un fichero de configuración con las siguientes características
(a) los usuarios del grupo wheel deben poder apagar y reiniciar la maquina usando su contraseña
ALL, !SERVERS=NOPASSWD: SHUTDOWN
(b) un par de usuarios concretos deben poder configurar la red
CLIENTS=ip_cliente/mascara_red
(c) debéis utilizar alias para comandos y usuarios
Users_Alias AYUDANTES=pepe,juan
Cmnd_Alias SHUTDOWN=/sbin/shutdown –h now ,/sbin/halt
Cmnd_Alias USERS=/usr/sbin/adduser,/, /usr/sbin/deluser
(d) los logs de sudo deben ir a un chero de log concreto
Defaults logfile=/var/log/sudolog
SEGURIDAD TRIMESTRE-1 Débora García García
12
Probar a ejecutar los comandos con esos usuarios y examinar los logs generados
En el servidor, instalar el paquete tcpd, si no está ya instalado. Apt-get install tcpd
Examinar las páginas de manual de tcpd y hosts Access. Man tcpd y man hosts_access.
Configurar los ficheros hosts.allow y hosts.deny para:
a) denegar el acceso a todo el mundo a todos los servicios (en hosts.deny) ver el tiene sobre los clientes (intentar conectarse por ssh, o autenticarse como usuario LDAP). Descomentar ALL: PARANOID
Si sustituimos paranoid por all denegamos el acceso a todos los servicios.
b) permitir (en hosts.allow) acceso desde los sistemas de la red local a los siguientes servicios y comprobar que funcionan:
SSH (demonio sshd)
LDAP (demonio slapd)
NFS (demonios portmap, nfsd y mountd)
SEGURIDAD TRIMESTRE-1 Débora García García
13
Comprobación:
c) en hosts.allow indicar que todas las conexiones de FTP sean denegadas, y que se envíe un mail a un usuario mostrando un mensaje de intento de conexión.
SEGURIDAD TRIMESTRE-1 Débora García García
14
En el fichero /etc/banners debe de haber un fichero in.ftpd el cual incluirá un mensaje que podrá visualizar el cliente.
d) probar los comandos tcpdchk y tcpdmatch tcpdchk: chequea la configuración de hosts.allow y hosts.deny Tdpdmatch: predice como se comportarían las reglas ante una petición determinada.
Examina los ficheros de configuración de PAM en el sistema real.
Modifica el archivo /etc/security/time.conf para que el acceso por ssh al servidor esté prohibido para todos los usuarios excepto root los fines de semana y fuera de horas de trabajo. Editar: /etc/security/time.conf, añadir ssh;*;root;wk1500-2000 (servicio, usuario, fin de semana, de las 15h a las 20h).
SEGURIDAD TRIMESTRE-1 Débora García García
15
Instalar el paquete acl , ver las páginas de manual de setfac y getfacl
Apt-get install acl
Man setfac
Man getfacl
Remontar la partición /home con soporte ACL
Mount –o remount,acl /
Crear varios ficheros y probar diferentes permisos por medio de las ACLs
Lectura y escritura al usuario “usu”: setfacl –m user:usu:rw prueba1.txt
Lectura al grupo “Wheel”: setfacl –m group:Wheel:r prueba2.txt
SEGURIDAD TRIMESTRE-1 Débora García García
16
Setfacl –m mask::r –x prueba3.txt Getfacl –omit-header prueba3.txt
Definir permisos por defecto para un directorio y ver como se propagan los permisos a los ficheros creados en ese directorio
Se crea el directorio acls y los archivos
Cambiamos los permisos del directorio chmod 700 acls Setfacl –d –m g:users:rw acls Cd acls Touch acl1 Getfacl acl1
SEGURIDAD TRIMESTRE-1 Débora García García
17
Ejecuta un bash en chroot
(a) Crea un directorio /var/chroot/Shell
(b) Crea dentro de este directorio los directorios necesarios para ejecutar bash por lo menos debes crear /var/chroot/shell/bin y copiar /bin/bash a ese directorio
usa la opción -p de cp para preservar permisos de los ficheros que copias
(c) comprueba con ldd las libreras necesarias para ejecutar bash y cópialas al directorio adecuado
(d) ejecuta bash con:
# chroot /var/chroot/shell /bin/bash
mira en /proc que el directorio raíz del shell lanzado
(e) Añade el comando ls a la jaula
(f) Ejecuta el shell como un usuario no privilegiado con chrootuid
Instala Apache2 chroot usando makejail
(a) Instala los paquetes apache2 y makejail
Apt-get install apache2
Apt-get install makejail
SEGURIDAD TRIMESTRE-1 Débora García García
18
(b) Copia el chero /usr/share/doc/makejail/examples/apache.py a /etc/makejail
(c) Modifica el chero para adaptarlo a apache2, indicándole los paquetes apropiados
(d) Sigue las instrucciones en www.debian.org/doc/manuals/securingdebian-
howto/ap-chroot-apache-env.en.html para realizar la instalación y lanzar el apache en chroot
top related