· ~5 λεπτά ανάγνωσης
Νέα από το site: viotnet.com, τα labs μου από το GitHub, και ένα κανάλι στο YouTube
Ένα νέο domain και τι χρειάστηκε για να στηθεί σωστά, ένας λογαριασμός GitHub που ανεστάλη και επέστρεψε, τα network labs μου πλέον στο site, το SecureVault v2 σε merge και release, και ένα κανάλι στο YouTube για labs που έρχεται σύντομα.
Πολλά άλλαξαν γύρω από αυτό το site τις τελευταίες εβδομάδες, οπότε εδώ είναι η σύντομη εκδοχή: τι έκανα, τι πήγε στραβά και τι έρχεται.
Νέο σπίτι: viotnet.com
Το site ξεκίνησε σε μια δωρεάν διεύθυνση viotnet.pages.dev. Δούλευε μέχρι που το μοιράστηκα στο LinkedIn: το post περιορίστηκε και η προεπισκόπηση του link δεν φόρτωνε, πιθανότατα επειδή τα domains κοινής φιλοξενίας φιλτράρονται πιο αυστηρά. Έτσι το blog μένει πλέον στο δικό του domain, το viotnet.com, καταχωρισμένο μέσω Cloudflare στην τιμή κόστους (περίπου 11 δολάρια τον χρόνο).
Η αγορά του domain ήταν το εύκολο κομμάτι. Για να γίνει σωστά χρειάστηκαν μερικά ακόμα βήματα:
- Σύνδεση με το υπάρχον site ως custom domain, και για το
viotnet.comκαι για τοwww.viotnet.com, με TLS που εκδίδεται αυτόματα. - Μία διεύθυνση, όχι τρεις. Το
www.viotnet.comκαι το παλιόviotnet.pages.devαπαντούν πλέον με μόνιμο redirect (301) στοviotnet.com, κρατώντας το path και το query string, ώστε κάθε παλιό link να καταλήγει στη σωστή σελίδα. Κάθε σελίδα δηλώνει επίσης το canonical URL της, ώστε οι μηχανές αναζήτησης να μετρούν ένα site αντί για αντίγραφα. - Email στο domain. Η διεύθυνση επικοινωνίας είναι πλέον το
papas@viotnet.com. Το Cloudflare Email Routing την προωθεί στα εισερχόμενά μου, και ένα catch-all μου επιτρέπει να δίνω σε κάθε υπηρεσία δική της διεύθυνση, ώστε αν κάποια διαρρεύσει το email μου, να ξέρω ποια. - Ένα μικρό μάθημα για το δικό μου CSP. Μετά τη μεταφορά, το email στην ενότητα επικοινωνίας έγινε «[email protected]». Η απόκρυψη email του Cloudflare ξαναγράφει τις διευθύνσεις και τις επαναφέρει με ένα script που προσθέτει στη σελίδα, και το Content Security Policy αυτού του site μπλοκάρει κάθε script. Η πολιτική έκανε ακριβώς τη δουλειά της και σταμάτησε κώδικα που δεν είχα γράψει εγώ. Η λύση ήταν να εξαιρεθούν τα links email από την απόκρυψη, όχι να χαλαρώσει η πολιτική.
- Ελληνική έκδοση. Κάθε σελίδα και κάθε άρθρο υπάρχει πλέον και στα ελληνικά· ο διακόπτης EN / ΕΛ είναι πάνω δεξιά.
Με το νέο domain, η προεπισκόπηση στο LinkedIn φορτώνει κανονικά.
Ο λογαριασμός GitHub που εξαφανίστηκε και επέστρεψε
Τον Οκτώβριο ο λογαριασμός μου στο GitHub ανεστάλη χωρίς προειδοποίηση, με ένα γενικό μήνυμα για παραβίαση των όρων χρήσης. Συγκεκριμένο λόγο δεν πήρα ποτέ. Η καλύτερη εκτίμησή μου είναι ο αυτόματος εντοπισμός κατάχρησης: τα δημόσια repositories μου είναι security labs που περιλαμβάνουν προσομοιώσεις επιθέσεων, και είχα κάνει πολλά push σε μικρό διάστημα όσο ξανάγραφα το SecureVault. Είναι εκτίμηση, όχι κάτι που επιβεβαίωσε το GitHub.
Έκανα ένσταση, εξήγησα ποιος είμαι και σε τι χρησιμεύουν τα repositories (security labs για το μεταπτυχιακό μου και για τη δική μου εκπαίδευση), και μετά από μερικές εβδομάδες ο λογαριασμός επανήλθε με όλα ανέπαφα.
Δύο πράγματα κράτησα από αυτό:
- Μην αφήνεις μία πλατφόρμα να είναι το μόνο σου σπίτι. Όσο ο λογαριασμός ήταν κλειστός, αυτό το site συνέχιζε να δουλεύει, και τα projects για τα οποία έγραφα είχαν ακόμα πού να ζουν. Για τον ίδιο λόγο μετράει και το να έχεις δικό σου domain.
- Κράτα τοπικά backups των repositories σου. Είχα πλήρη git bundles των projects μου στον δικό μου δίσκο, οπότε ακόμα και μια μόνιμη αναστολή δεν θα μου κόστιζε τη δουλειά.
Τα network labs μου, πλέον στο site
Με τον λογαριασμό πίσω, πρόσθεσα τα labs από το GitHub μου στην ενότητα εργαστηρίων, το καθένα με link στο repository του:
- Site-to-site IPsec VPN με δική μου PKI (strongSwan, IKEv2, αυθεντικοποίηση με πιστοποιητικά αντί για pre-shared key). Write-up.
- Εταιρική PKI με mutual TLS, και τι κάνει ένας man-in-the-middle σε δίκτυο χωρίς αυτά τα μέτρα. Write-up.
- Άμυνα σε βάθος: ένα δίκτυο τριών ζωνών πίσω από stateful firewall, web application firewall και inline IPS.
Το SecureVault v2 έγινε merge και release
Η επανεγγραφή του password manager μου, που περιγράφω σε αυτό το άρθρο, περίμενε σε ένα branch λόγω της αναστολής. Τώρα έγινε merge στο κύριο branch μέσω pull request, μαζί με το desktop GUI, και έχει tags ως releases v2.0.0 και v2.1.0.
Το pull request ήταν μια καλή υπενθύμιση του γιατί υπάρχει το CI:
- Το CodeQL βρήκε μια πραγματική αδυναμία. Για να σβήνει μόνο τον κωδικό που είχε βάλει στο clipboard, το SecureVault κρατούσε ένα αποτύπωμα αυτού του κωδικού, και ήταν ένα απλό SHA-256. Όποιος το έπαιρνε μπορούσε να δοκιμάσει offline ένα λεξικό πάνω του. Τώρα είναι PBKDF2 με τυχαίο salt για κάθε αντιγραφή, αρκετά αργό ώστε οι δοκιμές να κοστίζουν, και παρ' όλα αυτά ανεπαίσθητο όταν αντιγράφεις έναν κωδικό.
- Η Python 3.10 έφυγε. Τα tests αποτύγχαναν μόνο στην Python 3.10, που έφτασε στο τέλος της υποστήριξής της τον Οκτώβριο του 2026 και δεν παίρνει πια security fixes. Ένα εργαλείο ασφαλείας δεν πρέπει να εξαρτάται από runtime χωρίς υποστήριξη, οπότε το SecureVault απαιτεί πλέον Python 3.12 ή νεότερη.
- Όλα τα υπόλοιπα πέρασαν σε Windows, Linux και macOS πριν από το merge.
Ο κώδικας είναι στο GitHub.
Τι έρχεται: ένα κανάλι στο YouTube για labs
Ξεκινάω ένα κανάλι στο YouTube, όπου θα στήνω και θα σπάω labs σε βίντεο: firewalls, VPN, κανόνες IPS, forensics και τα εργαλεία που γράφω, με την ίδια purple-team λογική με αυτό το blog. Τα write-ups θα μένουν εδώ, και τα βίντεο θα δείχνουν τα κομμάτια που καταλαβαίνεις καλύτερα όταν τα βλέπεις να συμβαίνουν.
Οι τελευταίες μέρες ήταν σκόπιμα πιο ήσυχες: διάβαζα για το Fortinet NSE 3 και πήρα και μερικές μέρες ρεπό. Αυτό τελείωσε, οπότε περιμένετε πολλά σύντομα: νέα labs, νέα write-ups και τα πρώτα βίντεο.
Αν υπάρχει κάποιο lab που θα ήθελες να δεις, στείλε μου email στο papas@viotnet.com.
Θέλεις τα configs ή τον κώδικα από αυτό το lab, ή έχεις κάποια ερώτηση; Στείλε μου email στο papas@viotnet.com