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

Απενεργοποίηση πρόσβασης στο Internet για κάποιο συγκεκριμένο χρήστη


johndoes

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

Ψάχνοντας στο Ιnternet για το θέμα του τίτλου, βρήκα την παρακάτω περιγραφή:

 

First you need to edit the network interfaces file using the following comamnd

 

sudo vi /etc/network/interfaces

 

or

 

sudo gedit /etc/network/interfaces

 

Now you need to add the simple iptables rule to the interfaces file when the internet connection starts up

 

Simply add this under auto wlan0 or auto eth0 in the interfaces file

 

pre-up iptables -A OUTPUT -p tcp -m owner --uid-owner username -j DROP

 

save and exit the file.

 

Now you need to type in the terminal with the following command

 

sudo iptables -A OUTPUT -p tcp -m owner --uid-owner username -j DROP

 

and switch users to the username you blocked and try to access the internet.

 

Αυτό που δεν καταλαβαίνω είναι α) γιατί πρέπει να τοποθετήσω την εντολή στο αρχείο των interfaces β) αν θα πρέπει να τρέχω κάθε φορά την εντολή γ) πώς επαναφέρω την πρόσβαση στο Internet για τον συγκεκριμένο χρήστη.

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

Αυτό που δεν καταλαβαίνω είναι α) γιατί πρέπει να τοποθετήσω την εντολή στο αρχείο των interfaces

 

για να μπλοκάρει το χρήστη κάθε φορά (δηλ. μετά από reboot).

 

β) αν θα πρέπει να τρέχω κάθε φορά την εντολή

 

όχι. Δε χρειάζεται να την τρέξεις καν, αν κάνεις reboot. Πρόσεξε ότι ουσιαστικά είναι η ίδια εντολή που έγραψες και στο αρχείο.

 

γ) πώς επαναφέρω την πρόσβαση στο Internet για τον συγκεκριμένο χρήστη.

 

αφαιρείς αυτό που πρόσθεσες στο αρχείο interfaces.

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

Αυτο το κομματακι

>[b]pre-up[/b] iptables -A OUTPUT -p tcp -m owner --uid-owner username -j DROP

οριζει τι θα γινει ΠΡΙΝ ξεκινησει το εκαστοτε interface, εστω το eth0, και λεει να απορριπτεται καθε tcp συνδεση απο τον χρηστη "username".

 

Δεν θα ηταν πιο ευκολο απλα να βγαλεις το χρηστη απο το γκρουπ netdev?

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

Δεν θα ηταν πιο ευκολο απλα να βγαλεις το χρηστη απο το γκρουπ netdev?

Δε ξέρω πώς τα έχει οργανώσει η συγκεκριμένη διανομή αλλά φαντάζομαι ότι το group απλά χρησιμοποιείται για να ελέγχεται το ποιος θα μπορεί να αλλάξει ρυθμίσεις όπως οι διευθύνσεις των network interfaces ή οι routes, όχι και το ποιος θα μπορεί να στείλει γενικά δεδομένα στο δίκτυο, αν στο μηχάνημα έχουν οριστεί ήδη κάποιες έγκυρες τέτοιες ρυθμίσεις.

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

Μα αν δεν εισαι root, οχι ρυθμισεις δεν σε αφηνει να αλλαξεις, ουτε ενα "iface eth0 up" δεν σε αφηνει να κανεις.

 

πχ

>$ id modis
uid=1000(modis) gid=1000(modis) ομάδες=1000(modis),20(dialout),24(cdrom),25(floppy),29(audio),44(video),46(plugdev),[b]111(netdev)[/b],112(vboxusers)

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

Ναι, αλλά αν το eth0 γίνεται up και ορίζονται κάποιες έγκυρες ρυθμίσεις από κάποιο init script, όλοι οι χρήστες θα μπορούν να κάνουν χρήση του δικτύου.

 

Ενώ με το owner match module μπορεί κάποιος να απορρίπτει πακέτα που προέρχονται από κάποιον συγκεκριμένο user άσχετα από το παραπάνω.

 

[ EDIT ]

Α, δεν είχα καταλάβει τι εννοούσες.

Δεν είναι απαραίτητο να είναι κάποιος άμεσα root για να πειράξει τέτοια πράγματα, γίνεται και με κάποιον daemon που τρέχει με δικαιώματα root, δέχεται την είσοδο των απλών χρηστών με βάση κάποιο κριτήριο (π.χ. ότι ανήκουν σε κάποιο group) και περνάει τις αντίστοιχες ρυθμίσεις. Οι διάφοροι Network Managers έτσι πρέπει να λειτουργούν.

 

