Módulo Quota
Quota é um módulo bem interessante que pode ser usado para limitar uma conexão a um específico endereço, com base em quotas em Bytes.
- Seu funcionamento se dá da seguinte forma:
Estabelece-se um valor específico para cota e depois de atingido este valor, os pacotes da conexão cuja regra está executando, executa a próxima regra, que
pode ser com o alvo DROP ou REJECT.
Por exemplo, às vezes, não podemos bloquear o uso de um determinado serviço, por ser essencial no dia dia, porém, alguns usuários abusam do uso do
mesmo. Assim podemos barrar o trafego em um servidor FTP, ou para um site que é visitado constantemente para fazer downloads e fazer um limite, conforme
o administrador achar melhor.
A observação que devo fazer é que, se ao atingir o valor da cota, o próximo pacote a ser tratado pela próxima regra, caso seja bloqueado o tráfego, só será
permitido novamente se "resetar" as regras.
Opções:
- quota : O nome do módulo que será usado.
- --quota : Opção usada para indicar o valor da quota.
- Colocando em Prática
Na primeira regra usada para se trabalhar com este módulo, a regra será aplicada a uma máquina rodando o servidor FTP. O servidor permitirá o download até
atingir o tamanho de 20 MB, após atingir o valor da quota, a próxima regra será executada "dropando" todos os pacotes para a origem 192.168.20.53, que
requisitou o download.
# iptables -A OUTPUT -p tcp -d 192.168.20.53 --sport 21 -m quota --quota 20971520 -j ACCEPT
# iptables -A OUTPUT -p tcp -d 192.168.20.53 --sport 21 -j DROP
Na segunda regra, será aplicada uma cota de 10 MB em uma máquina que compartilha a Net, após atingir esta cota, todo tráfego da origem
www.kernel.org, será "dropado" pela regra seguinte para a rede interna, impedindo que qualquer download desse site seja
feito após o bloqueio.
# iptables -A FORWARD -p tcp -s www.kernel.org -m quota --quota 10485760 -j ACCEPT
# iptables -A FORWARD -p tcp -s www.kernel.org -j DROP
Módulo Multiport
Multiport é um módulo usado para especificar várias portas de comunicação em uma regra, este módulo é de grande ajuda, principalmente quando queremos
aplicar uma regra para várias portas simultaneamente, sem necessidade de aplicar uma regra por porta. Pode se aplicar para portas de origem e destino.
- Opções de uso:
- --dports : Opção usada para especificar porta de destino ou portas de destino.
- --sports : Opção usada para especificar porta de origem ou portas de origem.
- --ports : Opção usada para especificar porta de origem e destino juntas.
- Colocando em Prática
Na regra a abaixo, coloco uma exceção '!', indicando que toda conexão que tiver como origem qualquer endereço de rede, com exceção do 192.168.20.0/24, com
destino à porta 80 e 601, serão bloqueados.
# iptables -A INPUT -p tcp ! -s 192.168.20.0/24 -m multiport --dports 80,601 -j DROP
Na regra abaixo, vou liberar várias portas, inclusive a usada pelo
Webmin para todas origens.
# iptables -A INPUT -p tcp -m multiport --dports 22,25,110,80,10000 -j ACCEPT
Na próxima regra, usarei o módulo Quota em conjunto com Multiport, fazendo com que todo tráfego das portas de origem 80 e 21, com destino ao Host
192.168.20.5, seja dropado após ultrapassar o limite de 10 MB.
# iptables -A FORWARD -p tcp -d 192.168.20.5 -m quota --quota 10485760 -m multiport --sports 80,21 -j ACCEPT
# iptables -A FORWARD -p tcp -d 192.168.20.5 -m multiport --sports 80,21 -j DROP
Podemos ainda, bloquear o tráfego externo para determinados serviços da rede, no exemplo abaixo, estou incluindo uma regra que usa a interface PPP0 de uma
conexão DSL, bloqueando as portas 80, 22 do SSH e 23 Telnet.
# iptables -A INPUT -p tcp -i ppp0 -m multiport --dports 21,23,22,80 -j DROP