Knoppia

Wiki de Informática y otras historias

Herramientas de usuario

Herramientas del sitio


master_cs:fortificacion:tm1

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
master_cs:fortificacion:tm1 [2025/02/17 16:40] thejuanvisumaster_cs:fortificacion:tm1 [2025/02/17 17:38] (actual) thejuanvisu
Línea 127: Línea 127:
    
  
-====== Comandos ====== 
-===== Obtener ID de una partición ===== 
-<code> 
-blkid /dev/sda4  
-</code> 
- 
-===== Crear un grupo de volúmenes ===== 
-Ponemos el nómbre que le queremos dar al grupo y los volúmenes que queremos usar para crear este. 
-<code> 
-vgcreate GRUPOVOLS /dev/sda4 
-</code> 
- 
-===== Estender un grupo de volúmenes ===== 
-Primero ponemos el grupo a modificar y después los volúmenes que queramos añadir. 
-<code> 
-vgextend GRUPOVOLS /dev/sdb1 /devsdb2 /dev/sdb3 
-</code> 
- 
-===== Mostrar grupo de volúmenes ===== 
- 
-<code bash> 
-vgdisplay 
-</code> 
- 
-===== Crear un volúmen lógico ===== 
-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. 
-<code bash> 
-lvcreate -L 15G GRUPOVOLS VOLUMILLO 
-</code> 
- 
-La ubicación resultante está en: /dev/GRUPOVOLS/VOLUMILLO 
  
 ===== Securización de Aplicaciones ===== ===== Securización de Aplicaciones =====
Línea 189: Línea 158:
  
 <code c> <code c>
-echo 5000000 > memory.high #Se limita a 500000 de memoria el suo del programa+echo 5000000 > memory.high #Se limita a 500000 de memoria el uso del programa
 </code> </code>
  
Línea 202: Línea 171:
  
 ==== Ejecución en jaulas chroot ==== ==== Ejecución en jaulas chroot ====
-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.+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: 
 + 
 +==== Entorno de virtualización ==== 
 +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/ 
 + 
 +<code c> 
 +lxc-create -t alpine -n NOMBRE_CONTENEDOR #En este caso alpine sería el tipo de contenedor 
 +</code> 
 +Para arrancar el container usamos el siguiente comando: 
 +<code c> 
 +lxc-start -F -n NOMBRE_CONTENEDOR #el -F indica que es en primer plano y el -n el nombre del contenedor. 
 +</code> 
 +Para parar el contanier se usa: 
 +<code> 
 +lxc-stop -n NOMBRE_CONTENEDOR 
 +</code> 
 + 
 +Los containers tienen usuarios predefinidos que se suelen indicar al crear el container.  
 +Podemos ejecutar algo en el container con: 
 +<code c> 
 +lxc-attach -n NOMBRE_CONTENEDOR /bin/sh #Por ejemplo, ejecutamos un shell en el container 
 +</code> 
 + 
 +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: 
 +<code> 
 +lxc-ls -f 
 +</code> 
 +Para entrar en un container que no se ha iniciado con -F podemos usar SSH contra su IP. lxc crea una interface llamada bridge 0 para conectar los containers mediante NAT como si fuera virtualbox. para configurar la red de un container vamos a la dirección: 
 +<code> 
 +cd /var/lib/lxc 
 +</code> 
 +Aquí hay una carpeta por container, para configurar uno vamos al que queramos y modificamos el archivo config. Dentro de este se pueden ajustar más parámetros, como el autoarranque o la memoria entre otros. Mediante NFTables podemos comunicar el container con el exterior para que pueda prestar servicios. Esto nos permite arrancar aplicaciones de forma aislada. Dentro de /var/lib/lxc/NOMBRE_CONTAINER/rootfs podemos encontrar los archivos usandos dentro del container. Estos aparecen como pertenecientes al usuario que creó el container, a pesar de ello la máquina los puede usar, esto se debe a que comparte los identificadores con la máquina HOST 
 + 
 +==== Mandatory Access Control ==== 
 +Hay 2 tipos: 
 +=== SELinux === 
 +Usado por Fedora. __Permisos por archivos__, todo tiene una etiqueta (Archivos, procesos, etc...) que dice que puede acceder a que. Solo se admiten los acceso permitidos por las etiquetas. Para convertir una máquina en SELinux primero hay que instalar los siguientes paquetes: 
 +<code bash> 
 +apt install selinux-basics selinux-utils selinux-policy-defualt auditd  
 +</code> 
 +Tras es activamos selinux con el siguiente comando: 
 +<code> 
 +selinux activate 
 +</code> 
 +esto crea un archivo /.autorelabel para etiquetar los ficheros no etiquetados. Selinux necesita EXT4. Si se usa Selinux no se puede compartir el directorio home entre dos distros que no lo usen. Selinux tiene 2 modos: 
 +  * Modo permisivo: selinux simplemente manda warnings al log, pero no bloquea el acceso. 
 +  * Modo enforce: Bloquea accesos no autorizados, lo malo es que solo avisa la primera vez que se intenta realizar un acceso no autorizado. 
 +También añade al grub en /boot/grub/grub.cfg el modo security = selinux. En /etc/selinux/config podemos cambiar el modo de selinux de permisive a enforce. 
 + 
 +Para ver los avisos generados por selinux podemos usar el siguiente comando: 
 +<code> 
 +audit2why -a 
 +</code> 
 + 
 + 
 +=== APParmor === 
 +Usado por debuan. __Permisos por aplicación__ indicando donde puede acceder y donde no. 
 +Para habilitar un programa con apparmor usamos el comando: 
 +<code> 
 +apparmor_parser /etc/apparmor.d/usr.bin.programa 
 +</code> 
 +Por defecto el programa se pondrá en modo enforce. 
 +Para saber el estado de las aplicaciones en apparmor usamos 
 +<code> 
 +aa-status 
 +</code> 
 +para que al usar un programa simplemente mande un warning usamos complain: 
 +<code> 
 +aa-complain /usr/bin/programa 
 +</code> 
 + 
 + 
 + 
 +===== Securización de las cuentas de usuarios ===== 
 +Se trata de endurecer la autenticación y evitar que algunos usuarios tengan más permisos de los que deberían. 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +====== Comandos ====== 
 +===== Obtener ID de una partición ===== 
 +<code> 
 +blkid /dev/sda4  
 +</code> 
 + 
 +===== Crear un grupo de volúmenes ===== 
 +Ponemos el nómbre que le queremos dar al grupo y los volúmenes que queremos usar para crear este. 
 +<code> 
 +vgcreate GRUPOVOLS /dev/sda4 
 +</code> 
 + 
 +===== Estender un grupo de volúmenes ===== 
 +Primero ponemos el grupo a modificar y después los volúmenes que queramos añadir. 
 +<code> 
 +vgextend GRUPOVOLS /dev/sdb1 /devsdb2 /dev/sdb3 
 +</code> 
 + 
 +===== Mostrar grupo de volúmenes ===== 
 + 
 +<code bash> 
 +vgdisplay 
 +</code> 
 + 
 +===== Crear un volúmen lógico ===== 
 +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. 
 +<code bash> 
 +lvcreate -L 15G GRUPOVOLS VOLUMILLO 
 +</code> 
 + 
 +La ubicación resultante está en: /dev/GRUPOVOLS/VOLUMILLO 
master_cs/fortificacion/tm1.1739810402.txt.gz · Última modificación: 2025/02/17 16:40 por thejuanvisu