Grup 01 Taulell

← Back to Dashboard
Próxima actualització dintre de

Accés remot als servidors

  • Servidor SSH instal·lat I
    El servei SSH és fonamental per administrar servidors Linux remotament. Comprova que el paquet 'openssh-server' estigui instal·lat. url:https://ubuntu.com/server/docs/service-openssh:url
  • Servidor SSH actiu I
    No n'hi ha prou amb instal·lar-lo; el servei ha d'estar en estat 'running'. Utilitza systemctl per verificar-ho. url:https://www.digitalocean.com/community/tutorials/how-to-use-systemctl-to-manage-systemd-services-and-units:url
  • Servidor SSH escoltant al port 2222 I
    Per seguretat (security through obscurity), sovint canviem el port per defecte (22). Comprova que el dimoni sshd escolta al port 2222 mirant els sockets TCP oberts.
  • Usuari guille existeix I
    Verifica que l'usuari 'guille' ha estat creat correctament.
  • Usuari guille forma part del grup admins I
    Per gestionar permisos, agrupem els usuaris. Comprova que 'guille' és membre del grup secundari 'admins'. url:https://wiki.ubuntu.com/BasicSecurity/ManagingUsers:url
  • Usuari guille té accés SSH I
    SSH permet restringir qui entra amb les directives AllowUsers o DenyUsers. Assegura't que 'guille' no està bloquejat explícitament a sshd_config. url:https://manpages.ubuntu.com/manpages/jammy/man5/sshd_config.5.html:url
  • Usuari guille té almenys una clau pública autoritzada I
    L'autenticació per claus és més segura que per contrasenya. Comprova que existeix el fitxer '~/.ssh/authorized_keys' i conté una clau pública vàlida.
  • Permisos correctes a la carpeta SSH de guille I
    SSH és molt estricte amb els permisos: la carpeta .ssh ha de ser 700 i el fitxer authorized_keys 600, o la connexió fallarà.
  • Accés root deshabilitat per SSH I
    Bona pràctica de seguretat: mai permetre login directe com a root. Verifica que 'PermitRootLogin' és 'no' o 'prohibit-password'.
  • Autenticació per contrasenya desactivada I
    Si usem claus, hem de desactivar l'entrada per password per evitar atacs de força bruta. Verifica 'PasswordAuthentication no'.
  • Autenticació per clau pública activa I
    Assegura't que el servidor accepta claus públiques ('PubkeyAuthentication yes').
  • Port SSH configurat a 2222 (Config) I
    Verifica que la configuració carregada per sshd efectivament marca el Port 2222 (comanda 'sshd -T').
  • Connexió local a SSH (2222) respon I
    Intentem connectar localment al port 2222 amb netcat per veure si el servidor respon amb el banner 'SSH-2.0...'.
  • Configuració SSH vàlida I
    Abans de reiniciar el servei, sempre s'ha de comprovar la sintaxi per evitar errors que ens deixin fora. Executa 'sshd -t'.
  • Configuració PAM revisada I
    PAM (Pluggable Authentication Modules) gestiona l'auth. Normalment 'UsePAM yes' és necessari per funcions del sistema, encara que desactivis passwords.
  • Desactivat ChallengeResponseAuthentication I
    Desactiva mètodes interactius (com preguntes de seguretat o passwords complexos via teclat) si només volem claus.
  • Només protocols segurs (Protocol 2) I
    SSHv1 és insegur i obsolet. Assegura't que només s'usa el protocol 2 (per defecte en versions modernes).
  • Usuari guille té shell vàlida I
    Per poder entrar per SSH, l'usuari ha de tenir una shell vàlida (/bin/bash) i no '/bin/false' o '/usr/sbin/nologin'.
  • Firewall permet el port 2222 I
    Si tens UFW actiu, has d'haver obert explícitament el port 2222 o ningú podrà connectar-se des de fora. url:https://ubuntu.com/server/docs/security-firewall:url
  • Túnel 'dev-tunnel' definit I
    Al fitxer ~/.ssh/config de l'usuari guille, ha d'haver-hi una entrada 'Host dev-tunnel' per facilitar la connexió al servidor de desenvolupament.
  • Túnel 'dev-tunnel' definit amb un tunnel I
    Al fitxer ~/.ssh/config de l'usuari guille, ha d'haver-hi una entrada 'Host dev-tunnel' per facilitar la connexió al servidor de desenvolupament. Aquesta connexió ha de tenir un LocalForward
  • Connexió a la VPN activa I
    Verifica si existeix una interfície de xarxa tipus 'wg0' (WireGuard) o 'tun0' (OpenVPN), indicant que la VPN està aixecada.
  • X11 Forwarding habilitat al servidor I
    El X11 Forwarding permet executar aplicacions gràfiques remotament a través de SSH. Verifica que 'X11Forwarding yes' està actiu a sshd_config.
  • XCA instal·lat I
    XCA és una eina gràfica per gestionar Autoritats de Certificació (CA). Verifica que el paquet 'xca' és al sistema. url:https://hohnstaedt.de/xca/:url
  • Directori CA creat I
    Comprova que existeix un directori per guardar els fitxers de la CA (claus, certificats, base de dades XCA).
  • CA afegida al trust store del sistema I
    Per a que curl, navegadors i serveis confïin en els certificats del grup, la CA ha d'estar al trust store. Comprova '/usr/local/share/ca-certificates/'.
  • User CA creada (per ssh-keygen) I
    Comprova que existeix una clau privada de CA d'usuaris (User CA groupXX) per signar certificats SSH amb ssh-keygen.
  • Script de generació de certificats SSH existeix I
    Ha d'existir un script bash que automàticament crea i signa un certificat SSH per a un usuari donat (accepta paràmetres -u i -CA).
  • Script de certificats és executable I
    L'script de generació de certificats SSH ha de tenir el bit d'execució (+x) activat.
  • Certificats de servei creats I
    Cada servei necessita el seu propi certificat TLS amb Common Name i SAN correctes. Comprova que existeixen almenys 3 fitxers .crt a /etc/ssl/.

