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
ufw enable
e cole o resultado dasudo iptables -L -v -n
sua pergunta. Estou curioso para saber o que o subjacentenetfilter
/iptables
material está realmente fazendo com as regras do ufw. :)iptables
dados se, com essas duas primeiras linhas excluídas, você ainda estiver com esse problema.Respostas:
Abra um terminal e digite os seguintes comandos:
Comece fazendo uma redefinição, que removerá todas as regras existentes:
Próximo,
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:
Aqui está a saída:
Para permitir o acesso OpenSSH, você pode usar a seguinte regra:
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:
Se você deseja adicionar o UDP, faça isso também.
Desative e ative o ufw para aplicar as alterações:
Para mostrar suas regras:
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/tcp
por exemplo. Como alternativa, defina para saídasudo ufw deny out 1:22/tcp
e assim por diante.fonte
ufw default block incoming
depois de definir essas regras?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=1893751out
se eu disserdeny
sem dizer que é para fora especificamente, ainda não funciona. qual poderia ser a causa disso?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).
fonte
iptables -X
para excluir todas as cadeias não integradas e a reinicializaçãoufw
também funcionaram para mim.Eu tive o mesmo problema, algum tipo de configuração danificada
ufw
efail2ban
alimentou a cadeia iptables. Tudo foi bloqueado assim que comecei o ufw - mesmo sem regras naufw
própria cadeia.ufw
redefinir não ajudou. Eu o reinstalei completamente, isso funcionou.fonte
Para mim, esse problema foi resolvido definindo a regra de
Essa é a única coisa que funcionou, não permitindo a porta 53, permitindo o DNS, etc.
fonte