OpenBSD pf regras NAT baseadas em DHCP / DNS

3

Eu tenho um Proxmox instalado e uma VM OpenBSD na frente de todos os outros para desempenhar o papel de NAT, firewall, DNS e DHCP.

Eu tenho um DNS e DHCP totalmente funcional. Meu DHCP está atualizando corretamente meus registros de DNS. Meu NAT também está funcionando bem, já que minhas outras VMs podem acessar a Internet.

Agora, gostaria de ter um firewall funcional e regras NAT de entrada.

Por exemplo, eu tenho uma VM chamada nginx, que pode ser contatada através de nginx.local.lan .

Em termos curtos, é isso que eu quero fazer:

  • Redirecionar portas 80 e 443 para meu ngnix.local.lan .
  • Bloqueia tudo o que vem da interface WAN (em0), exceto o que é desejado (80 e 443 para nginx) e SSH.
  • Mas também quero permitir tudo o que vem da interface da LAN (em1).

Como sou iniciante no PF, estou completamente perdido ... Como faço isso?

Aqui está o meu arquivo pf.conf atual:

 set skip on lo
 block return    # block stateless traffic
 pass            # establish keep-state

 # Define interfaces
 ext_if=em0
 int_if=em1

 # Allow SSH connections
 pass in on $ext_if inet proto tcp from any to ($ext_if) port 22

 # Allow VMs to get out of the network
 pass out on $ext_if inet from $int_if:network to any nat-to $ext_if
    
por Bahaïka 08.01.2015 / 17:20

1 resposta

1

Eu finalmente encontrei uma maneira de fazer tudo o que eu disse antes. Eu vou explicar isso:

Em /etc/pf.conf :

Negando todo o tráfego recebido

(exceto a interface LAN)

 block in all
 pass in quick on $int_if

O primeiro bloco de linha eveything enquanto o segundo permite qualquer coisa da interface de LAN. Se você quer saber qual é a palavra-chave quick , leia esta .

Como você pode ter certeza de que está funcionando? Basta fazer um pfctl -sr , deve ser algo como:

 block drop in all
 pass in quick on em1 all flags S/SA

Redirecionando o tráfego HTTP (S) para uma VM

Como dito anteriormente, eu já configurei uma configuração de DNS, DHCP e DDNS. O que significa que, se eu tiver uma VM nginx solicitando uma concessão de DHCP, ela associará automaticamente a entrada nginx.local.lan do domínio ao IP concedido.

Sabendo disso, tentei torná-lo elegent no arquivo de configuração usando a macro:

nginx_vm_map=80 443
pass in quick on $ext_if proto tcp from any to any port {$nginx_vm_map} rdr-to nginx.local.lan

A primeira linha define as portas que eu quero redirecionar para minha VM, então eu uso essa macro $nginx_vm_map dentro da regra de natting para torná-la facilmente alterável.

    
por 08.01.2015 / 18:17

Tags