Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Hardware, Software e Toys > Software > Mondo Linux
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 29-08-09, 18:23   #1 (permalink)
 
Data di registrazione: Apr 2009
Messaggi: 206
Regole iptables per limitare banda a utorrent

Ciao a tutti gli utenti mi trovo alle prese con iptables sto cercando di creare uno script che mi permetta di limitare la banda per utorrent ad un client specifico della mia rete casalinga, lo script sarebbe da inserire nella shell di un lynksys flashato con dd-wrt
Girovagando per la rete ho trovato alcune informazioni ed ho scritto questo piccolo script solo che per ora ho bloccato la porta in questione perchè non mi ricordo più come si specificava una percentuale di banda con iptables qualche indizio?

Codice:
############################
        # Reset delle impostazioni #
        ############################
        $IPTABLES -F
        $IPTABLES -F -t nat
        $IPTABLES -F -t mangle
        $IPTABLES -X
        $IPTABLES -X -t nat
        $IPTABLES -X -t mangle

        ################################
        # Impostazione Policy standard #
        ################################
        $IPTABLES -P INPUT   DROP
        $IPTABLES -P FORWARD DROP
        $IPTABLES -P OUTPUT  ACCEPT

        #################################
        # Abilitazione traffico interno #
        #################################
        $IPTABLES -A INPUT  -i $IFLO -j ACCEPT
        $IPTABLES -A OUTPUT -o $IFLO -j ACCEPT

        #############################################################################
        # Abilitazione traffico in entrata solo se relativo a pacchetti in risposta #
        #############################################################################
        $IPTABLES -A INPUT -p  tcp -i $IFEXT1 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
        $IPTABLES -A INPUT -p icmp -i $IFEXT1 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
        $IPTABLES -A INPUT -p  udp -i $IFEXT1 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
        #$IPTABLES -A INPUT -p  tcp -i $IFEXT2 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
        #$IPTABLES -A INPUT -p icmp -i $IFEXT2 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT
        #$IPTABLES -A INPUT -p  udp -i $IFEXT2 -m state -s 0/0 --state ESTABLISHED,RELATED -j ACCEPT

        
        

        ########################
        # Apertura porte aMule #
        ########################
        $IPTABLES -A INPUT -p tcp --dport 4662 -j ACCEPT
        $IPTABLES -A INPUT -p udp --dport 4665 -j ACCEPT
        $IPTABLES -A INPUT -p udp --dport 4672 -j ACCEPT

        

        #######################
        # Apertura porte  Msn                        #
        #######################
        $IPTABLES -A INPUT -p tcp --dport 1683 -j ACCEPT
	#$IPTABLES -A INPUT -p tcp --dport 6981 -j ACCEPT

	###################################
#Blocco porta al client specifico #
##################################
$IPTABLES -A INPUT -p udp -m udp -s 192.168.1.3/24 --dport 63889 -j REJECT

	##############################
        # Contro attacchi  hacker     #
        ##############################
	#Rifiuto di rispondere ai  ping inviati all'indirizzo broadcast della rete:
	 echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
	echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
	#Rifiuto pacchetti ICMP di route redirection
	echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
	echo 1 > /proc/sys/net/ipv4/tcp_syncookies
	echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
	#Protezione contro attacchi spoofing
	echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
	#Scarto un flood di pacchetti ICMP fuori taglia (dimensione massima 93 bytes)
	$IPTABLES -A INPUT -p ICMP --icmp-type 8 -m length --length 93: -j DROP        

        echo "ok"
        ;;

  stop)
__________________
Ultimi lavori: - www.idaditratti.it -www.euphorictribe.com
gabriele1986 non in linea   Rispondi citando
Vecchio 31-08-09, 15:45   #2 (permalink)
User
 
L'avatar di it1315922
 
Data di registrazione: Nov 2006
Ubicazione: Pompeiana
Messaggi: 103
Ciao,
una volta avevo fatto una cosa del genere, ma è passato molto tempo e non ricordo quasi nulla.
Per fortuna avevo preparato uno script che usavo per limitare la banda con iptables, te lo allego, sperando che possa esserti utile.

In bocca al lupo!


Codice:
#!/bin/sh
#
# Script "educativo" sulla limitazione di banda di un host  linux
#
###

# interfaccia di rete
DEVICE=eth0

#  IP origine del traffico che si desidera limitare
MIOIP=192.168.0.0/24

# Unita di misura
UNIT=Mbit

# Larghezza di banda supportata della scheda di rete $DEVICE
BANDATOT=`echo 10$UNIT`

# Porzione di $BANDATOT che si desidera utilizzare
BANDAUSATA=`echo 1.28$UNIT`
BANDAUSATABITSEC=1280000

###
### DA QUA IN POI LO SCRIPT NON VA MODIFICATO
###

# calcolo del "peso" (deve essere un decimo della banda)
WEIGHT=`echo $BANDATOT | sed -e "s/$UNIT/\/10/" | bc`
WEIGHT=`echo $WEIGHT$UNIT`

###
###
 echo
echo
echo ....................................Interfaccia di rete = $DEVICE
echo ...... IP origine del traffico che si desidera limitare = $MIOIP
echo Larghezza di banda supportata della scheda di rete $DEVICE = $BANDATOT
echo ........ Porzione dei $BANDATOT che si desidera utilizzare = $BANDAUSATA
echo .................... Un decimo di $BANDATOT l\'ho calcolato = $WEIGHT
echo
echo -n Tutto ok [s/n]?  
read ZZ
if [ $ZZ != 's' ]; then
        echo
        echo Ciao
        echo
        exit
