Portál AbcLinuxu, 10. května 2025 05:05

Dotaz: iptables counter

petka avatar 12.10.2009 12:56 petka | skóre: 25 | blog: heydax | Klasterec N/O
iptables counter
Přečteno: 405×
Odpovědět | Admin
Mam jen takovej dotaz , jak by vypadalo pravidlo pro iptables s pocitanim prenesenych dat , zkousim na svem server pc neco rozbehat ,ale porad to neni ono . Nekde delam chybu ? Presne nepocita to co ma .

#!/bin/sh

WAN='10.222.1.17'
WIFI='192.168.1.1'
VOIP='192.168.0.2'
NETTOP='192.168.0.3'
IPBOX='192.168.0.4'
HDBOX='192.168.0.5'


IPT='/sbin/iptables' 

$IPT -N DOWNLOAD
$IPT -A INPUT -j DOWNLOAD
$IPT -N UPLOAD
$IPT -A OUTPUT -j UPLOAD

#WAN-Server
$IPT -A DOWNLOAD -d $WAN
$IPT -A UPLOAD -s $WAN

#WIFI-Server
$IPT -A DOWNLOAD -d $WIFI
$IPT -A UPLOAD -s $WIFI

#LAN-Server
$IPT -A DOWNLOAD -d $LAN
$IPT -A UPLOAD -s $LAN

#VOIP
$IPT -A DOWNLOAD -d $VOIP
$IPT -A UPLOAD -s $VOIP

#NETTOP
$IPT -A DOWNLOAD -d $NETTOP
$IPT -A UPLOAD -s $NETTOP

#IPBOX
$IPT -A DOWNLOAD -d $IPBOX
$IPT -A UPLOAD -s $IPBOX

#HDBOX
$IPT -A DOWNLOAD -d $HDBOX
$IPT -A UPLOAD -s $HDBOX

Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

petka avatar 12.10.2009 16:40 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables counter
Odpovědět | | Sbalit | Link | Blokovat | Admin
Opravdu nikdo nevi jak zpocitat protekla data na konkretnich IP adresach , kdyz IPT ACCOUNT neni mozne zkompilovat ?
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
12.10.2009 17:09 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: iptables counter
Odpovědět | | Sbalit | Link | Blokovat | Admin
Každý řetězec má vlastní počítadlo přenesených paketů a bajtů – jeho stav zjistíte třeba voláním iptables -nvL <retezec>. Takže pokud chcete počítat data pro každou IP adresu zvlášť, použijte něco na tento způsob:
iptables -N IP1_accounting
iptables -N IP2_accounting

iptables -A FORWARD -s 192.168.1.2 -j IP1_accounting
iptables -A FORWARD -d 192.168.1.2 -j IP1_accounting

iptables -A FORWARD -s 192.168.1.3 -j IP2_accounting
iptables -A FORWARD -d 192.168.1.3 -j IP2_accounting
…
petka avatar 12.10.2009 17:32 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables counter
A jeste jeden dotaz , vyzkousel jsem a data nejsou zadna , neni to tim ze na serveru bezi firewall .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
12.10.2009 17:46 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: iptables counter
Pokud komunikace přes firewall projde, je započítávána – takže čítače by byly nulové jedině v případě, že by firewall komunikaci blokoval.

