Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [pillola] - Firewall personale

    Ciao a tutti. Si e` parlato ultimamente di firewall personali per Linux, ovvero di regole che rendano un po' piu' sicura la nostra macchina casalinga. Linux, dal 2.4 in poi. ha un ottimo firewall integrato nel kernel, il "packet filtering" la cui interfaccia piu' naturale (seppure ne esistano altre, magari grafiche) e' IPTABLES.

    Secondo il mio modesto parere IPTABLES consente un controllo davvero accurato delle regole di filtraggio, con il vantaggio che queste possono essere contenute in un solo file.

    Lo script che segue dovrebbe essere eseguito al boot e prevede questo scenario: una macchina collegata alla rete via ADSL (ppp0) ed una eventuale altra macchina (o LAN) collegata su eth0. La macchina principale ha un web server visibile all'esterno, puo' essere raggiunta via ssh e risponde al ping.

    Commentate o decommentate le righe che ritenete opporture.

    codice:
    #! /bin/bash
    
    ################################
    # REGOLE GENERALI INDISPENSABILI
    ################################
    
    # Resetto tutte le regole
    iptables -F
    iptables -F -t nat
    
    # Nego il traffico in ingress
    iptables -P INPUT DROP
    # Nego il traffico tra le schede di rete
    iptables -P FORWARD DROP
    # Permetto l'uscita di tutto il traffico dal pc
    iptables -P OUTPUT ACCEPT
    
    # Permetto ai pacchetti usciti di rientrare
    iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # Permetto LOOPBACK
    iptables -A INPUT -i lo -j ACCEPT
    
    ################################
    # SERVIZI OFFERTI DALLA MACCHINA
    ################################
    
    # apro ssh
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
    # permetto il ping
    iptables -A INPUT -p icmp -j ACCEPT
    
    # apro web 
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    
    #####################
    # RETE LOCALE
    #####################
    
    # Masquerading, questo permette alla rete di uscire dalla mia PPP0 
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    echo 1 > /proc/sys/net/ipv4/ip_forward
    
    # Permetto il traffico forward dalla lan ad internet
    iptables -A FORWARD -s 192.168.0.1/24 -j ACCEPT
    iptables -A FORWARD -d 192.168.0.1/24 -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # Permetto input su eth0
    iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # MOSTRO IL RISULTATO
    iptables -L
    iptables --table nat -L
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  2. #2
    Utente di HTML.it L'avatar di HIEI
    Registrato dal
    Mar 2003
    Messaggi
    254
    Non ho ancora avuto modo di testarlo, ma dato che sono completamente digiuno di iptables ti ringrazio anticipatamente per l'ottimo script .
    steno983@azeroth Ubuntu 9.04 2.6.28 Gnome 2.26.1

    /home sweet /home

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    411
    Se sei completamente a diguno di iptables, come fai a dire che lo script e' ottimo????
    RTFM.
    Pessimismo e fastidio.

  4. #4
    # Permetto ai pacchetti usciti di rientrare
    iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

    Mi vengono i dubbi che sia un' opzione sicura.
    Se avessi un programma tipo spyware con questa opzione non bloccheresti il suo funzionamento.
    Non ne sono comunque sicuro.
    Aspetto altre considerazioni.

    ciao!
    Faccio parte di questo mondo, cambiare me stesso significa cambiare il mondo.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    2,894
    Originariamente inviato da trillullero
    # Permetto ai pacchetti usciti di rientrare
    iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT

    Mi vengono i dubbi che sia un' opzione sicura.
    Se avessi un programma tipo spyware con questa opzione non bloccheresti il suo funzionamento.
    Non ne sono comunque sicuro.
    Aspetto altre considerazioni.

    ciao!
    Infatti è così, bisognerebbe permettere l'uscita solo verso le porte utilizzte tipo 80 110 25 443 e poi quella regola va bene...

  6. #6
    Originariamente inviato da l.golinelli
    Infatti è così, bisognerebbe permettere l'uscita solo verso le porte utilizzte tipo 80 110 25 443 e poi quella regola va bene...
    Quella opzione permette il rientro delle connessioni gia' instanziate, non di connessioni generiche. Se si vuole una maggiore sicurezza bisogna intervenire sulla catena di OUTPUT, appunto vincolandola alle porte desiderate. Tipo

    codice:
    # non faccio uscire niente
    iptables -P OUTPUT DROP
    # faccio uscire su eth0
    iptables -A OUTPUT -o eth0 -j ACCEPT
    # faccio uscire 21,22,25,80,110,443 su ppp0
    iptables -A OUTPUT -o ppp0 -p TCP --sport 21 -j ACCEPT
    iptables -A OUTPUT -o ppp0 -p TCP --sport 22 -j ACCEPT
    iptables -A OUTPUT -o ppp0 -p TCP --sport 25 -j ACCEPT
    iptables -A OUTPUT -o ppp0 -p TCP --sport 80 -j ACCEPT
    iptables -A OUTPUT -o ppp0 -p TCP --sport 110 -j ACCEPT
    iptables -A OUTPUT -o ppp0 -p TCP --sport 443 -j ACCEPT
    Ovviamente, ogni servizio (come IRC o P2P) ha la necessita' di una porta specifica, bisogna quindi abilitarle esplicitamente.

    Il problema degli spyware e' IMHO un falso problema, infatti se lo scrivessi io uno spyware lo farei lavorare proprio su una di queste porte.
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  7. #7
    Utente di HTML.it L'avatar di HIEI
    Registrato dal
    Mar 2003
    Messaggi
    254
    Originariamente inviato da b00malek
    Se sei completamente a diguno di iptables, come fai a dire che lo script e' ottimo????
    Come sei pesante . Intendevo che leggendo i commenti e non conoscendo iptables mi sembra che le cose che deve fare siano giuste tutto qui.
    steno983@azeroth Ubuntu 9.04 2.6.28 Gnome 2.26.1

    /home sweet /home

  8. #8
    quindi con

    codice:
    # Permetto ai pacchetti usciti di rientrare
    iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
    e con

    codice:
    # faccio uscire 21,22,25,80,110,443 su ppp0
    iptables -A OUTPUT -o ppp0 -p TCP --sport 21 -j ACCEPT
    iptables -A OUTPUT -o ppp0 -p TCP --sport 22 -j ACCEPT
    iptables -A OUTPUT -o ppp0 -p TCP --sport 25 -j ACCEPT
    iptables -A OUTPUT -o ppp0 -p TCP --sport 80 -j ACCEPT
    iptables -A OUTPUT -o ppp0 -p TCP --sport 110 -j ACCEPT
    iptables -A OUTPUT -o ppp0 -p TCP --sport 443 -j ACCEPT
    accetti connessioni in uscita e in entrata su porte 21,22,25,80,110,443 TCP?
    if u think u'r too small to make a difference, try sleeping with a mosquito!!

    Giochi a calcetto? Vuoi prenotare online il tuo campo preferito?

  9. #9
    Originariamente inviato da geppo80
    accetti connessioni in uscita e in entrata su porte 21,22,25,80,110,443 TCP?
    No. Accetti che il traffico possa uscire da quelle porte e ovviamente rientrare perche' altrimenti la comunicazione non puo' avere luogo.

    Il traffico in entrata e' limitato dalle catene

    codice:
    iptables -P INPUT DROP
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -p icmp -j ACCEPT
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    che lo consente solo per le porte 7, 22 e 80.

    Tra "entrare" e "rientrare" la differenza e' che nel primo caso e' un IP esterno a fare richiesta di un servizio, nel secondo il traffico e' generato a partire dalla macchina locale.
    Are you alive?
    No, but I was written with LOVE. A new scripting language.
    www.frequenze.it

  10. #10
    grazie per la risposta..
    perfetto
    if u think u'r too small to make a difference, try sleeping with a mosquito!!

    Giochi a calcetto? Vuoi prenotare online il tuo campo preferito?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.