Packet Rate Control

Discussion in 'Безопасность и Анонимность' started by 0xrust, 18 Sep 2014.

  1. 0xrust

    0xrust New Member

    Joined:
    20 Apr 2013
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    посоветуйте пожалуйста чем можно контролировать трафик пользователей сети. идея в том, чтобы 1 комп мог посылать только заблаговременно определенное количество пакетов.

    я знаю SQUID прокси может это контролировать, но может кто подскажет альтернативы?

    спасибо!
     
  2. 0xrust

    0xrust New Member

    Joined:
    20 Apr 2013
    Messages:
    22
    Likes Received:
    0
    Reputations:
    0
    ок я написал скрипт который вроде как делает то, что мне нужно. но прикол теперь вот в чем -- ставишь лимит скажем 1000 сокетов макс, все норм. запускаешь nmap и он вроде сперва выше 1000 не идет, а потом гад до 9000+ подскакивает. тоесть ему каким то образом похер на netfilter.

    может кто знает как можно насильно заставить проги не открывать более заданного количества сокетов??? подскажите, хакиры)

    вот скрипт


    Code:
    #!/bin/bash
    
    IF="eth0"
    LINKCEIL="1gbit"
    LIMIT="256kbit"
    CONNECTIONS_MAX=`sysctl net.ipv4.netfilter.ip_conntrack_max | awk '{print $NF}'`
    CONNECTIONS_LIMIT="1000"
    
    trap ctrl_c INT
    
    ##### limit bandwidth
    
    tc qdisc del dev ${IF} root 2> /dev/null
    tc qdisc add dev ${IF} root handle 1: htb default 10
    tc class add dev ${IF} parent 1: classid 1:1 htb rate ${LINKCEIL} ceil ${LINKCEIL}
    tc class add dev ${IF} parent 1:1 classid 1:10 htb rate ${LIMIT} ceil ${LIMIT}
    
    echo "Limiting bandwidth to $LIMIT."
    
    
    ##### limit connections
    
    echo ${CONNECTIONS_LIMIT} > /proc/sys/net/netfilter/nf_conntrack_max
    echo "Limiting connections to $CONNECTIONS_LIMIT."
    
    
    
    function ctrl_c() {
    	tc qdisc del dev ${IF} root
    	echo ${CONNECTIONS_MAX} > /proc/sys/net/netfilter/nf_conntrack_max
    
    	echo "Bandwidth rate and connection limit restored:"
    	sysctl net.ipv4.netfilter.ip_conntrack_max
    	exit
    }
    
    
    while true; do
    	CNNS=`sysctl net.ipv4.netfilter.ip_conntrack_count`
    	echo -ne "$CNNS\r"
    	sleep 1
    done