fi

echo
#### Cancella precedenti configurazioni su $DEVICE
echo Cancella precedenti configurazioni su $DEVICE
echo tc qdisc  del dev $DEVICE root
tc qdisc  del dev $DEVICE root

sleep 1
echo
#### inizializza una nuova coda su $DEVICE a cui assegna l'handle 20:0
#### e la cui banda massima vale $BANDATOT
echo inizializza una nuova coda su $DEVICE a cui assegna l\'handle 20:0
echo e la cui banda massima vale $BANDATOT
echo tc qdisc  add dev $DEVICE root \
          handle 20: cbq bandwidth $BANDATOT avpkt 1000
tc qdisc  add dev $DEVICE root \
          handle 20: cbq bandwidth $BANDATOT avpkt 1000

sleep 1
echo
#### configurazione di una classe nella coda 20:0 su $DEVICE
#### a cui si assegna un classid 20:1
echo configurazione di una classe nella coda 20:0 su $DEVICE
echo a cui si assegna un classid 20:1
echo tc class  add dev $DEVICE parent 20:0 classid 20:1 \
          cbq bandwidth $BANDATOT rate $BANDATOT avpkt 1000
tc class  add dev $DEVICE parent 20:0 classid 20:1 \
          cbq bandwidth $BANDATOT rate $BANDATOT avpkt 1000

sleep 1
echo
#### all'interno della classe 20:1 definisco la sottoclasse di handle 20:200
#### a questa sottoclasse impongo la limitazione di banda a $BANDAUSATA
echo all\'interno della classe 20:1 definisco la sottoclasse di handle 20:200
echo a questa sottoclasse impongo la limitazione di banda a $BANDAUSATA
echo tc class  add dev $DEVICE parent 20:1 classid 20:200 \
          cbq  bandwidth $BANDATOT rate $BANDAUSATA avpkt 1000 bounded
tc class  add dev $DEVICE parent 20:1 classid 20:200 \
          cbq  bandwidth $BANDATOT rate $BANDAUSATA avpkt 1000 bounded

sleep 1
echo
#### Ora la coda <E8> stata definita, si deve comunicare al kernel la sua
#### esistenza e informarlo su come deve gestirla
echo Ora la coda <E8> stata definita, si deve comunicare al kernel la sua
echo esistenza e informarlo su come deve gestirla
echo tc qdisc  add dev $DEVICE parent 20:200 \
          sfq quantum 1514b perturb 15
tc qdisc  add dev $DEVICE parent 20:200 \
          sfq quantum 1514b perturb 15

sleep 1
echo
#### Ora informiamo il kernel su quali pacchetti devono transitare
#### attraverso la coda
echo Ora informiamo il kernel su quali pacchetti devono transitare
echo attraverso la coda
echo tc filter add dev $DEVICE parent 20:0 \
          protocol ip prio 25 u32 match ip  dst $MIOIP flowid 20:200
tc filter add dev $DEVICE parent 20:0 \
          protocol ip prio 25 u32 match ip  dst $MIOIP flowid 20:200

### tc filter add dev $DEVICE parent 20:0 # ATTENTO AL BACKSLASH :-) # \
###          protocol ip prio 25 u32 match ip  src $MIOIP flowid 20:200

rshaperctl $MIOIP $BANDAUSATABITSEC
__________________

Il webmastro dell'associazione Praugrande di Pompeiana (IM).
it1315922 non in linea   Rispondi citando
Vecchio 03-09-09, 17:22   #3 (permalink)
 
Data di registrazione: Apr 2009
Messaggi: 206
Grazie ma scusa una cosa con questo script limito la banda a tutti gli utenti che usano la scheda di rete interessata?
Perchè io dovrei bloccare la banda ad un client conesso in wi-fi e ho paura che se imposto la scheda wi-fi blocchi la banda a tutti i client
__________________
Ultimi lavori: - www.idaditratti.it -www.euphorictribe.com
gabriele1986 non in linea   Rispondi citando
Vecchio 03-09-09, 23:01   #4 (permalink)
User
 
L'avatar di it1315922
 
Data di registrazione: Nov 2006
Ubicazione: Pompeiana
Messaggi: 103
Quote:
gabriele1986 Visualizza il messaggio
[***]
Ciao Gabriele,
si, come hai già capito, il traffico viene limitato se proviene da un determinato IP.
Se riesci a confinare su un IP chi proviene dalla rete wi-fi allora ti può essere utile senza grandi modifiche.

__________________

Il webmastro dell'associazione Praugrande di Pompeiana (IM).

Ultima modifica di Leonov : 04-09-09 00:36. Motivo: Per favore, evitare di citare (quote) l'intero messaggio precedente; usare invece il tasto "Rispondi".
it1315922 non in linea   Rispondi citando
Vecchio 30-10-09, 12:26   #5 (permalink)
User
 
Data di registrazione: Oct 2007
Messaggi: 67
Invia un messaggio tramite MSN a ir0nfl4m3
Potresti fare qualcosa con Squid e iptables+layer7 ma così a naso, ma non ti posso aiutare di più
ir0nfl4m3 non in linea   Rispondi citando
Rispondi


Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 17:27.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.