Changeset 10136 in hybrid for trunk/nanobsd/files/etc/ipfw.sh
- Timestamp:
- Mar 12, 2012, 6:32:43 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/nanobsd/files/etc/ipfw.sh
r10135 r10136 1 1 #!/bin/sh - 2 # Based on /etc/rc.firewall 3 # 4 # Credits: Richard van Mansom, Rick van der Zwet 2 5 3 # Based on /etc/rc.firewall 6 7 allowed2internet="80,443" 8 maxconnections="10" 9 10 RFC1918_nets="10.0.0.0/8,172.16.0.0/12,192.168.0.0/16" 11 WLNET='172.16.0.0/12' 4 12 5 13 # Suck in the configuration variables. … … 34 42 esac 35 43 44 ########### 45 # Set Internal/External Interface 46 # 47 driver=`echo ${internalif} | sed 's/[0-9]*//g'` 48 seq=`echo ${internalif} | sed 's/[a-zA-Z]*//g'` 49 50 if [ ${seq} = 0 ]; then 51 seq=`expr ${seq} \+ 1` 52 else 53 seq=`expr ${seq} \- 1` 54 fi 55 56 externalif="$driver$seq" 57 58 # Get interface Addresses 59 externalip=`ifconfig $externalif | awk '/inet/ { print $2 }'` 60 internalip=`ifconfig $internalif | awk '/inet/ { print $2 }'` 36 61 ############ 37 62 # Flush out the list before we begin. … … 41 66 setup_loopback 42 67 43 ############44 45 # By default no firewalling46 ${fwcmd} add 65000 pass all from any to any47 48 # Transproxy/WLportal/Captive portal49 ${fwcmd} add 10000 allow tcp from any to localhost 8050 ${fwcmd} add 10001 allow tcp from any to me 8051 68 52 69 ############ 53 # Reserved: Whitelist rule numbers 54 # 10002 - 10009 55 NR=10002 56 for IP in $captive_portal_whitelist; do 57 ${fwcmd} add $NR allow tcp from $IP to not 172.16.0.0/12 dst-port 80 58 NR=`expr $NR + 1` 70 # Block the hosters network (and maybe others) 71 for IP in ${firewall_block} 72 do 73 ${fwcmd} add deny ip from any to ${IP} in via $internalif 59 74 done 60 75 61 76 ############ 62 # Reserved: WLPortal rule numbers63 # 10010 - 10099 77 # Statefull filewall in use 78 ${fwcmd} add check-state 64 79 65 # Forward rules work without a base address, so needed a loop over all inet4 adresses 66 for INF in $captive_portal_interfaces; do 67 ${fwcmd} add 10100 fwd 172.31.255.1,8081 tcp from any to not 172.16.0.0/12 80 in via ${INF} 68 done 80 # Allow anything originating from me 81 ${fwcmd} add allow ip from me to any keep-state 82 83 84 ############# 85 # Outbound NAT setup 86 # WL Net -> Internet 87 ${fwcmd} add nat 100 all from $WLNET to any out recv $internalif xmit $externalif 88 ${fwcmd} add nat 100 all from any to $externalip in recv $externalif 89 ${fwcmd} nat 100 config if $externalif 90 91 # Subnet Internet is allowed 92 ${fwcmd} add allow tcp from $WLNET to any $allowed2internet in via $internalif setup limit src-addr $maxconnections 93 94 95 ############# 96 # Internal Network -> WL Net 97 # Inbound NAT setup, to allow proxy device to be used gateway from Internal Network to WL 98 ${fwcmd} add nat 200 all from $RFC1918_nets to $WLNET out recv $externalif xmit $internalif 99 ${fwcmd} add nat 200 all from $WLNET to $internalip in recv $internalif 100 ${fwcmd} nat 200 config if $internalif 101 102 # Allow all traffic inbound 103 ${fwcmd} add allow all from $RFC1918_nets to $WLNET in recv $externalif keep-state 104 105 106 ############# 107 ## Services in use 108 ## Allow on external interface 109 external_allow_tcp="ssh" 110 ${fwcmd} add allow tcp from any to me $external_allow_tcp via $externalif setup keep-state 111 112 ## Allow on internal interface 113 internal_allow_tcp="ssh,domain,3128" 114 internal_allow_udp="ntp,domain,snmp,12345" 115 ${fwcmd} add allow udp from $WLNET to me ${internal_allow_udp} via $internalif keep-state 116 ${fwcmd} add allow tcp from $WLNET to me ${internal_allow_tcp} via $internalif setup keep-state 117 118 # Basic ICMP managment traffic 119 ${fwcmd} add allow icmp from any to me icmptype 8 120 ${fwcmd} add allow icmp from me to any icmptype 3,4,11 121 122 123 ############# 124 # Block anything else 125 ${fwcmd} add 65000 deny log logamount 500 ip from any to any 126
Note:
See TracChangeset
for help on using the changeset viewer.