Αν θέλεις να το δοκιμάσεις βγες από το group netdev και δοκίμασε να κάνεις π.χ. ping google.com, ενώ το δίκτυο είναι up and configured. Δε νομίζω να έχουν σετάρει κάτι από πίσω ώστε να σε εμποδίσει -και τι να έχουν σετάρει, είτε μέσω IPtables και owner match θα το έκαναν είτε μέσω κάποιου MAC σαν το SElinux, ούτε το ένα ούτε το άλλο μου φαίνεται πιθανό. Ούτε το όνομα "netdev" προδίδει κάτι τέτοιο.

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

Εμένα μ' ενδιαφέρει να μπορεί να γίνεται και δυναμικά:

 

Αν ο χρήστης είναι ήδη συνδεδεμένος, μπορώ να δώσω την παραπάνω εντολή και να του κόψω την πρόσβαση; Αν θέλω να την αναιρέσω, ποια εντολή πρέπει να δώσω; Αν κάνει logout και αμέσως μετά ξανά login, θα παρακάμψει την εντολή (εφόσον δεν είναι στο interfaces) ή παραμένει σε ισχύ όσο λειτουργεί ο υπολογιστής;

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

Δε ξέρω πώς τα έχει οργανώσει η συγκεκριμένη διανομή αλλά φαντάζομαι ότι το group απλά χρησιμοποιείται για να ελέγχεται το ποιος θα μπορεί να αλλάξει ρυθμίσεις όπως οι διευθύνσεις των network interfaces ή οι routes, όχι και το ποιος θα μπορεί να στείλει γενικά δεδομένα στο δίκτυο, αν στο μηχάνημα έχουν οριστεί ήδη κάποιες έγκυρες τέτοιες ρυθμίσεις.

 

Δεν είναι απαραίτητο να είναι κάποιος άμεσα root για να πειράξει τέτοια πράγματα, γίνεται και με κάποιον daemon που τρέχει με δικαιώματα root, δέχεται την είσοδο των απλών χρηστών με βάση κάποιο κριτήριο (π.χ. ότι ανήκουν σε κάποιο group) και περνάει τις αντίστοιχες ρυθμίσεις. Οι διάφοροι Network Managers έτσι πρέπει να λειτουργούν.

 

Αν θέλεις να το δοκιμάσεις βγες από το group netdev και δοκίμασε να κάνεις π.χ. ping google.com, ενώ το δίκτυο είναι up and configured. Δε νομίζω να έχουν σετάρει κάτι από πίσω ώστε να σε εμποδίσει -και τι να έχουν σετάρει, είτε μέσω IPtables και owner match θα το έκαναν είτε μέσω κάποιου MAC σαν το SElinux, ούτε το ένα ούτε το άλλο μου φαίνεται πιθανό. Ούτε το όνομα "netdev" προδίδει κάτι τέτοιο.

 

Το group "netdev" στο debian χρησιμοποιείται κυρίως για policy enforcement στα μηνύματα του DBus που έχουν σχέση με δικτυακές υπηρεσίες. Έτσι μόνο χρήστες μέλη του netdev μπορούν να χρησιμοποιήσουν τον network manager και διάφορες αντίστοιχες εφαρμογές.

 

Αυτό που θέλει ο johndoes μπορεί να γίνει με το owner match του netfilter, όπως περιέγραψε ο nske. Το /etc/network/interfaces όμως *δεν* είναι το κατάλληλο μέρος για αυτές τις εντολές, εκτός αν ξέρει κανείς καλά τι κάνει. Με network manager στο σύστημα για παράδειγμα, δε νομίζω ότι θα κληθεί ποτέ η εντολή αυτή από το /etc/network/interfaces. Όσον αφορά στο δυναμικό, προφανώς και μπορείς ανά πάσα στιγμή ως root, με τις συνήθεις εντολές διαχείρισης του netfilter (iptables), αν και δεν είναι ό,τι πιο ευέλικτο υπάρχει.

 

Αν θες να το πας ακόμα πιο μακριά, μπορείς να χρησιμοποιήσεις το NFQUEUE και, με τη βοήθεια ενός userspace helper, να μπορείς να τρέξεις ό,τι τεστς θες πάνω σε κάθε πακέτο και να αποφασίσεις αν θες να το αφήσεις να περάσει ή όχι. Αυτήν την προσέγγιση ακολουθεί το NuFW, το οποίο υπάρχει στο debian και ίσως θα είχε νόημα να του ρίξεις μια ματιά.

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

Όσον αφορά στο δυναμικό, προφανώς και μπορείς ανά πάσα στιγμή ως root, με τις συνήθεις εντολές διαχείρισης του netfilter (iptables), αν και δεν είναι ό,τι πιο ευέλικτο υπάρχει.

 

Τι είναι πιο ευέλικτο; Η διανομή που χρησιμοποιώ είναι ubuntu 9.04

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

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...