litespeed conf

This commit is contained in:
unknown
2023-08-30 15:01:46 +05:00
parent eb6e32e220
commit 44a2e03b88
7 changed files with 365 additions and 1 deletions

View File

@@ -1044,6 +1044,11 @@
<li><a href="{% url 'modSecRulesPacks' %}"
title="{% trans 'ModSecurity Rules Packs' %}"><span>{% trans "ModSecurity Rules Packs" %}</span></a>
</li>
{% if serverCheck == 1 %}
<li><a href="{% url 'litespeed_ent_conf' %}"
title="{% trans 'Litespeed ent conf' %}"><span>{% trans "Litespeed ent conf" %}</span></a>
</li>
{% endif %}
<li><a href="{% url 'csf' %}"
title="{% trans 'ConfigServer Security & Firewall (CSF)' %}"><span>{% trans "CSF" %}</span></a>
</li>

View File

@@ -4,6 +4,7 @@ import os.path
import sys
import django
from loginSystem.models import Administrator
from plogical.httpProc import httpProc
sys.path.append('/usr/local/CyberCP')
@@ -1641,3 +1642,93 @@ class FirewallManager:
except BaseException as msg:
logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, str(msg) + ' [404].', 1)
def litespeed_ent_conf(self, request = None, userID = None):
proc = httpProc(request, 'firewall/litespeed_ent_conf.html',
None, 'admin')
return proc.render()
def fetchlitespeed_Conf(self, userID = None, data = None):
try:
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadErrorJson('modSecInstalled', 0)
file_path = "/usr/local/lsws/conf/pre_main_global.conf"
if not os.path.exists(file_path):
command = "touch /usr/local/lsws/conf/pre_main_global.conf"
ProcessUtilities.executioner(command)
command = f'cat {file_path}'
currentModSecRules = ProcessUtilities.outputExecutioner(command)
final_dic = {'status': 1,
'currentLitespeed_conf': currentModSecRules}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
else:
command = f'cat {file_path}'
currentModSecRules = ProcessUtilities.outputExecutioner(command)
final_dic = {'status': 1,
'currentLitespeed_conf': currentModSecRules}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
except BaseException as msg:
final_dic = {'status': 0, 'error_message': str(msg)}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
def saveLitespeed_conf(self, userID = None, data = None):
from urllib.parse import unquote
try:
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadErrorJson('modSecInstalled', 0)
file_path = "/usr/local/lsws/conf/pre_main_global.conf"
currentLitespeed_conf = data['modSecRules']
# Use sed to replace content in the file
command = f"echo '{currentLitespeed_conf}' > '{file_path}'"
logging.CyberCPLogFileWriter.writeToFile(str(command))
ProcessUtilities.executioner(command)
command = f'cat {file_path}'
currentModSecRules = ProcessUtilities.outputExecutioner(command)
final_dic = {'status': 1,
'currentLitespeed_conf': currentModSecRules}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)
except BaseException as msg:
final_dic = {'status': 0, 'error_message': str(msg)}
final_json = json.dumps(final_dic)
return HttpResponse(final_json)

View File

@@ -2273,3 +2273,112 @@ app.controller('installImunifyAV', function ($scope, $http, $timeout, $window) {
}
});
app.controller('litespeed_ent_conf', function ($scope, $http, $timeout, $window){
$scope.modsecLoading = true;
$scope.rulesSaved = true;
$scope.couldNotConnect = true;
$scope.couldNotSave = true;
fetchlitespeed_conf();
function fetchlitespeed_conf() {
$scope.modsecLoading = false;
$scope.modsecLoading = true;
$scope.rulesSaved = true;
$scope.couldNotConnect = true;
url = "/firewall/fetchlitespeed_conf";
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.status === 1) {
$scope.currentLitespeed_conf = response.data.currentLitespeed_conf;
}
else
{
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.modsecLoading = true;
}
}
$scope.saveLitespeed_conf = function () {
// alert('test-----------------')
$scope.modsecLoading = false;
$scope.rulesSaved = true;
$scope.couldNotConnect = true;
$scope.couldNotSave = true;
url = "/firewall/saveLitespeed_conf";
var data = {
modSecRules: $scope.currentLitespeed_conf
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.modsecLoading = true;
if (response.data.status === 1) {
$scope.rulesSaved = false;
$scope.couldNotConnect = true;
$scope.couldNotSave = true;
$scope.currentLitespeed_conf = response.data.currentLitespeed_conf;
} else {
$scope.rulesSaved = true;
$scope.couldNotConnect = false;
$scope.couldNotSave = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.modsecLoading = true;
$scope.rulesSaved = true;
$scope.couldNotConnect = false;
$scope.couldNotSave = true;
}
}
});

