Skip to content
Snippets Groups Projects
Commit 6643b079 authored by Klas Arvidsson's avatar Klas Arvidsson
Browse files

updated squid filer helper program

parent 095d2115
No related branches found
No related tags found
No related merge requests found
...@@ -4,11 +4,26 @@ import sys ...@@ -4,11 +4,26 @@ import sys
import re import re
import datetime import datetime
import socket import socket
import urllib.parse
errorpage = "http://www.ida.liu.se/~examadm/empty" emptypage = "https://www.ida.liu.se/edu/ugrad/datortenta/empty"
errorpage = "https://www.ida.liu.se/edu/ugrad/datortenta/blocked.php"
filterlog = "/var/log/squid/filter.log"
basedir = "/usr/libexec/squid/helpers" basedir = "/usr/libexec/squid/helpers"
hostname = socket.gethostname() hostname = socket.gethostname()
def block_response(url):
if re.match('.*\.s?html([#?].*)?', url):
url = urllib.parse.quote(url)
return 'OK rewrite-url="{}?url={}"'.format(errorpage, url)
else:
return 'OK rewrite-url="{}"'.format(emptypage, url)
# return "OK status=302 url=\"" + errorpage + "\""
# "status" can only be used in the "Using an HTTP redirector" case,
# not in the "Using a re-writer to mangle the URL as it passes" case
# RTFM: https://wiki.squid-cache.org/Features/Redirectors
def modify_url(line, ruleset): def modify_url(line, ruleset):
### [channel-ID <SP>] URL <SP> client_ip "/" fqdn <SP> user <SP> method [<SP> kv-pairs]<NL> ### [channel-ID <SP>] URL <SP> client_ip "/" fqdn <SP> user <SP> method [<SP> kv-pairs]<NL>
list = line.split(' ') list = line.split(' ')
...@@ -29,22 +44,18 @@ def modify_url(line, ruleset): ...@@ -29,22 +44,18 @@ def modify_url(line, ruleset):
if r != None: if r != None:
return 'OK rewrite-url="http://{}:12000/{}"'.format(hostname, r.group(1)) return 'OK rewrite-url="http://{}:12000/{}"'.format(hostname, r.group(1))
for i in ruleset: for rule in ruleset:
pattern = 0
if i[0].match(url) != None: allowed = 1
# if re.match(i[0], url) != None: if rule[pattern].match(url) != None:
if i[1]: if rule[allowed]:
return "OK" return "OK"
else: else:
return "OK rewrite-url=\"" + errorpage + "\"" return block_response(url)
return "OK rewrite-url=\"" + errorpage + "\"" return block_response(url)
# return "OK status=302 url=\"" + errorpage + "\""
# "status" can only be used in the "Using an HTTP redirector" case,
# not in the "Using a re-writer to mangle the URL as it passes" case
# RTFM: https://wiki.squid-cache.org/Features/Redirectors
def load_rules(ruleset, filename): def load_rules(ruleset, filename):
...@@ -70,7 +81,7 @@ def main(): ...@@ -70,7 +81,7 @@ def main():
load_rules(ruleset, basedir + "/rules.d/sas.rules") load_rules(ruleset, basedir + "/rules.d/sas.rules")
# load_rules(ruleset, basedir + "/rules.d/dn.rules") # load_rules(ruleset, basedir + "/rules.d/dn.rules")
with open('/tmp/access.log', 'a') as log: with open(filterlog, 'a') as log:
try: try:
while True: while True:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment