| 
									
										
										
										
											2018-05-23 13:02:19 +00:00
										 |  |  | #!/bin/ash
 | 
					
						
							| 
									
										
										
										
											2017-10-13 18:58:14 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Let's ensure normal operation on exit or if interrupted ... | 
					
						
							|  |  |  | function fuCLEANUP { | 
					
						
							|  |  |  |   exit 0 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | trap fuCLEANUP EXIT | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-30 16:41:46 +00:00
										 |  |  | ### Vars | 
					
						
							|  |  |  | myOINKCODE="$1" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-23 13:02:19 +00:00
										 |  |  | # Check internet availability  | 
					
						
							|  |  |  | function fuCHECKINET () { | 
					
						
							|  |  |  | mySITES=$1 | 
					
						
							|  |  |  | error=0 | 
					
						
							|  |  |  | for i in $mySITES; | 
					
						
							|  |  |  |   do | 
					
						
							|  |  |  |     curl --connect-timeout 5 -Is $i 2>&1 > /dev/null | 
					
						
							|  |  |  |       if [ $? -ne 0 ]; | 
					
						
							|  |  |  |         then | 
					
						
							|  |  |  | 	  let error+=1 | 
					
						
							|  |  |  |       fi; | 
					
						
							|  |  |  |   done; | 
					
						
							|  |  |  |   echo $error | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2018-03-30 16:41:46 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-23 13:02:19 +00:00
										 |  |  | # Check for connectivity and download rules | 
					
						
							|  |  |  | myCHECK=$(fuCHECKINET "rules.emergingthreatspro.com rules.emergingthreats.net") | 
					
						
							|  |  |  | if [ "$myCHECK" == "0" ]; | 
					
						
							|  |  |  |   then | 
					
						
							| 
									
										
										
										
											2020-11-26 17:10:16 +00:00
										 |  |  |     if [ "$myOINKCODE" != "" ] && [ "$myOINKCODE" != "OPEN" ]; | 
					
						
							|  |  |  |       then | 
					
						
							|  |  |  |         suricata-update -q enable-source et/pro secret-code=$myOINKCODE > /dev/null | 
					
						
							|  |  |  |       else | 
					
						
							|  |  |  |         # suricata-update uses et/open ruleset by default if not configured | 
					
						
							|  |  |  |         rm -f /var/lib/suricata/update/sources/et-pro.yaml 2>&1 > /dev/null | 
					
						
							|  |  |  |     fi | 
					
						
							|  |  |  |     suricata-update -q --no-test --no-reload > /dev/null | 
					
						
							| 
									
										
										
										
											2018-05-23 13:02:19 +00:00
										 |  |  |     echo "/etc/suricata/capture-filter.bpf" | 
					
						
							|  |  |  |   else | 
					
						
							|  |  |  |     echo "/etc/suricata/null.bpf" | 
					
						
							|  |  |  | fi | 
					
						
							| 
									
										
										
										
											2021-04-21 10:44:36 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Download rules via URL | 
					
						
							|  |  |  | if [ "$FROMURL" != "" ] ; then | 
					
						
							|  |  |  |     SAVEIFS=$IFS ; IFS='|' | 
					
						
							|  |  |  |     for URL in $FROMURL; do | 
					
						
							| 
									
										
										
										
											2021-05-03 12:40:08 +00:00
										 |  |  |         if [ $(curl -I --silent --output /dev/null --write-out "%{http_code}" "$URL") -eq 200 ] ; then | 
					
						
							| 
									
										
										
										
											2021-04-21 10:44:36 +00:00
										 |  |  |            rm -rf /tmp/* | 
					
						
							|  |  |  |            curl "$URL" -o /tmp/rules.tar.gz | 
					
						
							|  |  |  |            tar -xvf /tmp/rules.tar.gz -C /tmp | 
					
						
							|  |  |  |            suricata-update --local /tmp/rules --no-test | 
					
						
							|  |  |  |            rm -rf /tmp/* | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |           continue | 
					
						
							|  |  |  |         fi | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  |     IFS=$SAVEIFS | 
					
						
							|  |  |  | fi |