UFW está bloqueando tudo, mesmo quando eu definir regras para permitir

14

Estou usando um servidor ubuntu, agora estou tentando habilitar o firewall usando estes comandos:

ufw default deny incoming
ufw default allow outgoing

ufw allow ssh
ufw allow www
ufw allow https

ufw enable

Eu também tentei fazer o ufw default deny incoming último, mas ainda sem sorte, quando habilito o firewall, ele bloqueia tudo quando defino o padrão como negar, mas quando o defino para permitir, funciona bem, como as regras são ignoradas. O que poderia estar causando isso ?

EDITAR

Esta é a minha saída iptables -L -v -n . Também tentei a solução proposta, mas ainda sem sorte, ela funciona bem apenas quando a faço.default 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         
engma
fonte
1
Você pode me fazer um favor? Faça ufw enablee cole o resultado da sudo iptables -L -v -nsua pergunta. Estou curioso para saber o que o subjacente netfilter/ iptablesmaterial está realmente fazendo com as regras do ufw. :)
Thomas Ward
Os dois primeiros comandos são desnecessários. Tudo que você precisa fazer é ativar o UFW e a negação padrão de permissão de entrada será aplicada.
Mchid 26/10/2014
Oooh, mchid está certo, esses são os padrões, você não precisa deles. Dito isto, ainda quero ver os iptablesdados se, com essas duas primeiras linhas excluídas, você ainda estiver com esse problema.
Thomas Ward
Eu adicionei a saída do meu arquivo iptables
engma

Respostas:

12

Abra um terminal e digite os seguintes comandos:

Comece fazendo uma redefinição, que removerá todas as regras existentes:

sudo ufw reset

Próximo,

sudo ufw app list

Isso listará os perfis de aplicativos disponíveis, como OpenSSH e outros. Para obter informações sobre um aplicativo, digite o seguinte comando, como neste exemplo:

sudo ufw app info OpenSSH

Aqui está a saída:

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

Port:
  22/tcp

Para permitir o acesso OpenSSH, você pode usar a seguinte regra:

sudo ufw allow 22/tcp

Ao contrário do Debian, www e https geralmente não são incluídos como perfis de aplicativos, no entanto, sabemos que eles operam nas portas 80 e 443, portanto, use os seguintes comandos:

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

Se você deseja adicionar o UDP, faça isso também.

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

Desative e ative o ufw para aplicar as alterações:

sudo ufw disable
sudo ufw enable

Para mostrar suas regras:

sudo ufw status

Finalmente, um dos aspectos menos amigáveis ​​do ufw é como as regras de negação geralmente superam as regras de permissão. Por exemplo, você não pode definir tudo para negar e, em seguida, definir portas para permitir. Todas as portas ainda estarão bloqueadas. Veja aqui para mais informações .


Você pode adicionar essas regras para bloquear globalmente todas as portas, exceto 22, 53, 80 e 443. Adicionei a porta 53 para permitir solicitações de DNS. Se você não precisar fazer consultas DNS, apenas modifique as regras de acordo.

Para definir essas regras de bloqueio apenas para entrada, você usaria, sudo ufw deny in 1:22/tcppor exemplo. Como alternativa, defina para saída sudo ufw deny out 1:22/tcpe assim por diante.

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
mchid
fonte
Muito obrigado pela sua resposta, mas quero bloquear todas as portas, exceto aquelas, devo usar ufw default block incomingdepois de definir essas regras?
engma #
@ Developer106 Não, quando você ativa o ufw, o bloco de entrada já está definido como padrão. Você pode verificar isso executando o seguinte comando em um terminal aberto sudo ufw status verbose. Se não me engano, a definição explícita dessa regra não permitirá suas portas permitidas. Se você deseja bloquear todas as portas, exceto aquelas, sugiro que você verifique este segmento, pois é exatamente isso que eles fazem. É muito completo, bloqueando todos, exceto aqueles, e você terá as portas abertas que deseja. ubuntuforums.org/showthread.php?t=1893751
mchid 26/10
@ Developer106 Adicionei algumas regras para bloquear globalmente todas, exceto 22, 53, 80 e 443, e negar ou bloquear todas as outras portas.
Mchid 26/10/2014
ok ele só funciona quando especificar negar outse eu disser denysem dizer que é para fora especificamente, ainda não funciona. qual poderia ser a causa disso?
engma #
@ Developer106 o que não funciona, não está bloqueando ou não está permitindo?
Mchid 30/10
7

FYI: caso outros tenham esse problema.

Na saída detalhada do iptables, observei que as regras do ufw estão ausentes nas cadeias INPUT, OUTPUT e FORWARD. Meu sistema acabou assim quando executei o iptables -F para remover minhas regras personalizadas do FW depois de ativar o ufw em algum momento. Parece que o ufw não adiciona as regras de nível superior se algumas de suas próprias cadeias já existirem no iptables.

Acabei desinstalando o ufw, reiniciando, executei 'iptables -F' (para remover as regras anteriores do iptables que ainda estavam ativas), depois reinstalando e configurando o ufw. As regras ufw de nível superior agora estão de volta. A desinstalação / reinstalação pode não ter sido necessária. Apenas remover todas as regras do ufw do iptables, desativando o ufw e reiniciando, pode ter funcionado.

Aqui está como devem ser as cadeias de nível superior (no 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           
FixItDad
fonte
1
Isso corrigiu o problema para mim também.
precisa saber é o seguinte
1
A execução iptables -Xpara excluir todas as cadeias não integradas e a reinicialização ufwtambém funcionaram para mim.
Tblue 8/01/19
0

Eu tive o mesmo problema, algum tipo de configuração danificada ufwe fail2banalimentou a cadeia iptables. Tudo foi bloqueado assim que comecei o ufw - mesmo sem regras na ufwprópria cadeia. ufwredefinir não ajudou. Eu o reinstalei completamente, isso funcionou.

sudo apt-get purge ufw
sudo apt-get install ufw
Maso Mato
fonte
Oi Maso. Você precisou fazer alguma configuração adicional após a reinstalação?
Hee Jin
0

Para mim, esse problema foi resolvido definindo a regra de

sudo ufw default deny outgoing
sudo ufw default allow outgoing

Essa é a única coisa que funcionou, não permitindo a porta 53, permitindo o DNS, etc.

jamescampbell
fonte