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

Firewall openwrt (kamikaze)


capthookb

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

Έχει ασχοληθεί κανείς με kamikaze; Προσπαθώ να κάνω DROP μια IP που προσπαθεί να συνδεθεί σε κάποιο server μου αλλά μάταια. Με iptables -L βλέπω τα εξής:

>
Chain INPUT (policy ACCEPT)          
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            state INVALID 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     all  --  anywhere             anywhere                                      
syn_flood  tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,ACK/SYN 
input_rule  all  --  anywhere             anywhere                                         
input      all  --  anywhere             anywhere                                          

Chain FORWARD (policy DROP)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            state INVALID 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
forwarding_rule  all  --  anywhere             anywhere                                
forward    all  --  anywhere             anywhere                                      
reject     all  --  anywhere             anywhere                                      

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            state INVALID 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     all  --  anywhere             anywhere                                      
output_rule  all  --  anywhere             anywhere                                    
output     all  --  anywhere             anywhere                                      

Chain forward (1 references)
target     prot opt source               destination         
zone_lan_forward  all  --  anywhere             anywhere            
zone_wan_forward  all  --  anywhere             anywhere            

Chain forwarding_lan (1 references)
target     prot opt source               destination         

Chain forwarding_rule (1 references)
target     prot opt source               destination         

Chain forwarding_wan (1 references)
target     prot opt source               destination         

Chain input (1 references)
target     prot opt source               destination         
zone_lan   all  --  anywhere             anywhere            
zone_wan   all  --  anywhere             anywhere            

Chain input_lan (1 references)
target     prot opt source               destination         

Chain input_rule (1 references)
target     prot opt source               destination         

Chain input_wan (1 references)
target     prot opt source               destination         

Chain output (1 references)
target     prot opt source               destination         
zone_lan_ACCEPT  all  --  anywhere             anywhere            
zone_wan_ACCEPT  all  --  anywhere             anywhere            

Chain output_rule (1 references)
target     prot opt source               destination         

Chain reject (5 references)
target     prot opt source               destination         
REJECT     tcp  --  anywhere             anywhere            reject-with tcp-reset 
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain syn_flood (1 references)
target     prot opt source               destination         
RETURN     tcp  --  anywhere             anywhere            tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 25/sec burst 50 
DROP       all  --  anywhere             anywhere                                                                     

Chain zone_lan (1 references)
target     prot opt source               destination         
input_lan  all  --  anywhere             anywhere            
zone_lan_ACCEPT  all  --  anywhere             anywhere            

Chain zone_lan_ACCEPT (3 references)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain zone_lan_DROP (0 references)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            
DROP       all  --  anywhere             anywhere            

Chain zone_lan_MSSFIX (0 references)
target     prot opt source               destination         
TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU 

Chain zone_lan_REJECT (1 references)
target     prot opt source               destination         
reject     all  --  anywhere             anywhere            
reject     all  --  anywhere             anywhere            

Chain zone_lan_forward (1 references)
target     prot opt source               destination
zone_lan_ACCEPT  all  --  anywhere             anywhere
zone_wan_ACCEPT  all  --  anywhere             anywhere
forwarding_lan  all  --  anywhere             anywhere
zone_lan_REJECT  all  --  anywhere             anywhere

Chain zone_wan (1 references)
target     prot opt source               destination
DROP       udp  --  11-11-111-111.name.domain.com  anywhere
DROP       tcp  --  11-11-111-111.name.domain.com  anywhere
input_wan  all  --  anywhere             anywhere
zone_wan_REJECT  all  --  anywhere             anywhere

Chain zone_wan_ACCEPT (2 references)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain zone_wan_DROP (0 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere
DROP       all  --  anywhere             anywhere

Chain zone_wan_MSSFIX (0 references)
target     prot opt source               destination
TCPMSS     tcp  --  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU

Chain zone_wan_REJECT (2 references)
target     prot opt source               destination
reject     all  --  anywhere             anywhere
reject     all  --  anywhere             anywhere

Chain zone_wan_forward (1 references)
target     prot opt source               destination
forwarding_wan  all  --  anywhere             anywhere
zone_wan_REJECT  all  --  anywhere             anywhere

 

Η IP που θέλω να μπλοκάρω είναι η 11.11.111.111 και φαίνεται να υπάρχει κάποιος κανόνας που κάνει τις αιτήσεις για σύνδεση DROP. Όμως στο log του server που υπάρχει πίσω από το NAT βλέπω την ip να προσπαθεί να συνδεθεί. Μήπως μπορεί κανείς να βοηθήσει;

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

Η IP που θέλω να μπλοκάρω είναι η 11.11.111.111 και φαίνεται να υπάρχει κάποιος κανόνας που κάνει τις αιτήσεις για σύνδεση DROP.

 

  • >DROP       udp  --  [b]11-11-111-111.name.domain.com[/b]  anywhere
    DROP       tcp  --  [b]11-11-111-111.name.domain.com[/b]  anywhere


    Είναι καλύτερα να μην δηλώνεις hostnames στους κανόνες αλλά διευθύνσεις, όπου μπορείς να το αποφύγεις. Κανονικά για το reverse DNS record κάθε διεύθυνσης πρέπει να υπάρχει και ένα A record, ώστε να κάνει resolve σε αυτήν την διεύθυνση. Αν πράγματι υπάρχει, θα παίξει κανονικά, απλά θα έχει κάποια καθυστέρηση για το resolution -οπότε και πάλι θα ήταν καλό να το αποφύγεις. Όμως κάποιοι ISPs αμελούν να φτιάξουν Α record, οπότε το reverse DNS record της διεύθυνσης δεν κάνει resolve στην διεύθυνση, δηλαδή δεν είναι ένα υπαρκτό hostname. Σε αυτή την περίπτωση οι κανόνες θα αποτυγχάνουν.
     
     

  • Η iptables -L σκέτη δεν τυπώνει αρκετές πληροφορίες (αν δώσεις και -v θα τυπώσει περισσότερες), αλλά από αυτά που τυπώνει φαίνεται ότι τα πακέτα που σε ενδιαφέρει να πιάσεις δεν φθάνουν ποτέ στην αλυσίδα στην οποία έχεις περάσει τους κανόνες για να γίνονται DROP, αφού στην αλυσίδα "zone_wan" στέλνονται πακέτα μόνο από την αλυσίδα "input", στην οποία αλυσίδα "input" στέλνονται πακέτα μόνο από την βασική αλυσίδα "INPUT", από την οποία περνάνε μόνο τα πακέτα που κατά τον έλεγχο του routing βρίσκεται ότι έχουν προορισμό το ίδιο το μηχάνημα.
     
    Αφού κάνεις DNAT προς ένα άλλο μηχάνημα, η διεύθυνση προορισμού των πακέτων έχει αλλάξει πριν το routing decision ("PREROUTING") σε μια μη τοπική διεύθυνση, οπότε κατά το routing decision ταξινομούνται αυτόματα στην βασική αλυσίδα "FORWARD" και όχι στην "INPUT".

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

subdee: Το hosts.deny δεν είναι και πολύ αποδοτικό, για 2 βασικούς λόγους:

  1. Πρέπει το πρόγραμμα να έχει γίνει compile με υποστήριξη για tcpwrappers.
  2. Το tcpwrappers απλά κλείνει τη σύνδεση, αφού αυτή έχει ανοίξει και αποδοθεί στο πρόγραμμα. Με άλλα λόγια, έχεις ήδη δεσμεύσει resources και έχεις ήδη περάσει όλο το TCP/IP stack του πυρήνα.

 

Αντίθετα, με το firewall δρας ένα επίπεδο κάτω, και δε φτάνει ποτέ το αντίστοιχο request στο δαίμονα που θες να προστατεύσεις. Συμπέρασμα: tcp wrappers έχει νόημα να χρησιμοποιείς μόνο σε συστήματα που δεν έχουν firewall.

 

@firewalker: Όπως είπε και o nske, κάνε paste την έξοδο της iptables -L -v, διότι δε φαίνεται η λογική λήψης αποφάσεων στο σκέτο iptables -L.

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

@firewalker: Όπως είπε και o nske, κάνε paste την έξοδο της iptables -L -v, διότι δε φαίνεται η λογική λήψης αποφάσεων στο σκέτο iptables -L.

 

Μπήκε η άνοιξη και ο αγαπημένος μας moderator είναι ερωτευμένος (μπερδεύει ονόματα κ.τ.λ.). Ελπίζω όχι μαζί μου :-):-):-)

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

nske, hostname δεν έχω δηλώσει στο firewall. Απλά εμφανίζεται με την iptables -L. Να και η iptables -L -v:

>
Chain INPUT (policy ACCEPT 1 packets, 52 bytes)
pkts bytes target     prot opt in     out     source               destination         
6873  406K DROP       all  --  any    any     anywhere             anywhere            state INVALID 
60533 6744K ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
 139  9128 ACCEPT     all  --  lo     any     anywhere             anywhere                                      
2215  121K syn_flood  tcp  --  any    any     anywhere             anywhere            tcp flags:FIN,SYN,RST,ACK/SYN 
4500  303K input_rule  all  --  any    any     anywhere             anywhere                                         
4500  303K input      all  --  any    any     anywhere             anywhere                                          

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         
1425 94524 DROP       all  --  any    any     anywhere             anywhere            state INVALID 
6854K  954M ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
97352 5879K forwarding_rule  all  --  any    any     anywhere             anywhere                                
97352 5879K forward    all  --  any    any     anywhere             anywhere                                      
   1    60 reject     all  --  any    any     anywhere             anywhere                                      

Chain OUTPUT (policy ACCEPT 4 packets, 288 bytes)
pkts bytes target     prot opt in     out     source               destination         
  11   916 DROP       all  --  any    any     anywhere             anywhere            state INVALID 
42754 6109K ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
 139  9128 ACCEPT     all  --  any    lo      anywhere             anywhere                                      
21976 1430K output_rule  all  --  any    any     anywhere             anywhere                                    
21976 1430K output     all  --  any    any     anywhere             anywhere                                      

Chain forward (1 references)
pkts bytes target     prot opt in     out     source               destination         
83739 5062K zone_lan_forward  all  --  br-lan any     anywhere             anywhere            
6918  415K zone_wan_forward  all  --  ppp0   any     anywhere             anywhere            

Chain forwarding_lan (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain forwarding_rule (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain forwarding_wan (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain input (1 references)
pkts bytes target     prot opt in     out     source               destination         
3152  219K zone_lan   all  --  br-lan any     anywhere             anywhere            
 773 42474 zone_wan   all  --  ppp0   any     anywhere             anywhere            

Chain input_lan (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain input_rule (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain input_wan (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain output (1 references)
pkts bytes target     prot opt in     out     source               destination         
21976 1430K zone_lan_ACCEPT  all  --  any    any     anywhere             anywhere            
21976 1430K zone_wan_ACCEPT  all  --  any    any     anywhere             anywhere            

Chain output_rule (1 references)
pkts bytes target     prot opt in     out     source               destination         

Chain reject (5 references)
pkts bytes target     prot opt in     out     source               destination         
1298 75693 REJECT     tcp  --  any    any     anywhere             anywhere            reject-with tcp-reset 
  50  7534 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-port-unreachable 

Chain syn_flood (1 references)
pkts bytes target     prot opt in     out     source               destination         
1257 65712 RETURN     tcp  --  any    any     anywhere             anywhere            tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 25/sec burst 50                                                                                                                                    
 958 54872 DROP       all  --  any    any     anywhere             anywhere                                                              

Chain zone_lan (1 references)
pkts bytes target     prot opt in     out     source               destination         
3152  219K input_lan  all  --  any    any     anywhere             anywhere            
3152  219K zone_lan_ACCEPT  all  --  any    any     anywhere             anywhere            

Chain zone_lan_ACCEPT (3 references)
pkts bytes target     prot opt in     out     source               destination         
86891 5282K ACCEPT     all  --  br-lan any     anywhere             anywhere            
   0     0 ACCEPT     all  --  any    br-lan  anywhere             anywhere            

Chain zone_lan_DROP (0 references)
pkts bytes target     prot opt in     out     source               destination         
   0     0 DROP       all  --  br-lan any     anywhere             anywhere            
   0     0 DROP       all  --  any    br-lan  anywhere             anywhere            

Chain zone_lan_MSSFIX (0 references)
pkts bytes target     prot opt in     out     source               destination         
   0     0 TCPMSS     tcp  --  any    br-lan  anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU 

Chain zone_lan_REJECT (1 references)
pkts bytes target     prot opt in     out     source               destination         
   0     0 reject     all  --  br-lan any     anywhere             anywhere            
   0     0 reject     all  --  any    br-lan  anywhere             anywhere            

Chain zone_lan_forward (1 references)
pkts bytes target     prot opt in     out     source               destination         
83739 5062K zone_lan_ACCEPT  all  --  any    any     anywhere             anywhere            
   0     0 zone_wan_ACCEPT  all  --  any    any     anywhere             anywhere            
   0     0 forwarding_lan  all  --  any    any     anywhere             anywhere             
   0     0 zone_lan_REJECT  all  --  any    any     anywhere             anywhere            

Chain zone_wan (1 references)
pkts bytes target     prot opt in     out     source               destination
   0     0 DROP       udp  --  any    any     11-11-111-111.name.domain.com  anywhere
   0     0 DROP       tcp  --  any    any     11-11-111-111.name.domain.com  anywhere
1347 83167 input_wan  all  --  any    any     anywhere             anywhere
1347 83167 zone_wan_REJECT  all  --  any    any     anywhere             anywhere

Chain zone_wan_ACCEPT (2 references)
pkts bytes target     prot opt in     out     source               destination
   0     0 ACCEPT     all  --  ppp0   any     anywhere             anywhere
11308  736K ACCEPT     all  --  any    ppp0    anywhere             anywhere

Chain zone_wan_DROP (0 references)
pkts bytes target     prot opt in     out     source               destination
   0     0 DROP       all  --  ppp0   any     anywhere             anywhere
   0     0 DROP       all  --  any    ppp0    anywhere             anywhere

Chain zone_wan_MSSFIX (0 references)
pkts bytes target     prot opt in     out     source               destination
   0     0 TCPMSS     tcp  --  any    ppp0    anywhere             anywhere            tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU

Chain zone_wan_REJECT (2 references)
pkts bytes target     prot opt in     out     source               destination
 773 42474 reject     all  --  ppp0   any     anywhere             anywhere
   0     0 reject     all  --  any    ppp0    anywhere             anywhere

Chain zone_wan_forward (1 references)
pkts bytes target     prot opt in     out     source               destination
   0     0 forwarding_wan  all  --  any    any     anywhere             anywhere
   0     0 zone_wan_REJECT  all  --  any    any     anywhere             anywhere

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

hostname δεν έχω δηλώσει στο firewall. Απλά εμφανίζεται με την iptables -L.

Α ok, δεν το είχα σκεφτεί.

 

Για το πρόβλημα, όπως είπα,

τα πακέτα που σε ενδιαφέρει να πιάσεις δεν φθάνουν ποτέ στην αλυσίδα στην οποία έχεις περάσει τους κανόνες για να γίνονται DROP, αφού στην αλυσίδα "zone_wan" στέλνονται πακέτα μόνο από την αλυσίδα "input", στην οποία αλυσίδα "input" στέλνονται πακέτα μόνο από την βασική αλυσίδα "INPUT", από την οποία περνάνε μόνο τα πακέτα που κατά τον έλεγχο του routing βρίσκεται ότι έχουν προορισμό το ίδιο το μηχάνημα.

 

Αφού κάνεις DNAT προς ένα άλλο μηχάνημα, η διεύθυνση προορισμού των πακέτων έχει αλλάξει πριν το routing decision ("PREROUTING") σε μια μη τοπική διεύθυνση, οπότε κατά το routing decision ταξινομούνται αυτόματα στην βασική αλυσίδα "FORWARD" και όχι στην "INPUT".

 

Οπότε φρόντισε οι συγκεκριμένοι κανόνες να βρίσκονται στην αλυσίδα FORWARD, γιατί τώρα βρίσκονται στην INPUT.

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

Κατάλαβα τι εννοείς και δοκίμασα να προσθέσω τον κανόνα στην FORWARD, αλλά πάλι περνάνε τα πακέτα:

>
iptables -Α FORWARD -S 11.111.111.111 -j DROP

 

 

Τελικά αν δεν ασχολείσαι με πρακτικά προβλήματα δεν μαθαίνεις ποτέ κάτι.

Είχα ξεχάσει εντελώς (μεταξύ άλλων) πως παίζει ρόλο η σειρά με την οποία εφαρμόζονται οι κανόνες. Έτσι λοιπόν με το append (-A) δε δουλεύει:

>
iptables -L FORWARD
Chain FORWARD (policy DROP)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere            state INVALID
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
forwarding_rule  all  --  anywhere             anywhere
forward    all  --  anywhere             anywhere
reject     all  --  anywhere             anywhere
DROP       all  --  111.111.111.user.domain.com  anywhere

 

ενώ με το Insert (iptables -I) ο κανόνας μπαίνει πρώτος στη λίστα και κάνει αυτό που θέλω, πριν φύγει το πακέτο που θέλω να μπλοκάρω από κάποιο άλλο κανόνα:

>
iptables -L FORWARD
Chain FORWARD (policy DROP)
target     prot opt source               destination
DROP       all  --  111.111.111.user.domain.com  anywhere
DROP       all  --  anywhere             anywhere            state INVALID
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
forwarding_rule  all  --  anywhere             anywhere
forward    all  --  anywhere             anywhere
reject     all  --  anywhere             anywhere

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

Ναι,

>Chain FORWARD (policy DROP 0 packets, 0 bytes)
[b]target     prot opt in     out     source               destination       [/b]
forward    all  --  any    any     anywhere             anywhere                                      

Οποιοσδήποτε κανόνας βρίσκεται μετά από αυτόν, αναγκαστικά δεν έχει τη δυνατότητα να κάνει match πακέτα που προέρχονται ή προορίζονται για τα br-lan και ppp0 interfaces, αφού τα πακέτα θα τερματίσουν με ACCEPT στην αλυσίδα zone_lan_ACCEPT (FORWARD > forward > zone_lan_forward > zone_lan_ACCEPT).

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

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

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

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