Changeset 18617


Ignore:
Timestamp:
2009-12-01T23:31:10+01:00 (8 years ago)
Author:
jow
Message:

[package] firewall: initialize dest_port with src_dport if omitted in redirect sections to narrow
down corresponding forward rules to the actual target ports - thanks Niels Boehm! (#6249)

Location:
trunk/package/firewall
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/firewall/Makefile

    r17762 r18617  
    1010 
    1111PKG_VERSION:=1 
    12 PKG_RELEASE:=8 
     12PKG_RELEASE:=9 
    1313 
    1414include $(INCLUDE_DIR)/package.mk 
  • trunk/package/firewall/files/uci_firewall.sh

    r18028 r18617  
    1 #!/bin/sh  
     1#!/bin/sh 
    22# Copyright (C) 2008 John Crispin <blogic@openwrt.org> 
    33 
     
    4444create_zone() { 
    4545        local exists 
    46          
     46 
    4747        [ "$1" == "loopback" ] && return 
    4848 
    4949        config_get exists $ZONE_LIST $1 
    5050        [ -n "$exists" ] && return 
    51         config_set $ZONE_LIST $1 1  
     51        config_set $ZONE_LIST $1 1 
    5252 
    5353        $IPTABLES -N zone_$1 
     
    9191        $IPTABLES -I zone_${zone}_DROP 1 -i "$ifname" -j DROP 
    9292        $IPTABLES -I zone_${zone}_REJECT 1 -i "$ifname" -j reject 
    93         $IPTABLES -I zone_${zone}_nat 1 -t nat -o "$ifname" -j MASQUERADE  
    94         $IPTABLES -I PREROUTING 1 -t nat -i "$ifname" -j zone_${zone}_prerouting  
     93        $IPTABLES -I zone_${zone}_nat 1 -t nat -o "$ifname" -j MASQUERADE 
     94        $IPTABLES -I PREROUTING 1 -t nat -i "$ifname" -j zone_${zone}_prerouting 
    9595        $IPTABLES -A forward -i "$ifname" -j zone_${zone}_forward 
    9696        $IPTABLES -t raw -I PREROUTING 1 -i "$ifname" -j zone_${zone}_notrack 
     
    114114        $IPTABLES -D zone_${zone}_DROP -i "$ifname" -j DROP 
    115115        $IPTABLES -D zone_${zone}_REJECT -i "$ifname" -j reject 
    116         $IPTABLES -D zone_${zone}_nat -t nat -o "$ifname" -j MASQUERADE  
    117         $IPTABLES -D PREROUTING -t nat -i "$ifname" -j zone_${zone}_prerouting  
     116        $IPTABLES -D zone_${zone}_nat -t nat -o "$ifname" -j MASQUERADE 
     117        $IPTABLES -D PREROUTING -t nat -i "$ifname" -j zone_${zone}_prerouting 
    118118        $IPTABLES -D forward -i "$ifname" -j zone_${zone}_forward 
    119119        uci_revert_state firewall core "${network}_ifname" 
     
    161161 
    162162        echo 1 > /proc/sys/net/ipv4/tcp_syncookies 
    163         for f in /proc/sys/net/ipv4/conf/*/accept_redirects  
     163        for f in /proc/sys/net/ipv4/conf/*/accept_redirects 
    164164        do 
    165165                echo 0 > $f 
    166166        done 
    167         for f in /proc/sys/net/ipv4/conf/*/accept_source_route  
     167        for f in /proc/sys/net/ipv4/conf/*/accept_source_route 
    168168        do 
    169169                echo 0 > $f 
    170         done                                                                    
    171          
     170        done 
     171 
    172172        uci_revert_state firewall core 
    173         uci_set_state firewall core "" firewall_state  
     173        uci_set_state firewall core "" firewall_state 
    174174 
    175175        $IPTABLES -P INPUT DROP 
     
    198198        config_get syn_burst $1 syn_burst 
    199199        [ "$syn_flood" == "1" ] && load_synflood $syn_rate $syn_burst 
    200          
     200 
    201201        echo "Adding custom chains" 
    202202        fw_custom_chains 
     
    254254 
    255255fw_rule() { 
    256         local src  
     256        local src 
    257257        local src_ip 
    258258        local src_mac 
     
    288288        [ "$dest_port_first" -ne "$dest_port_last" ] && { \ 
    289289                dest_port="$dest_port_first:$dest_port_last"; } 
    290          
     290 
    291291        ZONE=input 
    292292        TARGET=$target 
     
    304304                        ${dest_ip:+-d $dest_ip} \ 
    305305                        ${dest_port:+--dport $dest_port} \ 
    306                         -j $TARGET  
     306                        -j $TARGET 
    307307        } 
    308308        [ "$proto" == "tcpudp" -o -z "$proto" ] && { 
     
    341341        local dest_port dest_port2 
    342342        local proto 
    343          
     343 
    344344        config_get src $1 src 
    345345        config_get src_ip $1 src_ip 
     
    352352        [ -z "$src" -o -z "$dest_ip" ] && { \ 
    353353                echo "redirect needs src and dest_ip"; return ; } 
    354          
     354 
    355355        src_port_first=${src_port%-*} 
    356356        src_port_last=${src_port#*-} 
     
    363363                src_dport="$src_dport_first:$src_dport_last"; } 
    364364 
    365         dest_port2=$dest_port 
     365        dest_port2=${dest_port:-$src_dport} 
    366366        dest_port_first=${dest_port2%-*} 
    367367        dest_port_last=${dest_port2#*-} 
     
    385385                        ${dest_port2:+--dport $dest_port2} \ 
    386386                        ${src_mac:+-m mac --mac-source $src_mac} \ 
    387                         -j ACCEPT  
     387                        -j ACCEPT 
    388388        } 
    389389        [ "$proto" == "tcpudp" -o -z "$proto" ] && { 
     
    419419        $IPTABLES -N prerouting_rule -t nat 
    420420        $IPTABLES -N postrouting_rule -t nat 
    421                          
     421 
    422422        $IPTABLES -A INPUT -j input_rule 
    423423        $IPTABLES -A OUTPUT -j output_rule 
Note: See TracChangeset for help on using the changeset viewer.