Sumário Firewall: Linux 19 de agosto de 2014 19 de agosto de 2014 1 / 1 19 de agosto de 2014 2 / 1 O iptables é um firewall que funciona a nível de pacotes. Para visualizar as regras do firewall acesse o terminal e digite o comando: iptables -L como usuário root, assim como apresentado na Figura 1. Principais características: Especificação de portas/endereços de origem e destino; Suporte a protocolos TCP/UDP/ICMP; Suporte a interfaces de origem e destino de pacotes; Tratamento de tráfego dividido em chains (cadeias); Permite um número ilimitado de regras por chain; Muito rápido, estável e seguro; Figura: Visualização das regras do firewall 19 de agosto de 2014 3 / 1 19 de agosto de 2014 4 / 1
A Figura 2 os três chains (cadeia) de regras embutidas: INPUT, FORWARD e OUTPUT. Além disso também apresenta as poĺıticas do firewall, neste caso todas aceitam (ACCEPT ) as conexões a não ser que haja especificação ao contrário. Existem dois tipos de chains (cadeias): os embutidos: INPUT, OUTPUT, FORWARD; os criados pelo usuário. Os nomes dos chains são sensitive-case, então input é diferente de INPUT. Figura: Poĺıticas do firewall. 19 de agosto de 2014 5 / 1 19 de agosto de 2014 6 / 1 Adicionando Regras 1 Para alterar qualquer configuração no firewall primeiramente deve-se entrar como root. Faça o comando sudo su e digite a senha do usuário. 2 Teste se o site www.analistasi.com.br está respondendo. Use o comando: ping www.analistasi.com.br Figura: Autenticação como root. 19 de agosto de 2014 7 / 1 Figura: Teste de conexão com um site. Resposta recebida com sucesso. 19 de agosto de 2014 8 / 1
3 Adicione uma regra para bloquear o site com o comando: iptables -A OUTPUT -d www.analistasi.com.br -j DROP 4 Aperte ENTER. Se nenhuma mensagem de erro aparecer significa que o comando foi executado com sucesso. Figura: Comando para adicionar regra de bloqueio. Figura: Comando executado com sucesso. 19 de agosto de 2014 9 / 1 19 de agosto de 2014 10 / 1 Os tipos de alvos -j X: Entendendo o comando: iptables -A OUTPUT -d www.analistasi.com.br -j DROP -A OUTPUT: especifica que irá adicionar uma regra no chain OUTPUT; -A significa append (acrescentar), OUTPUT especifica as regras de saída; -d www.analistasi.com.br: especifica que se trata do destino www.analistasi.com.br. -d significa destination (destino); -j DROP: especifica o que irá fazer com as mensagens (pacotes) deste destino, neste caso DROP (perder). -j significa jump (pular). ACCEPT: o pacote é aceito e termina-se a análise do chain corrente; DROP: o pacote é rejeitado e termina-se a análise do chain corrente; REJECT: faz a mesma função do alvo DROP, sua diferença é que ele notifica a origem dizendo que a porta ou o host está inacessível; LOG: envia uma mensagem ao syslog para armazenar um registro da comunicação. Este alvo não rejeita e nem aceita a comunicação. Após chegar nele o processamento das outras regras do chain continua; RETURN: o processamento volta para o chain anterior; QUEUE: passa o processamento para outro programa a nível de usuário. 19 de agosto de 2014 11 / 1 19 de agosto de 2014 12 / 1
5 Para visualizar as regras do firewall emita o comando: iptables -L. 6 Agora teste novamente a conexão com o site bloqueado. Use o comando: ping www.analistasi.com.br. Figura: Regras do firewall. Note a regra no chain OUTPUT. Figura: Teste de conexão com o site bloqueado. 19 de agosto de 2014 13 / 1 19 de agosto de 2014 14 / 1 1 Também pode-se bloquear uma única porta específica de um destino. Use o comando para bloquear a porta 21 do destino ftp.unicamp.br: iptables -A OUTPUT -d ftp.unicamp.br -p tcp dport :21 -j DROP 2 Tente acessar o site da Unicamp via HTTP (porta 80). Abra o navegador e coloque o endereço: http://ftp.unicamp.br/pub/freebsd. Ele deverá abrir porque a porta 80 está liberada. Figura:. Figura: Arquivos disponibilizado via HTTP. 19 de agosto de 2014 15 / 1 19 de agosto de 2014 16 / 1
3 Agora tente acessar usando o protocolo FTP (porta 21). Acesse o endereço: ftp://ftp.unicamp.br/pub/freebsd. Deverá demorar carregando até dar o tempo limite de resposta, isto porque esta porta para este destino está bloqueada. 4 Remova a regra usando o comando: iptables -D OUTPUT -d ftp.unicamp.br -p tcp dport :21 -j DROP; Figura: Regra excluída. Figura: Tempo limite atingido. 19 de agosto de 2014 17 / 1 19 de agosto de 2014 18 / 1 Limpando Todas as Regras 5 Agora tente acessar novamente o site da Unicamp via protocolo FTP. O endereço é: ftp://ftp.unicamp.br/pub/freebsd. Desta vez deverá carregar o conteúdo. 1 Para limpar todas as regras do firewall basta utilizar o comando: iptables -F. Este comando também aceita especificar o chain que deseja limpar. Ex.: iptables -F INPUT. Figura: Conteúdo carregado via FTP. 19 de agosto de 2014 19 / 1 Figura: Limpando todas as regras. 19 de agosto de 2014 20 / 1
Limpando Todas as Regras Removendo Regras 2 Agora, liste as regras usando o comando: iptables -L 1 Adicione uma regra para bloquear o site www.analistasi.com.br. Use o comando: iptables -A OUTPUT -d www.analistasi.com.br -j DROP 2 Liste as regras com o comando: iptables -L; 3 Teste a conexão com o comando: ping www.analistasi.com.br Figura: Listando todas as regras. Figura: Site bloqueado. 19 de agosto de 2014 21 / 1 19 de agosto de 2014 22 / 1 Removendo Regras Removendo Regras 4 Para remover a regra use a opção -D no lugar da opção -A. Através do comando: iptables -D OUTPUT -d www.analistasi.com.br -j DROP; 6 Por último teste a conexão para ver se o acesso ao site voltou a funcionar. Use o comando: ping www.analistasi.com.br. 5 Liste as regras com o comando: iptables -L. Figura: Regra excluída. 19 de agosto de 2014 23 / 1 Figura: Acesso ao site liberado novamente. 19 de agosto de 2014 24 / 1
Referências I MORIMOTO, C. E. Redes: guia prático. Porto Alegre: Sul Editores, 2011. 19 de agosto de 2014 25 / 1