Project

General

Profile

« Previous | Next » 

Revision 92276df6

Added by Cyrill B over 12 years ago

Add back end support for custom bogon urls

View differences:

etc/rc.update_bogons.sh
7 7
echo "rc.update_bogons.sh is starting up." | logger
8 8

  
9 9
# Sleep for some time, unless an argument is specified.
10

  
11 10
if [ "$1" = "" ]; then
12 11
    # Grab a random value  
13 12
    value=`od -A n -d -N2 /dev/random | awk '{ print $1 }'`
......
17 16

  
18 17
echo "rc.update_bogons.sh is beginning the update cycle." | logger
19 18

  
20
/usr/bin/fetch -q -o /tmp/bogons "http://files.pfsense.org/lists/fullbogons-ipv4.txt"
21
/usr/bin/fetch -q -o /tmp/bogonsv6 "http://files.pfsense.org/lists/fullbogons-ipv6.txt"
19
# Load custom bogon configuration
20
if [ -f /var/etc/bogon_custom ]; then
21
	. /var/etc/bogon_custom
22
fi
23

  
24
# Set default values if not overriden
25
v4url=${v4url:-"http://files.pfsense.org/lists/fullbogons-ipv4.txt"}
26
v6url=${v6url:-"http://files.pfsense.org/lists/fullbogons-ipv6.txt"}
27
v4urlcksum=${v4urlcksum:-"${v4url}.md5"}
28
v6urlcksum=${v6urlcksum:-"${v6url}.md5"}
29

  
30
/usr/bin/fetch -q -o /tmp/bogons "${v4url}"
31
/usr/bin/fetch -q -o /tmp/bogonsv6 "${v6url}"
22 32
if [ ! -f /tmp/bogons ]; then
23
	echo "Could not download http://files.pfsense.org/lists/fullbogons-ipv4.txt" | logger
33
	echo "Could not download ${v4url}" | logger
24 34
	dl_error="true"
25 35
fi
26 36
if [ ! -f /tmp/bogonsv6 ]; then
27
	echo "Could not download http://files.pfsense.org/lists/fullbogons-ipv6.txt" | logger
37
	echo "Could not download ${v6url}" | logger
28 38
	dl_error="true"
29 39
fi
30 40

  
......
34 44
	exit
35 45
fi
36 46

  
37
BOGON_V4_MD5=`/usr/bin/fetch -q -o - "http://files.pfsense.org/lists/fullbogons-ipv4.txt.md5" | awk '{ print $4 }'`
38
ON_DISK_V4_MD5=`md5 /tmp/bogons | awk '{ print $4 }'`
39
BOGON_V6_MD5=`/usr/bin/fetch -q -o - "http://files.pfsense.org/lists/fullbogons-ipv6.txt.md5" | awk '{ print $4 }'`
40
ON_DISK_V6_MD5=`md5 /tmp/bogonsv6 | awk '{ print $4 }'`
47
BOGON_V4_CKSUM=`/usr/bin/fetch -q -o - "${v4urlcksum}" | awk '{ print $4 }'`
48
ON_DISK_V4_CKSUM=`md5 /tmp/bogons | awk '{ print $4 }'`
49
BOGON_V6_CKSUM=`/usr/bin/fetch -q -o - "${v6urlcksum}" | awk '{ print $4 }'`
50
ON_DISK_V6_CKSUM=`md5 /tmp/bogonsv6 | awk '{ print $4 }'`
41 51

  
42
if [ "$BOGON_V4_MD5" = "$ON_DISK_V4_MD5" ] || [ "$BOGON_V6_MD5" = "$ON_DISK_V6_MD5" ]; then
52
if [ "$BOGON_V4_CKSUM" = "$ON_DISK_V4_CKSUM" ] || [ "$BOGON_V6_CKSUM" = "$ON_DISK_V6_CKSUM" ]; then
43 53
	# At least one of the downloaded MD5s matches, so mount RW
44 54
	/etc/rc.conf_mount_rw
45 55
fi
46 56

  
47
if [ "$BOGON_V4_MD5" = "$ON_DISK_V4_MD5" ]; then
57
if [ "$BOGON_V4_CKSUM" = "$ON_DISK_V4_CKSUM" ]; then
48 58
	egrep -v "^192.168.0.0/16|^172.16.0.0/12|^10.0.0.0/8" /tmp/bogons > /etc/bogons
49 59
	RESULT=`/sbin/pfctl -t bogons -T replace -f /etc/bogons 2>&1`
50 60
	rm /tmp/bogons
51 61
	echo "$RESULT" |awk '{ print "Bogons V4 file downloaded: " $0 }' | logger
52 62
else
53
	echo "Could not download http://files.pfsense.org/lists/fullbogons-ipv4.txt.md5 (md5 mismatch)" | logger
54
	md5_error="true"
63
	echo "Could not download ${v4urlcksum} (checksum mismatch)" | logger
64
	checksum_error="true"
55 65
fi
56 66

  
57
if [ "$BOGON_V6_MD5" = "$ON_DISK_V6_MD5" ]; then
67
if [ "$BOGON_V6_CKSUM" = "$ON_DISK_V6_CKSUM" ]; then
58 68
	egrep -v "^fc00::/7" /tmp/bogonsv6 > /etc/bogonsv6
59 69
	RESULT=`/sbin/pfctl -t bogonsv6 -T replace -f /etc/bogonsv6 2>&1`
60 70
	rm /tmp/bogonsv6
61 71
	echo "$RESULT" |awk '{ print "Bogons V6 file downloaded: " $0 }' | logger
62 72
else
63
	echo "Could not download http://files.pfsense.org/lists/fullbogons-ipv6.txt.md5 (md5 mismatch)" | logger
64
	md5_error="true"
73
	echo "Could not download ${v6urlcksum} (checksum mismatch)" | logger
74
	checksum_error="true"
65 75
fi
66 76

  
67
if [ "$BOGON_V4_MD5" = "$ON_DISK_V4_MD5" ] || [ "$BOGON_V6_MD5" = "$ON_DISK_V6_MD5" ]; then
77
if [ "$BOGON_V4_CKSUM" = "$ON_DISK_V4_CKSUM" ] || [ "$BOGON_V6_CKSUM" = "$ON_DISK_V6_CKSUM" ]; then
68 78
	# We mounted RW, so switch back to RO
69 79
	/etc/rc.conf_mount_ro
70 80
fi
71 81

  
72
if [ "$md5_error" != "" ];then
82
if [ "$checksum_error" != "" ];then
73 83
	# Relaunch and sleep
74 84
	sh /etc/rc.update_bogons.sh & 
75 85
	exit

Also available in: Unified diff