DNS

  • Servidor DNS instal·lat I
    Comprova que el servidor BIND9 (paquet 'bind9' o comanda 'named') estigui instal·lat al sistema. url:https://ubuntu.com/server/docs/service-domain-name-service-dns:url
  • Servidor DNS actiu I
    El servei ha d'estar 'active (running)'. Si falla, revisa 'journalctl -xeu bind9'.
  • Port 53 UDP escoltant I
    El DNS utilitza principalment UDP port 53 per a les consultes estàndard. Verifica que el port està obert.
  • Port 53 TCP escoltant I
    El TCP 53 s'utilitza per a transferències de zona i respostes grans (>512 bytes). També ha d'estar obert.
  • Configuració de BIND vàlida I
    Eina essencial: 'named-checkconf'. Si no retorna res, la sintaxi dels fitxers de configuració principal és correcta.
  • Zona del grup és una zona subordinada I
    Comprova que la zona %GRUP%.smx2.internal existeix i és una zona esclava, no mestre.
  • Comprova els servidors autoritatius de la zona I
    Verifica que la zona %GRUP%.smx2.internal té definits servidors autoritatius correctes.
  • Comprova que el mestre no està local I
    Confirma que la zona mestre smx2.internal no està definida a la màquina de l'estudiant.
  • Comprova que hi ha un registre A I
    Assegura que la zona %GRUP%.smx2.internal té almenys un registre A configurat.
  • Registre MX creat I
    El registre MX (Mail Exchange) diu on enviar els correus del domini. Sense això, no rebràs emails. url:https://ca.wikipedia.org/wiki/Registre_MX:url
  • Registre TXT amb SPF creat I
    L'SPF és un registre TXT que ajuda a prevenir l'spam, indicant quines IPs poden enviar correu en nom del teu domini (v=spf1...).
  • Host server creat I
    Comprova que el nom 'server.%GRUP%.smx2.internal' resol a una IP (Registre A).
  • Host dev creat I
    Comprova que el nom 'dev.%GRUP%.smx2.internal' resol a una IP.
  • Host prod creat I
    Comprova que el nom 'prod.%GRUP%.smx2.internal' resol a una IP.
  • Host backups creat I
    Comprova que el nom 'backups.%GRUP%.smx2.internal' resol a una IP.
  • CNAME mail creat I
    Mail sol ser un àlies (CNAME) apuntant al servidor principal. Verifica que 'mail.%GRUP%.smx2.internal' resol.
  • CNAME ftp creat I
    Verifica que 'ftp.%GRUP%.smx2.internal' resol (normalment un CNAME a server).
  • CNAME www creat I
    El clàssic 'www'. Verifica que 'www.%GRUP%.smx2.internal' resol correctament.
  • CNAME wordpress creat I
    Verifica que 'wordpress.%GRUP%.smx2.internal' resol. Serà necessari per als VirtualHosts d'Apache.
  • CNAME tickets creat I
    Verifica que 'tickets.%GRUP%.smx2.internal' resol.
  • CNAME scripting creat I
    Verifica que 'scripting.%GRUP%.smx2.internal' resol.
  • CNAME bck creat I
    Verifica que 'bck.%GRUP%.smx2.internal' resol.
  • Resolució local via resolv.conf I
    El propi servidor ha de fer servir el seu DNS. Comprova que '/etc/resolv.conf' apunta a 127.0.0.1 o que systemd-resolved està configurat.
  • Resposta autoritativa per la zona I
    Quan preguntem al servidor per la seva pròpia zona, ha de respondre amb el flag 'aa' (Authoritative Answer), no com a recursiu.
  • Transferència de zona bloquejada (AXFR) I
    Seguretat: Una transferència de zona completa (AXFR) ha d'estar prohibida excepte per als servidors secundaris autoritzats. Ha de donar error o REFUSED.
  • Reenviadors configurats I
    Si el servidor no sap la resposta (ex: google.com), ha de preguntar als 'forwarders' (ex: 8.8.8.8) definits a named.conf.options.
  • Reenviador funcional (extern) I
    Prova real: El teu DNS és capaç de resoldre 'google.com'? Això confirma que els forwarders funcionen.
  • Reenviador funcional: resol smx2.internal I
    Prova específica: El teu DNS pot resoldre dominis d'altres grups o de l'institut (smx2.internal)?
  • Fitxer de zona definit a la configuració I
    Comprova que dins de '/etc/bind' existeix una declaració 'zone '%GRUP%.smx2.internal'' que apunta a un fitxer.
  • CNAME webmail creat I
    Verifica que 'webmail.%GRUP%.smx2.internal' resol a una IP (necessari per al virtual host de webmail).
  • CNAME wiki creat I
    Verifica que 'wiki.%GRUP%.smx2.internal' resol a una IP (necessari per al virtual host de MediaWiki).
  • CNAME phpmyadmin creat I
    Verifica que 'phpmyadmin.%GRUP%.smx2.internal' resol a una IP.
  • Zona signada amb DNSSEC I
    DNSSEC afegeix signatures digitals als registres DNS per prevenir atacs de cache poisoning. Comprova que la zona té registres RRSIG. url:https://www.cloudflare.com/dns/dnssec/:url

Infraestructura WEB

  • Apache instal·lat I
    Verifica que el servidor web Apache2 està instal·lat. url:https://ubuntu.com/server/docs/web-servers-apache:url
  • Apache actiu I
    Comprova que el servei 'apache2' està corrent sense errors.
  • Tres virtual hosts enabled I
    Has d'haver habilitat (a2ensite) almenys 3 llocs web diferents a /etc/apache2/sites-enabled/.
  • Virtual host wordpress enabled I
    Comprova que hi ha un fitxer de configuració actiu amb 'wordpress' al nom.
  • Virtual host tickets enabled I
    Comprova que hi ha un fitxer de configuració actiu per al servei de tiquets.
  • Virtual host panell-control enabled I
    Comprova que hi ha un fitxer actiu per al panell de control/scripting.
  • PHP instal·lat I
    WordPress i moltes apps web necessiten PHP. Verifica que la comanda 'php' funciona. url:https://www.php.net/manual/en/install.unix.debian.php:url
  • Base de dades mysql instal·lada I
    Verifica que el client 'mysql' està disponible. Pot ser MySQL Server o MariaDB.
  • Servidor Base de Dades corrent I
    El servei de base de dades (mysql o mariadb) ha d'estar actiu per acceptar connexions.
  • Database 'admin_panel' existeix I
    A la base de dades hi ha una Database 'admin_panel', ha d'existir la base de dades 'admin_panel' per els exercicis de Python.
  • Exixsteix Taula 'servers' I
    A la base de dades 'admin panel' existeix la taula 'servers'
  • Existeix una taula 'users' I
    A la base de dades 'admin panel' existeix la taula 'users'
  • Existeix una taula 'services' I
    A la base de dades 'admin panel existeix la taula 'services'
  • Existeix una taula 'admins_of_services' I
    A la base de dades 'admin panel' existeix la taula 'services'
  • La taula admins_of_services te dos Foreign keys, una a users i l'altre a services I
    A la base de dades 'admin panel existeix la taula 'services'
  • Taula 'services' te una Foreign key a servers I
    A la base de dades 'admin panel existeix la taula 'services'
  • Taula 'users' te un camp anomenat email I
    USE admin_panel;SHOW COLUMNS FROM users;
  • Taula 'servers' te un camp anoemant ip I
    USE admin_panel;SHOW COLUMNS FROM servers;
  • Taula 'servers' te un camp anoemant documentation_url I
    SHOW COLUMNS FROM services;
  • Taula 'services' te un camp anoemant port I
    SHOW COLUMNS FROM services;
  • Taula 'servers' conte alguna dada I
    Taula 'servers' conte alguna dada
  • Taula 'users' conte alguna dada I
    Taula 'users' conte alguna dada
  • Taula 'services' conte alguna dada I
    Taula 'services' conte alguna dada
  • Taula 'admins_of_services' conte alguna dada I
    Taula 'admins_of_services' conte alguna dada
  • Virtual host webmail enabled I
    Comprova que hi ha un fitxer de configuració actiu per al webmail (webmail.%GRUP%.smx2.internal).
  • Virtual host wiki enabled I
    Comprova que hi ha un fitxer de configuració actiu per a la wiki (wiki.%GRUP%.smx2.internal).
  • Virtual host phpmyadmin enabled I
    Comprova que hi ha un fitxer de configuració actiu per a PhpMyAdmin (phpmyadmin.%GRUP%.smx2.internal).
  • Fitxers osTicket presents I
    Comprova que el fitxer de configuració d'osTicket (ost-config.php) existeix al servidor web. url:https://osticket.com/:url
  • Virtual host tickets configurat I
    Comprova que hi ha un fitxer de configuració d'Apache actiu per al subdomini tickets.%GRUP%.smx2.internal.
  • HTTPS actiu als tickets I
    Comprova que el virtualhost HTTPS d'osTicket respon correctament.
  • Certificat HTTPS dels tickets és de confiança I
    Valida que el certificat d'osTicket està signat per la CA del grup.
  • osTicket retorna HTML I
    La portada d'osTicket ha de retornar contingut HTML vàlid.
  • Base de dades osTicket existeix I
    osTicket guarda totes les dades (tiquets, usuaris, departaments) a MySQL/MariaDB.
  • Redirecció HTTP → HTTPS als tickets I
    Comprova que l'accés per HTTP redirigeix correctament cap a HTTPS.

