password management [WAS: Peri asfaleias [was: ...]]

Pavlos Parissis p_pavlos at freemail.gr
Mon Dec 19 22:48:47 EET 2005


Καλησπέρα,

Μιας και ανέφερες για passowrd server και να είναι όσο ασφαλής γίνεται,
έχω να προτείνω τα παρακάτω:
1) Minimal install , για αυτό που θες να κάνεις, ο χώρος που θα χρειαστεί δεν μπορεί
να είναι πάνω από 512ΜΒ
2) filesystem layout
 /boot mounted readonly
 /usr mounted readonly
 /
 /tmp
3) ελάχιστα setuid binaries
4) daily system update(το script θα πρέπει να κάνει remount το /usr rw πριν και μετά ro)
5) bios password
6) grub/lilo password και για να αλλάξει κάποιος τα boot options θα πρέπει να δώσει password
7) netstat -na|grep ESTABLISHED θα πρέπει να επιστρέψει μόνο 22 και nmap -sS από
άλλο Υ/Η 
8) install  Aide(aka gnu tripwire)
9) remote logging με syslog-ng +stunnel
10) firewall
11) NO FUCKING WAY REMOTE ROOT LOGIN
12) su group(μόνο ένας θα μπορεί να κάνει su) 
13) sshd_config listen μόνο στην IP μου έχει το σύστημα και όχι σε *
14) password policy και user limits
http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam.html
15) custom kernel
   OXI module support
   μόνο τα βασικά(ΟΧΙ USB-SOUND....)

πολλά ε?

On Mon, 19 Dec 2005 19:48:45 +0200
"Nick Demou (enLogic)" <ndemou at enlogic.gr> wrote:

> Πρώτα τι θέλω να πετύχω:
> 
> έχουμε μια λίστα με not so critical passwords σαν την παρακάτω:
> 
> ΠΕΛΑΤΗΣ       | Login | Password | Σχόλιο
> ----------------------------------------------------
> Joe Smith     | joe   | aek123   | OTEnet account
> Joe Smith     | joes  | 123      | acci account
> ...
> 
> 1) θέλουμε να επιτρέπουμε σε μερικούς έμπιστους τεχνικούς να μπορούν
> να μάθουν το password που κάθε φορά χρειάζονται για να βοηθήσουν τον
> κάθε πελάτη.
> 
> 2) Θέλουμε να ξέρουμε πότε και ποιος τεχνικός ζήτησε να δει πιο
> password (ώστε να είμαστε σίγουροι ότι κοιτάνε μόνο ότι χρειάζεται
> για την δουλεία τους)
> 
> 3) Θέλουμε να μπορούν να δουν μόνο ένα password κάθε Χ λεπτά και
> εντώς συγκεκριμένων ωρών τις ημέρας (ώστε αν κάποιος τεχνικός περάσει
> στην "σκοτεινή πλευρά" να μειώσουμε το κακό στο ελάχιστο δυνατό και
> να προλαβαίνουμε να αλλάξουμε τα passwords σε λογικό χρόνο).
> Επιτρέπουμε όμως κάποιο burst στα queries (π.χ. 2-3) πριν θέσουμε σε 
> ενέργεια το όριο ένα query κάθε Χ λεπτά[1].
> 
> Και τώρα η μέθοδός που χρησιμοποίησα[4]:
> 
> (Α)
> Σε ένα linux box το οποίο είναι σχετικά ασφαλές και το οποίο θα το 
> ονομάσω pass-server αποθήκευσα την λίστα με τα passwords σε ένα tab 
> delimited unencrypted[2] text file με όνομα passwords.txt
> 
> (Β)
> Έφτιαξα ένα πολύ απλό πρόγραμμα (python script με όνομα
> query-pass.py) το οποίο παρουσιάζει ένα command line interface που
> δουλεύει με τις εξής τρεις απλές εντολές:
> ----------------------------------------------------------------
> prompt> ? joe
> 10   Joe Smith     | joe   | OTEnet account
> 11   Joe Smith     | joes  | acci account
> 
> prompt> 10
> Joe Smith     | joe   | aek123   | OTEnet account
> 
> prompt> passwd
> ----------------------------------------------------------------
> 
> Επεξηγήσεις:
> 
> 1. "? joe": ο χρήστης ζήτησε να δει όλες τις εγγραφές που περιέχουν
> τη λέξη joe. Το πρόγραμμα αποκρυπτογραφεί decrypts and opens το text
> αρχειο και με ένα απλό σάρωμα δήχνει για κάθε matching line τα πάντα
> εκτός του password συν τον  αριθμό γραμμής
> 
> 2. "10": ο χρήστης ζήτησε να δει το password της γραμμής #10
> Η εντολή αυτή δουλέυει μόνο εφόσον το 10 ήταν στα αποτελέσματα της 
> τελευταίας αναζήτησης[3]
> 
> 3. "passwd": καλείται η εντολή passwd του συστήματος

αν ο τεχνικός δώσει λάθος password στο πρόγραμμά σου άστον να δει passwords
..αλλά άσχετα:)

> 
> (Γ)
> 1. στον pass-server δημιούργησα έναν χρήστη για κάθε τεχνικό που
> πρέπει να χρησοιμοποιεί το query-pass
> 
> 2. Εφτιαξα ένα group query-pass και έκανα όλους τους χρήστες του 
> query-pass .py να το έχουν ως default group
> 
> 3. Έβαλα το passwords.txt και το query-pass.py στο home dir του 
> query-pass group
> 
> 4. Δήλωσα το query-pass.py ως shell για τους χρήστες (αντί
> του /bin/bash)

μήπως θα ήταν καλύτερα να έχεις jails για τους χρήστες?

> 5. ρυθμισά το sshd.conf ώστε να έχουν access οι χρήστες
> 
> 6. φρόντισα να μην επιτρέπω concurent logins στου χρήστες για να 
> απλοποιήσω τον έλεγχο του μέγιστου ρυθμού queries άνα ώρα
> (δηλαδή στο /etc/security/limits.conf
> a_user	hard	maxlogins	1)

> 7. εγκατέστησα το putty (ssh terminal client για windows) στα PCs των 
> χρηστών και φρόντισα να μπορούν να κάνουν ssh connection στον
> pass-server
> 
> 8. θέλω να μάθω πως μπορώ να επιβάλω στους χρήστες να αλλάζουν το 
> password τους κάθε τόσο μέσω του συστήματος (να τους το λέω και να με 
> αγνοούν έχει πλάκα μόνο στην αρχή ;-) )

http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam.html
http://www.puschitz.com/SecuringLinux.shtml#EnablingPasswordAging




More information about the Linux-greek-users mailing list