+ Responder ao Tópico



  1. #25

    Padrão

    perae meu veio... nao fale besteira, em qualquer unix faz e muito... segue descricao abaixo:

    1) Crio uma cadeia chamada CONNLIMIT:

    iptables -N CONNLIMIT

    2) Redireciono todos os acessos (portas) que gostaria de limitar para a cadeia CONNLIMIT (no caso, as portas acima de 1024, basicamente, visto que esses softwares tarado usam portas altas, porém, tomando cuidado de deixar fora do controle as portas de serviços conhecidos, como MSN e afins, jogos on-line, vnc, proxy, etc...vou dar alguns exemplos):

    iptables -A FORWARD -p TCP -d 0/0 --dport 1024:1862 -j CONNLIMIT (excluindo o MSN = 1863)

    iptables -A FORWARD -p TCP -d 0/0 --dport 1864:3127 -j CONNLIMIT (excluindo a porta do proxy = 3128)

    iptables -A FORWARD -p TCP -d 0/0 --dport 3129:5599 -j CONNLIMIT (excluindo a porta do VNC = 5600)

    iptables -A FORWARD -p TCP -d 0/0 --dport 5601:5899 -j CONNLIMIT (excluindo outra porta do VNC = 5900)

    iptables -A FORWARD -p TCP -d 0/0 --dport 5901:7776 -j CONNLIMIT (excluindo o jogo on-line Lineage = 7777)

    e assim por diante, eu faço "ranges" de IP que excluam as portas de serviços "saudáveis". Ah, e eu também uso o "-p TCP" ou seja, trabalhando apenas com o protocolo TCP, pois o CONNLIMIT só funciona com TCP. Existia um tempo atrás um módulo UDPLIMIT, mas ele é antigo, não sei se dá pra aplicar ele no kernel e no iptables mais recentes...

    3) Agora como todo esse acesso tá passando pela cadeia CONNLIMIT, eu aplico nela a limitação:

    iptables -A CONNLIMIT -p TCP -m state ! --state RELATED -m connlimit --connlimit-above 12 --connlimit-mask 32 -j DROP

    Aqui é que tá o segredo do negócio...hehehe...seguinte:

    obs1: "-m state ! --state RELATED" = usando isso, eu não incluo no DROP os pacotes que forem de retorno, ou seja, se você acessa um site (na porta 80), quando ele mandar uma resposta pra você, ele vai responder nas portas altas (acima de 1024), então, como essa conexão é uma conexão de retorno, excluindo o RELATED não aplica o connlimit, evitando problemas na navegação (principalmente de clientes com rede cheia de computador e com muita requisição - frisando que pra mim, esse cliente é um único IP, porém seus computadores estão todos por trás de NAT.

    obs2: "--connlimit-above 12" = diz que o máximo é 12 conexões simultâneas.

    obs3: "--connlimit-mask 32" = diz que ele vai tratar todos os IPs que passarem pela regra serão tratados isoladamente (ou seja, com a máscara /32, ou, 255.255.255.255), o que significa que serão 12 conexões simultâneas por IP -> 12 por cliente.

    Bom é isso. Agora rola p2p na rede, sem prejudicar a qualidade, sem derrubar repetidora, etc, etc...Mesmo quem insista que os software p2p usem portas UDP, e o connlimit não limita UDP, o tráfego UDP é sempre muito menor que o tráfego TCP, da ordem de 1/4 + ou - , ou seja, limitando o número de conexões simultâneas TCP.


    Agora que sabes que faz TUDO... quero saber se o pacote IPLIMIT funciona similar

    Obrigado

  2. #26

    Padrão

    nai falei besteira...

    se voce voltar na sua resposta anterior.. veja que o comando esta imcompleto...



  3. #27

    Padrão

    Correto amigo... perdão... a ultima linha deveria ter saido assim:

    iptables -t mangle -A CONNLIMIT -p TCP -m state ! --state RELATED -m connlimit --connlimit-above 30 -j DROP

  4. #28

    Padrão

    Mas e então... é possivel criar essa cadeia separando os serviços que terão limitação no iplimit assim como no meu exemplo com o pacote conlimit???



  5. #29

    Padrão

    No AProuter eu acho que nao dá, mas vale a pena testar.

  6. #30

    Padrão

    E existe algum outro firmware que esse comando funcione 100%???? Estou interessado nele pois como voces podem ler na dica que passei ele não limita todos os serviços... liberando aqueles "saudaveis"