Výšeuvedený příklad je ale psán pro čistý firewall – pravidla pro přesměrování do účtovacích řetězců se přidávají až na konec řetězce FORWARD. Může se ale stát, že paket vyhoví již některému z předchozích pravidel – pak se aplikuje příslušné pravidlo a další pravidla už se nevyhodnocují. V takovém případě je potřeba místo -A použít -I a odbočku do účtovacích řetězců začlenit na vhodné místo.
petka avatar 12.10.2009 19:37 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables counter
Tak jsem nasadil ipt_account , ale jak jsem uz psal nezapocitavaji se veschna prenesna data . Firewall nastaveny pres iptables posila data jinudy. A tak se ptam nebylo by lepsi vytvorit nejake virtualni zarizeni na kterem by se data uz pocitala ?
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
petka avatar 12.10.2009 19:41 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables counter
Vypis
iptables -nvL
Chain INPUT (policy DROP 309 packets, 98126 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    1    29 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
   21  3990 ACCEPT     all  --  eth0   *       0.0.0.0/0            0.0.0.0/0           
   21  3990 ACCEPT     all  --  ath0   *       0.0.0.0/0            0.0.0.0/0           
   70 10688 ACCEPT     udp  --  eth1   *       0.0.0.0/0            10.222.1.17         udp spt:53 dpts:1025:65535 
  162 11592 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            10.222.1.17         tcp dpt:22000              
    0     0 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            10.222.1.17         tcp dpt:8088               
    0     0 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            10.222.1.17         tcp dpt:8080               
    0     0 ACCEPT     icmp --  eth1   *       0.0.0.0/0            0.0.0.0/0           icmp !type 8               
   77  7692 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            0.0.0.0/0           tcp flags:!0x17/0x02       
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:0                  
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:0                  
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:0                  
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp spt:0                  
   33  4622            all  --  *      *       0.0.0.0/0            0.0.0.0/0           account: network/netmask: 10.222.1.17/255.255.255.255 name: WAN short-listing                                                                                                                                                   
    0     0            all  --  *      *       0.0.0.0/0            0.0.0.0/0           account: network/netmask: 192.168.0.0/255.255.255.0 name: LAN short-listing                                                                                                                                                     

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  ath0   eth0    0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  ath0   eth1    0.0.0.0/0            0.0.0.0/0
  555 94133 ACCEPT     all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     all  --  eth0   ath0    0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  eth1   ath0    0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
  545 32965 ACCEPT     all  --  eth1   eth0    0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    3   180 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            192.168.0.4         tcp dpt:80
    0     0 ACCEPT     tcp  --  eth1   *       0.0.0.0/0            192.168.0.4         tcp dpt:8080
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:0
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:0
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:0
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp spt:0
    0     0            all  --  *      *       0.0.0.0/0            0.0.0.0/0           account: network/netmask: 10.222.1.17/255.255.255.255 name: WAN short-listing
    0     0            all  --  *      *       0.0.0.0/0            0.0.0.0/0           account: network/netmask: 192.168.0.0/255.255.255.0 name: LAN short-listing

Chain OUTPUT (policy ACCEPT 304 packets, 71293 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:0
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:0
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp spt:0
    0     0 DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp spt:0
  254 62520            all  --  *      *       0.0.0.0/0            0.0.0.0/0           account: network/netmask: 10.222.1.17/255.255.255.255 name: WAN short-listing
   21  3990            all  --  *      *       0.0.0.0/0            0.0.0.0/0           account: network/netmask: 192.168.0.0/255.255.255.0 name: LAN short-listing
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
12.10.2009 19:56 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: iptables counter
Tak ta pravidla pro účtování zařaďte hned na začátek řetězce FORWARD, a počítat se budou.
petka avatar 12.10.2009 20:27 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables counter
Asi jsem natvrdlej , ale nechapu jak na zacatek . Zkusil jsem si to dat zacatek firewall skriptu a akorat jsem si zablokoval pripojeni .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
13.10.2009 08:33 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: iptables counter
Už jsem to psal -- místo iptables -A použijete iptables -I <pořadí>.
12.10.2009 20:35 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: iptables counter
Proč hned celý řetězec? Dvojici počítadel má každé pravidlo, dokonce se to ve výstupu snáze parsuje.
petka avatar 12.10.2009 20:40 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables counter
Prikladam vypis z meho firewallu . Staci nakopnout , budu velmi rad .
#! /bin/sh                                                                                                                                 

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

WAN_IP="10.222.1.17"
IPTABLES="/sbin/iptables"


LAN="eth0"
WIFI="ath0"
WAN="eth1" 

set -e

case "$1" in
  start)    
        echo -n "Nahravam pravidla pro iptables (firewall,masquerade)"

        # =============================================================

        # Paranoia zakladni politka
        $IPTABLES -P INPUT DROP    
        $IPTABLES -P OUTPUT ACCEPT 
        $IPTABLES -P FORWARD DROP  

        # rp_filter na zamezeni IP spoofovani
        for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $f; done

        # Ochrana pred Dos utokem
        echo 1 >/proc/sys/net/ipv4/tcp_syncookies
                                                 

        # Flush all old
        $IPTABLES -F   
        $IPTABLES -t nat -F

        # =============================================================
        # Loopback a interni interface                                 
        # =============================================================

        $IPTABLES -A INPUT -i lo -j ACCEPT
        $IPTABLES -A INPUT -i $LAN -j ACCEPT
        $IPTABLES -A INPUT -i $WIFI -j ACCEPT

        # =============================================================
        # Povoleni portu na WAN                                            
        # =============================================================    
        $IPTABLES -A INPUT -i $WAN -p UDP -s 0/0 --sport 53 -d $WAN_IP --dport 1025: -j ACCEPT          #DNS
        $IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 22000 -j ACCEPT                     #SSH
        # =============================================================                                     
        # Presmerovavani portu                                                                              
        # =============================================================                                     
        #Provede presmerovani portu 80 na port 8088                                                         
        $IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 8088 -j ACCEPT                      #WWW IPBOX
        $IPTABLES -t nat -A PREROUTING -i $WAN -p tcp --dport 8088 -j DNAT --to 192.168.0.4:80          #WWW IPBOX Nastaveni presmerovani
        $IPTABLES -A FORWARD -p tcp -i $WAN -d 192.168.0.4 --dport 80 -j ACCEPT                         #WWW IPBOX Povoleni presmerovani 
        #Provede presmerovani portu 8080 na port 8088                                                                                    
        $IPTABLES -A INPUT -i $WAN -p TCP -s 0/0 -d $WAN_IP --dport 8080 -j ACCEPT                      #WWW IPBOX NewCS                 
        $IPTABLES -t nat -A PREROUTING -i $WAN -p tcp --dport 8080 -j DNAT --to 192.168.0.4:8080        #WWW IPBOX NewCS Nastaveni presmerovani
        $IPTABLES -A FORWARD -p tcp -i $WAN -d 192.168.0.4 --dport 8080 -j ACCEPT                       #WWW IPBOX NewCS Povoleni presmerovani 
        # =============================================================                                                                        
        # Konec presmerovavani portu                                                                                                           
        # =============================================================                                                                        
                                                                                                                                                                                                                                                                                                                        
        # ICMP (Povoleni PINGu typ 8 echo , typ 11 time exeeded , typ 0 echo reply , typ destination unreacheble )                                          
        $IPTABLES -A INPUT -i $WAN -p ICMP -s 0/0 ! --icmp-type 8 -j ACCEPT                                                                                 
        #$IPTABLES -A INPUT -i $WAN -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT                                                                                  
                                                                                                                                                            
        # All packets that do not request a connection can pass                                                                                             
        $IPTABLES -A INPUT -i $WAN -p TCP ! --syn -j ACCEPT                                             # tcp flags:!0x17/0x02                              

        # Extremni paranoia
        $IPTABLES -A INPUT -p TCP --dport 0 -j DROP
        $IPTABLES -A INPUT -p UDP --dport 0 -j DROP
        $IPTABLES -A INPUT -p TCP --sport 0 -j DROP
        $IPTABLES -A INPUT -p UDP --sport 0 -j DROP
        $IPTABLES -A FORWARD -p TCP --dport 0 -j DROP
        $IPTABLES -A FORWARD -p UDP --dport 0 -j DROP
        $IPTABLES -A FORWARD -p TCP --sport 0 -j DROP
        $IPTABLES -A FORWARD -p UDP --sport 0 -j DROP
        $IPTABLES -A OUTPUT -p TCP --dport 0 -j DROP 
        $IPTABLES -A OUTPUT -p UDP --dport 0 -j DROP 
        $IPTABLES -A OUTPUT -p TCP --sport 0 -j DROP 
        $IPTABLES -A OUTPUT -p UDP --sport 0 -j DROP 


        # ================================================================
        # Maskarada                                                       
        # ================================================================

        # Moduly pro ftp prenosy
        modprobe ip_conntrack_ftp
        modprobe ip_nat_ftp      

        # Zavedeme moduly pro nestandardni cile
        modprobe ipt_LOG                       
        modprobe ipt_REJECT                    
        modprobe ipt_MASQUERADE                

        # Presmerovani mezi sitovkama
        $IPTABLES -I FORWARD -i $WAN -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT # mezi inetem a siti
        $IPTABLES -I FORWARD -i $WAN -o $WIFI -m state --state ESTABLISHED,RELATED -j ACCEPT # mezi inetem a wifi
        $IPTABLES -I FORWARD -i $LAN -o $WIFI -m state --state ESTABLISHED,RELATED -j ACCEPT # mezi siti a wifi  
        $IPTABLES -I FORWARD -i $LAN -o $WAN -j ACCEPT                                                           
        $IPTABLES -I FORWARD -i $WIFI -o $WAN -j ACCEPT                                                          
        $IPTABLES -I FORWARD -i $WIFI -o $LAN -j ACCEPT                                                          
        $IPTABLES -t nat -A POSTROUTING -o $WAN -j MASQUERADE                                                    

        # Forwarding on
        echo "1" > /proc/sys/net/ipv4/ip_forward

        # ================================================================

        echo "."
        ;;      


  stop)
        echo -n "Vyprazdneni iptables"

        # ================================================================

        # Forwarding off
        #echo "0" > /proc/sys/net/ipv4/ip_forward

        # Povoleni vseho
        $IPTABLES -P INPUT ACCEPT
        $IPTABLES -P OUTPUT ACCEPT
        $IPTABLES -P FORWARD ACCEPT

        # Vynulovani pravidel
        $IPTABLES -F
        $IPTABLES -t nat -F

        # ================================================================

        echo "."
        ;;


