Como configurar o seu Raspberry PI contra hackers?
Por David Jesus para o Pplware Todos nós temos a noção que é importante dispormos de mecanismos de segurança nos nossos PC’s. Para quem é utilizador do Linux certamente que já ouviu falar do iptables (firewall)…..mas provavelmente nunca o usou devido à sua complexidade.
O iptables é uma ferramenta bastante poderosa por si só, que vem por omissão nas distribuições Linux…logo está também disponível para o Raspberry PI. Hoje vamos ensinar como podem proteger o vosso Raspberry PI.
O IPtables é um mecanismo de segurança que permite controlar tráfego IP ao nível dos pacotes (layer 3). De uma forma geral, com o iptables podemos definir uma sequência de regras que permitem ou bloqueiam determinados serviços/aplicações. Os serviços/aplicações usam normalmente o protocolo UDP ou TCP – Para saber mais basta aceder aqui.
Antes de procederem à configuração do iptables não se esqueçam de alterar a password de acesso ao Raspberry PI (isto para os utilizadores que ainda não o fizeram).
Para configurarem o iPtables no Raspberry PI devem seguir os seguintes passos:
Passo 1) Para que as nossas regras fiquem guardadas num ficheiro (em /etc/network/iptables) devem executar o seguinte comando
sudo bash -c 'iptables-save > /etc/network/iptables'
Passo 2) Para que as regras sejam carregadas antes do mini PC se ligar a rede, vamos acrescentar a seguinte linha no final do ficheiro que mantém as configurações da rede.
pre-up iptables-restore < /etc/network/iptables
Passo 3) Vamos agora criar as regras que necessitamos. Para este exemplo vamos deixar algumas regras simples. Para isso basta editar o ficheiro (/etc/network/iptables) e incluímos lá a seguintes regras:
*filter
#
# Permitir todo o tráfego para a interface loopback e rejeitar todo o tráfego para a rede 127.0.0.0/8 (excluindo o endereço usado pela loopback)
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
#
# Aceitar todas as comunicações já estabelecidas
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Permitir todo o tráfego de saída
-A OUTPUT -j ACCEPT
#
# Permitir HTTP e HTTPS (à entrada)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
#
# Permitir acesso via SSH
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
#
# Permitir protocolo ICMP (vulgo ping)
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
#
# Registar todos os pedidos rejeitados via "dmesg"
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
#
# rejeitar tudo o resto
-A INPUT -j REJECT
-A FORWARD -j REJECT
#
COMMIT
Passo 4) Depois de criamos as regras de firewall basta carregá-las no sistema usando o seguinte comando:
sudo iptables-restore /etc/network/iptables
Para vermos as regras carregadas, podem usar o comando sudo iptables-save
E pronto, está feito. Este tutorial é um pequeno exemplo daquilo que podem fazer com o iptables. Este mecanismo de segurança oferece muitas outras possibilidades que podem encontrar por aqui.
Ainda não tem o novo Raspberry PI? Aproveite aqui a nossa promoção em parceria com a Inmotion
Este artigo tem mais de um ano
Porreiro!
Só uma pergunta:
Eu tenho o meu Raspberry Pi configurado como VPN Server seguindo este tutorial https://pplware.sapo.pt/linux/raspberry-pi/raspberry-pi-instalar-e-configurar-servidor-vpn-pptp-parte-i/ , tenho de adicionar alguma excepção extra para não bloquear a connecção a essa VPN, ou tal como está é suficiente?
Obrigado!
Sim, tens de adicionar uma excepção para a porta TCP 1723.
Também tens de garantir que podes fazer routing.
Algo do estilo:
:POSTROUTING ACCEPT [77:4620]
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o ppp+ -j MASQUERADE
-A POSTROUTING -s 192.168.X.0/24 -o eth0 -j SNAT –to-source 192.168.X.X
-A POSTROUTING -s 192.168.X.0/24 -o eth0 -j SNAT –to-source 192.168.X.X
Neste momento tou fora do país e preciso de usar a VPN e não posso arriscar deita-la a baixo e ficar sem accesso ao PI, logo não posso fazer o teste, mas quando chegar a Portugal irei experimentar!
Obrigado pela dica!
Testei dessa forma e não consegui mas desta já consegui aqui fica o que deves adicionar ao ficheiro
http://bit.ly/1pMT1sf
Search and Replace:
“Rasberry PI” -> “Linux”
There, I fixed it for you.
Mesma base, mesmas instruções 😉
No meu caso uso o OpenElec no qual os comandos SUDO vem desactivos por defeito, sabem como posso configurar o iptables no openelec?
Não te preocupes com isso. Se não está “exposta” à Internet, não tens nada com que te preocupar…
Boa noite segui o vosso tutorial mas ao executar o ultimo comando
sudo iptables-restore /etc/network/iptables
dá-me o seguinte erro :
iptables-restore v1.4.14: no command specified
Error occurred at line: 112
Try `iptables-restore -h’ or ‘iptables-restore –help’ for more information.
antes demais obrigado
V~E se ajuda
http://languor.us/error-message-iptables-restore-v1-x-x-no-command-specified
Se colaste directamente o “conteúdo do ficheiro”, ficou com espaços entre todas as linhas tenta apagar esses espaços e continuar os passos a partir do passo (4).
Espero ter ajudado!
Boas pessoal, tenho uma duvida:
instalei o iptables atraves do user pi.
criei a lista da iptables com as regras atraves do mesmo user..
Entrando no ssh pelo user PI ou ROOT, o iptables e carregado na mesma? ou seja, a iptables e geral e abrange todos os users?
Pergunto isto pois quero restringir o acesso ao pi.. pois andam IP’s da china a bater na minha porta 22.. e eu queria dar drop deles.. a minha questão é se basta adicionar o drop dos ips na iptable através do user pi ou se tem de ser como root. Alguma diferença?
Espero ter-me feito entender.
Cumprimentos
Alguem poderia mim informar como faço pra tirar o firewall , quando configurado no android pra usar como ssh, no App http injector, na to conseguindo mim conectar na internet devido o firewall da porta 443.
Alguém pra mim ajudar?