Proyecto Integral de Ingeniería del Software | |
---|---|
Metodologías Ágiles |
Trabajo Fin De Grado | |
---|---|
Guía Memoria TFG |
Servidores | |
---|---|
Minercraft | |
Knoppia | |
Omegacraft |
Base de datos de juegos | |
---|---|
GameBoy Advance (GBA) |
Proyecto Integral de Ingeniería del Software | |
---|---|
Metodologías Ágiles |
Trabajo Fin De Grado | |
---|---|
Guía Memoria TFG |
Servidores | |
---|---|
Minercraft | |
Knoppia | |
Omegacraft |
Base de datos de juegos | |
---|---|
GameBoy Advance (GBA) |
¡Esta es una revisión vieja del documento!
Un sistema operativo recién instalado es siembre inseguro. Normalmente tiene cierto número de vulnerabilidades que se originan de:
Proceso de configurar el sistema operativo para que sea lo más seguro posible. Implica:
Para lograr esto se debe:
Para un sistema de información las amenazas pueden venir de:
Si se explota una vulnerabilidad de nuestro sistema es posible que: Nuestro sistema deje de rendir como debe La información de nuestro sistema es destruida o filtrada
El software en un sistema fortificado debe ser fiable y seguro que hace lo que tiene que hacer y lo hace bien:
Tenemos 2 principales principios de seguridad:
Tenemos que asumir que todas las medidas de seguridad implementadas van a fallar:
Cada usuario debe tener los permisos mínimos para hacer la tarea que está haciendo. Generalmente en los sistemas se tienen más privilegios de los necesarios, lo que puede ser un problema de seguridad.
Se recomienda que las aplicaciones se ejecuten virtualizadas.
Es una de las partes que más dependen del hardware. En intel coexisten 2 métodos de arranque: BIOS o Legacy y UEFI:
ARM utilizaun sistema de Arranque similar a UEFI, mientras que SBCs como raspberry usan BIOS.
ls #Para ver las particiones set root=hd0,msdos3 #Seleccionamos partición ls / #Vemos que hay en la partición en cuestión linux /boot/vmlinux-amd64 #Le decimos donde está el kernel a GRUB initrd /boot/initrd-nombre root=/dev/sda1 #Le decimos donde está Initrd y donde están los ficheros al GRUB boot
Se le debe poner una contraseña al Firmware para cambiar la configuración (También se puede hacer para cada vez que se arranca, pero esto hace que sea tedioso arrancarlo.) Introduciendo parámetros en GRUB es posible acceder al Root del equipo, lo que es una vulnerabilidad muy grave.
Tenemos dos aproximaciones al uso de discos y particiones en linux:
Hay 2 tipos de aplicaciones:
Cuando se instala una distribución de linux hay muchas aplicaciones que no son necesarias de las cuales se puede prescindir. Se pueden poner límites a las configuraciones en /etc/security/limits.conf. Estos límites son por sesión, estos límites tienen uno hard y uno soft. El límite soft se puede superar, siempre y cuando no sobrepase el límite hard. Para limitar una aplicación podemos usar:
Los cgroups son jerárquicos. Para crear un cgroup hacemos lo siguiente
cd /sys/fs/cgroup/ #Ruta de los cgroups mkdir prueba #Creamos nuevo cgroup
Los ficheros del cgroup son como los ficheros de proc. Ahora el directorio /prueba debería estar poblado por numerosos archivos. Para añadir un proceso al cgroup hacemos lo siguiente:
echo 2007 > cgroup.procs #Metemos el proceso 2007 en cgroup.procs
Para limitar el consumo de cpu hacemos:
echo 10000 1000000 > cpu.max #Por cada 100000 de CPU se asigna 10000 de CPU al programa.
Para limitar el consumo de memoria:
echo 5000000 > memory.high #Se limita a 500000 de memoria el uso del programa
se pueden parar todos los procesos del cegroup con:
echo 1 > csgroup.freeze
Para liberar los programas se usa:
echo 0 > csgroup.freeze
El programa que se ejecuta en estas jaulas no puede subir del directorio en el que se ejecuta. Antiguamente se usaba para testear software y para servidores FTP. Se suele usar cuando se arranca un medio de instalación. Para tener un entorno ChRoot funcional se hace lo siguiente:
La creación de containers es muy simple, utilizamos lxc: <Code> lxc-create </code>
Se pueden ver los contenedores que se pueden crear en /usr/share/
lxc-create -t alpine -n NOMBRE_CONTENEDOR #En este caso alpine sería el tipo de contenedor
Para arrancar el container usamos el siguiente comando:
lxc-start -F -n NOMBRE_CONTENEDOR #el -F indica que es en primer plano y el -n el nombre del contenedor.
Para parar el contanier se usa:
lxc-stop -n NOMBRE_CONTENEDOR
Los containers tienen usuarios predefinidos que se suelen indicar al crear el container. Podemos ejecutar algo en el container con:
lxc-attach -n NOMBRE_CONTENEDOR /bin/sh #Por ejemplo, ejecutamos un shell en el container
Una vez conectados así al contanier le podemos poner una contraseña con el comando “passwd root” y podemos crear un usuario nuevo en esta con “useradd -m NOMBRE”. Podemos ver los container arrancados y sus ips con:
lxc-ls -f
Para entrar en un container que no se ha iniciado con -F podemos usar SSH contra su IP.
blkid /dev/sda4
Ponemos el nómbre que le queremos dar al grupo y los volúmenes que queremos usar para crear este.
vgcreate GRUPOVOLS /dev/sda4
Primero ponemos el grupo a modificar y después los volúmenes que queramos añadir.
vgextend GRUPOVOLS /dev/sdb1 /devsdb2 /dev/sdb3
vgdisplay
Con -L indicamos el tamaño, después el grupo de volúmenes que vamos a utilizar y finalmente el nombre del volúmen lógico.
lvcreate -L 15G GRUPOVOLS VOLUMILLO
La ubicación resultante está en: /dev/GRUPOVOLS/VOLUMILLO