View File

@@ -0,0 +1,80 @@
{% extends "baseTemplate/index.html" %}
{% load i18n %}
{% block title %}{% trans "LiteSpeed Ent Conf - CyberPanel" %}{% endblock %}
{% block content %}
{% load static %}
{% get_current_language as LANGUAGE_CODE %}
<!-- Current language: {{ LANGUAGE_CODE }} -->
<div class="container">
<div id="page-title">
<h2>{% trans "litespeed Ent Conf!" %} - <a target="_blank" href="http://go.cyberpanel.net/modsec-docs" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "litespeed Ent Conf Docs" %}</span></a> </h2>
<p>{% trans "On this page you can add/delete litespeed Ent Conf." %}</p>
</div>
<div ng-controller="litespeed_ent_conf" class="example-box-wrapper">
<div class="panel panel-body">
<h3 class="content-box-header">
{% trans "litespeed Ent Conf" %} <img ng-hide="modsecLoading" src="/static/images/loading.gif">
</h3>
<div class="content-box-wrapper">
<div class="row">
<div class="col-md-12">
<form class="form-horizontal bordered-row">
<div style="border-top: none" class="form-group">
<div class="col-sm-12">
<textarea ng-model="currentLitespeed_conf" rows="15" class="form-control"></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-4">
<button type="button" ng-click="saveLitespeed_conf()" class="btn btn-primary btn-lg">{% trans "Save LiteSpeed Rules!" %}</button>
</div>
</div>
<div ng-hide="rulesSaved" class="alert alert-success">
<p>{% trans "Litespeed Conf Saved" %}</p>
</div>
<div ng-hide="couldNotConnect" class="alert alert-danger">
<p>{% trans "Could not connect. Please refresh this page." %} </p>
</div>
<div ng-hide="couldNotSave" class="alert alert-danger">
<p>{% trans "Could not save rules, Error message: " %} {$ errorMessage $}</p>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View File

@@ -62,6 +62,11 @@ urlpatterns = [
url(r'^submitinstallImunifyAV$', views.submitinstallImunifyAV, name='submitinstallImunifyAV'),
url(r'^litespeed_ent_conf$', views.litespeed_ent_conf, name='litespeed_ent_conf'),
url(r'^fetchlitespeed_conf', views.fetchlitespeed_conf, name='fetchlitespeed_conf'),
url(r'^saveLitespeed_conf', views.saveLitespeed_conf, name='saveLitespeed_conf'),
]

View File

