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.1 and 2.2

version 2.1, 2004/12/11 19:50:24 version 2.2, 2004/12/12 18:00:11
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.0 2004/11/14 15:23:09 rajo Exp $  # $Platon: scripts/shell/firewall/fw-universal.sh,v 2.1 2004/12/11 19:50:24 rajo Exp $
 #  #
 # Changelog:  # Changelog:
 # 2004-11-14 - created  # 2004-11-14 - created
Line 196  syn_flood()
Line 196  syn_flood()
 anti_spoof_filter()  anti_spoof_filter()
 { # {{{  { # {{{
   
 #   http://www.iana.com/assignments/ipv4-address-space          #   http://www.iana.com/assignments/ipv4-address-space
   
         INET_IFACE=$1          if [ ! -z "$ANTISPOOF_IFACE" ]; then
   
         $IPTABLES -N spoof                  echo -en "Turning on antispoof filter for interfaces: "
                   $IPTABLES -N spoof
   
         echo "Turning on antispoof filter for interface $INET_IFACE "                  # Ochrana proti Spoogingu zo spatnej slucky
         # Ochrana proti Spoogingu zo spatnej slucky                  $IPTABLES -A spoof -s 127.0.0.0/8 $LOG_LIMIT -j LOG --log-prefix "RESERVED:127.0.0.0/8 src"
         $IPTABLES -A spoof -i $INET_IFACE -s 127.0.0.0/8 $LOG_LIMIT -j LOG --log-prefix "Reserved IP:127.0.0.0/8 src"                  $IPTABLES -A spoof -s 127.0.0.0/8 -j DROP
         $IPTABLES -A spoof -i $INET_IFACE -s 127.0.0.0/8 -j DROP                  $IPTABLES -A spoof -d 127.0.0.0/8 $LOG_LIMIT -j LOG --log-prefix "RESERVED:127.0.0.0/8 dest"
         $IPTABLES -A spoof -i $INET_IFACE -d 127.0.0.0/8 $LOG_LIMIT -j LOG --log-prefix "Reserved IP:127.0.0.0/8 dest"                  $IPTABLES -A spoof -d 127.0.0.0/8 -j DROP
         $IPTABLES -A spoof -i $INET_IFACE -d 127.0.0.0/8 -j DROP                  # Ochrana proti Spoofingu Internetu z adries urcenych pre lokalne siete
         # Ochrana proti Spoofingu Internetu z adries urcenych pre lokalne siete                  $IPTABLES -A spoof -s 192.168.0.0/16 $LOG_LIMIT -j LOG --log-prefix "RESERVED:192.168.0.0/16 src"
         $IPTABLES -A spoof -i $INET_IFACE -s 192.168.0.0/16 $LOG_LIMIT -j LOG --log-prefix "Reserved IP:192.168.0.0/16 src"                  $IPTABLES -A spoof -s 192.168.0.0/16 -j DROP            # RFC1918
         $IPTABLES -A spoof -i $INET_IFACE -s 192.168.0.0/16 -j DROP             # RFC1918                  $IPTABLES -A spoof -s 172.16.0.0/12 $LOG_LIMIT -j LOG --log-prefix "RESERVED:172.16.0.0/12 src"
         $IPTABLES -A spoof -i $INET_IFACE -s 172.16.0.0/12 $LOG_LIMIT -j LOG --log-prefix "Reserved IP:172.16.0.0/12 src"                  $IPTABLES -A spoof -s 172.16.0.0/12 -j DROP             # RFC1918
         $IPTABLES -A spoof -i $INET_IFACE -s 172.16.0.0/12 -j DROP              # RFC1918                  $IPTABLES -A spoof -s 10.0.0.0/8  $LOG_LIMIT -j LOG --log-prefix "RESERVED:10.0.0.0/8 src"
         $IPTABLES -A spoof -i $INET_IFACE -s 10.0.0.0/8  $LOG_LIMIT -j LOG --log-prefix "Reserved IP:10.0.0.0/8 src"                  $IPTABLES -A spoof -s 10.0.0.0/8 -j DROP  # RFC1918 len pre sietovy interface do Internetu, kedze 10.0.0.0 je adresa LAN
         $IPTABLES -A spoof -i $INET_IFACE -s 10.0.0.0/8 -j DROP  # RFC1918 len pre sietovy interface do Internetu, kedze 10.0.0.0 je adresa LAN                  $IPTABLES -A spoof -s 96.0.0.0/4 $LOG_LIMIT -j LOG --log-prefix "RESERVED:96.0.0.0/4 src"
         $IPTABLES -A spoof -i $INET_IFACE -s 96.0.0.0/4 $LOG_LIMIT -j LOG --log-prefix "Reserved IP:96.0.0.0/4 src"                  $IPTABLES -A spoof -s 96.0.0.0/4 -j DROP                        # IANA
         $IPTABLES -A spoof -i $INET_IFACE -s 96.0.0.0/4 -j DROP                         # IANA  
         echo " done."                  for iface in $ANTISPOOF_IFACE; do
                           echo -en " $iface"
                           $IPTABLES -A FORWARD -i $iface -j spoof
                           $IPTABLES -A INPUT   -i $iface -j spoof
                   done
                   echo " done."
           fi
 } # }}}  } # }}}
   
 mangle_prerouting()  mangle_prerouting()
Line 261  mangle_output()
Line 268  mangle_output()
   
 } # }}}  } # }}}
   
   # Masquerade local subnet
   masquerade()
   { # {{{
           if [ ! -z "$NAT_LAN_IFACE" ]; then
                   echo -en "Masquerading local subnet:"
   
                   ip="IP_$NAT_SUBNET_IFACE";
                   netmask="Mask_$NAT_SUBNET_IFACE"
                   localnet="${!ip}/${!netmask}"
   
                   # alow packets from private subnet
                   $IPTABLES -A FORWARD -s ! $localnet -i $NAT_SUBNET_IFACE -j DROP
                   $IPTABLES -A INPUT   -i $NAT_SUBNET_IFACE -j ACCEPT
                   $IPTABLES -A FORWARD -i $NAT_SUBNET_IFACE -j ACCEPT
   
                   $IPTABLES -t nat -A POSTROUTING -s $localnet -o $NAT_LAN_IFACE -j MASQUERADE
   
   
                   # Keep state of connections from private subnets
                   iptables -A OUTPUT  -m state --state NEW -o $NAT_LAN_IFACE -j ACCEPT
                   iptables -A FORWARD -m state --state NEW -o $NAT_LAN_IFACE -j ACCEPT
                   iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
                   echo " done."
           fi
   } # }}}
   
   drop_output()
   { # {{{
   
           for iface in $INTERFACES; do
                   ip="IP_$iface";
                   drop_output_tcp="${iface}_DROP_OUTPUT_TCP"
                   DROP_OUTPUT_TCP="${!drop_output_tcp}"
                   drop_output_udp="${iface}_DROP_OUTPUT_UDP"
                   DROP_OUTPUT_UDP="${!drop_output_udp}"
   
                   if [ ! -z "$DROP_OUTPUT_TCP" ]; then
                           echo -en "$iface: Dropping outgoing packets from ports:"
                           for port in $DROP_OUTPUT_TCP; do
                                   echo -en " $port"
                                   $IPTABLES -A FORWARD -p TCP --sport $port -o $iface -j DROP
                                   $IPTABLES -A OUTPUT  -p TCP --sport $port -o $iface -j DROP
                           done
                           echo " done."
                   fi
   
                   if [ ! -z "$DROP_OUTPUT_UDP" ]; then
                           echo -en "$iface: Dropping outgoing packets from ports:"
                           for port in $DROP_OUTPUT_UDP; do
                                   echo -en " $port"
                                   $IPTABLES -A FORWARD -p UDP --sport $port -o $iface -j DROP
                                   $IPTABLES -A OUTPUT  -p UDP --sport $port -o $iface -j DROP
                           done
                           echo " done."
                   fi
           done
   
   } # }}}
   
 allow_input()  allow_input()
 { # {{{  { # {{{
   
           if [ ! -z "$IFACE_ACCEPT_ALL" ]; then
                   echo -en "Accepting ALL packets on interfaces:"
                   for iface in $IFACE_ACCEPT_ALL; do
                           echo -en " $iface"
                           $IPTABLES -A INPUT   -i $iface -j ACCEPT
                           $IPTABLES -A FORWARD -i $iface -j ACCEPT
                   done
                   echo " done."
           fi
   
         if [ ! -z "$ALL_ACCEPT_INPUT_TCP" ]; then          if [ ! -z "$ALL_ACCEPT_INPUT_TCP" ]; then
                 echo -en "Accepting ALL INPUT TCP connections on ports:"                  echo -en "Accepting ALL INPUT TCP connections on ports:"
                 for port in $ALL_ACCEPT_INPUT_TCP; do                  for port in $ALL_ACCEPT_INPUT_TCP; do
Line 283  allow_input()
Line 360  allow_input()
                 ACCEPT_INPUT_UDP="${!accept_input_udp}"                  ACCEPT_INPUT_UDP="${!accept_input_udp}"
   
                 if [ ! -z "$ACCEPT_INPUT_TCP" ]; then                  if [ ! -z "$ACCEPT_INPUT_TCP" ]; then
                         echo -en "$iface: Accepting INPUT TCP connections on ports: "                          echo -en "$iface: Accepting INPUT TCP connections on ports:"
                         for port in $ACCEPT_INPUT_TCP; do                          for port in $ACCEPT_INPUT_TCP; do
                                 echo -en " $port"                                  echo -en " $port"
                                 $IPTABLES -A INPUT -i $iface -d ${!ip} -p TCP --dport $port -j ACCEPT                                  $IPTABLES -A INPUT -i $iface -d ${!ip} -p TCP --dport $port -j ACCEPT
Line 292  allow_input()
Line 369  allow_input()
                 fi                  fi
   
                 if [ ! -z "$ACCEPT_INPUT_UDP" ]; then                  if [ ! -z "$ACCEPT_INPUT_UDP" ]; then
                         echo -en "$iface: Accepting INPUT UDP connections on ports: "                          echo -en "$iface: Accepting INPUT UDP connections on ports:"
                         for port in $ACCEPT_INPUT_UDP; do                          for port in $ACCEPT_INPUT_UDP; do
                                 echo -en " $port"                                  echo -en " $port"
                                 #$IPTABLES -A INPUT -i $iface -d ${!INET_IP} -p UDP --dport $port -j ACCEPT                                  #$IPTABLES -A INPUT -i $iface -d ${!INET_IP} -p UDP --dport $port -j ACCEPT
Line 355  log_output_drop()
Line 432  log_output_drop()
   
         prefix="output drop: "          prefix="output drop: "
         echo "Output drop is logged with prefix '$prefix'"          echo "Output drop is logged with prefix '$prefix'"
         # Ostatní pakety logujeme (neměly by být žádné takové)  
         $IPTABLES -A OUTPUT $LOG_LIMIT -j LOG --log-prefix "$prefix"          $IPTABLES -A OUTPUT $LOG_LIMIT -j LOG --log-prefix "$prefix"
   
 } # }}}  } # }}}
   
   log_forward_drop()
   { # {{{
   
           prefix="forward drop: "
           echo "Forward drop is logged with prefix '$prefix'"
           $IPTABLES -A FORWARD $LOG_LIMIT -j LOG --log-prefix "$prefix"
   
   } # }}}
   
 accept_related()  accept_related()
 { # {{{  { # {{{
   
Line 367  accept_related()
Line 452  accept_related()
         for iface in $INTERFACES; do          for iface in $INTERFACES; do
                 ip="IP_$iface";                  ip="IP_$iface";
                 echo -en " ${!ip}($iface)"                  echo -en " ${!ip}($iface)"
                 $IPTABLES -A INPUT -i $iface -d ${!ip} -m state --state ESTABLISHED,RELATED -j ACCEPT                  $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
         done          done
         echo " done."          echo " done."
   
Line 453  case "$1" in
Line 538  case "$1" in
                 set_loopback                  set_loopback
                 nmap_scan_filter                  nmap_scan_filter
                 invalid_packet_filter                  invalid_packet_filter
                 #anti_spoof_filter eth0                  anti_spoof_filter
                 syn_flood                  syn_flood
                 mangle_prerouting                  mangle_prerouting
                 mangle_output                  mangle_output
                   drop_output
                 allow_input                  allow_input
                 allow_output                  allow_output
                 allow_icmp                  allow_icmp
                 accept_related                  accept_related
                 accept_loopback                  accept_loopback
                   masquerade
                 log_input_drop                  log_input_drop
                 log_output_drop                  log_output_drop
                   log_forward_drop
                 ;;                  ;;
   
         stop)          stop)

Legend:
Removed from v.2.1  
changed lines
  Added in v.2.2

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