Módulo String
O módulo String tem a capacidade de verificar o conteúdo de um pacote, buscar na sua estrutura por uma String em particular, trabalhando de uma
forma
parecida com o Proxy, mas não fazendo o mesmo que o Proxy faz.
Após executar uma regra usando o módulo String, ela pode funcionar muito bem para bloquear programas que podem fazer sua rede ficar lenta.
O uso do módulo é semelhante aos outros começando com um "-m", que indica que será usado um módulo.
- Explicação de opções para usar o módulo:
I- Primeiro o nome String para o módulo que foi chamado.
II- Em seguida, temos a opção "--algo", que indica qual algorítimo será usado par buscar a String no pacote de dados.
III- Em seguida, os algoritmos que são os listados abaixo. Não explicarei como cada um trabalha, e qual o melhor a ser usado nas situações que
podem vir no
dia dia do trabalho, porém, deixarei links para que possam verificar como cada um trabalha:
IV- Em seguida, a opção "--string", que é usada para especificar qual String será buscada no pacote.
Obs.: Tome muito cuidado ao utilizar este módulo para não 'barrar' tráfego que queremos que passe.
- Colocando em Prática
Bloqueando o tráfego para a String Orkut:
# iptables -I FORWARD -m string --algo bm --string "orkut" -j DROP
O módulo string irá verificar no conteúdo de cada pacote, se existe a string "orkut". Caso exista, o pacote que tiver em seu conteúdo a string "orkut",
será bloqueado.
Na regra abaixo, estou bloqueando o trafego para o programa "teamviewer", bem conhecido.
# iptables -I FORWARD -m string --algo bm --string "teamviewer" -j DROP
# iptables -I OUTPUT -m string --algo bm --string "teamviewer" -j DROP
Perceba que estou incluindo as regras no início de cada Chain, e não especifico os protocolos, então vale para todos. Nem especifico a porta, apenas
chamo o módulo String para bloquear pacotes que contenham a String "teamviewer".
Na próxima regra, bloqueio a String "hotmail" dos pacotes trafegados.
# iptables -A OUTPUT -m string --algo bm --string "hotmail" -j DROP
Na regra acima, todos os pacotes que estiverem saindo e tiverem a String "hotmail" em seus dados serão verificados e bloqueados do pacotes trafegados.
Módulo IPrange
O módulo IPrange permite colocar Ranges (intervalos) de endereços, é necessário quando queremos colocar mais de um IP em uma regra específica.
Para este módulo, poderemos usar duas opções descritas abaixo:
- --src-range : Esta opção é usada para especificar o Range de origem.
- --dst-range : Esta opção é usada para especificar o Range de destino.
- Colocando em Prática
* As regras a seguir, foram inclusas em servidor de Firewall da Rede.
Na regra abaixo, vou bloquear o tráfego para o site
http://www.4shared.com, para alguns endereços de
origem da rede interna, supondo que a rede é: 192.168.20.0/24:
# iptables -A FORWARD -p tcp -d www.4shared.com -m iprange --src-range 192.168.20.10-192.168.20.20 -j DROP
Na regra acima, o bloqueio será feito para a faixa de IP, de: 192.168.20.10 até: 192.168.20.20.
Na próxima regra, o bloqueio será feito para o mesmo Range da regra anterior, mas para a String "facebook", e a regra será inclusa na Chain FORWARD:
# iptables -A FORWARD -m iprange --src-range 192.168.20.10-192.168.20.20 -m string --algo bm --string "facebook" -j DROP
Assim, todas as conexões que tiverem em seu conteúdo a String "facebook", será dropado.
Na regra abaixo, todos os pacotes com destino à porta 22, de todos os endereços na faixa de rede 192.168.20.0 bloqueados, com exceção '!', da faixa
especificada abaixo:
# iptables -A FORWARD -p tcp -m iprange ! --dst-range 192.168.20.1-192.168.20.5 --dport 22 -j DROP
Desta forma, todos os pacotes com destino à porta 22, serão aceitos somente para: 192.168.20.1 até: 192.168.20.5. Para os outros, serão
bloqueados.