Pagina 1 di 1
Stupidaggine su firewall
Inviato: mer 28 mar 2007, 18:04
da sir_alex
Ammetto che probabilmente è una cavolata, ma mi sfugge: ho appena installato firestarter (su ubuntu), ho settato nella inbound policy solo ssh e nella outbound prima ho messo solo dhcp/dns/http/ftp, blacklistando il resto, ora ho provato anche lasciando tutto permesso ma comunque quando alzo il firewall non funziona più la connessione. Sono su adsl connesso tramite pppoe... Mi sono dimenticato qualcosa che magari deve essere nella inbound? Suppongo che il problema sia in quella policy infatti, visto che se anche nell'altra permetto tutto non funziona lo stesso...
Inviato: mer 28 mar 2007, 18:24
da Luke88
si il problema è nelle regole di entrata.
dipende dal fatto che tu contatti (esempio) un server http sulla porta 80 (nota: nonvuol dire che per far funzionare l'http ti basta l'80 in uscita. l'80 è in entrata per il server, ma il client ha una porta random di uscita se non sbaglio... almeno in modo semplice la butto così) e la connessione non può avvenire dal server al tuo firewall, perchè essa non avviene nella porta 22(ssh hai detto). nota che anche in entrata non ti basta la porta 80! se non sbaglio viene presa una porta in un modo semi-random...
di solito la regola iptables è
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ovvero: accetta tutto il traffico entrante che riguarda connessioni già stabilite o comunque relative ad una connessione.
sembra comunque ti manchino le basi... ti consiglio di leggere qualche guida (trovi anche su slacky.eu)...
Inviato: mer 28 mar 2007, 21:51
da sir_alex
Luke88 ha scritto:si il problema è nelle regole di entrata.
dipende dal fatto che tu contatti (esempio) un server http sulla porta 80 (nota: nonvuol dire che per far funzionare l'http ti basta l'80 in uscita. l'80 è in entrata per il server, ma il client ha una porta random di uscita se non sbaglio... almeno in modo semplice la butto così) e la connessione non può avvenire dal server al tuo firewall, perchè essa non avviene nella porta 22(ssh hai detto). nota che anche in entrata non ti basta la porta 80! se non sbaglio viene presa una porta in un modo semi-random...
di solito la regola iptables è
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ovvero: accetta tutto il traffico entrante che riguarda connessioni già stabilite o comunque relative ad una connessione.
sembra comunque ti manchino le basi... ti consiglio di leggere qualche guida (trovi anche su slacky.eu)...
Allora, quando io mi connetto ad un server viene aperto un port automaticamente sul mio pc tra quelli al di sopra di 45000 o qualcosa del genere (il numero preciso mi sfugge), verso la 80 se http o 53 se dns etc etc etc; di solito però (almeno su guarddog ad esempio) in entrata io posso lasciare solo la 22 di ssh, le connessioni in risposta funzionano lo stesso. Le basi le ho, suppongo i programmi inseriscano la riga che tu indichi... se infatti mi viene permessa la connessione verso la 80 mi viene permesso di aprirmi un port per effettuare tale comunicazione... ma firestarter mi dà qualche problemino... magari riprovo con guarddog!
Inviato: gio 29 mar 2007, 0:13
da mauro
xche' non posti direttamente l'rc.firewall che vediamo dov'e' il problema?
Inviato: gio 29 mar 2007, 16:00
da Luke88
non è detto che se tu puoi mandare un pacchetto al server allora il firewall automaticamente ammette i pacchetti relativi alla connessione. di fatto se non glielo dici non lo fa. la riga che ti ho postato gli dice di farlo. sembra che firestarter non abbia impostato alcuna regola tipo quella che ti ho postato io.
io non conosco nè guarddog nè firestarter, ho sempre messo le configurazioni in /etc/rc.d/rc.firewall. su ubuntu non so quale sia l'equivalente.
in sostanza è così per una connessione http, come dicevi tu:
client(porta n)--->server(porta 80) --- il pacchetto attraversa la catena output del client e input del server
server (porta x) ---> client (porta n) --- il pacchetto attraversa la catena output del server e input del client.
nel tuo caso il pacchetto fa il primo passo, giunge al server, ma poi il server non si connette al client per inviare i dati perchè il tuo firewall non lo permette.
quindi devi dire a firestarter di ammettere in entrata le connessioni già cominciate.
Inviato: gio 29 mar 2007, 18:15
da Paoletta
quindi devi dire a firestarter di ammettere in entrata le connessioni già cominciate.
concordo
Inviato: gio 29 mar 2007, 22:34
da sir_alex
Bè, alla fine ho tolto firestarter e messo guarddog, e lì mi è bastato indicare quali port voglio aperti per le connessioni in uscita e per quelle in entrata e stop... magari semplicemente i 2 programmi funzionano diversamente, io ero abituato al secondo... in ogni caso risolto!