Passa al contingut principal

Instalación de Ubuntu Server en VirtualBox de Oracle[2/2]

La idea de esta práctica no se basaba ni en crear la máquina virtual, ni en instalar Ubuntu Server, eso lo puede hacer cualquiera. Lo que queremos es experimentar, aprender y trastear. En este caso es para hacer una auditoría de usuarios y grupos del sistema.

¿Qué es lo primero que he hecho hoy? Como me molestaba el tema de que se iniciaba cloud-init automáticamente, pero no sé si lo utilizaré un dia, no lo voy a borrar. Simplemente vamos a crear un archivo en la carpeta donde se guardan las "instrucciones" del programa que es la carpeta /etc/cloud(en este caso), creamos un archivo que le diga al programa que se desactive cloud-init.disable, con sudo touch /etc/cloud/cloud-init.disabled. Y el día que lo quiera usar, simplemente tendré que borrar éste archivo.(Arreglado)
Antes que nada yo también estoy aprendiendo a crear scripts mientras hacemos esto. He encontrado un script y estoy buscando qué significa, a ver si lo podemos entender y después usarlo el día que lo necesitemos. Lo creamos en /usr/local/bin/ y le damos el título de audit-users.sh. Dice así: 

Lo he recortado del archivo directamente para no subirlo con errores y ya lo he comprobado para ver si funciona :D...

$!/bin/bash Es la manera que le decimos al sistema cómo interpretar el script, le comunicamos, ejecuta éste texto usando Bash.
echo es un comando que imprime texto en la consola, ¿Qué "imprime"? Pues lo que está entre comillas que es lo que describe en cada línea (ya sea Usuarios Sistema, Cuentas sin contraseña....) y si esta linea lleva -e, es la manera de interpretar algún texto en este caso queremos que interprete a \n que hace un salto de línea. Digamos que estas líneas "echo" ayudan a la descripción a la hora de emprender el script.
A continuación: awk -F: '$3 < 1000 {print $1} /etc/passwd. Qué hacemos? awk sirve para procesar texto y analizarlo.-F: Indica que cada línea se divide en :(dos puntos).$3 es el tercer campo de la línea en /etc/passwd, qué hay en /etc/passwd? Es dónde se encuentran los usuarios y algunos Sistemas/ Servicios. Que si entramos en el archivo vemos una estructura de usuario:contraseña:UID:GID:comentario:home:shell.
(Ah y se me olvidaba que hemos instalado nano. sudo apt update && sudo apt install nano. Todo esto para que veamos el archivo antes de realizar el script).
Entonces con la línea en el script, solicitamos todos los "usuarios del sistema" que tengan un UID menor de 1000 en la tercera línea. Y finalizamos ésta línea con: {print $1}, que significa que si cumple la condición anterior entonces imprime la primera palabra hasta : en el archivo /etc/passwd. La frase completa es: awk -F: '$3 <1000 {print$1}' /etc/passwd. Los usuarios que marcan 1000 o más, son usuarios humanos.
Siguiente línea después de su descripción es para cuentas que no tienen contraseña, las contraseñas se guardan cifradas, pero queremos saber si cumplen el siguiente patrón si en la segunda columna entre dos puntos en el archivo /etc/shadow está vacío, se mostrará: awk -F: '($2 == "") {print $1}' /etc/shadow.
Tercera y definitiva, getent group | awk -F: '$4 {print $1}' | grep -v '^$'. Ésta es muy diferente a las demás usa getent group, que lista todos los grupos en el sistema. Y volvemos al patrón parecido con awk -F: porque también se lista en columnas de :. El cuarto campo de este archivo es la lista de los miembros del grupo, por ejemplo, nombre del grupo_:contraseña:GID:miembrosdelgrupo. Si ponemos !$4 (si el campo 4 está vacío) y con grep -v '^$' eliminamos las líneas vacías que pueden aparecer en la salida del script.
Después de guardar éste archivo, escribimos la siguiente orden: sudo chmod +x /usr/local/bin/audit-users.sh. Ésto le da los permisos al archivo y lo hace ejecutable. Si lo abrimos veremos:
También podríamos hacer un log automático y con el día en el que éstamos con poniendo en nuestra consola(en el directorio /var/log):
De ésta manera generamos un archivo con los resultados que nos muestra nuestro servidor.
 
 

Comentaris

Entrades populars d'aquest blog

Projecte Flask + S3 #3: Del servidor local a S3

  Aquesta és la tercera part que parlo del projecte. Si encara no estàs seguint-lo, et recomano que miris les entrades anteriors dedicades al tema. A la primera part vam configurar l’entorn i decidir les pautes. A la segona , dedicàrem el seu temps a la importància de fer una bona classe S3Client i uns tests de pytest correctes. A l’hora de pensar en desenvolupar l’app , hem de canviar la manera de pensar. Passem d’una filosofia de backend en la que pensem únicament en Python - A una full-stack amb Flask. Què és un full-stack ? La seva traducció literal és una “pila complerta”, es refereix a quan en programació s’escriu un codi des de zero. I disposa de tres parts:  Front-end , la interfície d'usuari, és el que interactua directament des del seu dispositiu i en el nostre cas és HTML/Jinja2. Back-end , el cervell que s'encarrega de processar les peticions del Front-end, executar la lògica de l’aplicació, les autoritzacions i la connexió amb la base de dades. Base de dades , ...

Projecte Flask + S3 #2: El cervell i la xarxa de seguretat

  Aquesta és la segona part del projecte. Si has parat aqui et convido a consultar la primera entrada , on vam configurar l’entorn i vam establir els requisits previs. Ara passem a la implementació del codi. Objectiu d’avui/Introducció Documentar la creació del backend . Tot el desenvolupament del codi i que faré menció el podeu trobar al repositori corresponent al meu perfil de Git , o sigui que pots anar directament allà o obrir-lo a una finestra mentre veus els comentaris que descric. No vull deixar-me a aquesta introducció la importància que ha tingut pel bon i correcte desenvolupament del codi:  La documentació oficial d’ Amazon Web Services de Boto3  i les seves guies de millors pràctiques, per exemple . La Classe S3Client i la seva importància La finalitat de crear una classe S3Client com a façana/embolcall(més conegut com a Wrapper) és que amaga tota la complexitat de boto3. Faig un parèntesi, diguem que:  Estem creant "un embolcall dins d’un altre embol...

A la vigesimoséptima, va la vencida

  Ayer sentía que estaba bien con Linux Mint pero a la vez lo veía demasiado cerrado y probé OpenSuse Leap(no me convenció) y hoy vuelvo a intentar instalar Fedora Workstation 42. Eh! Y Linux Mint lo recomiendo 100% para todo el mundo. Según yo mismo, la semana pasada no me funcionó Fedora por el tema de la BIOSLegacy. No le voy a dar más vueltas no es un portátil viejo pero por lo que sea ésta BIOS es la única manera que tiene de funcionar con Linux y un disco duro externo. En realidad no pasa nada (mientras nos quede Windows). Equisde que he estado rajando de Fedora cuando va de puta madre solo que no lo configure bien, no haría honor al nombre del blog sinó. De hecho empiezo a pensar que a lo mejor el UEFI sí funcionaría pero la lié al instalar, de momento lo voy a dejar así con MBR. Bof, empecé por la mañana y todo bien, mi error ha sido al querer instalarle los drivers de Nvidia, ha tenido un conflicto con Nouveau. A veces es mejor dejar las cosas como están. Si fuera mi único...