Todo administrador de rede que se preze tem um bom firewall implementado no seu servidor, não é?? Espero que sim, mas se não tiver, aqui vai o exemplo de um simples e bom firewall.

Vou começar explicando algumas regras que deverão ser seguidas na configuração do seu firewall. Quando começar a colocar as regras, você deverá começar pelas que habilitam as conexões desejadas e por final bloquear as conexões indesejáveis.

ACCEPT, REJECT e DROP: quando colocar um, e quando colocar o outro?
Você colocará ACCEPT quando quiser aceitar a conexão. REJECT quando quiser rejeitar a conexão, e DROP você estará rejeitando a conexão.

Em seguida coloquei um modelo de um firewall no qual você poderá escolher as regras que mais se adaptam com o que você precisa.

Compartilhamento via modem ou ADSL
Para compartilhar a conexão do modem com a rede local:

# modprobe iptable_nat
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Para compartilhar uma conexão via ADSL ou cabo instalada na eth0:

# modprobe iptable_nat
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Habilitando localhost:

# iptables -A INPUT -p tcp --syn -s 127.0.0.1 -j ACCEPT

Habilitando conexões vindas da rede local (usando a seguinte faixa de IP e máscara de rede):

# iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT

Habilitando outras conexões na seguinte porta do micro (adicionei estas linhas como exemplo para habilitar outras conexões):

# iptables -A INPUT -p tcp --destination-port XXX -j ACCEPT
# iptables -A INPUT -p tcp --destination-port XXX -j ACCEPT
# iptables -A INPUT -p tcp --destination-port XXX -j ACCEPT
# iptables -A INPUT -p tcp --destination-port XXX -j ACCEPT

Bloqueando conexão via SSH:

# iptables -A INPUT -p tcp --destination-port 22 -j DROP

Evitando scans do tipo "porta origem=porta destino":

# iptables -A INPUT -p tcp --sport $i --dport $i -j DROP

Bloqueando AIM:

# iptables -A FORWARD -d login.oscar.aol.com -j REJECT

Bloqueando ICQ:

# iptables -A FORWARD -p TCP --dport 5190 -j REJECT
# iptables -A FORWARD -d login.icq.com -j REJECT

Bloqueando MSN:

# iptables -A FORWARD -p TCP --dport 1863 -j REJECT
# iptables -A FORWARD -d 64.4.13.0/24 -j REJECT

Bloqueando Yahoo Messenger:

# iptables -A FORWARD -d cs.yahoo.com -j REJECT
# iptables -A FORWARD -d scsa.yahoo.com -j REJECT

Bloqueando os -:P2P:- (se você deseja utilizar um desses softwares, apenas retire o comentário # e substitua a condição de: REJECT, para ACCEPT).

Bittorrent:

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6881:6889 -j DNAT --to-dest 192.168.0.2
# iptables -A FORWARD -p tcp -i eth0 --dport 6881:6889 -d 192.168.0.2 -j REJECT

iMesh:

# iptables -A FORWARD -d 216.35.208.0/24 -j REJECT

BearShare:

# iptables -A FORWARD -p TCP --dport 6346 -j REJECT

ToadNode:

# iptables -A FORWARD -p TCP --dport 6346 -j REJECT

WinMX:

# iptables -A FORWARD -d 209.61.186.0/24 -j REJECT
# iptables -A FORWARD -d 64.49.201.0/24 -j REJECT

Napigator:

# iptables -A FORWARD -d 209.25.178.0/24 -j REJECT

Morpheus:

# iptables -A FORWARD -d 206.142.53.0/24 -j REJECT
# iptables -A FORWARD -p TCP --dport 1214 -j REJECT

KaZaA:

# iptables -A FORWARD -d 213.248.112.0/24 -j REJECT
# iptables -A FORWARD -p TCP --dport 1214 -j REJECT

Limewire:

# iptables -A FORWARD -p TCP --dport 6346 -j REJECT

Audiogalaxy:

# iptables -A FORWARD -d 64.245.58.0/23 -j REJECT

Mais uma linha interessante de se adicionar, que protege contra pacotes danificados (usados em ataques DoS por exemplo) é:

# iptables -A FORWARD -m unclean -j DROP

Bloqueando conexões vindas em qualquer porta tcp do seu micro:

# iptables -A INPUT -p tcp --syn -j DROP

Se você quiser que o PC também não responda a pings, adicione a seguinte linha:

# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

Agora chegou a vez das portas UDP (para jogar Unreal Tournament na NET):

# iptables -t nat -A PREROUTING -i eth0 -p udp --dport 7777:7779 -j DNAT --to-dest 192.168.0.2
# iptables -A FORWARD -p udp -i eth0 --dport 7777:7779 -d 192.168.0.2 -j ACCEPT

Bloqueando parte das portas udp:

# iptables -A INPUT -i ppp0 -p udp --dport 0:30000 -j DROP

Com esse exemplo de firewall que fiz, você poderá copiá-lo e salvá-lo dentro de um arquivo de texto, como exemplo /usr/local/bin/firewall.

Em seguida dê permissão de execução para esse arquivo digitando "chmod +x /usr/local/bin/firewall" e com essa "receitinha de bolo" você acaba de criar um shell script, que poderá ser chamado por você a qualquer momento apenas digitando num terminal: firewall.

E para facilitar ainda mais a sua vida aqui vai uma dica:

Coloque uma cópia desse arquivo em um dos diretórios de inicialização do sistema, como /etc/init.d/.

Pronto, agora toda vez que você reinicializar a sua máquina, o seu firewall será iniciado junto com o sistema.

Se quiser limpar as regras estabelecidas por você no firewall, digite no terminal:

# iptables -F

Créditos: Bruno Farias