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 / unix / Perguntas / 705434
Accepted
HippoMan
HippoMan
Asked: 2022-06-09 08:05:40 +0800 CST2022-06-09 08:05:40 +0800 CST 2022-06-09 08:05:40 +0800 CST

iptables não está bloqueando o acesso via portas?

  • 772

Estou correndo Debian 8.11com iptables v1.4.21e ipset v6.23, protocol version: 6.

Estou tentando bloquear o acesso a certas portas para todos, exceto um pequeno conjunto de hosts, mas parece que não está funcionando.

Em primeiro lugar, coloquei uma pequena lista de endereços IP em uma ipsetlista chamada allowed-hosts. Então, depois de executar sudo /sbin/iptables -Fe sudo /sbin/iptables -X, eu emito os seguintes comandos:

sudo /sbin/iptables -I INPUT -p tcp -m multiport --destination-port 110,143,993,995 -j DROP
sudo /sbin/iptables -I INPUT -p tcp -m multiport --destination-port 110,143,993,995 -m set --match-set allowed-hosts src -j ACCEPT

No entanto, mesmo depois de fazer isso, os clientes de endereços IP que não estão presentes allowed-hostsainda estão se conectando com êxito a todas as portas nomeadas.

Não há outras iptablesregras em vigor.

Aqui estão os resultados de sudo /sbin/iptables -L...

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             multiport dports pop3,imap2,imaps,pop3s match-set allowed-hosts src
DROP       tcp  --  anywhere             anywhere             multiport dports pop3,imap2,imaps,pop3s

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

E aqui estão os resultados de sudo /sbin/iptables-save...

# Generated by iptables-save v1.4.21 on Wed Jun  8 11:53:09 2022
*security
:INPUT ACCEPT [16777464:2727427757]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18889599:33356814491]
COMMIT
# Completed on Wed Jun  8 11:53:09 2022
# Generated by iptables-save v1.4.21 on Wed Jun  8 11:53:09 2022
*raw
:PREROUTING ACCEPT [21444955:3000669583]
:OUTPUT ACCEPT [18889599:33356814491]
COMMIT
# Completed on Wed Jun  8 11:53:09 2022
# Generated by iptables-save v1.4.21 on Wed Jun  8 11:53:09 2022
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Wed Jun  8 11:53:09 2022
# Generated by iptables-save v1.4.21 on Wed Jun  8 11:53:09 2022
*mangle
:PREROUTING ACCEPT [21444955:3000669583]
:INPUT ACCEPT [21444952:3000669415]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [18889599:33356814491]
:POSTROUTING ACCEPT [18889599:33356814491]
COMMIT
# Completed on Wed Jun  8 11:53:09 2022
# Generated by iptables-save v1.4.21 on Wed Jun  8 11:53:09 2022
*filter
:INPUT ACCEPT [2130649:527089827]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4465281:1887206637]
-A INPUT -p tcp -m multiport --dports 110,143,993,995 -m set --match-set allowed-hosts src -j ACCEPT
-A INPUT -p tcp -m multiport --dports 110,143,993,995 -j DROP
COMMIT
# Completed on Wed Jun  8 11:53:09 2022

O que posso estar fazendo incorretamente?

Agradeço antecipadamente.

** ATUALIZAÇÃO **

Em primeiro lugar, "src" realmente está sendo especificado, ao contrário do que foi sugerido no comentário abaixo. Ele aparece na linha "... src -j ACCEPT", acima.

Em segundo lugar, a sintaxe desses iptablescomandos que estou usando vem do que é mostrado tanto nos iptablesdocumentos quanto nas discussões que foram encontradas em pesquisas na web.

Em terceiro lugar, veja acima a iptables -Lsaída. Isso mostra claramente que as conexões com as portas devem ser aceitas de source=anywhereto destination=anywherepara os endereços IP na allowed-hostslista. Isso também mostra claramente que as conexões com as portas devem ser descartadas de source=anywherepara destination=anywhereos endereços IP que não estão na allowed-hostslista.

Pelo menos é o que iptablesparece estar me dizendo. No entanto, as conexões com essas portas de endereços IP que não estão na allowed-hostslista ainda estão sendo aceitas em minha máquina.

Além disso, se eu fizer ipset test allowed-hosts aaa.bbb.ccc.ddd, onde "aaa.bbb.ccc.ddd" representa um endereço IP que não está em allowed-hosts, recebo corretamente esta saída:

aaa.bbb.ccc.ddd is NOT in set allowed-hosts.

E se eu fizer ipset test allowed-hosts www.xxx.yyy.zzz, onde "www.xxx.yyy.zzz" representa um endereço IP que está em allowed-hosts, recebo corretamente a seguinte saída:

www.xxx.yyy.zzz is in set allowed-hosts.

Observando a saída de iptables-save, acima, o que mais na minha configuração pode estar fazendo com que essas conexões com portas não allowed-hostssejam aceitas?

Obrigado novamente, antecipadamente.

iptables port
  • 1 1 respostas
  • 96 Views

1 respostas

  • Voted
  1. Best Answer
    HippoMan
    2022-06-12T10:08:24+08:002022-06-12T10:08:24+08:00

    Acontece que isso está funcionando, afinal. Sinto muito pelo alarme falso.

    Eu incorretamente pensei que não estava funcionando corretamente pelo seguinte motivo ...

    Estou usando postfixe dovecot, e configurei postfixpara usar dovecotpara executar seus serviços de autenticação.

    Eu configurei dovecotpara gravar suas mensagens de depuração e log em um arquivo chamado /var/log/mailclient.log, enquanto postfixestá configurado para logar via syslog.

    Eu não estava pensando claramente e esqueci o fato de que postfixas tentativas de autenticação do ' também fariam com que as entradas aparecessem nesse mesmo dovecotarquivo de log, já que dovecoté aquele que está realizando essa postfixautenticação.

    Estou usando apenas minhas iptablesregras para bloquear pop3e imap(portas 110, 143, 993 e 995), e não estou bloqueando postfixas portas de .

    Dada a forma como configurei a postfixautenticação, há entradas nesse /var/log/mailclient.logarquivo para todas as postfixtentativas de login, bem como para as dovecottentativas de login. Eu não estava prestando atenção ao ler essas entradas neste arquivo de log e, erroneamente, pensei que eram tentativas de login para pop3e imap, em vez de smtptentativas de login. Portanto, confundi essas smtptentativas de login (que não estou bloqueando) com tentativas de pop3login imap.

    Uma vez que entendi meu erro, examinei e analisei com mais cuidado meu dovecotarquivo de log e agora percebo que, de fato, nenhuma das conexões pop3nem imapestá chegando ao pombal, exceto aquelas que se originam do pequeno subconjunto de hosts que coloquei no meu lista de "hosts permitidos" ipset.

    Portanto, as iptablesentradas que listei acima estão realmente funcionando corretamente, afinal.

    Mais uma vez, peço desculpas pelo meu alarme falso, e estou feliz que isso esteja funcionando.

    Talvez esta pergunta e discussão possam ajudar alguém no futuro que possa cometer o mesmo erro que eu cometi.

    • 0

relate perguntas

  • Uma pequena dúvida sobre MASQUERADE e SNAT/DNAT

  • iptables não filtra tráfego em ponte

  • iptables persistentes

  • Regras do Iptables para permitir que o appVM passe pelo proxyVM configurado para passar apenas por uma VPN no QubesOS

  • Como fazer todo o tráfego passar por uma interface no Linux

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk 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