# Software > Ασφάλεια >  ip tables ερωτήσεις & απαντήσεις

## jabarlee

ΜΕ αφορμή το firewalling fest που έγινε πρόσφατα, σκέφτηκα ότι θα ήταν καλή ιδέα να συγκεντρώσουμε τις διάφορες απορίες που μπορεί να έχει ο καθένας σε σχέση με το iptables σε ένα Θέμα, ώστε κάποια στιγμή να χρησιμεύσει ως σημείο αναφοράς.
Αρχίζω πρώτος λοιπόν ....

*Ερώτηση*
Έστω ότι έχουμε default policy στο input DROP 
και 
default policy στο output ACCEPT
Για να επιτευχθεί μια οποιαδήποτε σύνδεση προς τα έξω, ακόμα και http, ανοίγει μια τυχαία πόρτα στο δικό μας pc για να δεχτεί data.
Προκειμένου λοιπόν να επιτραπεί η σύνδεση προς τα έξω, δε θα πρέπει να το αφήσουμε και στο INPUT chain ;


```
iptables -A INPUT -p tcp --sport 80 --dport 1025:65535 -j ACCEPT
```

----------


## tlogic

Εχεις δίκιο σε αυτό που λές.
Αλλά με την εντολή που έδωσες ανοιγείς τρύπα στο firewall σου,
γιατί μπορει ο καθένας να κάνει generate πακέτα που προέρχονται
απο την θύρα 80 και να συνδέεται σε όποια από τις 1024-65535
πόρτες θέλει.

Ο σωστός τρόπος που πρέπει να γίνει είναι
χρησιμοποιώντας το state matching. Δηλαδή:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Για την εξήγηση της εντολής παραπέμπω εδώ:
http://www.faqs.org/docs/iptables/statemachine.html

----------


## jabarlee

τον κανόνα που αναφέρεις τον έχω ήδη ως 2ο στο Input... μήπως εννοείς ότι αυτό που έγραψα είναι σωστό, μόνο όμως αν έχει προηγηθεί ο κανόνας που αναφέρεις;

----------


## paravoid

> Για να επιτευχθεί μια οποιαδήποτε σύνδεση προς τα έξω, ακόμα και http, ανοίγει μια τυχαία πόρτα στο δικό μας pc για να δεχτεί data.
> Προκειμένου λοιπόν να επιτραπεί η σύνδεση προς τα έξω, δε θα πρέπει να το αφήσουμε και στο INPUT chain ;
> 
> 
> ```
> iptables -A INPUT -p tcp --sport 80 --dport 1025:65535 -j ACCEPT
> ```


Το netfilter (ο κώδικας που κάνει το πραγματικό firewalling, iptables είναι απλά το εργαλείο) είναι *stateful firewall*.
"Θυμάται" δηλαδή τις (TCP για παράδειγμα) connections και το state τους.
Μπορεί δηλαδή να καταλαβαίνει ότι έχεις ανοίξει την connection και να αφήνει *μόνο* τα εισερχόμενα πακέτα αυτής (και όχι τα πάντα, όπως έκανες εσύ).
Ένα απλό


```
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT
```

(όπως σωστά είπε ο tlogic)
καθοδηγεί το netfilter να αφήνει τα πακέτα μιας υπάρχουσας connection να περάσουν από την INPUT.

Το παραπάνω, ακόμα και αν είναι ο μοναδικός κανόνας σε μια INPUT με policy DROP, επιτρέπει κανονική επικοινωνία (TCP) προς τα έξω.

----------


## jabarlee

χμμ, αυτό καλύπτει και τα requests του proxy προς το inet?

----------


## apoikos

Ναι, γενικώς καλύπτει τα πάντα. Εφ' όσον η σύνδεση ξεκίνησε από το δικό σου άκρο, τότε την αφήνει να συνεχίσει. Ρίξε μια ματιά και στην παρουσίαση του fest.

----------


## jabarlee

τα είδα, δάσκαλε  ::

----------

