Trabalhando com NAT no PFSense Este artigo está sendo feito para Divulgar o Curso PFSense presencial, que irá ocorrer em fevereiro 23, com duração de 10 dias, indo até dia 6 de Março, com horário entre 20:00 até as 22:00. Mas detalhes do curso poderá ser vista nesta página : Este tutorial tem como objetivo, mostrar como se configura acesso à um Servidor em uma DMZ. Não somente isso mas também o acesso da Rede Interna a DMZ, bem como ensinar novas formas de conexão para um host dentro da rede sem uso de NAT através de Túnel SSH. Em nosso ambiente teremos 4 interfaces: 2 WANs, 1 LAN e uma DMZ. Veja abaixo os endereços: Temos um cliente na rede LAN, Windows XP e um Servidor WEB na DMZ, um Linux, que tem o endereço IP 10.0.0.2. Num primeiro momento, deixei as regras LAN any to any, e DMZ any to any. Apesar de não ser o adequado para um DMZ, o foco aqui não é a DMZ e sim o NAT de fora da Internet para DMZ.
Neste momento a rede DMZ e LAN se comunicam entre si, bem como com a Internet. O que queremos agara é permitir que a internet acesse nosso servidor WEB e para isso precisamos criar uma NAT. Se existir mais de um endereço público disponível, também é possível utilizar ele como um IP VIP, para se acessível através do NAT enviando o trafego para o Servidor WEB. Neste momento vou indicar que temos somente um endereço WAN por rede WAN. Ou seja, eu possuo 2 interfaces WAN mas de redes distintas, de forma que se quiser que meu servidor WEB seja acessível de ambas terei que criar duas regra de Nat. Neste NAT irei criar uma configuração apenas para permitir HTTP, ou seja porta 80. Mas é possível criar um NAT de tudo, usando NAT 1:1. Vamos a primeira. Vou criar uma regra de NAT para interface WAN 1 (192.168.1.38). Vamos em Firewall -> NAT-> Port Forward: Temos as seguintes configurações: Interface: Wan1 Protocol: TCP Destination: Wan1 address Destination port Range: 80 Redirect target IP: 10.0.0.2 (Enderço IP do Web Server) Redirect target port: 80
Note que abaixo, irá existir uma campo chamado Filter Rule association, que deverá ser marcada com : Add associated filter rule ou Add unassociated filter rule, para que seja criada uma regra de firewall que permita o trafego da Wan1 para DMZ. Caso não seja marcado, será necessário a criação da mesma. A regra criada automaticamente na WAN1 será a seguinte:
Com isso nosso servidor WEB já está disponível através da interface WAN1. Caso também queiramos disponibilizar através da Wan2, o mesmo procedimento deverá ser feito na Wan2. Agora vamos a uma segunda situação. Temos um servidor TS ( Terminal Server ) Windows, e queremos acessa-lo de fora, mas não queremos deixar totalmente exposto. O que podemos fazer? Neste segundo caso podemos então utilizar Túneis SSH para um conexão segura. Com um túnel SSH não é necessário criação de nenhuma regra de firewall, NAT e nosso servidor não fica exposto na Internet. Criando um Túnel SSH Logicamente para funcionar esse tipo de acesso devemos habilitar o SSH no nosso PFSense. E somente. Mais nada é necessário em relação a configuração. Para habilitar o SSH devemos ir em System -> Advanced ->Secure Shell. Marque o item Enable Secure Shell. Salve e pronto. Em nosso PFSense já está tudo configurado. Agora para usarmos o Terminal Service, devemos ter um Cliente de TS (Remote Desktop Windows, tsclient Linux), e um cliente SSH. O cliente ssh no Linux já meio que padrão, mas talvez seja necessário instalar o pacote ssh no Debian Like, openssh-clients no Red Hat cliente. Para Microsoft possuímos o putty, e um que gosto muito MobaXterm. Vejamos a linha de comando no Linux primeiramente ( A mesma linha para o MobaXterm no Windows), posteriormente mostrarei no Putty em um Windows. A sintaxe do comando é: ssh L maquinalocal:portalocal:maquinalanremota:portaremota usuario@ip_pfsense ssh L :1000:192.168.10.2:3389 admin@192.168.1.38
Neste caso tenho um maquina (192.168.10.2 ) na minha LAN que será o servidor Windows com TS. Usei localhost como máquina local, e porta 1000 para porta local. Quando for utilizar o cliente de TS tenho que apontar para esse ip => localhost:1000, que ele enviará tudo para 192.168.10.2:3389 utilizando o túnel fechado com 192.168.1.38 (Simulando IP público da Internet do PFSense). Já no Putty é um pouquinho diferente. Colamos as informações de conexão normalmente, em hostname -> 192.168.1.38, e port 22. Devemos ir agora em Connection -> SSH -> Tunnels, e preencher os seguintes campos: Source port : 1000 Destination : 192.168.10.2:3389 Devemos deixar marcado Local e Auto. E clicar em ADD para adicionar. Feito isso, basta iniciar a conexão. Veja abaixo a imagem: Com a conexão já estabelecida, basta iniciar o cliente Desktop, apontando para Localhost na porta 1000:
Desta forma temos a segurança de não expor nossos serviços à Internet. Faça download do Vídeo Tutorial, para isso basta preencher o formulário abaixo, que será enviado para seu e-mail o endereço do link.