## page was renamed from PaginaProva AFIREWALL_SEMPLICE_UFW FIREWALL INTRODUZIONE Il kernel di Linux comprende il sottosistema Netfilter, che viene usato per manipolare o decidere il destino del traffico di rete diretto all'interno o attraverso il proprio server. Tutte le moderne soluzioni firewall di Linux usano questo sistema per filtrare i pacchetti. Il sistema per filtrare i pacchetti sarebbe poco usato dagli amministratori senza una interfaccia utente per gestirlo. È questo lo scopo di iptables. Quando un pacchetto raggiunge il proprio server verrà preso in consegna da Netfilter per l'accettazione, la manipolazione o il rifiuto in base alle regole che gli avrà dato l'utente attraverso iptables. Perciò, ipatbles è tutto quello che serve per gestire il proprio firewall se si ha familiarità con esso, ma molte facciate sono disponibili per semplificare il lavoro. Come fare: Utilizzare, impostare, e trarre vantaggio dal nuovo Firewall Semplice di Ubuntu UFW. UFW – FIREWALL SEMPLICE Lo strumento di configurazione predefinito del firewall di Ubuntu e ufw. Sviluppato per una semplice configurazione di iptables, ufw fornisce una interfaccia per creare in maniera facile per l'utente un firewall host-based in IPv4 o IPv6. In maniera predefinita ufw è inizialmente disabilitato. SINTASSI DI BASE E ESEMPI REGOLE D'IMPOSTAZIONE PREDEFINITE Impostare ufw nel modo predefinito è raccomandato prima di cambiare le sue impostazioni in IMPOSTAZIONI PREDEFINITE DI NEGAZIONE ACCESSO sudo ufw default deny IMPOSTAZIONI PREDEFINITE DI PERMESSO sudo ufw default allow ABILITARE UFW Avviare ufw: sudo ufw enable NOTA: nonostante ufw sia impostato in maniera predefinita per negare l'accesso ai pacchetti inizialmente quando lo si abilita ufw è in modalità PERMETTI e consentirà a qualsiasi cosa in entrata o in uscita fino a quando non lo si imposterà con delle regole. PERMETTERE sudo ufw allow / esempio: per permettere ai pacchetti tcp e udp in arrivo di transitare nella porta 53: sudo ufw allow 53 esempio: per permettere i pacchetti tpc in arrivo di transitare nella porta 53: sudo ufw allow 53/tcp esempio: per permettere ai pacchetti udp in arrivo di transitare nella porta 53: sudo ufw allow 53/udp NEGARE sudo ufw deny / esempio: per negare ai pacchetti tpc e udp di transitare nella porta 53 sudo ufw deny 53 esempio: per negare ai pacchetti tcp di transitare nella porta 53 sudo ufw deny 53/tcp esempio: per negare ai pacchetti udp di transitare nella porta 53 sudo ufw deny 53/udp SERVIZI È possibile anche permettere o negare l’accesso ai pacchetti a partire dai nomi dei servizi che ufw può leggere da /etc/services. Per vederla ottenere una lista di servizi: cat /etc/services | less PERMETTERE ATTRAVERSO IL NOME DI UN SERVIZIO sudo ufw allow esempio: per permettere ai pacchetti ssh l’accesso attraverso il nome sudo ufw allow ssh NEGARE ATTRAVERSO IL NOME DI UN SERVIZIO sudo ufw deny esempio: per negare ai pacchetti ssh l’accesso attraverso il nome sudo ufw deny ssh STATO (Icona) Controllare lo stato del proprio ufw dirà se ufw è abilitato o disabilitato e fornirà una elenco delle regole che correntemente sono applicate al proprio iptables Per controllare lo stato di ufw: sudo ufw status Firewall loaded A Azioni da -- ------ ---- 22:tcp DENY 192.168.0.1 22:udp DENY 192.168.0.1 22:tcp DENY 192.168.0.7 22:udp DENY 192.168.0.7 22:tcp ALLOW 192.168.0.0/24 22:udp ALLOW 192.168.0.0/24 se ufw è disabilitato il messaggio potrà essere il seguente: sudo ufw status Firewall not loaded DISABILITARE UFW Per disabilitare l’uso di ufw sudo ufw disable ACCESSO Per abilitare l’accesso d’uso ufw logging on Per disabilitare l’accesso d’uso ufw logging off ELIMINARE LE REGOLE ESISTENTI Per eliminare una regola, semplificare il prefisso della regola con “elimina”. Per esempio: se la regola originale era: ufw deny 80/tcp per eliminarla usare: sudo ufw delete deny 80/tcp SINTASSI AVANZATA È possibile anche usare una robusta sintassi, specificando la sorgente e l’indirizzo di destinazione e le porte. PERMETTERE L’ACCESSO Questa sezione mostra come permettere un accesso specifico. PERMETTERE ATTRAVERSO UNO SPECIFICO IP sudo ufw allow esempio: per permettere pacchetti da 207.46.232.182: sudo ufw allow from 207.46.232.182 PERMETTERE ATTRAVERSO SUBNET Si può usare una maschera di rete: sudo ufw allow 192.168.1.0/24 PERMETTERE ATTRAVERSO UNA SPECIFICA PORTA E UN INDIRIZZO IP sudo ufw allow from to port esempio: permettere l’accesso all’IP 192.168.0.4 dalla porta 22 a tutti i protocolli sudo ufw allow from 192.168.0.4 to any port 22 ABILITARE IL PING NOTA: la sicurezza nell’adottare un protocollo offuscato probabilmente avrà piccoli benefici. In maniera predefinita UFW blocca le richieste di ping. È possibile abilitare il ping per diagnosticare problemi di rete. Per fare ciò è necessario digitare /etc/ufw/before.rules e rimuovere il commento dalla stringa (rimuovere il segno # all’inizio) -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT NEGARE L’ACCESSO. Negare uno specifico IP sudo ufw deny from esempio: per bloccare i pacchetti da 207.46.232.182: sudo ufw deny from 207.46.232.182 NEGARE ATTRAVERSO UNA SPECIFICA PORTA E UN INDIRIZZO IP sudo ufw deny from to port esempio: negare l’accesso dell’indirizzo ip 192.168.0.1 alla porta 22 per tutti i protocolli sudo ufw deny from 192.168.0.1 to any port 22 REGOLE AVANZATE DI BLOCCAGGIO Blocking IP addresses is not so straight forward if you have an existing set of rules as IPTABLES matches in order (boh!!!!!!???) Quindi se si comincia con una negazione predefinita e aggiungendo la porta 80 ad un server pubblico: sudo ufw allow 80 Ma si scoprirà che l’indirizzo IP 111.222.3.44 sta hacking il proprio server: sudo ufw deny 111.222.3.44 non fare niente (si permetterà l’accesso con la prima regola) è necessario editare /etc/ufw/before.rules e aggiungere la sezione “BLOCCA IP” dopo aver fatto “trascina i pacchetti NON VALIDI” -A ufw-before-input -s 111.222.3.44 -j DROP #Assuming no loging is desired of course) # drop INVALID packets # uncomment to log INVALID packets #-A ufw-before-input -m conntrack --ctstate INVALID -j LOG --log-prefix "[UFW B$ -A ufw-before-input -m conntrack --ctstate INVALID -j DROP # Block IP # This it is efective :) -A ufw-before-input -s 111.222.3.44 -j DROP ESEMPI AVANZATI Scenario: si vuole bloccare l’accesso alla porta 22 da 192.168.0.1 e 192.168.0.7 ma permettere agli altri IP 192.168.0.x di avere accesso alla porta 22 sudo ufw deny from 192.168.0.1 to any port 22 sudo ufw deny from 192.168.0.7 to any port 22 sudo ufw allow from 192.168.0.0/24 to any port 22 ICON PAGE .png Questo porta la prima regola specifica alla seconda generica. Una volta che una regola è impostata (matched) non sarà valutata (vedere il manuale in basso) è si deve impostare la regola specifica per prima. Come cambiano le regole è necessario cancellare quelle vecchie per essere sicuri che le nuove regole siano state impostate nell’ordine corretto. Per controllare l’ordine delle regole è possibile controllare lo stato: per lo scenario l’output in basso è quello desiderato affinché la regola funzioni in modo corretto sudo ufw status Firewall loaded A Azioni DA -- ------ ---- 22:tcp DENY 192.168.0.1 22:udp DENY 192.168.0.1 22:tcp DENY 192.168.0.7 22:udp DENY 192.168.0.7 22:tcp ALLOW 192.168.0.0/24 22:udp ALLOW 192.168.0.0/24 Cambio scenario: si vuole bloccare l’accesso alla porta 22 di 192.168.0.3 così come 192.168.0.1 e 192.168.0.7. sudo ufw delete allow from 192.168.0.0/24 to any port 22 sudo ufw status Firewall loaded A Azioni Da -- ------ ---- 22:tcp DENY 192.168.0.1 22:udp DENY 192.168.0.1 22:tcp DENY 192.168.0.7 22:udp DENY 192.168.0.7 sudo ufw deny 192.168.0.3 to any port 22 sudo ufw allow 192.168.0.0/24 to any port 22 sudo ufw status Firewall loaded A Azioni Da -- ------ ---- 22:tcp DENY 192.168.0.1 22:udp DENY 192.168.0.1 22:tcp DENY 192.168.0.7 22:udp DENY 192.168.0.7 22:tcp DENY 192.168.0.3 22:udp DENY 192.168.0.3 22:tcp ALLOW 192.168.0.0/24 22:udp ALLOW 192.168.0.0/24 Icons page.png Se semplicemente si aggiunge la regola di diniego la regola di permesso sarà applicata sopra di questa e applicata al posto di quella di diniego. GUIDA SERVER Per istruzioni su come usare ufw la prima volta consultare il manuale ufficiale https://help.ubuntu.com/8.04/serverguide/C/firewall.html MANUALE La sintassi più recente e il manuale può essere recuperato nella pagina man. Aprire un terminale e digitare man ufw ---- CategoryHomepage