Προς το περιεχόμενο

Πώς να κάνω log καταγραφές για FTP clients;


nikolaos_

Προτεινόμενες αναρτήσεις

Το βασικό μου πρόβλημα είναι να κατοχυρώσω την επιτυχή μεταφορά μέσω FTP ορισμένων αρχείων από μερικά μηχανήματα που έχουν μόνο Linux με FTP client προς έναν FTP server στο τοπικό δίκτυο, με τον οποίο συνδέονται κατά διαστήματα. Δηλαδή σε περίπτωση που κάποιο από τα μηχανήματα δεν κάνει την αποστολή, να μπορώ να δημιουργώ ένα report μέσα στο οποίο να φαίνονται οι τελευταίες του επιτυχημένες (και αποτυχημένες) συνδέσεις: "τάδε μέρα και ώρα δοκίμασε να συνδεθεί με τον server πέτυχε κι έστειλε το αρχείο δείνα των τόσων bytes". Επισημαίνω ότι υπάρχουν περιστατικά που η σύνδεση δεν γίνεται καν αντιληπτή στον FTP server και δεν μπορεί φυσικά να την καταγράψει.

 

Το πράγμα είναι περίπλοκο διότι οι εφαρμογές που κάνουν τη μεταφορά στα διάφορα μηχανήματα δεν είναι μόνο ο σκέτος client (το πρόγραμμα /usr/bin/ftp), αλλά υπάρχουν compiled εφαρμογές ή perl scripts, τα οποία με κάποιο τρόπο ανοίγουν, σαν FTP clients, μια σύνδεση προς τον FTP server κι άντε να βρω άκρη αν και ποιος έστειλε ποιο αρχείο και πότε. Χρειάζομαι μια ομοιόμορφη λύση που να επιτηρεί όλες τις περιπτώσεις σύνδεσης.

 

Αυτό που έχω δει να βοηθούν σε τέτοια δουλειά είναι το netstat και το auditd. Το πρώτο όμως απλώς δίνει ένα στιγμιότυπο και πρέπει να το τρέχω συστηματικά για να προλαβαίνει, μάλλον όχι αποδοτικό. Στο δεύτερο, που είναι πανίσχυρο, πρέπει να οριστούν κανόνες, όμως δεν έχω υπόψη τα system calls που μπορούν να επιτηρηθούν από το audit και εμπλέκουν μια σύνδεση FTP client.

 

Υπάρχει κανείς που γνωρίζει κάτι, έχει ασχοληθεί, ή ξέρει κάποιο λινκ που να καθοδηγεί προς αυτή την κατεύθυνση;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ο FTP server καταγράφει ό,τι μπορεί, δεν έχω πρόβλημα με τον server. Το πρόβλημα βρίσκεται στους clients που ενώ πρέπει να στείλουν κάποια σε κάποια δική τους προκαθορισμένη στιγμή ορισμένα αρχεία, δεν το κάνουν, ενώ δεν ανοίγουν καν (έτσι μου φαίνεται δηλαδή, άμα ήξερα δεν θα έκανα το θέμα) σύνδεση FTP προς τον server. Αυτές τις αστοχίες φυσικά δεν μπορεί να τις καταγράψει ο FTP server.

 

Επιπλέον πρόβλημα είναι ότι άλλο μηχάνημα έχει bash script που κάνει την αποστολή των αρχείων, δηλαδή ανοίγει το client πρόγραμμα /usr/bin/ftp, άλλο μηχάνημα έχει perl script που φαίνεται να χρησιμοποιεί δικές του βιβλιοθήκες, ένα άλλο έχει compiled κώδικα και δεν φαίνεται τίποτα.

 

Για να το παρακάμψω, πρέπει να παρακολουθήσω τα system calls και τα ports που κάνει ένας τυπικός FTP client. Το auditd μπορεί να με βοηθήσει σε αυτό, αλλά δεν ξέρω τι κανόνες πρέπει να γράψω. Μέχρι στιγμής το βάζω να παρακολουθεί το directory.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

βάλε αυτό στο firewall σου. Ίσως σε κάποια φάση φτιάξω και το systemd-denotify να δέχεται στο config να βάζεις το pattern που θες να σε ειδοποιει με notification η mail. Προς το παρόν θα αρκεστεις να ψάχνεις μόνος σου στο journal.

 

iptables -A OUTPUT -p tcp -m multiport --dports 20,21 -j LOG --log-prefix "ftp connection initiated"

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Όντως αυτό με το iptables δείχνει πολύ καλό! Δεν ήξερα ότι υπάρχει και LOG target. Το -m multiport αφορά την απόκριση σε passive συνδέσεις που γίνονται σε τυχαίες ports? Θα το εφαρμόσω αμέσως, ευχαριστώ πολύ.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τυπικά το πρωτόκολλο κάνει σύνδεση στην 20 και όταν είναι να μεταφερθούν δεδομένα χρησιμοποιεί την 21. Φυσικά αυτό είναι στην ευχέρεια αυτουνού που τρέχει το σέρβερ ποιά ports θα χρησιμοποιεί. Αν θες να ελέγχεις και για άλλες ports

iptables -A OUTPUT -p tcp -m conntrack --ctstate NEW,ESTABLISHED,RELATED -m multiport -- dports 20,21 -j LOG --log-prefix "ότι θες να γίνεται καταγραφή"

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...