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.

















































