Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Tuesday, March 19, 2024

Diff for scripts/shell/firewall/fw-universal.sh between version 2.57 and 2.58

version 2.57, 2008/02/02 22:57:54 version 2.58, 2008/04/13 19:27:00
Line 9 
Line 9 
 # Licensed under terms of GNU General Public License.  # Licensed under terms of GNU General Public License.
 # All rights reserved.  # All rights reserved.
 #  #
 # $Platon: scripts/shell/firewall/fw-universal.sh,v 2.56 2008-01-27 13:36:02 rajo Exp $  # $Platon: scripts/shell/firewall/fw-universal.sh,v 2.57 2008-02-02 22:57:54 rajo Exp $
 #  #
 # Changelog:  # Changelog:
 # 2003-10-24 - created  # 2003-10-24 - created
Line 73  RMMOD="${RMMOD:=/sbin/rmmod}"
Line 73  RMMOD="${RMMOD:=/sbin/rmmod}"
 AWK="${AWK:=/usr/bin/awk}"  AWK="${AWK:=/usr/bin/awk}"
 PERL="${PERL:=/usr/bin/perl}"  PERL="${PERL:=/usr/bin/perl}"
   
   # shaping
   TC="${TC:=/sbin/tc}"
   
 # loopback interface  # loopback interface
 LO_IFACE="${LO_IFACE:=lo}"  LO_IFACE="${LO_IFACE:=lo}"
 # Hide NAT clients behind firewall  # Hide NAT clients behind firewall
Line 986  accept_loopback()
Line 989  accept_loopback()
   
 } # }}}  } # }}}
   
   #
   # Shaping support {{{
   #
   # http://koti.welho.com/ntoivol2/shaping/
   #
   
   shaping_on()
   { # {{{
   
           mark_idx=1
           if [ ! -z $SHAPING_IFACE ]; then
                   for iface in $SHAPING_IFACE; do
                           echo "Shaping for interface $iface"
                           shaping_classes="${iface}_SHAPING_CLASSES"
   
                           # root qdisc: 2-band prio with everything defaulting to band 0
                           $TC qdisc add dev $iface root handle 1: prio bands 2 priomap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
   
                           for class in ${!shaping_classes}; do
                                   rate="${iface}_SHAPING_RATE_${class}"
                                   latency="${iface}_SHAPING_LATENCY_${class}"
                                   burst="${iface}_SHAPING_BURST_${class}"
                                   netmask="${iface}_SHAPING_NETMASK_${class}"
                                   echo -e "\tshaping \"$class\" traffic: rate=${!rate} burst=${!burst} netmask=${!netmask}"
                                   if [ -z ${!netmask} ]; then
                                           $IPTABLES -t mangle -A OUTPUT -j MARK --set-mark 0x$mark_idx
                                   else
                                           $IPTABLES -t mangle -A OUTPUT -d ${!netmask} -j MARK --set-mark 0x$mark_idx
                                   fi
   
                                   if [ -z ${!rate} ]; then
                                           # SFQ for local traffic
                                           $TC qdisc add dev $iface parent 1:$mark_idx handle $((10 + $mark_idx)): sfq perturb 10
                                   else
                                           # TBF shaping and SFQ for internet traffic
                                           $TC qdisc add dev $iface parent 1:$mark_idx handle $((10 + $mark_idx)): tbf rate ${!rate} burst ${!burst} latency ${!latency}
                                           $TC qdisc add dev $iface parent $((10 + $mark_idx)): handle $((10 * $mark_idx)): sfq perturb 10
                                   fi
   
                                   mark_idx=$(($mark_idx + 1))
                           done
                   done
           fi
   
   } # }}}
   
   shaping_off()
   { # {{{
           if [ ! -z $SHAPING_IFACE ]; then
                   echo -en "Shaping turned off for interface"
                   for iface in $SHAPING_IFACE; do
                           echo -en " $iface"
                           $TC qdisc del dev $iface root 2>/dev/null
                   done
                   echo ". done"
           fi
   } # }}}
   
   shaping_status()
   { # {{{
           if [ ! -z $SHAPING_IFACE ]; then
                   echo "# Shaping status: "
                   $TC qdisc list
           else
                   echo "# Shaping turned off"
           fi
   } # }}}
   
   # }}}
   
 add_banned_ip()  add_banned_ip()
 { # {{{  { # {{{
         echo "# `date '+%Y-%m-%d %X' ` - ${SSH_CLIENT:=local}" >> $DEFAULT_FIREWALL_CONFIG_DIR/BANNED_IP.conf          echo "# `date '+%Y-%m-%d %X' ` - ${SSH_CLIENT:=local}" >> $DEFAULT_FIREWALL_CONFIG_DIR/BANNED_IP.conf
Line 1199  case "$1" in
Line 1272  case "$1" in
                 log_forward_drop                  log_forward_drop
                 forward_on                  forward_on
                 do_ip_accounting                  do_ip_accounting
                   shaping_off
                   shaping_on
                 configure_special_rules                  configure_special_rules
                 $IPTABLES_SAVE -c > $CACHE_FILE                  $IPTABLES_SAVE -c > $CACHE_FILE
                 ;;                  ;;
   
         stop)          stop)
                 print_info -n "Stopping $DESC: "                  print_info -n "Stopping $DESC: "
                   shaping_off
                 set_default_policy                  set_default_policy
                 remove_chains                  remove_chains
                 unload_modules                  unload_modules
Line 1223  case "$1" in
Line 1299  case "$1" in
         status)          status)
                 print_iface_status; echo                  print_iface_status; echo
                 $IPTABLES -L -nv                  $IPTABLES -L -nv
                   shaping_status
                 ;;                  ;;
   
         purge)          purge)

Legend:
Removed from v.2.57  
changed lines
  Added in v.2.58

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top