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.97 and 2.98

version 2.97, 2013/09/28 08:30:57 version 2.98, 2013/09/28 09:22:42
Line 22 
Line 22 
 # 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.96 2013-09-23 08:40:34 nepto Exp $  # $Platon: scripts/shell/firewall/fw-universal.sh,v 2.97 2013-09-28 08:30:57 nepto Exp $
 #  #
 # Changelog:  # Changelog:
 # 2003-10-24 - created  # 2003-10-24 - created
Line 1204  allow_input()
Line 1204  allow_input()
   
 } # }}}  } # }}}
   
 # ACCEPT all packets from our IP address  # ACCEPT selected IPs/ports if defined for interface
 allow_all_output()  # if not defined ACCEPT all packets from our IP addresses
 { # {{{  allow_output()
   { # {{{
           output_tcp_str="";
           output_udp_str="";
           output_icmp_str="";
   
         # Povolíme odchozí pakety, které mají naše IP adresy  
         print_info -en "Accepting OUTPUT packets from"  
         for iface in $INTERFACES; do          for iface in $INTERFACES; do
                 riface="IFname_$iface";                  riface="IFname_$iface";
                 IPS="IP_$iface";                  IPS="IP_$iface";
   
                   accept_output_tcp="${iface}_ACCEPT_OUTPUT_TCP"
                   ACCEPT_OUTPUT_TCP="${!accept_output_tcp}"
                   accept_output_udp="${iface}_ACCEPT_OUTPUT_UDP"
                   ACCEPT_OUTPUT_UDP="${!accept_output_udp}"
   
                   # TCP
                   if [ -z "$ACCEPT_OUTPUT_TCP" ]; then
                           for ip in ${!IPS}; do
                                   output_tcp_str=" $ip($iface)";
                                   $IPTABLES -A OUTPUT -p TCP -o ${!riface} -s $ip -j ACCEPT
                           done
                   else
                           print_info -en "$iface: Accepting OUTPUT TCP connections to ports:"
                           for port in $ACCEPT_OUTPUT_TCP; do
                                   dest_ip=""
                                   eval `echo $port | awk -v FS=: '/:/ { printf "dest_ip=\"%s\"; port=\"%s\";", $1, $2; }'`
                                   if [ -n "$dest_ip" -a "$port" = "0" ]; then
                                           port="ALL";
                                   fi
                                   print_info -en " $port"`[ ! -z "$dest_ip" ] && echo "[$dest_ip]"`
                                   if [ -z "$dest_ip" ]; then
                                           $IPTABLES -A OUTPUT -o ${!riface} -p TCP --dport $port -j ACCEPT
                                   else
                                           if [ "$port" = "ALL" ]; then
                                                   $IPTABLES -A OUTPUT -o ${!riface} -d $dest_ip -p TCP -j ACCEPT
                                           else
                                                   $IPTABLES -A OUTPUT -o ${!riface} -d $dest_ip -p TCP --dport $port -j ACCEPT
                                           fi
                                   fi
                           done
                           print_info " done."
                   fi
   
                   # UDP
                   if [ -z "$ACCEPT_OUTPUT_UDP" ]; then
                           for ip in ${!IPS}; do
                                   output_udp_str=" $ip($iface)";
                                   $IPTABLES -A OUTPUT -p UDP -o ${!riface} -s $ip -j ACCEPT
                           done
                   else
                           print_info -en "$iface: Accepting OUTPUT UDP connections to ports:"
                           for port in $ACCEPT_OUTPUT_UDP; do
                                   dest_ip=""
                                   eval `echo $port | awk -v FS=: '/:/ { printf "dest_ip=\"%s\"; port=\"%s\";", $1, $2; }'`
                                   if [ -n "$dest_ip" -a "$port" = "0" ]; then
                                           port="ALL";
                                   fi
                                   print_info -en " $port"`[ ! -z "$dest_ip" ] && echo "[$dest_ip]"`
                                   if [ -z "$dest_ip" ]; then
                                           $IPTABLES -A OUTPUT -o ${!riface} -p UDP --dport $port -j ACCEPT
                                   else
                                           if [ "$port" = "ALL" ]; then
                                                   $IPTABLES -A OUTPUT -o ${!riface} -d $dest_ip -p UDP -j ACCEPT
                                           else
                                                   $IPTABLES -A OUTPUT -o ${!riface} -d $dest_ip -p UDP --dport $port -j ACCEPT
                                           fi
                                   fi
                           done
                           print_info " done."
                   fi
   
                   # ICMP
                 for ip in ${!IPS}; do                  for ip in ${!IPS}; do
                         print_info -en " $ip($iface)"                          output_icmp_str=" $ip($iface)";
                         $IPTABLES -A OUTPUT -o ${!riface} -s $ip -j ACCEPT                          $IPTABLES -A OUTPUT -p ICMP -o ${!riface} -s $ip -j ACCEPT
                 done                  done
         done;          done
         print_info " done.";  
   
           if [ -n "$output_tcp_str" ]; then
                   print_info "Accepting OUTPUT TCP packets from $output_tcp_str done."
           fi
           if [ -n "$output_udp_str" ]; then
                   print_info "Accepting OUTPUT UDP packets from $output_udp_str done."
           fi
           if [ -n "$output_icmp_str" ]; then
                   print_info "Accepting OUTPUT ICMP packets from $output_icmp_str done."
           fi
 } # }}}  } # }}}
   
 allow_icmp()  allow_icmp()
Line 1749  case "$1" in
Line 1822  case "$1" in
                 drop_input                  drop_input
                 reject_input                  reject_input
                 allow_input                  allow_input
                   allow_output
                 allow_icmp                  allow_icmp
                 allow_all_output  
                 accept_loopback                  accept_loopback
                 masquerade                  masquerade
                 forward_on                  forward_on

Legend:
Removed from v.2.97  
changed lines
  Added in v.2.98

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