summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErmal Luçi <ermal.luci@gmail.com>2012-08-02 07:45:52 -0700
committerErmal Luçi <ermal.luci@gmail.com>2012-08-02 07:45:52 -0700
commit919d450395b1cc5f7267c40f7ccc4c64fc27a749 (patch)
tree9776f0696812be07c8acc3257bb5502ba165e68f
parentbc8a1938f5c1797213bf849f2bdb88bca72d5089 (diff)
parent342a2f18f9d39368e0bdafecea4dba29bddce8b6 (diff)
downloadpfsense-919d450395b1cc5f7267c40f7ccc4c64fc27a749.zip
pfsense-919d450395b1cc5f7267c40f7ccc4c64fc27a749.tar.gz
Merge pull request #201 from phil-davis/master
Bogons updated - make sure conf_mount_rw and conf_mount_ro are matched
-rwxr-xr-xetc/rc.update_bogons.sh45
1 files changed, 27 insertions, 18 deletions
diff --git a/etc/rc.update_bogons.sh b/etc/rc.update_bogons.sh
index 29a77ee..a721096 100755
--- a/etc/rc.update_bogons.sh
+++ b/etc/rc.update_bogons.sh
@@ -6,7 +6,7 @@
echo "rc.update_bogons.sh is starting up." | logger
-# Sleep for that time, unless an argument is specified.
+# Sleep for some time, unless an argument is specified.
if [ "$1" = "" ]; then
# Grab a random value
@@ -17,9 +17,6 @@ fi
echo "rc.update_bogons.sh is beginning the update cycle." | logger
-# Mount RW if needed
-/etc/rc.conf_mount_rw
-
/usr/bin/fetch -q -o /tmp/bogons "http://files.pfsense.org/mirrors/bogon-bn-nonagg.txt"
/usr/bin/fetch -q -o /tmp/bogonsv6 "http://files.pfsense.org/mirrors/fullbogons-ipv6.txt"
if [ ! -f /tmp/bogons ]; then
@@ -37,33 +34,45 @@ if [ "$dl_error" != "" ];then
exit
fi
-BOGON_MD5=`/usr/bin/fetch -q -o - "http://files.pfsense.org/mirrors/bogon-bn-nonagg.txt.md5" | awk '{ print $4 }'`
-ON_DISK_MD5=`md5 /tmp/bogons | awk '{ print $4 }'`
-if [ "$BOGON_MD5" = "$ON_DISK_MD5" ]; then
+BOGON_V4_MD5=`/usr/bin/fetch -q -o - "http://files.pfsense.org/mirrors/bogon-bn-nonagg.txt.md5" | awk '{ print $4 }'`
+ON_DISK_V4_MD5=`md5 /tmp/bogons | awk '{ print $4 }'`
+BOGON_V6_MD5=`/usr/bin/fetch -q -o - "http://files.pfsense.org/mirrors/fullbogons-ipv6.txt.md5" | awk '{ print $4 }'`
+ON_DISK_V6_MD5=`md5 /tmp/bogonsv6 | awk '{ print $4 }'`
+
+if [ "$BOGON_V4_MD5" = "$ON_DISK_V4_MD5" ] || [ "$BOGON_V6_MD5" = "$ON_DISK_V6_MD5" ]; then
+ # At least one of the downloaded MD5s matches, so mount RW
+ /etc/rc.conf_mount_rw
+fi
+
+if [ "$BOGON_V4_MD5" = "$ON_DISK_V4_MD5" ]; then
egrep -v "^192.168.0.0/16|^172.16.0.0/12|^10.0.0.0/8" /tmp/bogons > /etc/bogons
- /etc/rc.conf_mount_ro
RESULT=`/sbin/pfctl -t bogons -T replace -f /etc/bogons 2>&1`
rm /tmp/bogons
- echo "Bogons file downloaded: $RESULT" | logger
+ echo "Bogons V4 file downloaded: $RESULT" | logger
else
echo "Could not download http://files.pfsense.org/mirrors/bogon-bn-nonagg.txt.md5 (md5 mismatch)" | logger
- # Relaunch and sleep
- sh /etc/rc.update_bogons.sh &
+ md5_error="true"
fi
-BOGON_MD5=`/usr/bin/fetch -q -o - "http://files.pfsense.org/mirrors/fullbogons-ipv6.txt.md5" | awk '{ print $4 }'`
-ON_DISK_MD5=`md5 /tmp/bogonsv6 | awk '{ print $4 }'`
-if [ "$BOGON_MD5" = "$ON_DISK_MD5" ]; then
+if [ "$BOGON_V6_MD5" = "$ON_DISK_V6_MD5" ]; then
egrep -v "^#" /tmp/bogonsv6 > /etc/bogonsv6
- /etc/rc.conf_mount_ro
RESULT=`/sbin/pfctl -t bogonsv6 -T replace -f /etc/bogonsv6 2>&1`
rm /tmp/bogonsv6
- echo "Bogons files downloaded: $RESULT" | logger
+ echo "Bogons V6 file downloaded: $RESULT" | logger
else
echo "Could not download http://files.pfsense.org/mirrors/fullbogons-ipv6.txt.md5 (md5 mismatch)" | logger
+ md5_error="true"
+fi
+
+if [ "$BOGON_V4_MD5" = "$ON_DISK_V4_MD5" ] || [ "$BOGON_V6_MD5" = "$ON_DISK_V6_MD5" ]; then
+ # We mounted RW, so switch back to RO
+ /etc/rc.conf_mount_ro
+fi
+
+if [ "$md5_error" != "" ];then
# Relaunch and sleep
- sh /etc/rc.update_bogons.sh &
+ sh /etc/rc.update_bogons.sh &
+ exit
fi
echo "rc.update_bogons.sh is ending the update cycle." | logger
-
OpenPOWER on IntegriCloud