esac

exit 0

Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
petka avatar 12.10.2009 21:16 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables counter
Jeste doplnim ze pouzivam napriklad toto ,
# iptables -A FORWARD -m account --aaddr 10.222.1.17/24 --aname WAN --ashort
# iptables -A INPUT  -m account --aaddr 10.222.1.17/24 --aname WAN --ashort
# iptables -A OUTPUT -m account --aaddr 10.222.1.17/24 --aname WAN --ashort
ale jak jsem uz psal , data tecou i jinudy .Predchozi politika firewallu .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
petka avatar 12.10.2009 22:40 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables counter
Tak jo , uz mi to asi doslo , retezec jsem dal na zacatek vsech pravidel a data se zacla pocitat . Ale jen pro verejnou IP jsou data v poradku , ale pro pocitace s vnitrni IP se data nezapocitavani vsechna .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...
13.10.2009 08:43 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: iptables counter
Data se započítávají přesně pro ty pakety, které vyhoví pravidlu. Takže pokud se má započítat nějaký další provoz, musíte pravidla upravit tak, aby jim vyhovělo přesně to, co chcete počítat. Bez znalosti topologie sítě, konfigurace NATu a toho, co chcete počítat, vám těžko můžeme poradit něco konkrétnějšího. Nezapomeňte také na to, že SNAT se dělá až v POSTROUTING, tj. že SNATované pakety procházejí firewallem s původní (nezměněnou) adresou.
13.10.2009 08:39 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: iptables counter
Jednak mne nenapadlo použít počítadla u pravidel, jednak u samostatného řetězce mám rovnou sdružený upload a download (nebo ockoli, co chci počítat dohromady), za třetí vynulovat počítadla můžu jen u celého řetězce, takže když použiju zvláštní řetězec, mohu účtování dělat pro každý řetězec v jiném intervalu, pokud budu používat jen počítadla pravidel, musím údaje stahovat ve společném intervalu. Ale záleží asi na konkrétním využití a také na zvyku, co kdo použije.
petka avatar 13.10.2009 18:50 petka | skóre: 25 | blog: heydax | Klasterec N/O
Rozbalit Rozbalit vše Re: iptables counter
Ano diky moc stacilo prepsat parametr A za I . Stalo se tak ze pre projde nejdriv accountem a pak se aplikuji firewall pravidla .Dekuji moc . Stale je co se ucit a zkouset .
Ubuntu server - Asus E35M1​-M ​- AMD Hudson M1 , 2x Technisat Skystar2 , 2x 1GB Lan , WiFi mod AP ,vdr,mysql,apache2...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.