@@ -1,8 +1,11 @@
from django.shortcuts import redirect
import json
from loginSystem.views import loadLoginPage
from plogical.processUtilities import ProcessUtilities
from .firewallManager import FirewallManager
from .pluginManager import pluginManager
# Create your views here.
@@ -14,6 +17,7 @@ def securityHome(request):
except KeyError:
return redirect(loadLoginPage)
def firewallHome(request):
try:
userID = request.session['userID']
@@ -32,6 +36,7 @@ def firewallHome(request):
except KeyError:
return redirect(loadLoginPage)
def getCurrentRules(request):
try:
userID = request.session['userID']
@@ -40,6 +45,7 @@ def getCurrentRules(request):
except KeyError:
return redirect(loadLoginPage)
def addRule(request):
try:
userID = request.session['userID']
@@ -59,6 +65,7 @@ def addRule(request):
except KeyError:
return redirect(loadLoginPage)
def deleteRule(request):
try:
userID = request.session['userID']
@@ -78,6 +85,7 @@ def deleteRule(request):
except KeyError:
return redirect(loadLoginPage)
def reloadFirewall(request):
try:
userID = request.session['userID']
@@ -97,6 +105,7 @@ def reloadFirewall(request):
except KeyError:
return redirect(loadLoginPage)
def startFirewall(request):
try:
userID = request.session['userID']
@@ -116,6 +125,7 @@ def startFirewall(request):
except KeyError:
return redirect(loadLoginPage)
def stopFirewall(request):
try:
userID = request.session['userID']
@@ -124,7 +134,6 @@ def stopFirewall(request):
if result != 200:
return result
fm = FirewallManager()
coreResult = fm.stopFirewall(userID)
@@ -136,6 +145,7 @@ def stopFirewall(request):
except KeyError:
return redirect(loadLoginPage)
def firewallStatus(request):
try:
userID = request.session['userID']
@@ -155,6 +165,7 @@ def firewallStatus(request):
except KeyError:
return redirect(loadLoginPage)
def secureSSH(request):
try:
userID = request.session['userID']
@@ -174,6 +185,7 @@ def secureSSH(request):
except KeyError:
return redirect(loadLoginPage)
def getSSHConfigs(request):
try:
userID = request.session['userID']
@@ -182,6 +194,7 @@ def getSSHConfigs(request):
except KeyError:
return redirect(loadLoginPage)
def saveSSHConfigs(request):
try:
userID = request.session['userID']
@@ -201,6 +214,7 @@ def saveSSHConfigs(request):
except KeyError:
return redirect(loadLoginPage)
def deleteSSHKey(request):
try:
userID = request.session['userID']
@@ -219,6 +233,7 @@ def deleteSSHKey(request):
except KeyError:
return redirect(loadLoginPage)
def addSSHKey(request):
try:
userID = request.session['userID']
@@ -238,6 +253,7 @@ def addSSHKey(request):
except KeyError:
return redirect(loadLoginPage)
def loadModSecurityHome(request):
try:
userID = request.session['userID']
@@ -257,6 +273,7 @@ def loadModSecurityHome(request):
except KeyError:
return redirect(loadLoginPage)
def installModSec(request):
try:
userID = request.session['userID']
@@ -265,6 +282,7 @@ def installModSec(request):
except KeyError:
return redirect(loadLoginPage)
def installStatusModSec(request):
try:
userID = request.session['userID']
@@ -273,6 +291,7 @@ def installStatusModSec(request):
except KeyError:
return redirect(loadLoginPage)
def fetchModSecSettings(request):
try:
userID = request.session['userID']
@@ -281,6 +300,7 @@ def fetchModSecSettings(request):
except KeyError:
return redirect(loadLoginPage)
def saveModSecConfigurations(request):
try:
userID = request.session['userID']
@@ -300,6 +320,7 @@ def saveModSecConfigurations(request):
except KeyError:
return redirect(loadLoginPage)
def modSecRules(request):
try:
userID = request.session['userID']
@@ -319,6 +340,7 @@ def modSecRules(request):
except KeyError:
return redirect(loadLoginPage)
def fetchModSecRules(request):
try:
userID = request.session['userID']
@@ -327,6 +349,7 @@ def fetchModSecRules(request):
except KeyError:
return redirect(loadLoginPage)
def saveModSecRules(request):
try:
userID = request.session['userID']
@@ -346,6 +369,7 @@ def saveModSecRules(request):
except KeyError:
return redirect(loadLoginPage)
def modSecRulesPacks(request):
try:
userID = request.session['userID']
@@ -365,6 +389,7 @@ def modSecRulesPacks(request):
except KeyError:
return redirect(loadLoginPage)
def getOWASPAndComodoStatus(request):
try:
userID = request.session['userID']
@@ -384,6 +409,7 @@ def getOWASPAndComodoStatus(request):
except KeyError:
return redirect(loadLoginPage)
def installModSecRulesPack(request):
try:
userID = request.session['userID']
@@ -403,6 +429,7 @@ def installModSecRulesPack(request):
except KeyError:
return redirect(loadLoginPage)
def getRulesFiles(request):
try:
userID = request.session['userID']
@@ -422,6 +449,7 @@ def getRulesFiles(request):
except KeyError:
return redirect(loadLoginPage)
def enableDisableRuleFile(request):
try:
userID = request.session['userID']
@@ -441,6 +469,7 @@ def enableDisableRuleFile(request):
except KeyError:
return redirect(loadLoginPage)
def csf(request):
try:
@@ -459,6 +488,7 @@ def csf(request):
except KeyError:
return redirect(loadLoginPage)
def installCSF(request):
try:
fm = FirewallManager(request)
@@ -466,6 +496,7 @@ def installCSF(request):
except KeyError:
return redirect(loadLoginPage)
def installStatusCSF(request):
try:
fm = FirewallManager(request)
@@ -473,6 +504,7 @@ def installStatusCSF(request):
except KeyError:
return redirect(loadLoginPage)
def removeCSF(request):
try:
fm = FirewallManager(request)
@@ -480,6 +512,7 @@ def removeCSF(request):
except KeyError:
return redirect(loadLoginPage)
def fetchCSFSettings(request):
try:
fm = FirewallManager(request)
@@ -487,6 +520,7 @@ def fetchCSFSettings(request):
except KeyError:
return redirect(loadLoginPage)
def changeStatus(request):
try:
@@ -505,6 +539,7 @@ def changeStatus(request):
except KeyError:
return redirect(loadLoginPage)
def modifyPorts(request):
try:
@@ -523,6 +558,7 @@ def modifyPorts(request):
except KeyError:
return redirect(loadLoginPage)
def modifyIPs(request):
try:
@@ -541,6 +577,7 @@ def modifyIPs(request):
except KeyError:
return redirect(loadLoginPage)
## Imunify
def imunify(request):
@@ -552,6 +589,7 @@ def imunify(request):
except KeyError:
return redirect(loadLoginPage)
def submitinstallImunify(request):
try:
@@ -561,6 +599,7 @@ def submitinstallImunify(request):
except KeyError:
return redirect(loadLoginPage)
## ImunifyAV
def imunifyAV(request):
@@ -572,6 +611,7 @@ def imunifyAV(request):
except KeyError:
return redirect(loadLoginPage)
def submitinstallImunifyAV(request):
try:
@@ -580,3 +620,31 @@ def submitinstallImunifyAV(request):
except KeyError:
return redirect(loadLoginPage)
def litespeed_ent_conf(request):
try:
if ProcessUtilities.decideServer() == ProcessUtilities.ent:
userID = request.session['userID']
fm = FirewallManager()
return fm.litespeed_ent_conf(request, userID)
else:
return redirect(loadLoginPage)
except KeyError:
return redirect(loadLoginPage)
def fetchlitespeed_conf(request):
try:
userID = request.session['userID']
fm = FirewallManager()
return fm.fetchlitespeed_Conf(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)
def saveLitespeed_conf(request):
try:
userID = request.session['userID']
fm = FirewallManager()
return fm.saveLitespeed_conf(userID, json.loads(request.body))
except KeyError:
return redirect(loadLoginPage)

View File

@@ -2,6 +2,8 @@
from django.shortcuts import render, HttpResponse
import json
from plogical.processUtilities import ProcessUtilities
class httpProc:
def __init__(self, request, templateName, data = None, function = None):
@@ -40,6 +42,10 @@ class httpProc:
ipAddress = ipData.split('\n', 1)[0]
self.data['ipAddress'] = ipAddress
self.data['fullName'] = '%s %s' % (admin.firstName, admin.lastName)
# self.data['serverCheck'] = 1
if ProcessUtilities.decideServer() == ProcessUtilities.ent:
self.data['serverCheck'] = 1
### Load Custom CSS
try: