PDA

View Full Version : Ancora su iptables...................


stefanoxjx
13-10-2004, 15:24
Salve a tutti, ho un paio di problemini che non riesco a capire bene:

1. Per il firewall, uso il seguente script:
--------------------------------------------------------
#!/bin/bash

# Policy di default delle catene
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Accetta tutti i pacchetti in input e output dalla rete
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT

# Accetto tutti i pacchetti che derivano da connessioni che io stesso ho iniziato
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Apro la porta ssh
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
# iptables -A OUTPUT -p tcp --dport ssh -j ACCEPT

iptables -A INPUT -p tcp --dport 631 -j ACCEPT
iptables -A OUTPUT -p tcp -- dport 631 -j ACCEPT

# loggo tutto quello che NON deriva da connessioni che io ho instaurato
# a livello 7 (debug) del syslog. Questo significa, per esempio in Debian, che i pacchetti
# bloccati verranno visualizzati in /var/log/syslog.
iptables -A INPUT -j LOG --log-level 7 --log-prefix "Blocked Packet: "
--------------------------------------------------------
Quello che mi chiedo, è perchè ho dovuto creare le 2 regole inerenti alla porta 631 altrimenti quando andavo in stampa, il sistema non funzionava.
In teoria, le regole:
* iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
* iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT
dovrebbero già far passare tutto il traffico che arriva dalla rete, e:

* iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
dovrebbe far passare tutti i dati inerenti alle connessioni che stabilisco io.
Cos'è che mi sfugge?

:confused:

Altra domandina; per far fungere il mio pc da router, uso il seguente script (che lancio al posto del precedente):
--------------------------------------------------------
#!/bin/bash

iptables="/usr/sbin/iptables"

# Blocca il forward fino a quando non vengono stabilite tutte le regole.
echo '0' > /proc/sys/net/ipv4/ip_forward

# Carica i moduli necessari
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp ip_nat_ftp
modprobe iptable_nat
modprobe ipt_MASQUERADE


# Attiva il nat (routing)
iptables -t nat -A POSTROUTING -o ippp0 -j MASQUERADE
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

# Forwarda tutti i pacchetti inerenti alla notra rete locale
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

# Forwarda i pacchetti destinati alla porte 4661-4662 per il pc 192.168.0.253
iptables -t nat -A PREROUTING -i ippp0 -p tcp --dport 4661 -j DNAT --to-destination 192.168.0.1:4661
iptables -t nat -A PREROUTING -i ippp0 -p tcp --dport 4662 -j DNAT --to-destination 192.168.0.1:4662

iptables -A FORWARD -j DROP

# Attiva il forward
echo '1' > /proc/sys/net/ipv4/ip_forward
--------------------------------------------------------

Perchè emule continua a dirmi di aprire le porte 4661 e 4662 se esistono 2 apposite regole che le aprono?

Inoltre (anche quì), la regola:
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
Non dovrebbe far passare tutto il traffico inerente alle connessioni che apro? (quindi anche quelle di emule su 4661-4662)?

Ripeto, cos'è che mi sfugge? :confused: :confused: :confused: :confused:
:mc: :muro:

N.B. Per il primo problema, uso una stampante con interfaccia di rete, per il secondo, emule è installato su un altro pc che non è quello che fa da rotuer.
Grazie.

bort_83
13-10-2004, 16:40
Perchè emule continua a dirmi di aprire le porte 4661 e 4662 se esistono 2 apposite regole che le aprono?



poco per volta magari risolviamo tutto..

allora da quanto ho letto tu droppi tutto in forward

iptables -A FORWARD -j DROP


tranne le connessioni RELATED,ESTABLISHED

mi pare che per usare il flag -m state --state tu debba caricare un modulo nel kernel..

e poi.. quando natti il traffico in ingresso verso il pc con emule...

non gli dici

iptables -A FORWARD -i ippp0 -p tcp --dport 4661 -j ACCEPT
iptables -A FORWARD -i ippp0 -p tcp --dport 4662 -j ACCEPT

...

stefanoxjx
13-10-2004, 17:10
OK, problema emule risolto.
Grazie.

bort_83
13-10-2004, 19:11
ti è servito il mio consiglio ???

che bravo che sono :sofico: :sofico: :sofico: :sofico:

lol...


ora che mi ricordo .. io aveo impostato

iptables -A INPUT -i eth0 -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT

ma nn riuscivo a navigare... gli debbi aggiungere NEW

NA01
13-10-2004, 20:28
tolgi anche tutti gli accept sull'output, la config di default è su accept, non fai altro che buttare via dei cicli di clock ;)

cia

stefanoxjx
15-10-2004, 10:49
Con il firewall impostato come segue, mi funziona tutto senza problemi, il problema è che ogni volta che mi collego mi trovo nei log un sacco di gente che ha provato a collegarsi al mio pc come se non ci fosse nessun firewall:
---------------------------------------------------------------------------
#!/bin/bash

# Policy di default delle catene
iptables -P INPUT DROP
iptables -P FORWARD DROP

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

# Apro la porta ssh
iptables -A INPUT -p tcp --dport ssh -j ACCEPT

# loggo tutto quello che NON deriva da connessioni che io ho instaurato
# a livello 7 (debug) del syslog. Questo significa, per esempio in Debian, che i pacchetti
# bloccati verranno visualizzati in /var/log/syslog.
iptables -A INPUT -j LOG --log-level 7 --log-prefix "Blocked Packet: "
---------------------------------------------------------------------------
iptables -L mi restituisce:

Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- localnet/24 anywhere
ACCEPT all -- anywhere anywhere state NEW,RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
LOG all -- anywhere anywhere LOG level debug prefix `Blocked Packet: '

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere localnet/24
---------------------------------------------------------------------------
A questo punto, ho solo una certezza: Non ho capito nulla di iptables :cry:

stefanoxjx
15-10-2004, 13:27
Mi rispondo da solo :muro: , probabilmente è perchè ho aggiunto NEW alla regola quì sotto, senza accorgermi di aver detto al sistema di accettare nuove connessioni provenienti dall'esterno

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

Quindi ora ho modificato come segue:

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

Ora sto a vedere se mi troverò ancora nei log di samba dei tentativi di accesso.
Pse! Correggetemi se ho sbagliato ancora.
Grazie.


:muro:

bort_83
15-10-2004, 13:55
effettivamente ora dovrebbe andare meglio.... ti stavo per consigliare la stessa cosa...

puoi magari anche controllare il traffico in INPUT in base alla porta di provenienza...