Como obtenho firewalld para restringir o acesso a todos, exceto endereços IP especificados?

3

Eu gostaria de receber ajuda com a configuração do firewalld, por favor. Aqui está um pouco de fundo. Tudo o que quero fazer é impedir que todos os acessos, exceto endereços IP permitidos, sejam executados em um aplicativo da Web em https.

Eu fiz muito googling. Aprendi várias coisas, mas nenhuma funcionou ainda. Aqui está o que eu fiz:

  1. Eu posso dizer que o firewalld está sendo executado

    # systemctl status firewalld
    
    firewalld.service - firewalld - dynamic     firewall daemon    Loaded: loaded
    (/usr/lib/systemd/system/firewalld.service; enabled)    Active: active
    (running)
    

também com

    # firewall-cmd –state
    running
  1. Eu tenho as zonas padrão

    # firewall-cmd --get-zones
    block dmz drop external home internal public trusted work
    
  2. Minhas zonas ativas incluem:

    # firewall-cmd --get-active-zones
    public
    sources: 192.72.0.193 192.72.0.0/22 94.27.256.190
    
  3. Minha zona padrão é pública:

    # firewall-cmd --get-default-zone
    public
    
  4. Os detalhes do público são:

    public (default)   
    interfaces:   
    sources: 192.72.0.193 192.72.0.0/22 94.27.256.190   
    services: http https ssh   
    ports:   
    masquerade: no   
    forward-ports:   
    icmp-blocks:   
    rich rules:
    

Meu entendimento é que a configuração da zona pública acima restringirá somente a concessão a solicitações de qualquer um dos endereços IP especificados. No entanto, quando tento acessar o link de um IP fora da lista, ele permite isso.

    
por pi. 16.04.2015 / 13:36

1 resposta

2

uma opção é remover o serviço: https da zona

firewall-cmd --zone=public --remove-service=https

e, em seguida, use o que é conhecido como regras avançadas para especificar quais origens [endereços IP] podem acessar o serviço [como http e https] da seguinte forma:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="x.x.x.0/24" service name="https" log prefix="https" level="info" accept'

pode ser necessário recarregar embora

    
por 16.04.2015 / 17:23