Como você vê todos os IPs banidos do Ubuntu 12.04 pela linha de comando?

36

Não consigo encontrar um comando rápido para exibir apenas todos os IPs proibidos no servidor. Ou existe um arquivo que eu possa editar?

Eu estou supondo que fail2ban é aquele que insere todos os IPs para banir. Onde ajusto as configurações?

Parece que só consigo entrar no servidor remotamente se eu desativar o ufw. Parece que não consigo descobrir como me desbanir. Eu nem sei por que fui banido em primeiro lugar. Existe algum tipo de log para visualizar todas as tentativas feitas?

Patoshi パ ト シ
fonte
5
sudo iptables -L -n?
Seth
há muita saída. o que devo procurar? i.imgur.com/zTTXJTE.png ... obrigado .. eu fiz um ufw permitir <endereço_ip> e ele ainda não funcionou. Eu não sei onde diz que está proibido.
Patoshi
Também fez um status ufw e, em seguida, desabilitou o ufw, fez um iptables -F e, em seguida, habilitou o ufw. Ainda não consigo acessar meu servidor remotamente. Meu ip claramente é mostrado na caixa de status como permitir: i.imgur.com/f7JD2Ny.png
Patoshiパトシ
você abriu a porta ssh antes de colocar o servidor no ssh?
Qasim 26/06
como verifico isso? Posso fazer o SSH quando o firewall estiver desligado. então não está funcionando por padrão?
Patoshi

Respostas:

24

sudo iptables -L INPUT -v -n | less

Isso diz ao iptables para listar todas as regras na cadeia INPUT, fornecendo uma saída numérica detalhada. Estamos analisando menos para obter uma página de cada vez.

Elder Geek
fonte
2
Talvez algo tenha mudado desde 2014, mas como as coisas estão agora, essa resposta está errada, pois fail2ban não coloca as coisas em INPUTcadeia.
Billynoah
@billynoah É claro que algumas coisas mudaram. Nada na vida é estático. Por um lado, o 12.04 não está mais sob suporte. Se você ainda está usando-o eu recomendo que você atualizar para 16.04 LTS, que é suportado até abril de 2021.
Elder Geek
Não tenho certeza se você está fazendo referência à 12.04 porque eu disse 2014? Eu estava falando sobre o ano da sua resposta.
Billynoah
11
@billynoah Estou referenciando a versão 12.04 devido ao fato de ser referenciada na pergunta em que esta resposta foi fornecida. Você tem minhas desculpas por qualquer confusão que possa estar ocorrendo. :-)
Elder Geek
45

versão curta :

lista todos os ips atualmente bloqueados:

fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}' | grep "Status\|IP list"

desbanir um ip:

fail2ban-client set postfix-mail unbanip 111.222.333.444

versão longa :

se você está procurando a maneira "oficial" de fazer isso, existe um cliente de linha de comando para fail2ban https://www.fail2ban.org/wiki/index.php/Commands :

~ # fail2ban-client status
Status
|- Number of jail:      8
`- Jail list:           roundcube, sshd, sogo, postfix-sasl, postfix-mail, dovecot, ssh, sshd-ddos

então você pode correr

~ # fail2ban-client status roundcube

Status for the jail: roundcube
|- filter
|  |- File list:        /var/log/mail.log
|  |- Currently failed: 0
|  `- Total failed:     12
`- action
   |- Currently banned: 1
   |  `- IP list:       111.222.333.444
   `- Total banned:     1

ou você pode usar meu comando, que itera sobre todas as cadeias existentes:

fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}' | grep "Status\|IP list"

quais saídas:

Status for the jail: roundcube
   |  `- IP list:
Status for the jail: sshd
   |  `- IP list:
Status for the jail: sogo
   |  `- IP list:
Status for the jail: postfix-sasl
   |  `- IP list:
Status for the jail: postfix-mail
   |  `- IP list:
Status for the jail: dovecot
   |  `- IP list:
Status for the jail: ssh
   |  `- IP list:
Status for the jail: sshd-ddos
   |  `- IP list:
c33s
fonte
Deve ser a resposta aceita agora.
Basj
sem awk:fail2ban-client status | grep "Jail list:" | sed "s/`- Jail list://" | sed "s/\s//g" | sed "s/,/\n/g" | xargs -L1 fail2ban-client status | less
Quamis
21

Você pode ver todos os IPs anteriormente banidos através /var/log/fail2ban.log

sudo zgrep 'Ban' /var/log/fail2ban.log*

Porém, algumas proibições são temporárias, portanto, não tenho certeza de como melhor cancelá-las (meus logs do fail2ban estão vazios, o que dificulta o teste!). Você pode entrar em um grande esquema de contabilidade com o awkcomando, mas está ficando bem chato.

De qualquer forma, é assim que você deseja fazer se estiver procurando por uma razão pela qual foi banido.

A outra maneira é olhar para as tabelas IP e ver o que está sendo descartado. Novamente, isso tem alguns problemas, pois mostra rotas padrão que são substituídas, mas estou bloqueando regras com uma fonte 0.0.0.0/0 e que parece mantê-la limpa o suficiente para uso prático:

sudo iptables -L -n | awk '$1=="DROP" && $4!="0.0.0.0/0"'

Isso não explica por que uma proibição aconteceu.

Oli
fonte
O fail2ban é o aplicativo principal que bane e não outro aplicativo? meu servidor é apenas um servidor ubuntu básico, então eu nunca instalei mais nada nele.
Patoshiパトシ
Nesse caso, sim.
Oli
11
Observe que minha versão atual escreve NOTICE [snap-iptables] Ban 45.32.216.148- não ':'após a palavra Ban, mas espaços antes e depois.
Alexis Wilke