Skip to main content

Cyber AI România

Cum construiești un home lab Linux pentru CV: server, SSH, Nginx, backup și monitorizare

Un home lab relevant pentru CV nu înseamnă doar o mașină virtuală cu Ubuntu și câteva capturi din terminal. Trebuie să demonstreze că poți instala un server, controla accesul, publica un serviciu web, face backup, restaura date și monitoriza resursele.

Pentru primul proiect este suficientă o mașină virtuală Ubuntu Server. Configureaz-o cu două procesoare virtuale, 4 GB RAM și un disc de 40 GB. Folosește un adaptor NAT pentru actualizări și unul Host-only pentru accesul dintre laptop și server. După instalarea curată, creează un snapshot numit 00-clean-install.

Pregătește serverul

Actualizează sistemul și setează un hostname ușor de identificat:

sudo apt update
sudo apt upgrade
sudo hostnamectl set-hostname lab-server

Creează un cont separat pentru administrare:

sudo adduser operator
sudo usermod -aG sudo operator

Notează adresa IP a adaptorului Host-only:

ip -br address
ip route

În portofoliu trebuie să explici arhitectura: laptopul este sistemul principal, lab-server este mașina administrată, iar accesul se face doar prin rețeaua izolată.

Configurează SSH cu chei

Pe laptop generează o cheie dedicată laboratorului:

ssh-keygen -t ed25519 -C "homelab-cv"
ssh-copy-id operator@IP_SERVER

Testează conectarea înainte să dezactivezi parola:

ssh operator@IP_SERVER

Pe server creează configurația:

sudo nano /etc/ssh/sshd_config.d/00-lab-hardening.conf

Adaugă:

PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no

Verifică sintaxa și aplică setările:

sudo sshd -t
sudo systemctl reload ssh

Păstrează sesiunea curentă deschisă până când confirmi conectarea dintr-un terminal nou. Ubuntu permite păstrarea modificărilor în sshd_config.d, iar documentația recomandă verificarea cu sshd -t înainte de restart sau reload.

Limitează accesul cu UFW

Permite SSH numai de la laptop sau din rețeaua de laborator:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 192.168.56.0/24 to any port 22 proto tcp
sudo ufw allow from 192.168.56.0/24 to any port 80 proto tcp
sudo ufw enable
sudo ufw status verbose

Înlocuiește rețeaua din exemplu cu subnetul tău Host-only. UFW poate limita o regulă la o adresă sau rețea sursă, nu doar la un port.

Instalează și publică un site prin Nginx

Instalează serverul web:

sudo apt install nginx
sudo systemctl status nginx

Creează site-ul:

sudo mkdir -p /var/www/lab.local/html
echo '<h1>Linux Home Lab</h1>' |
sudo tee /var/www/lab.local/html/index.html

Creează /etc/nginx/sites-available/lab.local:

server {
    listen 80;
    server_name lab.local;

    root /var/www/lab.local/html;
    index index.html;

    access_log /var/log/nginx/lab_access.log;
    error_log /var/log/nginx/lab_error.log;
}

Activează configurația:

sudo ln -s /etc/nginx/sites-available/lab.local \
/etc/nginx/sites-enabled/lab.local

sudo nginx -t
sudo systemctl reload nginx
curl http://localhost

Instalarea Nginx prin APT pornește serviciul și instalează dependențele necesare.

Configurează backup și testează restaurarea

Instalează Restic și folosește un al doilea disc virtual, un NAS sau o altă mașină pentru repository. Un folder aflat pe același disc nu este suficient împotriva defectării discului.

sudo apt install restic
sudo mkdir -p /mnt/backup/restic
sudo restic -r /mnt/backup/restic init

Creează backup:

sudo restic -r /mnt/backup/restic \
backup /etc /var/www

Verifică și testează restaurarea:

sudo restic -r /mnt/backup/restic snapshots
sudo restic -r /mnt/backup/restic check
sudo restic -r /mnt/backup/restic \
restore latest --target /tmp/restore-test

Restic permite inițializarea unui repository, crearea snapshot-urilor, verificarea lor și restaurarea într-un director separat.

Adaugă monitorizare

Instalează Node Exporter:

sudo apt install prometheus-node-exporter
sudo systemctl enable --now prometheus-node-exporter

Verifică metricile local:

curl http://127.0.0.1:9100/metrics |
grep -E 'node_memory|node_filesystem' |
head

Node Exporter expune metrici despre kernel, procesor, memorie, disc și rețea pe endpointul /metrics, folosit ulterior de Prometheus. Nu deschide portul 9100 către internet.

În repository-ul GitHub include configurațiile fără parole, o diagramă a rețelei, comenzile de verificare, rezultatul restaurării și un README cu secțiunile „Arhitectură”, „Securitate”, „Backup”, „Monitorizare” și „Probleme rezolvate”. Acest proiect demonstrează administrare reală, nu doar familiaritate cu terminalul.

Surse folosite

Ubuntu Server Documentation — OpenSSH Server și verificarea configurației.
Ubuntu Server Documentation — instalarea Nginx.
Ubuntu Server Documentation — firewall și reguli UFW.
Restic Documentation — backup, snapshot, verificare și restaurare.
Prometheus Documentation — monitorizarea Linux cu Node Exporter.

Facebook
X
WhatsApp

Te-ar putea interesa si: