UFW sta bloccando tutto anche quando imposto le regole per consentire


14

Sto usando un server Ubuntu, ora sto cercando di abilitare il firewall usando questi comandi:

ufw default deny incoming
ufw default allow outgoing

ufw allow ssh
ufw allow www
ufw allow https

ufw enable

Ho anche provato a fare l' ufw default deny incomingultimo, ma ancora senza fortuna, quando abilito il firewall blocca tutto quando imposto il valore predefinito su negare, ma quando lo imposto per consentire, funziona bene, come se le regole fossero ignorate. Che cosa potrebbe causare questo ?

MODIFICARE

Questo è il mio risultato: iptables -L -v -n ho anche provato la soluzione proposta, ma non ho ancora avuto fortuna, funziona benissimo solo quando ce la facciodefault allow incoming

Chain INPUT (policy DROP 30 packets, 1764 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 2 packets, 104 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:137
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:138
    0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:139
    0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:445
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:68
    0     0 ufw-skip-to-policy-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST

Chain ufw-after-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-after-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-after-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 4
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    0     0 ufw-user-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 4
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:67 dpt:68
    0     0 ufw-not-local  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            224.0.0.251          udp dpt:5353
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            239.255.255.250      udp dpt:1900
    0     0 ufw-user-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ufw-user-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-logging-allow (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW ALLOW] "

Chain ufw-logging-deny (2 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID limit: avg 3/min burst 10
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-not-local (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type MULTICAST
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST
    0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-reject-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-skip-to-policy-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-input (7 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-track-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-track-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-track-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate NEW
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate NEW

Chain ufw-user-forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:443

Chain ufw-user-limit (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 5 LOG flags 0 level 4 prefix "[UFW LIMIT BLOCK] "
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain ufw-user-limit-accept (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-user-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         

1
Puoi farmi un favore? Fai ufw enable, quindi incolla l'output della sudo iptables -L -v -ntua domanda. Sono curioso di sapere cosa stia facendo il sottostante netfilter/ iptablesroba con le regole ufw. :)
Thomas Ward

I primi due comandi non sono necessari. Tutto quello che devi fare è abilitare UFW e si applicherà l'impostazione predefinita nega in consenti.
mchid,

Oooh, mchid ha ragione, quelli sono i valori predefiniti, non hai bisogno di quelli. Detto questo, voglio ancora vedere i iptablesdati se, con quelle prime due righe escluse, hai ancora questo problema.
Thomas Ward

Ho aggiunto l'output del mio file iptables
engma,

Risposte:


13

Apri un terminale e digita i seguenti comandi:

Inizia facendo un reset, che rimuoverà tutte le regole esistenti:

sudo ufw reset

Il prossimo,

sudo ufw app list

Questo elencherà i profili delle applicazioni disponibili, come OpenSSH e altri. Per ottenere informazioni su un'app, digitare il comando seguente come in questo esempio:

sudo ufw app info OpenSSH

Ecco l'output:

Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.

Port:
  22/tcp

Per consentire l'accesso OpenSSH, è possibile utilizzare la seguente regola:

sudo ufw allow 22/tcp

A differenza di Debian, www e https non sono generalmente inclusi come profili delle app, tuttavia sappiamo che funzionano sulle porte 80 e 443, quindi usate i seguenti comandi:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Se vuoi aggiungere UDP, fai anche questo.

sudo ufw allow 80/udp
sudo ufw allow 443/udp

Disabilita e abilita ufw per applicare le modifiche:

sudo ufw disable
sudo ufw enable

Per mostrare le tue regole:

sudo ufw status

Infine, uno degli aspetti meno amichevoli di ufw è il modo in cui le regole di rifiuto di solito vincono le regole. Ad esempio, non è possibile impostare tutto per negare e quindi impostare le porte per consentire. Tutte le porte saranno comunque bloccate. Vedi qui per maggiori informazioni .


È possibile aggiungere queste regole per bloccare globalmente tutte le porte tranne 22, 53, 80 e 443. Ho aggiunto la porta 53 per consentire le richieste DNS. Se non è necessario effettuare query DNS, è sufficiente modificare le regole di conseguenza.

Per impostare queste regole di blocco solo per la posta in arrivo, è necessario utilizzare sudo ufw deny in 1:22/tcpad esempio. In alternativa, impostare per in uscita sudo ufw deny out 1:22/tcpe così via.

sudo ufw deny 1:21/tcp
sudo ufw deny 1:21/udp
sudo ufw deny 23:52/tcp
sudo ufw deny 23:52/udp
sudo ufw deny 54:79/tcp
sudo ufw deny 54:79/udp
sudo ufw deny 81:442/tcp
sudo ufw deny 81:442/udp
sudo ufw deny 444:65535/tcp
sudo ufw deny 444:65535/udp

Grazie mille per la tua risposta, ma voglio bloccare tutte le porte tranne quelle, dovrei usare ufw default block incomingdopo aver impostato quelle regole?
engma,

@ Developer106 No, quando si abilita ufw, il blocco in entrata è già impostato sul valore predefinito. È possibile verificarlo eseguendo il comando seguente in un terminale aperto sudo ufw status verbose. Se non sbaglio, l'impostazione esplicita di tale regola non consentirà le porte consentite. Se vuoi bloccare tutte le porte tranne quelle, ti suggerisco davvero di dare un'occhiata a questo thread in quanto è esattamente quello che fanno. È molto completo, blocca tutto tranne quelli e avrai le porte aperte che desideri. ubuntuforums.org/showthread.php?t=1893751
mchid

@ Developer106 Ho aggiunto alcune regole per bloccare globalmente tutte tranne 22, 53, 80 e 443 e negare o bloccare ogni altra porta.
mchid,

ok funziona solo quando si specifica di negare outse dico denysenza dire che è specificamente fuori, ancora non funziona. quale potrebbe essere la causa di ciò?
engma,

@ Developer106 cosa non funziona, non blocca o non consente?
mchid,

7

Cordiali saluti: nel caso in cui altri abbiano questo problema.

Nell'output dettagliato di iptables ho notato che mancano le regole ufw nelle catene INPUT, OUTPUT e FORWARD. Il mio sistema è finito così quando ho eseguito iptables -F per rimuovere le mie regole FW personalizzate dopo aver abilitato ufw a un certo punto. Sembra che uww non aggiunga nuovamente le regole di livello superiore se alcune delle sue catene esistono già in iptables.

Ho finito per disinstallare ufw, riavviare, ho eseguito 'iptables -F' (per rimuovere le precedenti regole iptables che erano ancora attive), quindi reinstallando e configurando ufw. Le regole ufw di livello superiore sono ora tornate. La disinstallazione / reinstallazione potrebbe non essere stata necessaria. Basta rimuovere tutte le regole ufw da iptables disabilitando ufw e riavviare potrebbe aver fatto il trucco.

Ecco come dovrebbero apparire le catene di livello superiore (su Debian 9.4).

Chain INPUT (policy DROP)
target     prot opt source               destination         
ufw-before-logging-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-input  all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ufw-before-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-forward  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ufw-before-logging-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-output  all  --  0.0.0.0/0            0.0.0.0/0           

1
Ciò ha risolto il problema anche per me.
Technophobe01

1
L'esecuzione iptables -Xper eliminare tutte le catene non incorporate e il riavvio ufwha funzionato anche per me.
martedì

0

Ho avuto lo stesso problema, una specie di configurazione avvitata ufwe alimentata fail2bannella catena di iptables. Tutto è stato bloccato non appena ho iniziato a farlo - anche senza regole nella ufwcatena stessa. ufwil reset non ha aiutato. L'ho reinstallato completamente, questo ha funzionato.

sudo apt-get purge ufw
sudo apt-get install ufw

Ciao maso Hai dovuto eseguire una configurazione aggiuntiva dopo la reinstallazione?
Hee Jin,

0

Per me questo problema è stato risolto impostando la regola da

sudo ufw default deny outgoing
sudo ufw default allow outgoing

Questa è l'unica cosa che ha funzionato, non consentire la porta 53, consentire dns, ecc.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.