Firewall para sua rede doméstica com Raspberry Pi

Embora o Raspberry Pi 3 tenha sido anunciado recentemente , o Raspberry Pi 2 ainda tem muita vida e é mais do que adequado para muitas tarefas interessantes e úteis.

Eu tenho algumas poucas framboesas sentadas ao redor que eu tenho explorado para outros projetos interessantes, um dos quais é a possibilidade de substituir um servidor de rack Intel de núcleo único de 64 bits muito antigo que eu uso para o firewall primário e o roteador no borda da minha rede. Mas antes de interromper o firewall principal e o gateway da minha rede, queria testar o Pi um pouco e ver exatamente o que seria necessário para que isso acontecesse.

 

Substituindo uma torre

 

 

Eu também tenho uma torre Intel de núcleo duplo que uso como firewall e porta lateral para minha rede. Este computador é um exagero extremo para essa tarefa, e eu definitivamente posso usá-lo em um papel mais apropriado. Como este computador fornece acesso não crítico à minha rede, decidi substituí-lo por um Raspberry Pi 2 Model B como teste.

 

Fonte de energia

Eu usei o Raspberry Pi 2 Model B, mas um Raspberry Pi 3 também deveria funcionar. Eu instalei o Pi a partir de um bloco de energia USB de 5V 1.8 A de reposição em um cabo de extensão doméstico padrão que liguei um no-break para fornecer energia consistente. Eu usei um cabo USB muito pequeno para micro-USB do bloco de energia para o conector de alimentação no Pi.

Interruptor KVM

Eu tenho vários dos meus hosts de infraestrutura conectados a um switch KVM de 16 portas com entradas VGA e PS / 2. Eu queria usar o KVM para o Pi também. Liguei a entrada do teclado e do mouse do KVM ao Pi com um cabo adaptador USB / PS / 2. A extremidade USB se conecta ao Pi e aos conectores do plugue do cabo do comutador KVM nos conectores PS / 2 do adaptador. Eu encontrei no passado que algumas marcas do adaptador USB para PS / 2 não funcionam bem.

Para a conexão de vídeo, inicialmente usei um adaptador HDMI para VGA que é uma unidade única e sólida. Este dispositivo produziu muito calor, grande parte do qual foi transmitida para o Pi através do conector HDMI. Posteriormente, substituí a unidade única por um adaptador que tenha um curto comprimento de cabo entre o conector HDMI e o conversor VGA, além de uma unidade de conector que produz e transmite significativamente menos calor.

Instalando o CentOS

Eu uso o CentOS em meus outros servidores de infra-estrutura, então eu queria usá-lo no Pi também. Usando minha principal estação de trabalho Linux, baixei a distribuição ARM de 32 bits do CentOS Userland 7 para o Pi 2 do site do Wiki CentOS , que também contém imagens para outros computadores de placa pequena. Se você estiver usando o Raspberry Pi 3, você deve usar essa imagem em vez disso.

Observe que o nome da imagem pode mudar à medida que as imagens mais recentes são disponibilizadas. Você sempre deve usar a imagem mais recente. Descompusei o arquivo de imagem xz baixado (usando unxz) e usei o comando dd para instalar a imagem em um cartão microSD de 8GB.

dd if=CentOS-Userland-7-armv7hl-Minimal-1511-RaspberryPi2.img of=/dev/sdx

Certifique-se de especificar a localização correta da unidade microSD na sua máquina.

Não são necessárias etapas adicionais para que o cartão microSD seja inicializável. Eu inseri o cartão no slot do cartão microSD na placa Pi. Em seguida, liguei o conector micro-USB da fonte de alimentação ao conector de alimentação no Pi para inicializar até um prompt de login da interface de linha de comando.

Configuração inicial

Entrei como root usando a senha padrão de “centos” (sem as aspas) e alterei imediatamente a senha de root. Eu mudei o nome do host no / etc / hostname e segui as instruções em / root / README para expandir a partição raiz para preencher todo o espaço disponível no cartão microSD. Isso incluiu uma reinicialização.

Neste ponto, eu liguei o adaptador de rede de bordo à minha rede interna, então eu poderia instalar mais software e testar a funcionalidade da rede. Eu instalei vários utilitários que eu acho úteis, incluindo quais, tela, vim, rwhois, mlocate, Midnight Commander (mc), mailx, bind-utils, chrony e wget.

Alguns outros favoritos meus, como no topo e no htop, ainda não estão disponíveis no repositório do CentOS. Eu não instalei estes todos de uma só vez porque não sabia quais estavam faltando. Em vez disso, tive que enfrentar o problema de que uma ferramenta necessária não estava instalada e, em seguida, instalá-la à medida que progredi através das outras etapas desse processo. Felizmente, esta lista tornará as coisas um pouco mais fáceis para você. Claro, você pode usar algumas ferramentas que eu não faço, e eles também podem estar perdendo.

