From c335952b2a350690c79082e8ffb45cfebd2c039c Mon Sep 17 00:00:00 2001 From: Michael Ramsey Date: Sun, 10 Nov 2019 10:13:43 -0500 Subject: [PATCH 1/5] Update secMiddleware.py with option to enable/disable sessionIPvalidation for those with Dynamic IPs --- CyberCP/secMiddleware.py | 58 +++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/CyberCP/secMiddleware.py b/CyberCP/secMiddleware.py index b6de2c7ac..453dafd41 100755 --- a/CyberCP/secMiddleware.py +++ b/CyberCP/secMiddleware.py @@ -3,42 +3,46 @@ import json from django.shortcuts import HttpResponse import re +# Create option to enable/disable sessionIPValidation for Dynamic IP's +sessionIPValidation = 'true' + class secMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): - try: - uID = request.session['userID'] - ipAddr = request.META.get('REMOTE_ADDR') + if sessionIPValidation == 'true': + try: + uID = request.session['userID'] + ipAddr = request.META.get('REMOTE_ADDR') - if ipAddr.find('.') > -1: - if request.session['ipAddr'] == ipAddr: - pass + if ipAddr.find('.') > -1: + if request.session['ipAddr'] == ipAddr: + pass + else: + del request.session['userID'] + del request.session['ipAddr'] + logging.writeToFile(request.META.get('REMOTE_ADDR')) + final_dic = {'error_message': "Session reuse detected, IPAddress logged. Toggle off sessionIPValidation in secMiddleware.py if seeing this frequently with Dynamic IP", + "errorMessage": "Session reuse detected, IPAddress logged. Toggle off sessionIPValidation in secMiddleware.py if seeing this frequently with Dynamic IP"} + final_json = json.dumps(final_dic) + return HttpResponse(final_json) else: - del request.session['userID'] - del request.session['ipAddr'] - logging.writeToFile(request.META.get('REMOTE_ADDR')) - final_dic = {'error_message': "Session reuse detected, IPAddress logged.", - "errorMessage": "Session reuse detected, IPAddress logged."} - final_json = json.dumps(final_dic) - return HttpResponse(final_json) - else: - ipAddr = request.META.get('REMOTE_ADDR').split(':')[:3] + ipAddr = request.META.get('REMOTE_ADDR').split(':')[:3] - if request.session['ipAddr'] == ipAddr: - pass - else: - del request.session['userID'] - del request.session['ipAddr'] - logging.writeToFile(request.META.get('REMOTE_ADDR')) - final_dic = {'error_message': "Session reuse detected, IPAddress logged.", - "errorMessage": "Session reuse detected, IPAddress logged."} - final_json = json.dumps(final_dic) - return HttpResponse(final_json) - except: - pass + if request.session['ipAddr'] == ipAddr: + pass + else: + del request.session['userID'] + del request.session['ipAddr'] + logging.writeToFile(request.META.get('REMOTE_ADDR')) + final_dic = {'error_message': "Session reuse detected, IPAddress logged. Toggle off sessionIPValidation in secMiddleware.py if seeing this frequently with Dynamic IP", + "errorMessage": "Session reuse detected, IPAddress logged. Toggle off sessionIPValidation in secMiddleware.py if seeing this frequently with Dynamic IP"} + final_json = json.dumps(final_dic) + return HttpResponse(final_json) + except: + pass if request.method == 'POST': try: #logging.writeToFile(request.body) From c282a7155af192bcb55e424c7e9b784b1f8c8498 Mon Sep 17 00:00:00 2001 From: Michael Ramsey Date: Fri, 29 Nov 2019 11:16:28 -0500 Subject: [PATCH 2/5] Update CSF to enable Ipset --- plogical/csf.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plogical/csf.py b/plogical/csf.py index 666b9136d..601a375ab 100755 --- a/plogical/csf.py +++ b/plogical/csf.py @@ -73,10 +73,10 @@ class CSF(multi.Thread): # install required packages for CSF perl and /usr/bin/host if ProcessUtilities.decideDistro() == ProcessUtilities.centos: - command = 'yum install bind-utils net-tools perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph -y' + command = 'yum install bind-utils net-tools perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph ipset -y' ProcessUtilities.normalExecutioner(command) elif ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: - command = 'apt-get install dnsutils libwww-perl liblwp-protocol-https-perl libgd-graph-perl net-tools -y' + command = 'apt-get install dnsutils libwww-perl liblwp-protocol-https-perl libgd-graph-perl net-tools ipset -y' ProcessUtilities.normalExecutioner(command) command = 'ln -s /bin/systemctl /usr/bin/systemctl' ProcessUtilities.normalExecutioner(command) @@ -280,6 +280,10 @@ class CSF(multi.Thread): elif items.find('PT_LOAD =') > -1 and items.find('=') > -1 and (items[0] != '#'): writeToConf.writelines('PT_LOAD = "0"\n') + # Enable LF_IPSET for CSF for more efficient ipables rules with ipset + elif items.find('LF_IPSET =') > -1 and items.find('=') > -1 and (items[0] != '#'): + writeToConf.writelines('LF_IPSET = "1"\n') + # HTACCESS_LOG is ins main error.log elif items.find('HTACCESS_LOG =') > -1 and items.find('=') > -1 and (items[0] != '#'): writeToConf.writelines('HTACCESS_LOG = "/usr/local/lsws/logs/error.log"\n') From f6de2899886b0522064b0e40aad3013c1c15fc92 Mon Sep 17 00:00:00 2001 From: Michael Ramsey Date: Fri, 29 Nov 2019 11:22:24 -0500 Subject: [PATCH 3/5] Revert "Update secMiddleware.py with option to enable/disable sessionIPvalidation for those with Dynamic IPs" This reverts commit c335952b2a350690c79082e8ffb45cfebd2c039c. --- CyberCP/secMiddleware.py | 58 +++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/CyberCP/secMiddleware.py b/CyberCP/secMiddleware.py index 453dafd41..b6de2c7ac 100755 --- a/CyberCP/secMiddleware.py +++ b/CyberCP/secMiddleware.py @@ -3,46 +3,42 @@ import json from django.shortcuts import HttpResponse import re -# Create option to enable/disable sessionIPValidation for Dynamic IP's -sessionIPValidation = 'true' - class secMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): - if sessionIPValidation == 'true': - try: - uID = request.session['userID'] - ipAddr = request.META.get('REMOTE_ADDR') + try: + uID = request.session['userID'] + ipAddr = request.META.get('REMOTE_ADDR') - if ipAddr.find('.') > -1: - if request.session['ipAddr'] == ipAddr: - pass - else: - del request.session['userID'] - del request.session['ipAddr'] - logging.writeToFile(request.META.get('REMOTE_ADDR')) - final_dic = {'error_message': "Session reuse detected, IPAddress logged. Toggle off sessionIPValidation in secMiddleware.py if seeing this frequently with Dynamic IP", - "errorMessage": "Session reuse detected, IPAddress logged. Toggle off sessionIPValidation in secMiddleware.py if seeing this frequently with Dynamic IP"} - final_json = json.dumps(final_dic) - return HttpResponse(final_json) + if ipAddr.find('.') > -1: + if request.session['ipAddr'] == ipAddr: + pass else: - ipAddr = request.META.get('REMOTE_ADDR').split(':')[:3] + del request.session['userID'] + del request.session['ipAddr'] + logging.writeToFile(request.META.get('REMOTE_ADDR')) + final_dic = {'error_message': "Session reuse detected, IPAddress logged.", + "errorMessage": "Session reuse detected, IPAddress logged."} + final_json = json.dumps(final_dic) + return HttpResponse(final_json) + else: + ipAddr = request.META.get('REMOTE_ADDR').split(':')[:3] - if request.session['ipAddr'] == ipAddr: - pass - else: - del request.session['userID'] - del request.session['ipAddr'] - logging.writeToFile(request.META.get('REMOTE_ADDR')) - final_dic = {'error_message': "Session reuse detected, IPAddress logged. Toggle off sessionIPValidation in secMiddleware.py if seeing this frequently with Dynamic IP", - "errorMessage": "Session reuse detected, IPAddress logged. Toggle off sessionIPValidation in secMiddleware.py if seeing this frequently with Dynamic IP"} - final_json = json.dumps(final_dic) - return HttpResponse(final_json) - except: - pass + if request.session['ipAddr'] == ipAddr: + pass + else: + del request.session['userID'] + del request.session['ipAddr'] + logging.writeToFile(request.META.get('REMOTE_ADDR')) + final_dic = {'error_message': "Session reuse detected, IPAddress logged.", + "errorMessage": "Session reuse detected, IPAddress logged."} + final_json = json.dumps(final_dic) + return HttpResponse(final_json) + except: + pass if request.method == 'POST': try: #logging.writeToFile(request.body) From 8974abcfc30d2e8c33384e9f8d30e77ea8ea318c Mon Sep 17 00:00:00 2001 From: Michael Ramsey Date: Fri, 29 Nov 2019 11:25:05 -0500 Subject: [PATCH 4/5] Revert "Update CSF to enable Ipset" This reverts commit c282a7155af192bcb55e424c7e9b784b1f8c8498. --- plogical/csf.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/plogical/csf.py b/plogical/csf.py index 601a375ab..666b9136d 100755 --- a/plogical/csf.py +++ b/plogical/csf.py @@ -73,10 +73,10 @@ class CSF(multi.Thread): # install required packages for CSF perl and /usr/bin/host if ProcessUtilities.decideDistro() == ProcessUtilities.centos: - command = 'yum install bind-utils net-tools perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph ipset -y' + command = 'yum install bind-utils net-tools perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph -y' ProcessUtilities.normalExecutioner(command) elif ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: - command = 'apt-get install dnsutils libwww-perl liblwp-protocol-https-perl libgd-graph-perl net-tools ipset -y' + command = 'apt-get install dnsutils libwww-perl liblwp-protocol-https-perl libgd-graph-perl net-tools -y' ProcessUtilities.normalExecutioner(command) command = 'ln -s /bin/systemctl /usr/bin/systemctl' ProcessUtilities.normalExecutioner(command) @@ -280,10 +280,6 @@ class CSF(multi.Thread): elif items.find('PT_LOAD =') > -1 and items.find('=') > -1 and (items[0] != '#'): writeToConf.writelines('PT_LOAD = "0"\n') - # Enable LF_IPSET for CSF for more efficient ipables rules with ipset - elif items.find('LF_IPSET =') > -1 and items.find('=') > -1 and (items[0] != '#'): - writeToConf.writelines('LF_IPSET = "1"\n') - # HTACCESS_LOG is ins main error.log elif items.find('HTACCESS_LOG =') > -1 and items.find('=') > -1 and (items[0] != '#'): writeToConf.writelines('HTACCESS_LOG = "/usr/local/lsws/logs/error.log"\n') From b94dd0a3dfb394109f5df6ffa351da17e51fa4b6 Mon Sep 17 00:00:00 2001 From: Michael Ramsey Date: Fri, 29 Nov 2019 11:28:43 -0500 Subject: [PATCH 5/5] Update CSF to enable Ipset --- plogical/csf.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plogical/csf.py b/plogical/csf.py index 666b9136d..601a375ab 100755 --- a/plogical/csf.py +++ b/plogical/csf.py @@ -73,10 +73,10 @@ class CSF(multi.Thread): # install required packages for CSF perl and /usr/bin/host if ProcessUtilities.decideDistro() == ProcessUtilities.centos: - command = 'yum install bind-utils net-tools perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph -y' + command = 'yum install bind-utils net-tools perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph ipset -y' ProcessUtilities.normalExecutioner(command) elif ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu: - command = 'apt-get install dnsutils libwww-perl liblwp-protocol-https-perl libgd-graph-perl net-tools -y' + command = 'apt-get install dnsutils libwww-perl liblwp-protocol-https-perl libgd-graph-perl net-tools ipset -y' ProcessUtilities.normalExecutioner(command) command = 'ln -s /bin/systemctl /usr/bin/systemctl' ProcessUtilities.normalExecutioner(command) @@ -280,6 +280,10 @@ class CSF(multi.Thread): elif items.find('PT_LOAD =') > -1 and items.find('=') > -1 and (items[0] != '#'): writeToConf.writelines('PT_LOAD = "0"\n') + # Enable LF_IPSET for CSF for more efficient ipables rules with ipset + elif items.find('LF_IPSET =') > -1 and items.find('=') > -1 and (items[0] != '#'): + writeToConf.writelines('LF_IPSET = "1"\n') + # HTACCESS_LOG is ins main error.log elif items.find('HTACCESS_LOG =') > -1 and items.find('=') > -1 and (items[0] != '#'): writeToConf.writelines('HTACCESS_LOG = "/usr/local/lsws/logs/error.log"\n')