O primeiro passo para usar o serviço IPTables é iniciá-lo. Isto pode ser feito com o comando:
service iptables start |
![]() | Atenção | |
---|---|---|
Os serviços IP6Tables devem ser desligados para usar o serviço IPTables, com os seguintes comandos:
|
Para fazer com que o IPTables inicie por default sempre que a máquina for iniciada, você deve alterar o status do nível de execução (runlevel) do serviço, usando chkconfig.
chkconfig --level 345 iptables on |
A sintaxe do IPTables é separada em camadas. A camada principal é a corrente (chain). Uma corrente especifica o estado no qual um pacote será manipulado. O uso é o seguinte:
iptables -A chain -j target |
O -A acrescenta uma regra no fim de um conjunto de regras existentes. A chain é o nome da corrente para uma regra. As três correntes embutidas do IPTables (ou seja, as correntes que afetam todos os pacotes que trafegam pela rede) são INPUT, OUTPUT e FORWARD. Estas correntes são permanentes e não podem ser deletadas.
![]() | Importante | |
---|---|---|
Ao criar um conjunto de regras do IPTables, é crucial lembrar que a ordem é importante. Por exemplo: uma corrente especifica que todos os pacotes da sub-rede local 192.168.100.0/24 sejam derrubados. E então a corrente é adicionada (-A), o que permite pacotes do 192.168.100.13 (que está dentro da sub-rede restrita derrubada); então a regra adicionada é ignorada. Você deve definir uma regra para permitir 192.168.100.13 primeiro, e então definir uma regra para derrubar na sub-rede. Para inserir uma regra arbitrariamente em um conjunto de regras existentes, use -I, seguido pelo conjunto no qual deseja inserir a regra e pelo número da regra (1,2,3,...,n) onde você deseja que a regra resida. Por exemplo:
A regra é inserida como a primeira no conjunto INPUT para permitir o tráfego do dispositivo loopback local. |
Algumas normas básicas estabelecidas desde o começo podem auxiliar na construção de regras detalhadas definidas pelo usuário. O IPTables usa normas (-P) para criar regras default. Administradores com foco na segurança geralmente escolhem derrubar todos os pacotes como uma norma e só permitem pacotes específicos, analisando-os caso-a-caso. As seguintes regras bloqueiam todos os pacotes entrando e saindo de uma porta de comunicação (gateway) de rede:
iptables -P INPUT DROP iptables -P OUTPUT DROP |
Adicionalmente, é recomendado que qualquer pacote encaminhado — tráfego de rede roteado do firewall para seu nódulo de destino — seja negado também, para restringir clientes internos de exposição inadvertida à Internet. Para fazer isso, use a seguinte regra:
iptables -P FORWARD DROP |
![]() | Nota |
---|---|
Há uma distinção entre as ações REJECT (rejeitar) e DROP (derrubar) um alvo quando estamos lidando com regras adicionais. REJECT um alvo nega acesso e retorna um erro conexão negada (conexão negada) para usuários que tentarem se conectar ao serviço. A DROP, como o nome sugere, derruba os pacotes sem nenhum aviso para usuários do telnet. Administradores podem usar sua própria prudência ao lidar com estes alvos; entretanto, para evitar a confusão do usuário e tentativas para continuar a conexão, a REJECT alvo é recomendada. |
Após definir os cojuntos de normas, crie novas regras para a sua rede e seu requisitos de segurança em particular. As seguintes seções descrevem algumas regras que você talvez queira implementar enquanto constrói seu firewall IPTables.
Regras de firewall são válidas somente enquanto o computador estiver ligado. Se o sistema for reinicializado, as regras serão automaticamente eliminadas e restauradas. Para salvar as regras de modo que elas sejam carregadas posteriormente, use o seguinte comando:
/sbin/service iptables save |
As regras são armazenadas no arquivo /etc/sysconfig/iptables e são aplicadas sempre que o serviço é iniciado, reiniciado ou quando a máquina é reinicializada.