Iptables :: Problemi in tutte le salse

Tutto quello che ha a che fare con GNU/Linux, soprattutto in ambito sistemistico.

Moderatore: Federico.Lagni

Ir0nfl4m3
Cisco fan
Messaggi: 62
Iscritto il: mar 14 feb , 2006 3:39 pm
Contatta:

Ciao a tutti,
ho un problema che non riesco a risolvere.
Dunque ho una macchina (Slackware Linux 10.1) con due interfaccie di rete
eth0 (che ha ip di rete LAN locale) e eth1 (che ha ip pubblico).
Ho tentato in tutte le maniere di impostare iptables in modo che accettasse tutto dalla rete locale (eth0) e solo le porte http e ssh dall'esterno (eth1) ma non c'è verso....
Ho provato anche con webmin usando il suo modulo firewall e con turtlefirewall ma non sono riuscito ad ottenere nessun buon risultato.
Una cosa strana è che se metto down la scheda eth1 (quella esterna) la macchina non risponde più neanche dalla lan interna....

Aiutatemi vi prego!
Avatar utente
TheIrish
Site Admin
Messaggi: 1840
Iscritto il: dom 14 mar , 2004 11:26 pm
Località: Udine
Contatta:

Potresti postare cos'hai creato fino ad adesso?
Ir0nfl4m3
Cisco fan
Messaggi: 62
Iscritto il: mar 14 feb , 2006 3:39 pm
Contatta:

#!/bin/sh

echo "1" > /proc/sys/net/ipv4/ip_forward
#modprobe iptables
modprobe iptable_mangle
modprobe ip_conntrack
modprobe ipt_conntrack
modprobe iptable_nat
modprobe ipt_MASQUERADE
modprobe ipt_TOS
modprobe ipt_mark
#modprobe ipt_tos
#modprobe ipt_ecn
#modprobe ipt_dscp
#modprobe ipt_ttl
#modprobe ip_nat_irc

iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

#INPUT CHAIN
iptables -A INPUT -s 127.0.0.1/8 -j ACCEPT
iptables -A INPUT -i eth0 -s 10.0.0.0/255.255.255.0 -j ACCEPT

iptables -A INPUT -i eth1 -s 0/0 -p tcp --syn --dport http -j ACCEPT
iptables -A INPUT -i eth1 -s 0/0 -p tcp --syn --dport ssh -j ACCEPT

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/s -j ACCEPT

iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

iptables -A INPUT -p udp -m state --state NEW -j DROP

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

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

iptables -A FORWARD -p icmp -m icmp --icmp-type 8 -m limit --limit 5/s -j ACCEPT
iptables -t nat -A POSTROUTING -d 10.0.0.0/24 -j MASQUERADE
iptables -A FORWARD -j DROP
Avatar utente
TheIrish
Site Admin
Messaggi: 1840
Iscritto il: dom 14 mar , 2004 11:26 pm
Località: Udine
Contatta:

Aspetta aspetta, c'è una cosa che non ho capito:
eth0 (che ha ip di rete LAN locale) e eth1 (che ha ip pubblico).
[...]
iptables -t nat -A POSTROUTING -d 10.0.0.0/24 -j MASQUERADE
Ma questa macchina dovrebbe fare anche da gateway?
Ir0nfl4m3
Cisco fan
Messaggi: 62
Iscritto il: mar 14 feb , 2006 3:39 pm
Contatta:

Si, però solo per alcune macchine della lan.
Avatar utente
TheIrish
Site Admin
Messaggi: 1840
Iscritto il: dom 14 mar , 2004 11:26 pm
Località: Udine
Contatta:

eh, allora, manca completamente la catena di forward.
Facciamo così, spiegami per filo e per segno (con indirizzi ip e tutto) cosa vorresti ottenere da questo gateway, io ti faccio una conf di prova e poi ne discutiamo.
Ir0nfl4m3
Cisco fan
Messaggi: 62
Iscritto il: mar 14 feb , 2006 3:39 pm
Contatta:

Allora il firewall ha 2 schede di rete ed è connesso ad internet e alla lan.

eth1 ->ip pubblico -> router -> internet

eth0 ->ip classe C -> lan
-> router (nat) -> internet

