+
{% trans "Failed to start installation, Error message: " %} {$ errorMessage $}
diff --git a/firewall/templates/firewall/modSecurityRulesPacks.html b/firewall/templates/firewall/modSecurityRulesPacks.html
new file mode 100644
index 000000000..5a4176f2e
--- /dev/null
+++ b/firewall/templates/firewall/modSecurityRulesPacks.html
@@ -0,0 +1,113 @@
+{% extends "baseTemplate/index.html" %}
+{% load i18n %}
+{% block title %}{% trans "ModSecurity Rules Packs - CyberPanel" %}{% endblock %}
+{% block content %}
+
+{% load static %}
+{% get_current_language as LANGUAGE_CODE %}
+
+
+
+
+
+
{% trans "ModSecurity Rules Packages!" %}
+
{% trans "Install/Un-install ModSecurity rules packages." %}
+
+
+
+
+
+
+ {% if modSecInstalled == 0 %}
+
+
+
+
+ {% else %}
+
+
+
+
+
+
+
+
+
+
+
+
{% trans "Operation successful." %}
+
+
+
+
{% trans "Could not connect. Please refresh this page." %}
+
+
+
+
{% trans "Installation failed." %} {$ errorMessage $}
+
+
+
+
{% trans "Operation successful, refreshing page in 3 seconds.." %}
+
+
+
+
+
+
+
+
+ {% endif %}
+
+
+
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/firewall/urls.py b/firewall/urls.py
index 326eebb7d..2518da113 100644
--- a/firewall/urls.py
+++ b/firewall/urls.py
@@ -26,13 +26,17 @@ urlpatterns = [
## ModSecurity
url(r'^modSecurity', views.loadModSecurityHome, name='modSecurity'),
- url(r'^installModSec', views.installModSec, name='installModSec'),
- url(r'^installStatusModSec', views.installStatusModSec, name='installStatusModSec'),
+ url(r'^installModSec$', views.installModSec, name='installModSec'),
+ url(r'^installStatusModSec$', views.installStatusModSec, name='installStatusModSec'),
url(r'^fetchModSecSettings', views.fetchModSecSettings, name='fetchModSecSettings'),
url(r'^saveModSecConfigurations', views.saveModSecConfigurations, name='saveModSecConfigurations'),
- url(r'^modSecRules', views.modSecRules, name='modSecRules'),
+ url(r'^modSecRules$', views.modSecRules, name='modSecRules'),
url(r'^fetchModSecRules', views.fetchModSecRules, name='fetchModSecRules'),
url(r'^saveModSecRules', views.saveModSecRules, name='saveModSecRules'),
+ url(r'^modSecRulesPacks', views.modSecRulesPacks, name='modSecRulesPacks'),
+ url(r'^getOWASPAndComodoStatus', views.getOWASPAndComodoStatus, name='getOWASPAndComodoStatus'),
+ url(r'^installModSecRulesPack', views.installModSecRulesPack, name='installModSecRulesPack'),
+
]
\ No newline at end of file
diff --git a/firewall/views.py b/firewall/views.py
index 21c98bff7..0bf63eece 100644
--- a/firewall/views.py
+++ b/firewall/views.py
@@ -1015,3 +1015,109 @@ def saveModSecRules(request):
return HttpResponse(json_data)
+def modSecRulesPacks(request):
+ try:
+ userID = request.session['userID']
+
+ admin = Administrator.objects.get(pk=userID)
+
+ if admin.type == 3:
+ return HttpResponse("You don't have enough privileges to access this page.")
+
+ modSecPath = os.path.join(virtualHostUtilities.Server_root,'modules','mod_security.so')
+
+ modSecInstalled = 0
+
+ if os.path.exists(modSecPath):
+ modSecInstalled = 1
+
+ return render(request, 'firewall/modSecurityRulesPacks.html',{'modSecInstalled': modSecInstalled})
+
+ except KeyError:
+ return redirect(loadLoginPage)
+
+def getOWASPAndComodoStatus(request):
+ try:
+ userID = request.session['userID']
+
+ admin = Administrator.objects.get(pk=userID)
+
+ if admin.type == 3:
+ final_dic = {'modSecInstalled': 0}
+ final_json = json.dumps(final_dic)
+ return HttpResponse(final_json)
+
+ modSecPath = os.path.join(virtualHostUtilities.Server_root,'modules','mod_security.so')
+ confPath = os.path.join(virtualHostUtilities.Server_root, 'conf/httpd_config.conf')
+
+ comodoInstalled = 0
+ owaspInstalled = 0
+
+ if os.path.exists(modSecPath):
+ command = "sudo cat " + confPath
+ httpdConfig = subprocess.check_output(shlex.split(command)).splitlines()
+
+ for items in httpdConfig:
+
+ if items.find('modsec/comodo') > -1:
+ comodoInstalled = 1
+ elif items.find('modsec/owasp') > -1:
+ owaspInstalled = 1
+
+ if owaspInstalled == 1 and comodoInstalled == 1:
+ break
+
+ final_dic = {
+ 'modSecInstalled': 1,
+ 'owaspInstalled': owaspInstalled,
+ 'comodoInstalled': comodoInstalled
+ }
+
+ final_json = json.dumps(final_dic)
+ return HttpResponse(final_json)
+ else:
+ final_dic = {'modSecInstalled': 0}
+
+ final_json = json.dumps(final_dic)
+ return HttpResponse(final_json)
+ except KeyError:
+ return redirect(loadLoginPage)
+
+def installModSecRulesPack(request):
+ try:
+ val = request.session['userID']
+ try:
+ if request.method == 'POST':
+
+ data = json.loads(request.body)
+
+ packName = data['packName']
+
+ execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/modSec.py"
+
+ execPath = execPath + " " + packName
+
+ output = subprocess.check_output(shlex.split(execPath))
+
+ if output.find("1,None") > -1:
+ installUtilities.reStartLiteSpeed()
+ data_ret = {'installStatus': 1, 'error_message': "None"}
+ json_data = json.dumps(data_ret)
+ return HttpResponse(json_data)
+ else:
+ data_ret = {'installStatus': 0, 'error_message': output}
+ json_data = json.dumps(data_ret)
+ return HttpResponse(json_data)
+
+
+ except BaseException, msg:
+ data_ret = {'installStatus': 0, 'error_message': str(msg)}
+ json_data = json.dumps(data_ret)
+ return HttpResponse(json_data)
+
+ except KeyError, msg:
+ logging.CyberCPLogFileWriter.writeToFile(str(msg))
+ data_ret = {'installStatus': 0, 'error_message': str(msg)}
+ json_data = json.dumps(data_ret)
+ return HttpResponse(json_data)
+
diff --git a/install/install.py b/install/install.py
index 06257d7d5..335461d9d 100644
--- a/install/install.py
+++ b/install/install.py
@@ -703,8 +703,8 @@ class preFlightsChecks:
count = 0
while (1):
- #command = "wget http://cyberpanel.net/CyberPanel.1.6.0.tar.gz"
- command = "wget http://cyberpanel.net/CyberPanelTemp.tar.gz"
+ command = "wget http://cyberpanel.net/CyberPanel.1.6.1.tar.gz"
+ #command = "wget http://cyberpanel.net/CyberPanelTemp.tar.gz"
res = subprocess.call(shlex.split(command))
if res == 1:
@@ -723,8 +723,8 @@ class preFlightsChecks:
count = 0
while(1):
- #command = "tar zxf CyberPanel.1.6.0.tar.gz"
- command = "tar zxf CyberPanelTemp.tar.gz"
+ command = "tar zxf CyberPanel.1.6.1.tar.gz"
+ #command = "tar zxf CyberPanelTemp.tar.gz"
res = subprocess.call(shlex.split(command))
diff --git a/loginSystem/views.py b/loginSystem/views.py
index ef15e0ccb..9242f5763 100644
--- a/loginSystem/views.py
+++ b/loginSystem/views.py
@@ -129,7 +129,7 @@ def loadLoginPage(request):
firstName="Cyber",lastName="Panel")
admin.save()
- vers = version(currentVersion="1.6",build=0)
+ vers = version(currentVersion="1.6",build=1)
vers.save()
package = Package(admin=admin, packageName="Default", diskSpace=1000,
diff --git a/plogical/backupUtilities.py b/plogical/backupUtilities.py
index e820e65ac..ffa9faf65 100644
--- a/plogical/backupUtilities.py
+++ b/plogical/backupUtilities.py
@@ -294,6 +294,7 @@ class backupUtilities:
status.write("Extracting web home data!")
status.close()
+ # /home/backup/backup-example-06-50-03-Thu-Feb-2018/public_html.tar.gz
tar = tarfile.open(pathToCompressedHome)
tar.extractall(websiteHome)
diff --git a/plogical/modSec.py b/plogical/modSec.py
index e9a21b494..0849c98aa 100644
--- a/plogical/modSec.py
+++ b/plogical/modSec.py
@@ -4,10 +4,13 @@ import shlex
import argparse
from virtualHostUtilities import virtualHostUtilities
import os
+import tarfile
+import shutil
class modSec:
installLogPath = "/home/cyberpanel/modSecInstallLog"
tempRulesFile = "/home/cyberpanel/tempModSecRules"
+ mirrorPath = "mirror.cyberpanel.net"
@staticmethod
def installModSec(install, modSecInstall):
@@ -73,8 +76,7 @@ modsecurity_rules_file /usr/local/lsws/conf/modsec/rules.conf
rulesFilePath = os.path.join(virtualHostUtilities.Server_root,"conf/modsec/rules.conf")
if not os.path.exists(rulesFilePath):
- initialRules = """
-SecRule ARGS "\.\./" "t:normalisePathWin,id:99999,severity:4,msg:'Drive Access' ,log,auditlog,deny"
+ initialRules = """SecRule ARGS "\.\./" "t:normalisePathWin,id:99999,severity:4,msg:'Drive Access' ,log,auditlog,deny"
"""
rule = open(rulesFilePath,'a+')
rule.write(initialRules)
@@ -140,7 +142,6 @@ SecRule ARGS "\.\./" "t:normalisePathWin,id:99999,severity:4,msg:'Drive Access'
@staticmethod
def saveModSecRules():
try:
-
rulesFile = open(modSec.tempRulesFile,'r')
data = rulesFile.read()
rulesFile.close()
@@ -162,6 +163,235 @@ SecRule ARGS "\.\./" "t:normalisePathWin,id:99999,severity:4,msg:'Drive Access'
print "0," + str(msg)
+ @staticmethod
+ def setupComodoRules():
+ try:
+ pathTOOWASPFolder = os.path.join(virtualHostUtilities.Server_root, "conf/modsec/comodo")
+ extractLocation = os.path.join(virtualHostUtilities.Server_root, "conf/modsec")
+
+ if os.path.exists(pathTOOWASPFolder):
+ shutil.rmtree(pathTOOWASPFolder)
+
+ if os.path.exists('comodo.tar.gz'):
+ os.remove('comodo.tar.gz')
+
+ command = "wget https://" + modSec.mirrorPath + "/modsec/comodo.tar.gz"
+ result = subprocess.call(shlex.split(command))
+
+ if result == 1:
+ return 0
+
+ tar = tarfile.open('comodo.tar.gz')
+ tar.extractall(extractLocation)
+ tar.close()
+
+ return 1
+
+ except BaseException, msg:
+ logging.CyberCPLogFileWriter.writeToFile(
+ str(msg) + " [setupComodoRules]")
+ return 0
+
+ @staticmethod
+ def installComodo():
+ try:
+ if modSec.setupComodoRules() == 0:
+ print '0, Unable to download Comodo Rules.'
+ return
+
+ owaspRulesConf = """modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/modsecurity.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/00_Init_Initialization.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/01_Init_AppsInitialization.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/02_Global_Generic.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/03_Global_Agents.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/04_Global_Domains.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/05_Global_Backdoor.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/06_XSS_XSS.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/07_Global_Other.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/08_Bruteforce_Bruteforce.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/09_HTTP_HTTP.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/10_HTTP_HTTPDoS.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/11_HTTP_Protocol.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/12_HTTP_Request.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/13_Outgoing_FilterGen.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/14_Outgoing_FilterASP.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/15_Outgoing_FilterPHP.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/16_Outgoing_FilterSQL.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/17_Outgoing_FilterOther.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/18_Outgoing_FilterInFrame.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/19_Outgoing_FiltersEnd.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/20_PHP_PHPGen.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/21_SQL_SQLi.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/22_Apps_Joomla.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/23_Apps_JComponent.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/24_Apps_WordPress.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/25_Apps_WPPlugin.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/26_Apps_WHMCS.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/27_Apps_Drupal.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/comodo/28_Apps_OtherApps.conf
+"""
+
+ confFile = os.path.join(virtualHostUtilities.Server_root, "conf/httpd_config.conf")
+
+ confData = open(confFile).readlines()
+
+ conf = open(confFile, 'w')
+
+ for items in confData:
+ if items.find('/usr/local/lsws/conf/modsec/rules.conf') > -1:
+ conf.writelines(items)
+ conf.write(owaspRulesConf)
+ continue
+ else:
+ conf.writelines(items)
+
+ conf.close()
+
+ print "1,None"
+ return
+
+ except BaseException, msg:
+ logging.CyberCPLogFileWriter.writeToFile(
+ str(msg) + " [installOWASP]")
+ print "0," + str(msg)
+
+ @staticmethod
+ def disableComodo():
+ try:
+
+ confFile = os.path.join(virtualHostUtilities.Server_root, "conf/httpd_config.conf")
+ confData = open(confFile).readlines()
+ conf = open(confFile, 'w')
+
+ for items in confData:
+ if items.find('modsec/comodo') > -1:
+ continue
+ else:
+ conf.writelines(items)
+
+ conf.close()
+
+ print "1,None"
+
+ except BaseException, msg:
+ logging.CyberCPLogFileWriter.writeToFile(
+ str(msg) + " [disableComodo]")
+ print "0," + str(msg)
+
+ @staticmethod
+ def setupOWASPRules():
+ try:
+ pathTOOWASPFolder = os.path.join(virtualHostUtilities.Server_root, "conf/modsec/owasp")
+ extractLocation = os.path.join(virtualHostUtilities.Server_root, "conf/modsec")
+
+ if os.path.exists(pathTOOWASPFolder):
+ shutil.rmtree(pathTOOWASPFolder)
+
+ if os.path.exists('owasp.tar.gz'):
+ os.remove('owasp.tar.gz')
+
+ command = "wget https://" + modSec.mirrorPath + "/modsec/owasp.tar.gz"
+ result = subprocess.call(shlex.split(command))
+
+ if result == 1:
+ return 0
+
+ tar = tarfile.open('owasp.tar.gz')
+ tar.extractall(extractLocation)
+ tar.close()
+
+ return 1
+
+ except BaseException, msg:
+ logging.CyberCPLogFileWriter.writeToFile(
+ str(msg) + " [setupOWASPRules]")
+ return 0
+
+ @staticmethod
+ def installOWASP():
+ try:
+ if modSec.setupOWASPRules() == 0:
+ print '0, Unable to download OWASP Rules.'
+ return
+
+ owaspRulesConf = """modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/modsecurity.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/crs-setup.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-901-INITIALIZATION.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-905-COMMON-EXCEPTIONS.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-910-IP-REPUTATION.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-911-METHOD-ENFORCEMENT.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-912-DOS-PROTECTION.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-913-SCANNER-DETECTION.conf
+#modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-921-PROTOCOL-ATTACK.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-931-APPLICATION-ATTACK-RFI.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-933-APPLICATION-ATTACK-PHP.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-941-APPLICATION-ATTACK-XSS.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-943-APPLICATION-ATTACK-SESSION-FIXATION.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/REQUEST-949-BLOCKING-EVALUATION.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/RESPONSE-950-DATA-LEAKAGES.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/RESPONSE-951-DATA-LEAKAGES-SQL.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/RESPONSE-952-DATA-LEAKAGES-JAVA.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/RESPONSE-953-DATA-LEAKAGES-PHP.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/RESPONSE-954-DATA-LEAKAGES-IIS.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/RESPONSE-959-BLOCKING-EVALUATION.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/RESPONSE-980-CORRELATION.conf
+modsecurity_rules_file /usr/local/lsws/conf/modsec/owasp/rules/RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf
+"""
+
+ confFile = os.path.join(virtualHostUtilities.Server_root, "conf/httpd_config.conf")
+
+ confData = open(confFile).readlines()
+
+ conf = open(confFile, 'w')
+
+ for items in confData:
+ if items.find('/usr/local/lsws/conf/modsec/rules.conf') > -1:
+ conf.writelines(items)
+ conf.write(owaspRulesConf)
+ continue
+ else:
+ conf.writelines(items)
+
+ conf.close()
+
+ print "1,None"
+
+ except BaseException, msg:
+ logging.CyberCPLogFileWriter.writeToFile(
+ str(msg) + " [installOWASP]")
+ print "0," + str(msg)
+
+ @staticmethod
+ def disableOWASP():
+ try:
+
+ confFile = os.path.join(virtualHostUtilities.Server_root, "conf/httpd_config.conf")
+ confData = open(confFile).readlines()
+ conf = open(confFile, 'w')
+
+ for items in confData:
+ if items.find('modsec/owasp') > -1:
+ continue
+ else:
+ conf.writelines(items)
+
+ conf.close()
+
+ print "1,None"
+
+ except BaseException, msg:
+ logging.CyberCPLogFileWriter.writeToFile(
+ str(msg) + " [disableOWASP]")
+ print "0," + str(msg)
+
+
+
+
def main():
@@ -178,6 +408,18 @@ def main():
modSec.saveModSecConfigs(args.tempConfigPath)
elif args.function == "saveModSecRules":
modSec.saveModSecRules()
+ elif args.function == "setupOWASPRules":
+ modSec.setupOWASPRules()
+ elif args.function == "installOWASP":
+ modSec.installOWASP()
+ elif args.function == "disableOWASP":
+ modSec.disableOWASP()
+ elif args.function == "setupComodoRules":
+ modSec.setupComodoRules()
+ elif args.function == "installComodo":
+ modSec.installComodo()
+ elif args.function == "disableComodo":
+ modSec.disableComodo()
if __name__ == "__main__":
main()
\ No newline at end of file
diff --git a/static/firewall/firewall.js b/static/firewall/firewall.js
index 73996960b..271af3a44 100644
--- a/static/firewall/firewall.js
+++ b/static/firewall/firewall.js
@@ -745,7 +745,7 @@ app.controller('secureSSHCTRL', function($scope,$http) {
function ListInitialDatas(response) {
- if(response.data.delete_status == 1){
+ if(response.data.delete_status === 1){
$scope.secureSSHLoading = true;
$scope.keyDeleted = false;
populateCurrentKeys();
@@ -789,7 +789,7 @@ app.controller('secureSSHCTRL', function($scope,$http) {
function ListInitialDatas(response) {
- if(response.data.add_status == 1){
+ if(response.data.add_status === 1){
$scope.secureSSHLoading = true;
$scope.saveKeyBtn = true;
$scope.showKeyBox = false;
@@ -1236,4 +1236,185 @@ app.controller('modSecRules', function($scope, $http) {
});
+
+/* Java script code for ModSec */
+
+app.controller('modSecRulesPack', function($scope, $http, $timeout, $window) {
+
+ $scope.modsecLoading = true;
+ $scope.owaspDisable = true;
+ $scope.comodoDisable = true;
+
+
+ //
+
+ $scope.installationQuote = true;
+ $scope.couldNotConnect = true;
+ $scope.installationFailed = true;
+ $scope.installationSuccess = true;
+
+ ///// ModSec configs
+
+ var owaspInstalled = false;
+ var comodoInstalled = false;
+ var counterOWASP = 0;
+ var counterComodo = 0;
+
+
+ $('#owaspInstalled').change(function() {
+ counterOWASP = counterOWASP + 1;
+ owaspInstalled = $(this).prop('checked');
+
+
+ if(counterOWASP > 2) {
+ if (owaspInstalled === true) {
+ installModSecRulesPack('installOWASP');
+ } else {
+ installModSecRulesPack('disableOWASP')
+ }
+ }
+ });
+
+ $('#comodoInstalled').change(function() {
+
+ counterComodo = counterComodo + 1;
+ comodoInstalled = $(this).prop('checked');
+
+ if(counterComodo > 2) {
+
+ if (comodoInstalled === true) {
+ installModSecRulesPack('installComodo');
+ } else {
+ installModSecRulesPack('disableComodo')
+ }
+ }
+
+ });
+
+
+ getOWASPAndComodoStatus();
+ function getOWASPAndComodoStatus(){
+
+ $scope.modsecLoading = false;
+
+ $('#owaspInstalled').bootstrapToggle('off');
+ $('#comodoInstalled').bootstrapToggle('off');
+
+ url = "/firewall/getOWASPAndComodoStatus";
+
+ var data = {};
+
+ var config = {
+ headers : {
+ 'X-CSRFToken': getCookie('csrftoken')
+ }
+ };
+
+
+
+ $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
+
+
+ function ListInitialDatas(response) {
+
+ $scope.modsecLoading = true;
+
+ if(response.data.modSecInstalled === 1){
+
+ if (response.data.owaspInstalled === 1) {
+ $('#owaspInstalled').bootstrapToggle('on');
+ $scope.owaspDisable = false;
+ }else{
+ $('#owaspInstalled').bootstrapToggle('off');
+ $scope.owaspDisable = true;
+ }
+ if (response.data.comodoInstalled === 1) {
+ $('#comodoInstalled').bootstrapToggle('on');
+ $scope.comodoDisable = false;
+ }else{
+ $('#comodoInstalled').bootstrapToggle('off');
+ $scope.comodoDisable = true;
+ }
+
+ }
+
+ }
+ function cantLoadInitialDatas(response) {
+ $scope.modsecLoading = true;
+ }
+
+ }
+
+ /////
+
+ function installModSecRulesPack(packName) {
+
+ $scope.modsecLoading = false;
+
+
+
+ url = "/firewall/installModSecRulesPack";
+
+ var data = {
+ packName:packName
+ };
+
+ var config = {
+ headers : {
+ 'X-CSRFToken': getCookie('csrftoken')
+ }
+ };
+
+
+ $http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
+
+
+ function ListInitialDatas(response) {
+
+ $scope.modsecLoading = true;
+
+ if(response.data.installStatus === 1){
+
+ $scope.modsecLoading = true;
+
+ //
+
+ $scope.installationQuote = true;
+ $scope.couldNotConnect = true;
+ $scope.installationFailed = true;
+ $scope.installationSuccess = false;
+
+ $timeout(function() { $window.location.reload(); }, 3000);
+
+ }else{
+ $scope.modsecLoading = true;
+
+ //
+
+ $scope.installationQuote = true;
+ $scope.couldNotConnect = true;
+ $scope.installationFailed = false;
+ $scope.installationSuccess = true;
+
+ $scope.errorMessage = response.data.error_message;
+ }
+
+ }
+ function cantLoadInitialDatas(response) {
+ $scope.modsecLoading = true;
+
+ //
+
+ $scope.installationQuote = true;
+ $scope.couldNotConnect = false;
+ $scope.installationFailed = true;
+ $scope.installationSuccess = true;
+ }
+
+
+ }
+
+});
+
+
/* Java script code for ModSec */
\ No newline at end of file