Eu uso chaves SSH para logins da minha rede, então copiei a chave pública SSH da minha estação de trabalho interna primária para o Pi usando ssh-copy-id .

Uma segunda interface de rede

Como este Pi deve ser usado como um firewall, eu precisava de outro adaptador de rede. Depois de tomar o eth0 down, adicionei um dumper ASIX AX88178 USB Gigabit Ethernet. Desconectei minha rede interna do adaptador de rede on-board e liguei-a ao dongle. Eu configurei o dongle como eth1 com um endereço estático na minha rede interna e configurei a Ethernet a bordo com um endereço externo estático e o conectei ao roteador do meu ISP. Certifique-se de usar a linha HWADDR = nos arquivos de configuração da interface para definir o endereço MAC ao qual o arquivo de configuração pertence. Eu também adicionei o endereço IP do gateway e pelo menos dois servidores de nomes para o arquivo de configuração da interface para o adaptador interno.

Eu trouxe ambos os adaptadores de rede e usou ifconfig e alguns comandos de ping para verificar se os adaptadores de rede estavam vinculados aos endereços IP corretos e funcionavam corretamente. Agora eu poderia entrar no Pi de uma sessão de terminal na minha estação de trabalho principal e continuar trabalhando a partir daí.

Atualizações e mais configuração

Agora era hora de instalar todas as atualizações e reiniciar – o que eu fiz. Eu acho interessante que ambas as versões atuais do CentOS para ARM usem coisas como firewalld e systemd, mas ainda usam yum em vez de dnf para gerenciamento de pacotes de alto nível.

Eu tenho alguns alias e comandos de inicialização que eu sempre adiciono ao meu ambiente quando eu instalar um novo host. Esses comandos podem ser adicionados ao / etc / bashrc , ou melhor ainda, como um arquivo separado, /etc/profile.d/mybash.sh . Qualquer arquivo em /etc/profile.d com uma extensão de nome de arquivo .sh é obtido por / etc / bashrc durante o login.

Data e hora

Esta versão do CentOS não possui nenhum tipo de sincronização de tempo instalada por padrão, então eu instalei chrony e configurei chrony.conf com o meu servidor de tempo local NTP. Eu comecei a cronograma e configure systemctl para iniciar o chronyd no arranque. Eu também configurei o link simétrico / etc / localtime para apontar para o arquivo de dados do fuso horário desejado.

Firewall

O novo  firewalld  é realmente exagerado para o meu ambiente, então instalei iptables-services e iptables-utils. Eu configurei um  arquivo padrão  / etc / sysconfig / iptables , então, depois de desativar a conexão de rede externa, parei firewalld e configure systemd para não iniciá-lo no arranque. Comecei o iptables e configure o systemd para iniciá-lo no arranque. Em seguida, eu trouxe a conexão de rede externa de volta.

Viola!

Uma vez que você alcança este ponto, o Pi é totalmente funcional como um firewall e porta lateral.

Seria fácil dar mais duas etapas e torná-lo num roteador. Primeiro, defina o conteúdo do arquivo / proc / sys / net / ipv4 / ip_forward para “1” e, em seguida, adicione ou defina a seguinte linha em /etc/sysctl.conf para “net.ipv4.ip_forward = 1” , o que torna seu computador um roteador. Em seguida, adicione linhas apropriadas para NATing de origem e encaminhamento para o firewall iptables.

Acabei de receber três novos computadores Raspberry Pi 3 ontem. Eu já tenho uma configuração com a imagem CentOS-Userland-7-armv7hl-Minimal-1602-RaspberryPi3.img e terminarei configurando-a nos próximos dias para me tornar meu principal firewall e roteador.

 

Regras IPTables

Uma pessoa perguntou nos comentários para ver as regras IPTables que eu usei para este projeto, e eu suspeito que outros também estão interessados, então aqui estão eles. É um conjunto mínimo bastante padrão que só permite entrada SSH.

 

# Gerado por iptables-save v1.4.16.2 on Thu Feb 21 14:51:28 2013 *filtro : INPUT ACCEPT [0: 0] : AVANÇAR ACEITAR [0: 0] : OUTPUT ACCEPT [0: 0] -A INPUT -m conntrack --ctstate RELACIONADO, ESTABELECIDO -j ACEITAR -A INPUT -p icmp -j ACEITAR -A INPUT -i lo -j ACEITE -A INPUT -i eth0 -j ACEITAR -A INPUT -p tcp -m conntrack --ctstate NOVO -m tcp --portado 22 -j ACEITAR -A INPUT -j REJECT --reject-with icmp-host-proibido -A FORWARD -j REJECT - rejeitar-com icmp-host-proibido COMMIT # Completado em Thu Feb 21 14:51:28 2013

Fonte:  https://opensource.com/life/16/3/firewall-your-home-network-raspberry-pi?utm_medium=Email&utm_campaign=weekly&sc_cid=701f2000000h39XAAQ
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s