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

Μία γρήγορη από iptables...


screwman

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

Υο σε όλους...

 

Αυτό είναι το /etc/sysconfig/iptables μου:

 

>:INPUT ACCEPT [43200:22881138]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [71131:19089570]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth1 -j ACCEPT
-A INPUT -i ! eth1 -p udp -m udp --dport 67 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -i ! eth1 -p udp -m udp --dport 53 -j REJECT --reject-with icmp-port-unreachable
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -d 192.168.1.0/255.255.255.0 -i eth1 -j DROP
-A FORWARD -s 192.168.1.0/255.255.255.0 -i eth1 -j ACCEPT
-A FORWARD -d 192.168.1.0/255.255.255.0 -i eth0 -j ACCEPT
COMMIT

 

και χρησιμοποιώ το κάτωθι για να κάνω forward σε ένα άλλο μηχάνημα που τρέχει VNC server:

 

>iptables -t nat -A PREROUTING -p tcp --dport 5902 -i eth0 -j DNAT --to 192.168.1.10:5901

 

Δουλεύει όπως πρέπει. Αλλά, τι γίνεται άμα θέλω να κόψω τα connect εκτός από συγκεκριμένες IP? Π.χ., εάν θέλω connect μόνο από τις 172.20.35.0/24 και από όλες τις άλλες να κάνει reject? Δοκίμασα αυτό:

 

>iptables -A INPUT -p tcp --dport 5902 -m iprange --src-range 172.20.35.1-172.20.35.254 -j ACCEPT

 

αλλά δεν δουλεύει... και υποψιάζομαι ότι φταίει κάτι μικρό...

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

Βάλε ένα rule ακριβώς κάτω από αυτόν που θα κάνει reject για όλα τα src-range. Το iptables σταματάει στο πρώτο rule που θα κάνει match το πακέτο που κάνει inspect εκείνη την ώρα. Αν δεν δηλώσεις το reject που σου λέω, κανένα rule δεν θα του κάνει match οπότε το πακέτο θα γίνει allow από default.

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

Υο σε όλους...

 

Αυτό είναι το /etc/sysconfig/iptables μου:

 

>:INPUT ACCEPT [43200:22881138]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [71131:19089570]
....

 

και χρησιμοποιώ το κάτωθι για να κάνω forward σε ένα άλλο μηχάνημα που τρέχει VNC server:

 

>iptables -t nat -A PREROUTING -p tcp --dport 5902 -i eth0 -j DNAT --to 192.168.1.10:5901

 

Δουλεύει όπως πρέπει. Αλλά, τι γίνεται άμα θέλω να κόψω τα connect εκτός από συγκεκριμένες IP? Π.χ., εάν θέλω connect μόνο από τις 172.20.35.0/24 και από όλες τις άλλες να κάνει reject? Δοκίμασα αυτό:

 

>iptables -A INPUT -p tcp --dport 5902 -m iprange --src-range 172.20.35.1-172.20.35.254 -j ACCEPT

 

αλλά δεν δουλεύει... και υποψιάζομαι ότι φταίει κάτι μικρό...

 

Όπως είπε και ο NullScan μπορείς να βάλεις ένα rule που να κάνει reject όλες

τις υπόλοιπες IP. Δηλαδή όπως το έχεις θα γίνει:

>
iptables -A INPUT -p tcp --dport 5902 -m iprange --src-range 172.20.35.1-172.20.35.254 -j ACCEPT
iptables -A INPUT -p tcp --dport 5902 -j REJECT

 

Ακόμη, δεν είναι απαραίτητο να χρησιμοποιείς iprange. Μπορεί να γίνει και πιο απλό:

>
iptables -A INPUT -p tcp --dport 5902 -s 172.20.35.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 5902 -j REJECT

 

Όπως βλέπουμε η πολιτική που έχεις ορίσει για την INPUT αλυσίδα είναι ACCEPT

οπότε οι παραπάνω δύο κανόνες μπορούν να ενωθούν στον εξής ένα:

 

>
iptables -A INPUT -p tcp --dport 5902 ! -s 172.20.35.0/24 -j REJECT

 

Ελπίζω να μη σε μπέρδεψα.

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

Ρε σεις, θεοί και οι δύο!

 

Αυτό με το ! έψαχνα και εγώ και δεν το έβρισκα... εδώ θα μου πεις βέβαια ότι δεν σκέφτηκα να βάλω κανόνα να τα κάνει reject...

 

Φχαριστώ πολύ και τους δύο. Και μία ίσως βλαμμένη ερώτηση: πρώτα περνάνε έλεγχο οι κανόνες του INPUT και μετά του PREROUTING?

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

Ρε σεις, θεοί και οι δύο!

 

Αυτό με το ! έψαχνα και εγώ και δεν το έβρισκα... εδώ θα μου πεις βέβαια ότι δεν σκέφτηκα να βάλω κανόνα να τα κάνει reject...

 

Φχαριστώ πολύ και τους δύο. Και μία ίσως βλαμμένη ερώτηση: πρώτα περνάνε έλεγχο οι κανόνες του INPUT και μετά του PREROUTING?

 

Οι INPUT,OUTPUT,FORWARD είναι αλυσίδες του πίνακα filter. H Prerouting είναι

αλυσίδα του nat στην περίπτωσή σου (υπάρχει και στον πίνακα mangle).

 

Όταν λαμβάνεις ένα πακέτο, πρώτα περνάει από την Prerouting του nat, γίνονται

πιθανές μετaφράσεις (όπως στη δική σου περίπτωση μεταφράζεται στο 192.168.1.10)

και έπειτα ελέγχονται οι κανόνες στην INPUT ή στην FORWARD.

 

Στο tutorial του iptables εξηγεί όλες τις αλυσίδες αναλυτικά. Αν βαριέσαι να

το διαβάσεις βρήκα στο images.google.com μια εικόνα που δείχνει την σειρά.

http://linuxzoo.net/notes/img/firewall-01.png

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

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

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

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