sul firewall girano dei servizi che devono essere accessibili dalla lan e altri che devono essere accessibili anche dall'esterno

eth0 -> accetta tutto dalla lan

eth1 -> blocca tutto tranne http e ssh

Questo è quanto...Confido in te ^_^
Avatar utente
andrewp
Messianic Network master
Messaggi: 2199
Iscritto il: lun 13 giu , 2005 7:32 pm
Località: Roma

Da come hai scritto la cosa risulta così:

internet <-router(nat) <- LAN <- eth0|FW|eth1 ->ip pubblico -> router -> internet


Se non è così, ti spieghi una chiavica.
Manipolatore di bit.
Ir0nfl4m3
Cisco fan
Messaggi: 62
Iscritto il: mar 14 feb , 2006 3:39 pm
Contatta:

Si é così.
Mi sono fatto capire ^_^
diegomac
n00b
Messaggi: 9
Iscritto il: lun 05 set , 2005 5:22 pm

In un caso simile al tuo, io ho risolto così:

#!/bin/sh
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp

#azzero iptables
iptables -F
iptables -F -t nat

#blocco tutto da fuori!!
iptables -I INPUT -p tcp -i eth1 -m state -s 0/0 --dport 1:65535 --state INVALID,NEW -j DROP
iptables -I INPUT -p icmp -i eth1 -m state -s 0/0 --state INVALID,NEW -j DROP
iptables -I INPUT -p udp -i eth1 -m state -s 0/0 --state INVALID,NEW -j DROP

#apro quello che serve (nel mio caso)
iptables -I INPUT -p tcp -i eth1 -m multiport -s 0/0 --dport 22,25,110,80,10000 -j ACCEPT

#gateway
iptables -t nat -I POSTROUTING -s 192.168.10.0/255.255.255.0 -o eth1 -j MASQUERADE

#proxy trasparente (se serve)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to port 3128

Ciao
Ir0nfl4m3
Cisco fan
Messaggi: 62
Iscritto il: mar 14 feb , 2006 3:39 pm
Contatta:

Ho provato anche questa soluzione e "sembra" che le porte vengano chiuse correttamente, ma il NAT non funziona :(

#!/bin/sh
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp

#schede di rete
lan=eth0
inet=eth1
#webserver=x.x.x.x

#azzero iptables
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F -t nat

#politiche
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

#nat
iptables -t nat -I POSTROUTING -s 10.0.0.0/255.255.255.0 -o $inet -j MASQUERADE
#iptables -t nat -A PREROUTING -p tcp --dport 80 -$inet -j DNAT --to-destination $webserver
iptables -A FORWARD -i $lan -o $inet -j ACCEPT
iptables -A FORWARD -i $inet -o $lan -m state --state ESTABLISHED,RELATED -j ACCEPT

#input
iptables -A INPUT -p ICMP --icmp-type echo-request -i $inet -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p ICMP -i $lan -j ACCEPT
iptables -A INPUT -p tcp -i $lan -j ACCEPT
iptables -A INPUT -p tcp -i $inet --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -i $inet --dport 22 -j ACCEPT

#output


list di ipt

Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 5
ACCEPT icmp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh

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

Chain OUTPUT (policy ACCEPT)
target prot opt source destination


Risolvero mai questo problema? :cry:
Avatar utente
TheIrish
Site Admin
Messaggi: 1840
Iscritto il: dom 14 mar , 2004 11:26 pm
Località: Udine
Contatta:

Un'ultima cosa poi vedo di prendere al situazione a due mani:
la connessione a internet è effettuata da un router o dal server stesso?
Ir0nfl4m3
Cisco fan
Messaggi: 62
Iscritto il: mar 14 feb , 2006 3:39 pm
Contatta:

La connessione è effettuata da un router che appunto fa nat sulla lan.
diegomac
n00b
Messaggi: 9
Iscritto il: lun 05 set , 2005 5:22 pm

Scusa la domanda banale......ma dal server riesci ad uscire su internet?
Ir0nfl4m3
Cisco fan
Messaggi: 62
Iscritto il: mar 14 feb , 2006 3:39 pm
Contatta:

Quando il firewall è attivo no, se è disattivato si...
Rispondi