Το Ιστολόγιό Μου

Ασφάλεια χωρίς Port Forwarding: Tailscale, SSH Keys & Hardening

~12 λεπτά ανάγνωση Επίπεδο: Μέσο Zero Trust

Το internet σκανάρει συνεχώς τις θύρες όλων — είναι ρουτίνα, όχι στοχευμένη επίθεση. Άνοιγμα port για το Nextcloud σου σημαίνει γεννήτρια λογαριασμών bot που δοκιμάζουν κωδικούς 24/7. Η σύγχρονη απάντηση λέγεται zero trust στο σπίτι: ο server δεν είναι ορατός από το internet ακόμα και μία θύρα, και η πρόσβαση από έξω γίνεται μόνο μέσω κρυπτογραφημένου mesh VPN.

Το πρόβλημα που δεν σου είπαν: CGNAT Πολλές ελληνικές συνδέσεις (ειδικά mobile/5G home internet και όλο και περισσότερες σταθερές) χρησιμοποιούν CGNAT — μοιράζεσαι δημόσια IP με άλλους συνδρομητές, οπότε το port forwarding ΔΕΝ δουλεύει καν. Ένα από τα μεγάλα πλεονεκτήματα του mesh VPN: δεν σε ενδιαφέρει καθόλου τι IP σου έδωσε ο πάροχος.

1. Tailscale: mesh VPN σε 10 λεπτά

Το Tailscale φτιάχνει ένα ιδιωτικό δίκτυο (tailnet) ανάμεσα στις συσκευές σου — κινητό, laptop, home lab — όπου οι συσκευές έχουν «εσωτερικές» IP (100.x.x.x) και επικοινωνούν σαν να είναι στο ίδιο καλώδιο, όπου κι αν βρίσκονται στον κόσμο.

# στο home lab (Ubuntu/Debian) $ curl -fsSL https://tailscale.com/install.sh | sh $ sudo tailscale up # άνοιξε το link αυθεντικοποίησης, σύνδεσε τον κόμβο στον λογαριασμό σου # στο κινητό/laptop: εγκατάσταση app + login στο ίδιο tailnet # τώρα: http://100.x.y.z:8080 = το Pi-hole σου, από παραλία

Και το σημαντικό --advertise-exit-node: αν το ορίσεις exit node, μπορείς από έξω να «βγαίνεις» στο internet μέσω του σπιτιού σου — δωρεάν VPN για δημόσιο Wi-Fi (δες και πώς δουλεύουν τα VPN).

2. SSH: από κωδικό σε κλειδί

# στο laptop σου — φτιάξε κλειδί (ed25519) $ ssh-keygen -t ed25519 -C "homelab" $ ssh-copy-id pi@192.168.1.50 # στο home lab — κλείδωσε τον κωδικό $ sudo nano /etc/ssh/sshd_config # PasswordAuthentication no # PermitRootLogin no $ sudo systemctl restart ssh

Από εδώ και πέρα, μόνο όποιος έχει το ιδιωτικό κλειδί (προστατευμένο με passphrase) μπαίνει. Και επειδή το SSH ακούει μόνο στο LAN/tailnet, δεν φτάνει κανείς να δοκιμάσει.

3. Firewall & updates (το 80% της δουλειάς)

# ufw: επιτρέπεται μόνο SSH/LAN — όχι mgmt ports στο internet $ sudo ufw default deny incoming $ sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp $ sudo ufw allow from 100.64.0.0/10 # το tailnet $ sudo ufw enable # αυτόματα security updates — όχι θύρες διαχείρισης στο internet $ sudo apt install unattended-upgrades $ sudo dpkg-reconfigure --priority=low unattended-upgrades
ΜέτροΚαταργεί τον κίνδυνοΚόπος
Mesh VPN (Tailscale/WG)Έκθεση services στο internet10′
SSH μόνο με κλειδίBrute force κωδικών10′
ufw deny incomingΤυχαία εκτεθειμένες θύρες5′
Unattended upgradesΓνωστά CVE στο OS5′
Docker: bind σε 192.168.x, όχι 0.0.0.0Containers «ακούνε» παντούτσεκ ανά service
Monitoring (Uptime Kuma)Το «πρόσεξα αργά»10′

4. Fail2ban & ανάγνωση logs (προαιρετικό, καλό habit)

Σε zero-trust setup το fail2ban έχει μικρότερο ρόλο (δεν υπάρχει surface να «χτυπιέται»), αλλά στο LAN δεν βλάπτει — και μαθαίνεις να διαβάζεις journalctl -u ssh και τα logs του Pi-hole, που σου δείχνουν ποιος στο σπίτι μιλάει με ποιους telemetry servers (αόρατη πλευρά του smart TV).

5. Πρόσβαση για όλη την οικογένεια — χωρίς την «πλευρά του γκέκο»

  • Κάθε μέλος εγκαθιστά το Tailscale app και το κρατά ανοιχτό (battery impact μικρός στα κινητά).
  • Μοιράζεσαι πρόσκληση στα μέλη της οικογένειας — δεν χρειάζεται να ξέρουν κωδικούς router.
  • Για τις εφαρμογές που θέλουν «πάντα εκεί» (π.χ. Immich backup κινητού), το VPN πάνω σε mobile data λειτουργεί αθόρυβα — γι' αυτό το σχεδίασαν έτσι.
  • Θέλεις να μοιράζεις ΠΡΑΓΜΑΤΑ (όχι πρόσβαση) σε φίλους; Εκεί μπαίνει reverse proxy με HTTPS + κωδικούς, ή απλά Nextcloud share links με λήξη. Ποτέ global exposure για μία κοινή χρήση.
Τι ΔΕΝ λύνει το mesh VPN Δεν σε προστατεύει από την ίδια σου την απροσεξία (bad container, κλεμμένο κινητό χωρίς passcode). Κράτα το κινητό κλειδωμένο, το tailnet με 2FA στον λογαριασμό του, και ανασκόπησε τις συσκευές κάθε τόσο — εκεί είναι το υπόλοιπο 20%.

🔗 Σχετικά Άρθρα

← Home Lab Όλα τα Άρθρα →