View Full Version : bind con firewall
#!/bin/sh
02-10-2002, 08:11
ho una macchina che mi fa da cache nameserver,proxy, e sopra ci voglio mantare anche il firewall. Se lascio aperta la porta 53 (tcp/udp) non funziona nulla.
Le porte aperte sono:
http 8080, https 443, dns 53, ssh 25 in ingresso e usita sul firewall.
Il server dns è il bind 9. Mi viene il dubbio che i dns per parlarsi tra loro non usino solo la 53. Idee?
ilsensine
02-10-2002, 08:14
Prova ad aprire anche la porta 32768 udp.
Inoltre, fai loggare da iptables tutti i pacchetti scartati, così puoi capire che diavolo di porte bind sta cercando di usare.
nb la 25 è smtp, la ssh è la 22.
#!/bin/sh
02-10-2002, 09:14
Originariamente inviato da ilsensine
[B]Inoltre, fai loggare da iptables tutti i pacchetti scartati, così puoi capire che diavolo di porte bind sta cercando di usare.
Come faccio? Perdona l'ingoranza, ma anora al logging non ci sono arrivato: al lavoro ho i tempi stretti e la mia formazione è un the road :)
ilsensine
02-10-2002, 09:16
Oh, se usi tool grafici per gestire il firewall non ne ho la minima idea. Se hai fatto un tuo script per iptables, allegalo.
#!/bin/sh
02-10-2002, 10:14
Grazie per l'aiuto!
ecco il mio script:
#!/bin/sh
export INFACE="eth1"
export OUTFACE="eth0"
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_irc
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -t nat -A POSTROUTING -o $OUTFACE -j MASQUERADE
iptables -A FORWARD -f -i $OUTFACE -j DROP
iptables -A FORWARD -f -i $INFACE -j DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -p tcp -i $INFACE --dport 23 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $OUTFACE --sport 23 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $OUTFACE --dport 23 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $INFACE --sport 23 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $INFACE --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $OUTFACE --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $OUTFACE --dport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $INFACE --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -i $INFACE --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o $INFACE --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $INFACE --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $OUTFACE --sport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $OUTFACE --dport 443 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $INFACE --sport 443 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $INFACE --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $OUTFACE --sport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $OUTFACE --dport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $INFACE --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $INFACE --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $OUTFACE --sport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $OUTFACE --dport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -o $INFACE --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -i $INFACE --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $OUTFACE --sport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $OUTFACE --dport 25 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $INFACE --sport 25 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -i $INFACE --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -o $OUTFACE --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -i $OUTFACE --dport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -o $INFACE --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $INFACE --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $OUTFACE --sport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -i $OUTFACE --dport 110 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p tcp -o $INFACE --sport 110 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -i $INFACE --dport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -o $OUTFACE --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -i $OUTFACE --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -o $INFACE --sport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp -i $INFACE --dport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp -o $OUTFACE --sport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -i $OUTFACE --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p udp -o $INFACE --sport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -i $OUTFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -i $INFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp -o $OUTFACE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp -o $INFACE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p icmp -i $INFACE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p icmp -o $OUTFACE -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p icmp -i $OUTFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p icmp -o $INFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
così va tutto: squid e dns non fanno storie. Se tappo le porte non privilegiate (dalla 1024 in su) il dns e squid non vanno. Il mio obbiettivo era quello di aprire solo le porte necessarie. Come mi hai suggerito tu aprendo la porta che mi hai detto il dns va. Il proxy continua a non andare.
gurutech
02-10-2002, 10:45
la porta 53 tcp e 53 udp devi lasciarla aperta sia in ingresso che in uscita perchè oltre che fornire le info alla rete deve potersi replicare anche dagli altri DNS
un esempio solo con il tcp, t.u.o.IP è il tuo IP pubblico, eth0 è la scheda di rete pubblica (ma potrebbe anche essere ppp0 o ippp0) eth1 è la tua sk di rete privata, n.e.t.IP/mask è la tua rete privata
iptables -P INPUT -p tcp -i eth0 --dst t.u.o.IP --dport 53 -j ACCEPT
iptables -P INPUT -p tcp -i eth0 --dst t.u.o.IP --sport 53 -j ACCEPT
iptables- P INPUT -p tcp -i eth1 --src n.e.t.IP/mask --dport 53 -j ACCEPT
iptables -P OUTPUT -p tcp -o eth0 --src t.u.o.IP --sport 53 -j ACCEPT
iptables -P OUTPUT -p tcp -o eth0 --src t.u.o.IP --dport 53 -j ACCEPT
iptables -P OUTPUT -p tcp -o eth1 --dst n.e.t.IP/mask --sport 53 -j ACCEPT
praticamente è una cosa così:
http://www.gurutech.it/images/dnsiptables.jpg
P.S. mentre scrivevo questo post non avevo ancora visto il tuo script, ora ci do un'occhiata
P.P.S ovviamente puoi e ti consiglio di usare l'opzione -m state, qui l'ho omessa per brevità
gurutech
02-10-2002, 10:54
credo che il tuo problema sia legato al fatto che la porta tcp 53 non sia menzionata da nessuna parte ...
per quanto riguarda le porte non privilegiate, in righe tipo queste
iptables- P INPUT -p tcp -i eth1 --src n.e.t.IP/mask --dport 53 -j ACCEPT
iptables -P OUTPUT -p tcp -o eth1 --dst n.e.t.IP/mask --sport 53 -j ACCEPT
ti accorgi che le macchine della rete interna sono autorizzate ad andare sulla porta tcp 53, ma come porta non privilegiata possono usare quella che vogliono.
mi dispiace, ma senza usare le porte sopra la 1024 tagli praticamente qualsiasi cosa...
devi tener presente che, se l'utente dal lato client non è amministratore della macchina, può aprire solo quelle per la comunicazione
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.