All pastes #16533 Raw Edit

Stuff

public text v1 · immutable
#16533 ·published 2005-06-30 18:45 UTC
rendered paste body
#!/bin/sh
#IPFW script by w00dy

ipfwcmd="/sbin/ipfw"
flags="-q"

#int
oif="rl0"

logall="log"  

### Flush the rules
	$ipfwcmd $flags -f flush

### Allow loopback and deny loopback spoofs
	$ipfwcmd $flags add 00100 allow all from any to any via lo0
	$ipfwcmd $flags add 00110 deny $logall ip from any to 127.0.0.0/8 via $oif
	$ipfwcmd $flags add 00120 deny $logall ip from 127.0.0.0/8 to any via $oif

### Stop PNAs from connecting 
        $ipfwcmd $flags add 00130 deny $logall ip from 192.168.0.0/16 to any via $oif
        $ipfwcmd $flags add 00140 deny $logall ip from 172.16.0.0/12 to any via $oif
        $ipfwcmd $flags add 00150 deny $logall ip from 10.0.0.0/8 to any via $oif
        $ipfwcmd $flags add 00160 deny $logall ip from any to 192.168.0.0/16 via $oif
        $ipfwcmd $flags add 00170 deny $logall ip from any to 172.16.0.0/12 via $oif
        $ipfwcmd $flags add 00180 deny $logall ip from any to 10.0.0.0/8 via $oif

### Deny XMAS tree, Null scan, SYN Flood, Stealth FIN, and forced packer routing

        $ipfwcmd $flags add 00200 deny log tcp from any to any in tcpflags fin,psh,urg recv $oif
        $ipfwcmd $flags add 00210 deny log tcp from any to any in tcpflags !fin,!syn,!rst,!psh,!ack,!urg recv $oif
        $ipfwcmd $flags add 00220 deny log tcp from any to any in tcpflags syn,fin recv $oif
        $ipfwcmd $flags add 00230 deny log tcp from any to any in tcpflags fin,rst recv $oif
        $ipfwcmd $flags add 00240 deny log ip from any to any in ipoptions ssrr,lsrr,rr,ts recv $oif



### Deny late, redirect, and spoofing attacks
	$ipfwcmd $flags add 00250 deny $logall all from any to any frag
        $ipfwcmd $flags add 00270 deny $logall icmp from any to any icmptype 5
        $ipfwcmd $flags add 00280 deny $logall ip from me to me in via $oif

### Deny in pop & smtp
        $ipfwcmd $flags add 00290 deny ip from any to any 25 in via $oif
        $ipfwcmd $flags add 00295 deny ip from any to any 110 in via $oif

## Reject & Don't log IRC Proxy Scanner's ##
        $ipfwcmd $flags add 00300 deny tcp from any to any 3128 in via $oif
        $ipfwcmd $flags add 00310 deny tcp from any to any 80 in via $oif
        $ipfwcmd $flags add 00320 deny tcp from any to any 1080 in via $oif
        $ipfwcmd $flags add 00330 deny tcp from any to any 23 in via $oif

## Get rid of Microsoft bullshit
        $ipfwcmd $flags add 00400 deny all from any to any 137 in via $oif
        $ipfwcmd $flags add 00405 deny all from any to any 138 in via $oif
        $ipfwcmd $flags add 00410 deny all from any to any 139 in via $oif
        $ipfwcmd $flags add 00415 deny all from any to any 81 in via $oif
        $ipfwcmd $flags add 00419 deny all from any to any 1025 in via $oif
        $ipfwcmd $flags add 00420 deny all from any to any 1026 in via $oif
        $ipfwcmd $flags add 00425 deny all from any to any 1027 in via $oif
        $ipfwcmd $flags add 00430 deny all from any to any 1028 in via $oif
        $ipfwcmd $flags add 00431 deny all from any to any 1029 in via $oif
        $ipfwcmd $flags add 00432 deny all from any to any 1030 in via $oif
        $ipfwcmd $flags add 00435 deny all from any to any 445 in via $oif
        $ipfwcmd $flags add 00445 deny all from any to any 135 in via $oif
        $ipfwcmd $flags add 00450 deny all from any to any 1434 in via $oif
        $ipfwcmd $flags add 00455 deny all from any to any 1433 in via $oif
        $ipfwcmd $flags add 00460 deny tcp from any to any 443 in via $oif


###### inbound section #######

### check the traffic's state
        $ipfwcmd $flags add 00500 check-state
        $ipfwcmd $flags add 00501 allow tcp from any to any established

### Allow in standard http
#	$ipfwcmd $flags add 00510 allow tcp from any to any 80 in via $oif setup keep-state

### Allow in secure https
#	$ipfwcmd $flags add 00515 allow tcp from any to any 443 in via $oif setup keep-state

### Allow in Webmin 
        $ipfwcmd $flags add 00670 allow tcp from any to me 9000 in via $oif setup keep-state
        $ipfwcmd $flags add 00690 allow udp from any to me 9000 in via $oif keep-state
### Allow in dns 
	$ipfwcmd $flags add 00520 allow udp from 66.118.128.20 53 to me in via $oif keep-state
        $ipfwcmd $flags add 00525 allow udp from 66.118.128.21 53 to me in via $oif keep-state
     
