AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1073725
Accepted
nagylzs
nagylzs
Asked: 2021-08-07 01:36:03 +0800 CST2021-08-07 01:36:03 +0800 CST 2021-08-07 01:36:03 +0800 CST

fail2ban não usa o tipo de bloco DROP

  • 772

Usando o Ubuntu 20.04 LTS, tenho isso em /etc/fail2ban/jail.local:

[DEFAULT]
bantime   = 3600
banaction = iptables
blocktype = drop


[sshd]
enabled   = true
protocol  = tcp
port      = ssh
filter    = sshd
logpath   = /var/log/auth.log
maxretry  = 3

Mas é isso que vejo quando listo as regras do iptables:

╰─# iptables -L f2b-sshd -n -v
Chain f2b-sshd (1 references)
 pkts bytes target     prot opt in     out     source               destination
   13  1356 REJECT     all  --  *      *       222.187.232.205      0.0.0.0/0            reject-with icmp-port-unreachable
   18  1516 REJECT     all  --  *      *       221.181.185.153      0.0.0.0/0            reject-with icmp-port-unreachable
   17  1064 REJECT     all  --  *      *       222.186.180.130      0.0.0.0/0                  777 55854 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

O problema é que ele usa REJECT (com ICMP) em vez de DROP.

O action.d/iptables.conf contém isto:

# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    See jail.conf(5) man page
# Values:  CMD
#
actionban = <iptables> -I f2b-<name> 1 -s <ip> -j <blocktype>

É o arquivo de ação padrão do iptables, fornecido com o pacote apt fail2ban oficial para esta versão do SO.

Também tentei adicionar "blocktype=drop" em [sshd], mas não tem efeito.

Não tenho certeza de como depurar isso, porque o serviço fail2ban não registra os comandos reais do iptables.

o que estou perdendo?

fail2ban
  • 2 2 respostas
  • 1479 Views

2 respostas

  • Voted
  1. Best Answer
    sebres
    2021-08-07T10:14:17+08:002021-08-07T10:14:17+08:00

    Para fornecer algum parâmetro para a ação de single jail, você deve definir actioncom todos os parâmetros (também normalmente fornecidos na seção padrão de jail.conf) ou em caso de ação de banimento, você pode usar algo assim:

    [some_jail]
    banaction = %(known/banaction)s[blocktype=DROP]
    

    Com relação ao tema DROP vs. REJECT, a discussão é tão antiga quanto o próprio subsistema net-filter, com muitos prós/contras para ambos os lados.
    Relacionado a questões de banimento, consulte https://github.com/fail2ban/fail2ban/issues/2217#issuecomment-423248516 para obter detalhes.

    • 1
  2. nagylzs
    2021-08-07T11:27:30+08:002021-08-07T11:27:30+08:00

    Eu aceitei a solução de @sebres, mas gostaria de adicionar algumas pegadinhas.

    Para banaction iptables-allports, o tipo de bloco de rejeição pode ter espaços dentro. Você precisa citar isso.

    Exemplo:

    [sshd]
    banaction=iptables_allports[blocktype="REJECT --reject-with icmp-port-unreachable"]
    

    Segunda coisa interessante: tanto a configuração banaction quanto a jail config possuem um parâmetro chamado "protocol". Fiquei confuso pela primeira vez quando a configuração abaixo não estava gerando nenhum erro, mas não bloqueou solicitações UDP:

    [named-ddos]
    banaction=iptables_allports[blocktype=DROP,protocol=all]
    

    Isso aconteceu porque eu estava perdendo a configuração protocol=all da jail. Você precisa especificar protocol=all no nível de jail:

    [named-ddos]
    banaction=iptables_allports[blocktype=DROP,protocol=all]
    protocol=all
    

    A razão para isso é que a seção named-ddos cria uma nova cadeia no iptables, e os ips banidos estão criando regras dentro dessa cadeia. Se você não especificar protocol=all no nível da jail, a cadeia será definida assim:

    Chain INPUT (policy DROP 22 packets, 952 bytes)
     pkts bytes target     prot opt in     out     source               destination         
     1371  229K named-ddos  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           
    

    É verdade que a banaction criará regras com proto=all dentro da chain , mas a chain em si não será usada para pacotes não-tcp. A conclusão é que você precisa especificar protocol=all tanto no nível de jail quanto no banaction (se ele suportar), caso contrário não funcionará.

    • 0

relate perguntas

  • Os servidores AWS precisam de fail2ban?

  • Qual arquivo de log Nginx é para fail2ban?

  • O filtro de login Fail2Ban não está funcionando no Debian Web Server

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve