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' %}" <li><a href="{% url 'modSecRulesPacks' %}"
title="{% trans 'ModSecurity Rules Packs' %}"><span>{% trans "ModSecurity Rules Packs" %}</span></a> title="{% trans 'ModSecurity Rules Packs' %}"><span>{% trans "ModSecurity Rules Packs" %}</span></a>
</li> </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' %}" <li><a href="{% url 'csf' %}"
title="{% trans 'ConfigServer Security & Firewall (CSF)' %}"><span>{% trans "CSF" %}</span></a> title="{% trans 'ConfigServer Security & Firewall (CSF)' %}"><span>{% trans "CSF" %}</span></a>
</li> </li>

View File

@@ -4,6 +4,7 @@ import os.path
import sys import sys
import django import django
from loginSystem.models import Administrator
from plogical.httpProc import httpProc from plogical.httpProc import httpProc
sys.path.append('/usr/local/CyberCP') sys.path.append('/usr/local/CyberCP')
@@ -1641,3 +1642,93 @@ class FirewallManager:
except BaseException as msg: except BaseException as msg:
logging.CyberCPLogFileWriter.statusWriter(ServerStatusUtil.lswsInstallStatusPath, str(msg) + ' [404].', 1) 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'^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 from django.shortcuts import redirect
import json import json
from loginSystem.views import loadLoginPage from loginSystem.views import loadLoginPage
from plogical.processUtilities import ProcessUtilities
from .firewallManager import FirewallManager from .firewallManager import FirewallManager
from .pluginManager import pluginManager from .pluginManager import pluginManager
# Create your views here. # Create your views here.
@@ -14,6 +17,7 @@ def securityHome(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def firewallHome(request): def firewallHome(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -32,6 +36,7 @@ def firewallHome(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def getCurrentRules(request): def getCurrentRules(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -40,6 +45,7 @@ def getCurrentRules(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def addRule(request): def addRule(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -59,6 +65,7 @@ def addRule(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def deleteRule(request): def deleteRule(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -78,6 +85,7 @@ def deleteRule(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def reloadFirewall(request): def reloadFirewall(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -97,6 +105,7 @@ def reloadFirewall(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def startFirewall(request): def startFirewall(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -116,6 +125,7 @@ def startFirewall(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def stopFirewall(request): def stopFirewall(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -124,7 +134,6 @@ def stopFirewall(request):
if result != 200: if result != 200:
return result return result
fm = FirewallManager() fm = FirewallManager()
coreResult = fm.stopFirewall(userID) coreResult = fm.stopFirewall(userID)
@@ -136,6 +145,7 @@ def stopFirewall(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def firewallStatus(request): def firewallStatus(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -155,6 +165,7 @@ def firewallStatus(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def secureSSH(request): def secureSSH(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -174,6 +185,7 @@ def secureSSH(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def getSSHConfigs(request): def getSSHConfigs(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -182,6 +194,7 @@ def getSSHConfigs(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def saveSSHConfigs(request): def saveSSHConfigs(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -201,6 +214,7 @@ def saveSSHConfigs(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def deleteSSHKey(request): def deleteSSHKey(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -219,6 +233,7 @@ def deleteSSHKey(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def addSSHKey(request): def addSSHKey(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -238,6 +253,7 @@ def addSSHKey(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def loadModSecurityHome(request): def loadModSecurityHome(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -257,6 +273,7 @@ def loadModSecurityHome(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def installModSec(request): def installModSec(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -265,6 +282,7 @@ def installModSec(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def installStatusModSec(request): def installStatusModSec(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -273,6 +291,7 @@ def installStatusModSec(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def fetchModSecSettings(request): def fetchModSecSettings(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -281,6 +300,7 @@ def fetchModSecSettings(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def saveModSecConfigurations(request): def saveModSecConfigurations(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -300,6 +320,7 @@ def saveModSecConfigurations(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def modSecRules(request): def modSecRules(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -319,6 +340,7 @@ def modSecRules(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def fetchModSecRules(request): def fetchModSecRules(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -327,6 +349,7 @@ def fetchModSecRules(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def saveModSecRules(request): def saveModSecRules(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -346,6 +369,7 @@ def saveModSecRules(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def modSecRulesPacks(request): def modSecRulesPacks(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -365,6 +389,7 @@ def modSecRulesPacks(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def getOWASPAndComodoStatus(request): def getOWASPAndComodoStatus(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -384,6 +409,7 @@ def getOWASPAndComodoStatus(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def installModSecRulesPack(request): def installModSecRulesPack(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -403,6 +429,7 @@ def installModSecRulesPack(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def getRulesFiles(request): def getRulesFiles(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -422,6 +449,7 @@ def getRulesFiles(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def enableDisableRuleFile(request): def enableDisableRuleFile(request):
try: try:
userID = request.session['userID'] userID = request.session['userID']
@@ -441,6 +469,7 @@ def enableDisableRuleFile(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def csf(request): def csf(request):
try: try:
@@ -459,6 +488,7 @@ def csf(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def installCSF(request): def installCSF(request):
try: try:
fm = FirewallManager(request) fm = FirewallManager(request)
@@ -466,6 +496,7 @@ def installCSF(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def installStatusCSF(request): def installStatusCSF(request):
try: try:
fm = FirewallManager(request) fm = FirewallManager(request)
@@ -473,6 +504,7 @@ def installStatusCSF(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def removeCSF(request): def removeCSF(request):
try: try:
fm = FirewallManager(request) fm = FirewallManager(request)
@@ -480,6 +512,7 @@ def removeCSF(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def fetchCSFSettings(request): def fetchCSFSettings(request):
try: try:
fm = FirewallManager(request) fm = FirewallManager(request)
@@ -487,6 +520,7 @@ def fetchCSFSettings(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def changeStatus(request): def changeStatus(request):
try: try:
@@ -505,6 +539,7 @@ def changeStatus(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def modifyPorts(request): def modifyPorts(request):
try: try:
@@ -523,6 +558,7 @@ def modifyPorts(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def modifyIPs(request): def modifyIPs(request):
try: try:
@@ -541,6 +577,7 @@ def modifyIPs(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
## Imunify ## Imunify
def imunify(request): def imunify(request):
@@ -552,6 +589,7 @@ def imunify(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def submitinstallImunify(request): def submitinstallImunify(request):
try: try:
@@ -561,6 +599,7 @@ def submitinstallImunify(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
## ImunifyAV ## ImunifyAV
def imunifyAV(request): def imunifyAV(request):
@@ -572,6 +611,7 @@ def imunifyAV(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) return redirect(loadLoginPage)
def submitinstallImunifyAV(request): def submitinstallImunifyAV(request):
try: try:
@@ -580,3 +620,31 @@ def submitinstallImunifyAV(request):
except KeyError: except KeyError:
return redirect(loadLoginPage) 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 from django.shortcuts import render, HttpResponse
import json import json
from plogical.processUtilities import ProcessUtilities
class httpProc: class httpProc:
def __init__(self, request, templateName, data = None, function = None): def __init__(self, request, templateName, data = None, function = None):
@@ -40,6 +42,10 @@ class httpProc:
ipAddress = ipData.split('\n', 1)[0] ipAddress = ipData.split('\n', 1)[0]
self.data['ipAddress'] = ipAddress self.data['ipAddress'] = ipAddress
self.data['fullName'] = '%s %s' % (admin.firstName, admin.lastName) 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 ### Load Custom CSS
try: try: