Newsgroup: it.comp.os.linux.sys
Titolo: firewall e samba

Ciao, ho un problemino e chiedo aiuto a chi può darmi una dritta.
ho un pc con slack-current con adsl che fa da firewall e gateway ed ha due
eth la eth0 con ip fisso per la rete locale e la eth1 senza ip assegnato
per il modem adsl ethernet .
Ho un client con un win98.
La rete pinga correttamente in entrambi i sensi.
se sul pc con slack tiro giù il firewall samba e la condivisione della
stampante funzionano perfettamente e accedo alla cartella che ho condiviso
su linux.
Se tiro su il firewall invece da linux vedo le shared in windows mentre
viceversa il traffico è interdetto....
Mi pare che il firewall sia impostato per accettare il traffico della lan,
ma certamente sbaglio... 
"Appiccico" sotto le 4 regolette messe su, nella speranza che qualcuno possa
dirmi dove ho steccato...
Ciao e grazie
<paste>
# Flush delle regole
/usr/sbin/iptables -F
/usr/sbin/iptables -X
/usr/sbin/iptables -Z
# Setto tutte le regole
/usr/sbin/iptables -P INPUT DROP
/usr/sbin/iptables -P OUTPUT ACCEPT
/usr/sbin/iptables -P FORWARD DROP
# Imposto alcuniparametri generali
/usr/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
/usr/bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
/usr/bin/echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects
/usr/bin/echo "1" > /proc/sys/net/ipv4/conf/all/send_redirects
/usr/bin/echo "1" > /proc/sys/net/ipv4/tcp_syncookies
/usr/bin/echo "0" > /proc/sys/net/ipv4/tcp_ecn
/usr/bin/echo "1" > /proc/sys/net/ipv4/conf/all/accept_source_route
/usr/bin/echo "1" > /proc/sys/net/ipv4/conf/all/forwarding
/usr/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
/usr/bin/echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
/usr/bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
/usr/bin/echo "1" > /proc/sys/net/ipv4/ip_forward
LAN=
192.168.0.0/24
              #rete locale
LO=127.0.0.1                    #loopback
# Abilito il traffico locale
/usr/sbin/iptables -A INPUT -s $LO -j ACCEPT
/usr/sbin/iptables -A OUTPUT -s $LO -j ACCEPT
iptables -t nat -A POSTROUTING -d ! $LAN -j MASQUERADE
iptables -A FORWARD -s $LAN -j ACCEPT
iptables -A FORWARD -d $LAN -j ACCEPT
iptables -A FORWARD -j DROP
iptables -A INPUT -i eth0 -p TCP --dport 22 -s $LAN -j ACCEPT
iptables -A OUTPUT -o eth0 -p TCP --dport 22 -d $LAN -j ACCEPT
iptables -A INPUT -i eth0 -p ICMP -s $LAN -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 viceversa il traffico è interdetto....
avendo messo come policy di OUTPUT ad ACCEPT è logico che vedi tutto (DA 
linux A win); viceversa la policy di INPUTE è DROP quindi devi aprire le 
porte di samba (che dovrebbero essere la 137/8/9), quindi:
iptables -A INPUT -i eth0 -p TCP --dport 137 -s $LAN -j ACCEPT
iptables -A INPUT -i eth0 -p TCP --dport 138 -s $LAN -j ACCEPT
iptables -A INPUT -i eth0 -p TCP --dport 139 -s $LAN -j ACCEPT
non sono molto pratico di iptables, spero di averti dato info giuste... ;-)
ciao
LEO

 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
qui veniamo al tuo problema: avendo impostato DROP come politica di input,
qui dici a netfilter di accettare risposte a connessioni iniziate dal
firewall, da qualunque parte avvengano, e di scartare il resto. In questo
modo chi tenta dalla LAN di accedere alle condivisioni samba sul firewall
riceve una pernacchia dal suddetto. Probabilmente tu volevi proteggerti
dalle connessioni provenienti da Internet, per cui cambia questa regola con
queste altre due:
iptables -A INPUT -i eth1 -m state ! --state NEW -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
e dovrebbe funzionare tutto. La seconda riga va bene solo se ti fidi
ciecamente di ciò che arriva dalla rete locale, altrimenti servono regole
più restrittive.
ciao
Francesco

 
[...]
Che dire?
Ti ringrazio per la celerità, la precisione e la completezza della risposta.
Oggi tra un lavoro e l'altro proverò la tua soluzione anche se
effettivamente grazie al tuo ragionamento, mi hai fatto capire dove
probabilmente era la cazzata fatta.
Grazie ancora.

 
Questa l'avevo provata, ma non ha funzionato anche se ad onor del vero non
ho usato la 138 (non sapevo fosse relativa al protocollo samba) ma avevo la
445 che con fuser mi risultava farne parte (samba3)...
Grazie comunque.
Ciao