Σχεδόν κάθε νέο VPS ξεκινά με τον ίδιο τρόπο: μπαίνετε ως root, εγκαθιστάτε μερικά πράγματα και έναν μήνα αργότερα είστε ακόμα root. Δουλεύει μέχρι τη μέρα που ένα script που επικολλήσατε σβήνει λάθος φάκελο. Η ρύθμιση ενός κανονικού χρήστη με sudo παίρνει πέντε λεπτά, και η σειρά μετράει περισσότερο από τις εντολές — αν την μπερδέψετε, κλειδώνεστε έξω.
Αυτή είναι η ασφαλής σειρά για Ubuntu 22.04/24.04 και Debian 12.
1. Δημιουργήστε τον χρήστη
Ως root:
adduser deploy
usermod -aG sudo deploy
Το adduser ζητά κωδικό και κάποια προαιρετικά στοιχεία (απλώς πατήστε Enter). Διαλέξτε πραγματικό κωδικό: θα τον πληκτρολογείτε για το sudo. Σε ελάχιστο image του Debian, εκτελέστε πρώτα apt install -y sudo αν λείπει η εντολή.
2. Δώστε του το SSH κλειδί σας
Ο ευκολότερος τρόπος είναι να αντιγράψετε τα εξουσιοδοτημένα κλειδιά του root κρατώντας σωστό ιδιοκτήτη:
rsync --archive --chown=deploy:deploy /root/.ssh /home/deploy
Αν προτιμάτε να το κάνετε με το χέρι:
mkdir -p /home/deploy/.ssh
cp /root/.ssh/authorized_keys /home/deploy/.ssh/
chown -R deploy:deploy /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys
Τα λάθος δικαιώματα είναι ο κλασικός λόγος που η σύνδεση με κλειδί αποτυγχάνει σιωπηλά. Το SSH αγνοεί ένα authorized_keys στο οποίο μπορούν να γράψουν άλλοι χρήστες.
3. Δοκιμάστε πριν αλλάξετε οτιδήποτε
Κρατήστε ανοιχτή τη συνεδρία root. Σε ένα νέο τερματικό:
ssh -p 22 deploy@203.0.113.10
sudo whoami
Χρησιμοποιήστε τη δική σας IP και θύρα — σε πλάνο NAT είναι η προσωπική θύρα SSH από τον πίνακα. Αν το sudo whoami τυπώσει root, είστε εντάξει. Αν η σύνδεση αποτύχει, έχετε ακόμα το παράθυρο του root για να το διορθώσετε.
4. Κλείστε τη σύνδεση root
Τώρα κλείστε την πόρτα. Δημιουργήστε ένα μικρό αρχείο drop-in αντί να επεξεργαστείτε την κύρια ρύθμιση:
cat > /etc/ssh/sshd_config.d/10-hardening.conf <<'EOF'
PermitRootLogin no
PasswordAuthentication no
EOF
sshd -t && systemctl reload ssh
Το sshd -t ελέγχει πρώτα τη σύνταξη. Χαλασμένη ρύθμιση συν reload είναι ο τρόπος που ο κόσμος καταλήγει να χρειάζεται την κονσόλα. Το PasswordAuthentication no έχει νόημα μόνο όταν η σύνδεση με κλειδί δουλεύει για τον νέο χρήστη — κάτι που μόλις δοκιμάσατε.
Ανοίξτε ακόμα ένα τερματικό και επιβεβαιώστε ότι το root απορρίπτεται και ο deploy μπαίνει κανονικά. Μετά κλείστε την παλιά συνεδρία root.
5. Προαιρετικά: sudo χωρίς κωδικό για αυτοματισμό
Αν ένα script deploy χρειάζεται sudo χωρίς ερώτηση, δώστε του ακριβώς αυτό και τίποτα παραπάνω:
visudo -f /etc/sudoers.d/deploy
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp
Ειλικρινά, το NOPASSWD: ALL είναι δελεαστικό, αλλά σημαίνει ότι ένα κλεμμένο κλειδί ισοδυναμεί με root. Περιορίστε το στις εντολές που εκτελεί ο αυτοματισμός.
Αν κάτι πάει στραβά
Η web κονσόλα στον πίνακα δεν εξαρτάται ούτε από το SSH ούτε από το firewall. Μπείτε από εκεί, διορθώστε το αρχείο στο /etc/ssh/sshd_config.d/, κάντε reload, τέλος. Όλη τη διαδικασία ανάκτησης την περιγράφουμε στο πώς να ξαναμπείτε σε VPS που κλειδωθήκατε έξω.
Τι κάνετε μετά
- Περάστε σωστά σε σύνδεση μόνο με κλειδί: αυθεντικοποίηση με SSH κλειδί.
- Μειώστε τον θόρυβο από επιθέσεις brute force: fail2ban.
- Ολοκληρώστε τα βασικά με τη λίστα ασφαλείας για νέο VPS.
Οι επιλογές πρόσβασης κάθε πλάνου βρίσκονται στην τεκμηρίωση πρόσβασης. Ακόμα κι ένα Nano των $3 αξίζει χρήστη χωρίς root — είναι η φθηνότερη αναβάθμιση ασφάλειας που υπάρχει.
Σχόλια
Δεν υπάρχουν ακόμη σχόλια. Γίνετε ο πρώτος.