### Deny in pop & smtp 
#	$ipfwcmd $flags add 00560 deny tcp from any to me 25 in via $oif setup keep-state
#	$ipfwcmd $flags add 00570 deny tcp from any to me 110 in via $oif setup keep-state

### Allow in imap
#	$ipfwcmd $flags add 00580 allow tcp from any to me 143 in via $oif setup keep-state

### Allow in ftp
	$ipfwcmd $flags add 00590 allow tcp from any to me 21 in via $oif setup keep-state
        $ipfwcmd $flags add 00600 allow tcp from any to me 40000-65535 in via $oif setup keep-state

### Allow in ssh 
	$ipfwcmd $flags add 00620 allow tcp from any to me 22 in via $oif setup keep-state  

### Allow in snmp
#	$ipfwcmd $flags add 00630 allow udp from any to me 161 in via $oif keep-state

### Allow in irc
	$ipfwcmd $flags add 00650 allow tcp from any to me 3000-9999 in via $oif setup keep-state
        $ipfwcmd $flags add 00660 allow udp from any to me 49152-65535 in via $oif keep-state

### Allow in GameServer's
#        $ipfwcmd $flags add 00661 allow tcp from any to me 20000-30000 in via $oif setup keep-state

###  Allow in ping
        $ipfwcmd $flags add 00665 allow icmp from any to me icmptype 0,8 in via $oif

### Allow in traceroute
        $ipfwcmd $flags add 00670 allow icmp from any to me icmptype 3,11 in via $oif limit src-addr 4

### Allow in ident
        $ipfwcmd $flags add 00675 allow tcp from any to me 113 in via $oif setup keep-state

### ACK scan (ACK,RST)
        $ipfwcmd $flags add 00680 deny log tcp from any to any in tcpflags ack,rst recv $oif


#################### Deny & Log all incoming that fall through to here  #########################

	$ipfwcmd $flags add 01000 deny $logall logamount 500 all from any to any in via $oif

#################################################################################################



###### outbound section ######


### Allow out standard http
#	$ipfwcmd $flags add 02000 allow tcp from any to any 80 out via $oif setup keep-state

### Allow out secure https
#	$ipfwcmd $flags add 02010 allow tcp from any to any 443 out via $oif setup keep-state

### Allow out Webmin
        $ipfwcmd $flags add 02020 allow tcp from any 9000 to any out via $oif setup keep-state
        $ipfwcmd $flags add 02030 allow udp from any 9000 to any out via $oif keep-state

### Allow out dns
	$ipfwcmd $flags add 02040 allow tcp from any to any 53 out via $oif setup keep-state
	$ipfwcmd $flags add 02050 allow udp from any to any 53 out via $oif keep-state
	$ipfwcmd $flags add 02060 allow tcp from any to any 953 out via $oif setup keep-state
	$ipfwcmd $flags add 02070 allow udp from any to any 953 out via $oif keep-state

### Allow out pop & smtp
	$ipfwcmd $flags add 02080 allow tcp from any to any 25 out via $oif setup keep-state
	$ipfwcmd $flags add 02090 allow tcp from any to any 110 out via $oif setup keep-state

### Allow out imap
	$ipfwcmd $flags add 02100 allow tcp from any to any 143 out via $oif setup keep-state

### Give root all
        $ipfwcmd $flags add 02110 allow tcp from me to any out via $oif setup keep-state uid root
        $ipfwcmd $flags add 02120 allow udp from me to any out via $oif keep-state uid root

### Allow out ftp with passive ports
	$ipfwcmd $flags add 02130 allow tcp from me to any 21 out via $oif setup keep-state
#	$ipfwcmd $flags add 02140 allow tcp from any 20 to any 49152-65535 setup keep-state

### Allow out ssh
        $ipfwcmd $flags add 02150 allow tcp from me 22 to any out via $oif setup keep-state

### Allow out snmp
	$ipfwcmd $flags add 02160 allow udp from any to any 161 out via $oif keep-state

### Allow out ident
	$ipfwcmd $flags add 02170 allow tcp from any 113 to any out via $oif setup keep-state

### Allow out whois
	$ipfwcmd $flags add 02190 allow tcp from any to any 43 out via $oif setup keep-state

### Allow out ping
        $ipfwcmd $flags add 02200 allow icmp from any to any out via $oif

### Allow out finger
	$ipfwcmd $flags add 02210 allow tcp from any to any 79 out via $oif setup keep-state
	$ipfwcmd $flags add 02220 allow udp from any to any 79 out via $oif keep-state

### Allow out traceroute
        $ipfwcmd $flags add 02230 allow udp from me to any 33435-33500 out via $oif keep-state

### Allow out ircd
	$ipfwcmd $flags add 02240 allow tcp from any to any 3000-9999 out via $oif setup keep-state
        $ipfwcmd $flags add 02250 allow tcp from any 49152-65535 to any out via $oif setup keep-state



###### Everything Else #####

### deny and log everything else that is trying to get out.
	$ipfwcmd $flags add 03000 deny $logall logamount 500 all from any to any out via $oif




############## deny and log all packets that fell through to see what they are ####################
        
	$ipfwcmd $flags add 04000 deny $logall logamount 500 all from any to any