Servidor de correu

  • Postfix instal·lat I
    Postfix actua com a MTA (Mail Transfer Agent) per enviar correus. Verifica la seva instal·lació. url:https://ubuntu.com/server/docs/mail-postfix:url
  • Dovecot instal·lat I
    Dovecot és un servidor IMAP/POP3 que permet als usuaris llegir els correus rebuts. Verifica la seva instal·lació.
  • Postfix actiu I
    Comprova que el servei 'postfix' està actiu.
  • Dovecot actiu I
    Comprova que el servei 'dovecot' està actiu.
  • SMTP Port 25 i 587 escoltant I
    El correu requereix el port 25 (SMTP entre servidors) i 587 (Submission per clients). Verifica que Postfix els té oberts.
  • IMAPS Port 993 escoltant I
    Per llegir correu de forma segura (IMAPS), Dovecot ha d'escoltar al port 993.
  • Domini postfix correcte I
    Revisa la variable 'myhostname' o 'mydomain' a la configuració de Postfix per veure si coincideix amb %GRUP%.smx2.internal.
  • Usuaris guille, alice i bob existeixen I
    Verifica que els usuaris de sistema (o virtuals) necessaris per a les proves de correu existeixen.
  • Existeix Dovecot mail location I
    Comprova la directiva 'mail_location' de Dovecot per saber on es guarden els emails (ex: ~/Maildir).
  • Permisos mail location correctes I
    Si s'utilitza /var/mail, els permisos han de permetre l'escriptura pel grup mail (sol ser 2775).
  • Mailbox d'Alice existeix I
    Comprova que l'usuari Alice ja té una estructura de carpetes de correu (ha rebut algun correu o s'ha inicialitzat).
  • Fitxer configuració postfix existeix I
    El cor de Postfix: verifica que /etc/postfix/main.cf existeix.
  • Configuració postfix correcta I
    Executa 'postfix check' per buscar errors de sintaxi o fitxers perduts a la configuració.
  • Fitxer configuració dovecot existeix I
    Verifica que /etc/dovecot/dovecot.conf existeix.
  • Configuració dovecot vàlida I
    Executa 'dovecot -n' per bolcar la configuració activa i verificar que no hi ha errors greus.
  • SMTP Banner matches hostname I
    Connecta al port 25 i llegeix el missatge de benvinguda. Ha de dir 'ESMTP Postfix'.

