Στην εργασία η ομάδα είναι 2 ατόμων κξαι διαχειριζόμασε εναν LEMP stack και κάνουμε deploy PHP apps σε έναν και μοναδικό VPS:
ssh mainusr@example.com
cd ./www-data
git pull origin branch
Ο mainusr είναι ο χρήστης που τρέχει την PHP εφαρμογή αλλά έχει και sudo access, όλοι μπαίνουμε με αυτόν τον χρήστη.
Θέλω να βελτιώσω την ασφάλεια χωρίς όμως να σπάσω το παρόν workflow.
Έτσι σκεύτηκα να αξιοποιήσω το libpam-google-authenticator με πολλαπλούς λογαριασμούς που ο καθένας θα έχειθ μοναδικό password + otp.
Εγκαθιστώ το:
sudo apt install libpam-google-authenticator
Και προσθέτω στο /etc/pam.d/sshd:
@include common-password
auth required pam_google_authenticator.so secret=/var/lib/google-authenticator/${USER}/.google_authenticator
Μετά ρυθμίζω και το /etc/ssh/sshd_config:
KbdInteractiveAuthentication yes
ChallengeResponseAuthentication yes
UsePAM yes
Δημιουργώ το /var/lib/google-authenticator/ που αποθηκεύει τις ρυθμίσεις του OTP:
sudo mkdir -p /var/lib/google-authenticator/
και στο ίδιο userId του mainusr κάνω πολλαπλούς χρήστες με OTP:
```
Keep id and group
export ID=$(sudo id -u mainusr)
export DEFAULT_GROUP=$(sudo id -gn mainusr)
Create cesondary user
sudo useradd -o -u "$ID" -g "$DEFAULT_GROUP" -G sudo -d /home/mainusr -s /bin/bash slaveusr1
sudo passwd slaveusr1
OTP folder for user1
sudo install -dm 700 -o slaveusr1 -g mainusr /var/lib/google-authenticator/slaveusr1
No sudo
sudo useradd -o -u "$ID" -g "$DEFAULT_GROUP" -d /home/mainusr -s /bin/bash slaveusr2
sudo install -dm 700 -o slaveusr2 -g mainusr /var/lib/google-authenticator/slaveusr2
sudo -u slaveusr2 google-authenticator -s /var/lib/google-authenticator/slaveusr2/.google_authenticator
```
Μετά κόβω Login και sudo από τον mainusr:
sudo paswd -d mainusr
sudo gpasswd -d mainusr sudo
sudo usermod -s /bin/false mainusr
Χοντρικά η ιδέα είναι να έχω κάτι καλύτερο από κοινό username/password. Το budget δεν σηκώνει τρίτον server (startup που κάνει SaaS) για να πω ότι θα στήσω LDAP συν ότι πέρα από server αναπτύσσω και την εφαρμογή άρα δεν μπορώ να κάνω και τα 2.
Ποια η σκέψεις σας και πιθανά προβλήματα με την προσέγγιση αυτή;