O objetivo principal do uso do
connlimit é sobre a limitação de softwares
p2p. Analisando o tráfego desse tipo de software percebemos que tinha que atacar diretamente o fato deles abrirem muitas conexões simultâneas, mas em alguns casos não é interessante limitar todas as portas, principalmente se parte de seus clientes são empresas e precisam de acesso full, o que é necessário então é limitar somente o P2P.
Faremos 2 tipo de limitação: somente para as portas nativas e outra para as portas não nativas.
10.1. Limitando portas nativas
Crie uma tabela chamada CONNLIMIT. Coloque nessa tabela as principais portas: 20, 21, 23, 25, 53, 110, 443, 1863, 2210, 3128, 5600, 8080, 8081.
No final, ative o limite de 96 conexões simultâneas (--connlimit-above 96) para cada IP na rede (--connlimit-mask 32).
Obs.:
- Limite pode ser alterado a seu gosto.
- Alterando o "--connlimit-mask 32" para "--connlimit-mask 24" você irá limitar uma rede ao todo, ao total de conexões configuradas. Aqui eu deixei em 32, pois assim eu limito IP por IP.
# Connlimit
# Controle de conexão
iptables -t mangle -N CONNLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 -m multiport --destination-port 20,21,23,25,53,110,443 -j CONNLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 -m multiport --destination-port 1863,2210,3128,5600,8080,8081 -j CONNLIMIT
iptables -t mangle -A CONNLIMIT -p TCP -m state ! --state RELATED -m connlimit --connlimit-above 96 --connlimit-mask 32 -j DROP
echo " Connlimit porta nativa iniciado...............[ OK ]"
10.2. Limitando portas não nativas
Aqui criei uma outra tabela chamada CONLIMIT e limitei todas as outras portas para um total de 45 conexões simultâneas.
iptables -t mangle -N CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 1:19 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 -m multiport --destination-port 22,24 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 26:52 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 54:79 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 81:109 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 111:442 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 444:1862 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 1864:2209 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 2211:3127 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 3129:5599 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 5601:8079 -j CONLIMIT
iptables -t mangle -A FORWARD -p TCP -d 0/0 --dport 8082:65535 -j CONLIMIT
iptables -t mangle -A CONLIMIT -p TCP -m state ! --state RELATED -m connlimit --connlimit-above 45 --connlimit-mask 32 -j DROP
echo " Connlimit portas não nativa iniciado..........[ OK ]"
Obs.: Adicione essas regras antes da regra de controle de acesso.
10.3. Links extras