Wordpress

  • HTTPS actiu (respon per 443) I
    Comprova que el virtualhost HTTPS respon. Accepta certificat no fiable (autotrust) per poder diagnosticar encara que no estigui instal·lat al trust store.
  • Certificat HTTPS és de confiança (sense -k) I
    Valida que el certificat està signat per una CA confiable pel client (curl no ha de donar error TLS).
  • Servidor web en execució I
    Per servir WordPress, necessitem Apache o Nginx funcionant.
  • PHP instal·lat I
    WordPress està escrit en PHP. Sense ell, el servidor web només serviria text pla.
  • Servei de base de dades en execució I
    WordPress guarda tot el contingut (posts, usuaris) a MySQL/MariaDB. Verifica que el servei funciona.
  • Resposta HTTPS de la portada I
    Fent una petició a la URL principal per HTTPS, el servidor ha de retornar codi 200 OK. (Si dóna 500, hi ha error de codi/server; si dóna 404, no troba els fitxers).
  • Capçalera HTML present I
    Comprova que el que retorna el servidor és realment HTML (busca l'etiqueta o ).
  • Fitxer wp-config.php existeix I
    Aquest fitxer connecta el codi PHP amb la base de dades. Ha d'existir a l'arrel de la instal·lació. url:https://wordpress.org/documentation/article/editing-wp-config-php/:url
  • Carpeta wp-content present I
    Aquí és on viuen els temes, plugins i uploads. És imprescindible per un WordPress funcional.
  • Directori de plugins present I
    Dins de wp-content, ha d'existir la carpeta 'plugins'.
  • WooCommerce instal·lat I
    Comprova si la carpeta 'woocommerce' existeix dins de plugins. És necessari per a la botiga.
  • Pàgina del carret accessible I
    Prova d'accedir a /cart/. Ha de tornar 200 OK. Si falla, revisa els Permalinks a la configuració de WP.
  • Pàgina de finalitzar compra accessible I
    Prova d'accedir a /checkout/. Ha de tornar 200 OK.
  • Pàgina de botiga accessible I
    Prova d'accedir a /shop/. Ha de tornar 200 OK.
  • WordPress mostra senyals d'identitat I
    Analitza el codi font buscant rutes típiques com 'wp-content' o 'wp-includes' per confirmar que és un WP.
  • Pàgina de contacte existeix I
    Busca la URL /contact/ o /contacte/. Ha de respondre correctament.
  • Formulari a la pàgina de contacte I
    Dins de la pàgina de contacte, busca l'etiqueta HTML . Si no hi és, potser has creat la pàgina però no has posat el plugin de contacte.
  • Directori d’uploads existeix I
    Verifica que wp-content/uploads existeix. Aquí és on van les imatges que puges.
  • Directori d’uploads és escrivible per www-data I
    L'usuari del servidor web (www-data) ha de tenir permisos d'escriptura (w) a aquesta carpeta.
  • wp-config.php no és world-writable I
    Seguretat Crítica: El fitxer de configuració MAI ha de tenir permisos 777. Els 'altres' no han de poder escriure-hi.
  • Plugins no són world-writable I
    Seguretat: Evita permisos 777 a la carpeta de plugins per prevenir injecció de codi maliciós.
  • Pàgina de login accessible I
    Comprova que wp-login.php carrega. Si falla, pot ser un problema de permisos o de PHP.
  • Redirecció HTTP cap a HTTPS I
    Comprova que l'accés per HTTP no serveix contingut i redirigeix correctament cap a HTTPS (301 o 302 amb capçalera Location https://).
  • Virtual host webmail configurat I
    Comprova que hi ha un fitxer de configuració d'Apache actiu per al subdomini webmail.%GRUP%.smx2.internal.
  • HTTPS actiu al webmail I
    Comprova que el virtualhost HTTPS del webmail respon (codi 200, 301 o 302). Accepta certificat no fiable per diagnosi.
  • Certificat HTTPS del webmail és de confiança I
    Valida que el certificat del webmail està signat per la CA del grup (curl sense -k no ha de donar error TLS).
  • Webmail retorna HTML I
    Comprova que el que retorna el servidor és realment HTML (busca o ).
  • Redirecció HTTP → HTTPS al webmail I
    Comprova que l'accés per HTTP redirigeix correctament cap a HTTPS (301 o 302 amb capçalera Location https://).
  • LocalSettings.php configurat I
    MediaWiki es configura via 'LocalSettings.php'. Si existeix i té contingut, la instal·lació ha estat completada. url:https://www.mediawiki.org/wiki/Manual:LocalSettings.php:url
  • Virtual host wiki configurat I
    Comprova que hi ha un fitxer de configuració d'Apache actiu per al subdomini wiki.%GRUP%.smx2.internal.
  • HTTPS actiu a la wiki I
    Comprova que el virtualhost HTTPS de MediaWiki respon correctament.
  • Certificat HTTPS de la wiki és de confiança I
    Valida que el certificat de MediaWiki està signat per la CA del grup.
  • MediaWiki retorna HTML I
    La portada de la wiki ha de retornar contingut HTML vàlid.
  • Base de dades wiki existeix I
    MediaWiki guarda tot el contingut (articles, usuaris) a MySQL/MariaDB.
  • Redirecció HTTP → HTTPS a la wiki I
    Comprova que l'accés per HTTP redirigeix correctament cap a HTTPS.

Còpies de seguretat

  • Directori de backups existeix I
    Comprova que has creat el directori '/backups' a l'arrel per emmagatzemar les còpies.
  • Permisos segurs a /backups I
    Seguretat: Només el propietari hauria de poder veure els backups. Els permisos han de ser 700 (rwx------).
  • Propietari de /backups és root I
    La carpeta de backups ha de pertànyer a root per evitar que usuaris normals esborrin dades.
  • Servei cron actiu I
    Cron és el planificador de tasques de Linux. Assegura't que el dimoni 'cron' està actiu.
  • Fitxer de tasques cron definit I
    Les tasques programades s'han de definir a '/etc/cron.d/backup' per mantenir l'ordre.
  • Cron crida a un script I
    El fitxer cron no ha de tenir tota la lògica, sinó cridar a un script .sh que faci la feina.
  • Script de backup existeix I
    Localitza el fitxer .sh definit dins del cron i comprova que realment existeix al disc.
  • Script de backup és executable I
    L'script de backup ha de tenir permisos d'execució (+x), o cron no podrà llançar-lo. Fes 'chmod +x'.
  • Eina zip instal·lada I
    Necessitem l'eina 'zip' per comprimir els fitxers del web. Instal·la-la amb apt.
  • Eina mysqldump instal·lada I
    'mysqldump' és la comanda per exportar bases de dades a fitxers de text SQL.
  • Còpia de seguretat de WordPress (.zip) I
    Verifica que hi ha un fitxer .zip a /backups (fruit d'una execució manual o programada).
  • Còpia de seguretat de BD (.sql) I
    Verifica que hi ha un fitxer .sql (o .sql.gz) a /backups.
  • Còpia de seguretat de /etc (.tar.gz) I
    És vital fer còpia de la configuració dels serveis (/etc). Busca un fitxer .tar.gz a /backups.
  • Realitza backups de la configuració del serveis (.tar.gz) I
    És vital fer còpia de la configuració dels serveis (/etc). Busca un fitxers .tar.gz a /backups.
  • Directori de backups de logs I
    Ha d'exisitr un directori anomenat /backups/logs on es guardaran tot es logs del serveis necessaris
  • Fitxer de logs de backup I
    L'script hauria de deixar registre del que fa. Crea un fitxer a /backups/logs/backup.log que contingui els registres del cron job.
  • Fitxer de logs d'altres serveis' I
    Han d'existir diferents logs dels serveis instal·lats com ftp.log, sql.log, mail.log, webserver.log, etc...
  • El zip web no està buit I
    Un fitxer zip buit no serveix de res. Comprova que el backup ocupa més d'1 MB.
  • El dump SQL conté CREATE TABLE I
    Analitza el contingut del SQL per veure si té instruccions vàlides com 'CREATE TABLE'.
  • No hi ha backups antics (>30 dies) I
    Política de retenció: L'script ha d'esborrar fitxers de més de 30 dies per no omplir el disc (comanda 'find ... -delete').
  • Rsync està instal·lat I
    Rsync és l'estàndard per moure backups a altres servidors. Verifica que està instal·lat.
  • Backups actualitzats (últimes 24h) I
    Comprova que els fitxers de backup s'han modificat en les últimes 24 hores (el cron funciona).
  • Sintaxi del crontab correcta I
    Verifica que la línia del cron té els 5 camps de temps (min hora dia mes dia-setmana) i la comanda. url:https://crontab.guru/:url

Eines de Monitorització (Scripting)

  • Python3 instal·lat I
    El llenguatge base per al projecte de scripting. Verifica que 'python3' està disponible. url:https://docs.python.org/3/:url
  • Pip instal·lat I
    Pip és el gestor de paquets de Python, necessari per instal·lar Flask.
  • Estructura de directoris creada I
    L'aplicació ha d'estar allotjada a '/var/www/scripting' per seguir l'estàndard web.
  • Directori de scripts existeix I
    Els scripts de sistema (bash/python) han d'estar ordenats dins de '/var/www/scripting/scripts'.
  • Entorn virtual (venv) creat I
    Sempre s'ha d'usar un entorn virtual ('python3 -m venv venv') per aïllar les dependències del projecte. url:https://docs.python.org/3/library/venv.html:url
  • Llibreria Flask instal·lada al venv I
    Comprova que Flask apareix al 'pip list' de l'entorn virtual, no al global.
  • Fitxer principal app.py existeix I
    Busca el fitxer 'app.py' (o main.py) que conté el codi de l'aplicació Flask.
  • Servei Systemd creat I
    L'app s'ha d'executar com un servei (daemon) de systemd, no manualment. Busca el fitxer .service a /etc/systemd/system/.
  • Servei Flask actiu I
    Comprova que el servei que has creat està en estat 'active (running)'.
  • Port 5000 (o 8080) escoltant I
    Flask sol escoltar al 5000. Comprova que hi ha un socket obert en aquest port (o 8080).
  • App respon HTTP 200 a l'arrel I
    Fes una petició local a l'API. Ha de respondre correctament (200 OK).
  • Script Bash: check_disk.sh I
    Verifica que existeix l'script 'check_disk.sh' encarregat de mirar l'espai en disc.
  • Scripts Bash són executables I
    Els scripts bash han de tenir el bit d'execució (+x) activat.
  • Script Bash: list_users.sh I
    Verifica que existeix l'script 'list_users.sh' per llistar usuaris del sistema.
  • Script Python: db_check.py I
    Verifica que existeix l'script 'db_check.py' per testejar la connexió a la base de dades.
  • Shebang correcte als scripts I
    La primera línia de l'script ha de ser '#!/bin/bash'. Això indica al sistema quin intèrpret usar. url:https://ca.wikipedia.org/wiki/Shebang:url
  • Endpoint API: /api/disk funciona I
    La ruta /api/disk de la teva Flask App ha de retornar un JSON amb la informació del disc (executant l'script bash per sota).
  • Endpoint API: /api/services funciona I
    La ruta /api/services ha de retornar l'estat dels serveis (mysql, apache, ssh) en format JSON.
  • Fitxer requirements.txt present I
    Bona pràctica: llistar totes les llibreries Python necessàries al fitxer 'requirements.txt'.
  • Servidor de producció (Gunicorn) usat I
    No s'ha d'usar 'flask run' en producció. Verifica que el procés corre sota Gunicorn o uWSGI. url:https://gunicorn.org/:url
  • Directori /scripts existeix I
    Els scripts del sistema han d'estar a la carpeta /scripts a l'arrel del sistema (no dins de /var/www).
  • Almenys 5 scripts a /scripts I
    Comprova que hi ha prou scripts creats a la carpeta /scripts (bash i/o python).

Servidors de transferència de Fitxers

  • Eina client FTP disponible (lftp) I
    Per testejar el servidor, necessitem un client. 'lftp' és un client de línia de comandes molt potent.
  • Servei vsftpd en execució I
    Comprova que el dimoni 'vsftpd' (Very Secure FTP Daemon) està funcionant. url:https://ubuntu.com/server/docs/service-ftp:url
  • Procés vsftpd existent I
    Verificació doble: busca el PID del procés vsftpd a la llista de processos actius.
  • Port 21 escoltant I
    FTP utilitza el port 21 per al canal de control. Verifica que està obert (LISTEN).
  • Banner FTP personalitzat I
    En connectar al port 21, el servidor ha de saludar amb un banner personalitzat que posi el nom del vostre Grup: e.x. GRUP02 FTP, Benvingut
  • Fitxer de configuració present I
    La configuració principal és a '/etc/vsftpd.conf'. Sense això, el servei no arrenca.
  • Anonymous desactivat I
    Per seguretat, 'anonymous_enable' ha de ser NO per evitar accessos no autoritzats.
  • Usuaris locals permesos I
    Necessitem que els usuaris del sistema (/etc/passwd) puguin entrar. Verifica 'local_enable=YES'.
  • Escriptura controlada (write_enable) I
    Si vols pujar fitxers, 'write_enable' ha de ser YES. Comprova la teva configuració.
  • Chroot d’usuaris locals I
    Seguretat (Jail): Els usuaris han de quedar tancats a la seva carpeta home ('chroot_local_user=YES'). url:https://en.wikipedia.org/wiki/Chroot:url
  • Llista d’usuaris denegats (userlist) I
    Bona pràctica: Utilitzar 'userlist_enable=YES' per restringir quins usuaris poden connectar-se explícitament.
  • Fitxer userlist existeix I
    Comprova que el fitxer que conté la llista d'usuaris permesos/denegats existeix (/etc/vsftpd.userlist).
  • Directori arrel FTP definit I
    Opcional: Si has definit 'local_root' per forçar una carpeta específica, comprova-ho aquí.
  • Mode passiu configurat I
    El mode passiu és necessari darrere de firewalls/NAT. Verifica 'pasv_enable=YES'.
  • TLS definit (FTPS) I
    FTP és insegur (text pla). Verifica si has activat SSL/TLS ('ssl_enable=YES').
  • Connexió FTP local amb credencials I
    Prova definitiva: utilitza lftp per fer login amb les credencials amb l'usuari ftp_user amb contrasenya SECRET_PASSWORD i llistar fitxers ('ls').
  • El directori home de l’usuari existeix I
    Si l'usuari FTP ftp_user no té carpeta HOME creada al sistema, el login fallarà amb error 500.
  • El port 21 és accessible I
    Comprova que el firewall no està bloquejant el port 21 (connexió TCP establerta).
  • Directori /FTP existeix I
    El directori arrel del FTP ha de ser /FTP a l'arrel del sistema. Cada usuari tindrà la seva subcarpeta (ex: /FTP/alice).
  • Subcarpetes d'usuaris a /FTP I
    Comprova que existeixen subdirectoris per als usuaris dins de /FTP.

Demostracions Totals

Demostracions Pendents

  • Crea un usuari, autoritza una clau, fes un host ssh amb aquest nou usuari i comprova al servidor que s'ha fet accés amb clau. (5 minuts)
  • Crear un túnnel SSH entre el servidor PROD, que fagi un salt al servidor DEV i el teu portàtil.
  • Comprovació de cada registre de la DNS, en un sol script.
  • Creació d'un registre A i un CNAME que apunti aquest registre (5 minuts)
  • Recuperar una cópia del servidor de backups
  • Creacio d'un usuari de la Base de Dades i dotar-l'ho de permisos de només visualització.
  • Crear 5 insercions a cada base de dades amb dades rellavants a aquest producte
  • Configurar un client de correu extern perquè funcioni correctament amb el servidor
  • Posar en marxa el servidor web en producció després d’una caiguda intencionada
  • Configurar el servidor mail per que pugui rebre mail de tots els dominis del teus companys.
  • Saber buscar entre tots els mails, alguns que apareixi una paraula clau en un espai de temps concret. (20 minuts)
  • Recuperar una copia de seguretat del servidor mail
  • Fer una copia de la base de dades i demostrar que pots exportar-la a un nou servidor sql, proporcionat pels professors
  • Donat l'esquema de base de dades de scripting, saber buscar diferents queries com de quins serveis es admin un usari o quins ports estan ocupats en un servidor
  • Demostrar que la pàgina web de scripting, envia mails correctament
  • Funcionament correcte de la funcionalitat de calcul de l'espai del sistema
  • Posar en marxa un cron job útil que corri cada dia.
  • Denegar un usuari en concret la útilització de FTP
  • Correcta funcionament de FTPS, amb un certificat de la teva CA
  • Posada en marxa correcta de una CA propia firmada, per la CA de professors.
  • Posada en marxa correcta de una CA propia firmada, per la CA de professors.
  • Posada en marxa correcta de una CA propia firmada, per la CA de professors.
  • Creacio de certificats firmats per la teva CA, per cada servei que utilitizi TLS
  • Entrada SSH amb certificats de la teva CA
  • Esquema/Documentació de tots els servidors i serveis instal·lats, en format PDF màxim dues pàgines.

Demostracions Realitzades