[Iptables] Armazenando regras no Debian Linux

Configurar regras de firewall com iptables é uma tarefa bem comum no cotidiano de qualquer administrador de sistemas Linux, porém assim como outros tipos de configuração o serviço possui suas recomendações de acordo com a distribuição utilizada.

Primeiramente vamos criar um arquivo temporário para a validação das regras:

# vim /etc/iptables.test.rules

E então colocamos nossas regras dentro dele seguindo o padrão do próprio iptables, como no exemplo abaixo:

 *filter
 
 # Allows loopback traffic and drop all traffic to 127/8 that doesn't use lo0
 -A INPUT -i lo -j ACCEPT
 -A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT
 
 # Accepts all established inbound connections
 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 
 # Allows all outbound traffic
 # You could modify this to only allow certain traffic
 -A OUTPUT -j ACCEPT
 
 # Allows HTTP and HTTPS connections from anywhere
 -A INPUT -p tcp --dport 80 -j ACCEPT
 -A INPUT -p tcp --dport 443 -j ACCEPT
 
 # Allows SSH connections
 -A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT
 
 # Allow ping
 -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
 
 # log iptables denied calls (access via 'dmesg' command)
 -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
 
 # Reject all other inbound - default deny unless explicitly allowed policy:
 -A INPUT -j REJECT
 -A FORWARD -j REJECT
 
 COMMIT

Após a criação do arquivo com suas regras carregue-as com:

# iptables-restore < /etc/iptables.test.rules

Verifique se as regras estão corretas e se é necessária alguma alteração, e caso seja necessário simplesmente repita os procedimentos citados acima.

Depois de todas as regras carregadas corretamente salve-as em um arquivo definitivo como no exemplo abaixo:

# iptables-save > /etc/iptables.up.rules

Para garantir que nossas regras sejam carregadas durante o boot do sistema é necessário criar uma entrada para o iptables juntamente com os scripts de inicialização da rede:

# vim /etc/network/if-pre-up.d/iptables

Adicionando o seguinte conteúdo:

#!/bin/bash
 
 /sbin/iptables-restore < /etc/iptables.up.rules

Não podemos esquecer de dar permissão de execução para nosso script de chamada:

# chmod +x /etc/network/if-pre-up.d/iptables

Outra maneira muito comum de armazenar e carregar regras de iptables em sistemas Linux é com a utilização de um script de init, por exemplo /etc/init.d/firewall, adicionando sua inicialização nos runlevels do sistema.

Lembrando que todos os procedimentos e informações a respeito deste tipo de configuração em sistemas Debian Linux podem ser encontrados no wiki e também na documentação oficial do Debian em http://wiki.debian.org/.

Configurando Timezone no Debian Linux

Normalmente cada distribuição Linux tem seu próprio método de configuração para o timezone, que geralmente é bem simples, porém muitas vezes encontro servidores com timezone configurado de forma incorreta, o que pode trazer problemas durante a execução de diversas aplicações.

Como grande parte das distribuições atuais seguem o padrão Red Hat ou Debian, vou postar aqui inicialmente os métodos para configuração do timezone na plataforma Debian e no próximo artigo os procedimentos para Red Hat / CentOS.

Primeiramente verifique em qual timezone seu sistema está configurado com:

luizxx@kanu:~# tzconfig
Your current time zone is set to America/Sao_Paulo
Do you want to change that? [n]:

Caso o timezone apresentado esteja incorreto pressione y para configurá-lo corretamente seguindo as instruções apresentadas na tela.

Caso você queira configurar o timezone de um local dentro do Brasil, instale o pacote tz-brasil para agilizar as configurações de horário de verão:

luizxx@kanu:~# apt-get install tz-brasil

No Debian temos algumas particularidades na estrutura de configuração dependendo da versão do sistema operacional, na versão Etch e posteriores o arquivo /etc/localtime é uma cópia idêntica do datafile original, já nas versões anteriores ao Sarge ele é um link para o arquivo original, como apresentado no exemplo abaixo:

Debian Etch:
$ diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`
Files /etc/localtime and /usr/share/zoneinfo/America/New_York are identical

Debian Sarge:
$ ls -l /etc/localtime
lrwxrwxrwx 1 root root 48 Mar 31 11:19 /etc/localtime -> /usr/share/zoneinfo/America/Sao_Paulo