terça-feira, 10. novembro 2009
Sou aluno da UFABC e faço aula de Segurança de Dados com o prof° Carlos Kamienski e trabalhamos hoje na aula de firewalls e NAT, com o programa iptables que é nativo nas versões do Linux acima da 2.4.x. Esse programa define as regras para o aceitamento ou não de pacotes.
O que é um firewall?
Um firewall é um dispositivo que funciona como uma parede de fogo, que queima toda conexão entre redes que não lhe é permitida pelas regras delimitadas. Um uso típico é situá-lo entre uma rede local e a rede Internet, como dispositivo de segurança para evitar que os intrusos possam acessar à informação confidencial.
Um firewall é simplesmente um filtro que controla todas as comunicações que passam de uma rede a outra e em função do que sejam permite ou denega seu passo. Para permitir ou denegar uma comunicação o firewal examina o tipo de serviço ao que corresponde, como podem ser o web, o correio ou o IRC. Dependendo do serviço o firewall decide se o permite ou não. No mais, o firewall examina se a comunicação está entrando ou saindo e dependendo da sua direção pode permití-la ou não.
Deste modo, um firewall pode permitir de uma rede local para a Internet serviços de web, correio e ftp, mas não a IRC que pode ser desnecessário para nosso trabalho. Também podemos configurar os acessos que se fazem desde a Internet para a rede local e podemos denega-los todos ou permitir alguns serviços como o da web, (se é que possuímos um servidor web e queremos que seja acessível pela Internet). Dependendo do firewall que tenhamos também poderemos permitir alguns acessos à rede local desde a Internet se o usuário tiver se autenticado como usuário da rede local.
Um firewall pode ser um dispositivo software ou hardware, ou seja, um aparelhinho que se conecta entre a rede e o cabo da conexão à Internet, ou então um programa que se instala na máquina que tem o modem que conecta com Internet. Inclusive podemos encontrar computadores muito potentes e com softwares específicos que o único que fazem é monitorizar as comunicações entre redes.
O jeito certo “right mode” para fazer o firewall consiste no modo como é feito aqui na UFABC, onde por padrão todos os pacotes são negados, ou seja, caso venha um pacote que não está no conjunto de regras delimitados no iptables, ele os descarta por padrão, evitando assim o uso de portas estranhas e programas com malwares.
Iptables
O Iptables é um programa de firewall nativo nas versões do linux que contém o kernel maior que 2.6.20, e funciona a partir da delimitação de um conjunto de regras, executadas apenas com o acesso de root no sistema. Abaixo segue alguns comandos com uma breve explicação em português :
iptables [-t tabela] comando [regra [regra estendida]] [opção <parametro> [-] alvo]
- t <tabela> / Parâmetro opcional que especifica a tabela. O default é a tabela filter
Comando
Algumas operações com as cadeias:
-N | –new-chain <chain> / Cria uma cadeia definida pelo usuário
-F | –flush [<chain>] / Apaga conteúdo da cadeia, ou de todas as cadeias se nenhuma for especificada
-X | –delete-chain [<chain>] / Remove a chain, ou todas as chains se nenhuma for especificada
-P | –policy <chain><policy> / Define a política padrão de uma das chains pré-definidas INPUT, OUTPUT, FORWARD como ACCEPT ou DROP
-L | –list [<chain>] / Lista as regras de uma chain, ou de todas as chains se nenhuma for especificada
-h | <comando> -h / Lista os comandos e opções do iptables, ou se precedida por um comando lista a sintaxe e opçoes do comando
Regra
Algumas regras:
-p ou – protocol <protocol> / Define o protocolo de rede Ex: tcp, udp, or icmp)
-s ou –source <address/mask> / Define o endereço ou a máscara que envia o pacote (Ex: 200.133.70.5)
-d ou –destination <address/mask>/ Define o endereço ou a máscara a quem será enviado o pacote (Ex: 200.133.70.5)
Operações com regras:
-A | –append <chain> / Adiciona uma regra no fim da chain
-I | –insert / Insere uma regra no início da chain
-D | –delete <chain> <num regra> / Apaga a regra da chain na posição <num regra>