mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-06 13:25:51 +01:00
dkim fix for subdomains
This commit is contained in:
@@ -15,6 +15,8 @@ from plogical.backupManager import BackupManager
|
||||
import userManagment.views as um
|
||||
from packages.packagesManager import PackagesManager
|
||||
from plogical.processUtilities import ProcessUtilities
|
||||
from firewall.firewallManager import FirewallManager
|
||||
from serverLogs.views import getLogsFromFile
|
||||
|
||||
class CloudManager:
|
||||
def __init__(self, data=None, admin = None):
|
||||
@@ -674,3 +676,59 @@ class CloudManager:
|
||||
return HttpResponse(json_data)
|
||||
except BaseException, msg:
|
||||
return self.ajaxPre(0, str(msg))
|
||||
|
||||
def getSSHConfigs(self):
|
||||
try:
|
||||
fm = FirewallManager()
|
||||
return fm.getSSHConfigs(self.admin.pk, self.data)
|
||||
except BaseException, msg:
|
||||
return self.ajaxPre(0, str(msg))
|
||||
|
||||
def saveSSHConfigs(self):
|
||||
try:
|
||||
fm = FirewallManager()
|
||||
return fm.saveSSHConfigs(self.admin.pk, self.data)
|
||||
except BaseException, msg:
|
||||
return self.ajaxPre(0, str(msg))
|
||||
|
||||
def deleteSSHKey(self):
|
||||
try:
|
||||
fm = FirewallManager()
|
||||
return fm.deleteSSHKey(self.admin.pk, self.data)
|
||||
except BaseException, msg:
|
||||
return self.ajaxPre(0, str(msg))
|
||||
|
||||
def addSSHKey(self):
|
||||
try:
|
||||
fm = FirewallManager()
|
||||
return fm.addSSHKey(self.admin.pk, self.data)
|
||||
except BaseException, msg:
|
||||
return self.ajaxPre(0, str(msg))
|
||||
|
||||
def getCurrentRules(self):
|
||||
try:
|
||||
fm = FirewallManager()
|
||||
return fm.getCurrentRules(self.admin.pk)
|
||||
except BaseException, msg:
|
||||
return self.ajaxPre(0, str(msg))
|
||||
|
||||
def addRule(self):
|
||||
try:
|
||||
fm = FirewallManager()
|
||||
return fm.addRule(self.admin.pk, self.data)
|
||||
except BaseException, msg:
|
||||
return self.ajaxPre(0, str(msg))
|
||||
|
||||
def deleteRule(self):
|
||||
try:
|
||||
fm = FirewallManager()
|
||||
return fm.deleteRule(self.admin.pk, self.data)
|
||||
except BaseException, msg:
|
||||
return self.ajaxPre(0, str(msg))
|
||||
|
||||
def getLogsFromFile(self, request):
|
||||
try:
|
||||
request.session['userID'] = self.admin.pk
|
||||
return getLogsFromFile(request)
|
||||
except BaseException, msg:
|
||||
return self.ajaxPre(0, str(msg))
|
||||
|
||||
@@ -23,7 +23,6 @@ def router(request):
|
||||
else:
|
||||
return cm.verifyLogin(request)[1]
|
||||
|
||||
|
||||
if controller == 'verifyLogin':
|
||||
return cm.verifyLogin(request)[1]
|
||||
elif controller == 'fetchWebsites':
|
||||
@@ -144,6 +143,22 @@ def router(request):
|
||||
return cm.submitApplicationInstall(request)
|
||||
elif controller == 'obtainServer':
|
||||
return cm.obtainServer(request)
|
||||
elif controller == 'getSSHConfigs':
|
||||
return cm.getSSHConfigs()
|
||||
elif controller == 'saveSSHConfigs':
|
||||
return cm.saveSSHConfigs()
|
||||
elif controller == 'deleteSSHKey':
|
||||
return cm.deleteSSHKey()
|
||||
elif controller == 'addSSHKey':
|
||||
return cm.addSSHKey()
|
||||
elif controller == 'getCurrentRules':
|
||||
return cm.getCurrentRules()
|
||||
elif controller == 'addRule':
|
||||
return cm.addRule()
|
||||
elif controller == 'deleteRule':
|
||||
return cm.deleteRule()
|
||||
elif controller == 'getLogsFromFile':
|
||||
return cm.getLogsFromFile(request)
|
||||
|
||||
except BaseException, msg:
|
||||
cm = CloudManager(None)
|
||||
|
||||
@@ -69,7 +69,8 @@ class FirewallManager:
|
||||
checker = 0
|
||||
|
||||
for items in rules:
|
||||
dic = {'id': items.id,
|
||||
dic = {
|
||||
'id': items.id,
|
||||
'name': items.name,
|
||||
'proto': items.proto,
|
||||
'port': items.port,
|
||||
@@ -83,11 +84,11 @@ class FirewallManager:
|
||||
json_data = json_data + ',' + json.dumps(dic)
|
||||
|
||||
json_data = json_data + ']'
|
||||
final_json = json.dumps({'fetchStatus': 1, 'error_message': "None", "data": json_data})
|
||||
final_json = json.dumps({'status': 1, 'fetchStatus': 1, 'error_message': "None", "data": json_data})
|
||||
return HttpResponse(final_json)
|
||||
|
||||
except BaseException, msg:
|
||||
final_dic = {'fetchStatus': 0, 'error_message': str(msg)}
|
||||
final_dic = {'status': 0, 'fetchStatus': 0, 'error_message': str(msg)}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
@@ -111,12 +112,12 @@ class FirewallManager:
|
||||
newFWRule = FirewallRules(name=ruleName, proto=ruleProtocol, port=rulePort, ipAddress=ruleIP)
|
||||
newFWRule.save()
|
||||
|
||||
final_dic = {'add_status': 1, 'error_message': "None"}
|
||||
final_dic = {'status': 1, 'add_status': 1, 'error_message': "None"}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
except BaseException, msg:
|
||||
final_dic = {'add_status': 0, 'error_message': str(msg)}
|
||||
final_dic = {'status': 0, 'add_status': 0, 'error_message': str(msg)}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
@@ -141,12 +142,12 @@ class FirewallManager:
|
||||
delRule = FirewallRules.objects.get(id=ruleID)
|
||||
delRule.delete()
|
||||
|
||||
final_dic = {'delete_status': 1, 'error_message': "None"}
|
||||
final_dic = {'status': 1, 'delete_status': 1, 'error_message': "None"}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
except BaseException, msg:
|
||||
final_dic = {'delete_status': 0, 'error_message': str(msg)}
|
||||
final_dic = {'status': 0, 'delete_status': 0, 'error_message': str(msg)}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
@@ -325,7 +326,7 @@ class FirewallManager:
|
||||
|
||||
res = subprocess.call(cmd)
|
||||
|
||||
final_dic = {'permitRootLogin': permitRootLogin, 'sshPort': sshPort}
|
||||
final_dic = {'status': 1, 'permitRootLogin': permitRootLogin, 'sshPort': sshPort}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
else:
|
||||
@@ -406,7 +407,7 @@ class FirewallManager:
|
||||
|
||||
try:
|
||||
updateFW = FirewallRules.objects.get(name="SSHCustom")
|
||||
FirewallUtilities.deleteRule("tcp", updateFW.port)
|
||||
FirewallUtilities.deleteRule("tcp", updateFW.port, "0.0.0.0/0")
|
||||
updateFW.port = sshPort
|
||||
updateFW.save()
|
||||
except:
|
||||
@@ -467,12 +468,12 @@ class FirewallManager:
|
||||
|
||||
##
|
||||
|
||||
final_dic = {'saveStatus': 1}
|
||||
final_dic = {'status': 1, 'saveStatus': 1}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
except BaseException, msg:
|
||||
final_dic = {'saveStatus': 0, 'error_message': str(msg)}
|
||||
final_dic = {'status': 0 ,'saveStatus': 0, 'error_message': str(msg)}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
@@ -522,12 +523,12 @@ class FirewallManager:
|
||||
|
||||
##
|
||||
|
||||
final_dic = {'delete_status': 1}
|
||||
final_dic = {'status': 1, 'delete_status': 1}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
except BaseException, msg:
|
||||
final_dic = {'delete_status': 0, 'error_mssage': str(msg)}
|
||||
final_dic = {'status': 0, 'delete_status': 0, 'error_mssage': str(msg)}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
@@ -584,13 +585,12 @@ class FirewallManager:
|
||||
|
||||
##
|
||||
|
||||
|
||||
final_dic = {'add_status': 1}
|
||||
final_dic = {'status': 1, 'add_status': 1}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
except BaseException, msg:
|
||||
final_dic = {'add_status': 0, 'error_mssage': str(msg)}
|
||||
final_dic = {'status': 0, 'add_status': 0, 'error_mssage': str(msg)}
|
||||
final_json = json.dumps(final_dic)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2390,14 +2390,16 @@ class preFlightsChecks:
|
||||
def removeUfw(self):
|
||||
try:
|
||||
preFlightsChecks.stdOut("Checking to see if ufw firewall is installed (will be removed)", 1)
|
||||
status = subprocess.check_output(shlex.split('ufw status'), stderr=subprocess.STDOUT)
|
||||
status = subprocess.check_output(shlex.split('ufw status'))
|
||||
preFlightsChecks.stdOut("ufw current status: " + status + "...will be removed")
|
||||
except subprocess.CalledProcessError as err:
|
||||
except BaseException, msg:
|
||||
preFlightsChecks.stdOut("Expected access to ufw not available, do not need to remove it", 1)
|
||||
return True
|
||||
|
||||
try:
|
||||
preFlightsChecks.call('apt-get -y remove ufw', self.distro, '[remove_ufw]', 'Remove ufw firewall ' +
|
||||
'(using firewalld)', 1, 1, os.EX_OSERR)
|
||||
'(using firewalld)', 1, 0, os.EX_OSERR)
|
||||
except:
|
||||
pass
|
||||
return True
|
||||
|
||||
def installFirewalld(self):
|
||||
@@ -3514,9 +3516,29 @@ def main():
|
||||
logging.InstallLog.writeToFile("Starting CyberPanel installation..")
|
||||
preFlightsChecks.stdOut("Starting CyberPanel installation..")
|
||||
|
||||
if args.ent == None:
|
||||
ent = 0
|
||||
preFlightsChecks.stdOut("OpenLiteSpeed web server will be installed.")
|
||||
else:
|
||||
if args.ent == 'ols':
|
||||
ent = 0
|
||||
preFlightsChecks.stdOut("OpenLiteSpeed web server will be installed.")
|
||||
else:
|
||||
preFlightsChecks.stdOut("LiteSpeed Enterprise web server will be installed.")
|
||||
ent = 1
|
||||
if args.serial != None:
|
||||
serial = args.serial
|
||||
preFlightsChecks.stdOut("LiteSpeed Enterprise Serial detected: " + serial)
|
||||
else:
|
||||
preFlightsChecks.stdOut("Installation failed, please specify LiteSpeed Enterprise key using --serial")
|
||||
os._exit(0)
|
||||
|
||||
## Writing public IP
|
||||
|
||||
try:
|
||||
os.mkdir("/etc/cyberpanel")
|
||||
except:
|
||||
pass
|
||||
|
||||
machineIP = open("/etc/cyberpanel/machineIP", "w")
|
||||
machineIP.writelines(args.publicip)
|
||||
@@ -3537,20 +3559,6 @@ def main():
|
||||
mysql = args.mysql
|
||||
preFlightsChecks.stdOut("Dobule MySQL instance version will be installed.")
|
||||
|
||||
if args.ent == None:
|
||||
ent = 0
|
||||
else:
|
||||
if args.ent == 'ols':
|
||||
ent = 0
|
||||
else:
|
||||
ent = 1
|
||||
if args.serial != None:
|
||||
serial = args.serial
|
||||
preFlightsChecks.stdOut("LiteSpeed Enterprise Serial detected: " + serial)
|
||||
else:
|
||||
preFlightsChecks.stdOut("Installation failed, please specify LiteSpeed Enterprise key using --serial")
|
||||
os._exit(0)
|
||||
|
||||
checks.checkPythonVersion()
|
||||
checks.setup_account_cyberpanel()
|
||||
if distro == centos:
|
||||
|
||||
@@ -67,6 +67,21 @@ class InstallCyberPanel:
|
||||
try:
|
||||
count = 0
|
||||
while (1):
|
||||
try:
|
||||
|
||||
command = 'groupadd nobody'
|
||||
cmd = shlex.split(command)
|
||||
subprocess.call(cmd)
|
||||
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
command = 'usermod -a -G nobody nobody'
|
||||
cmd = shlex.split(command)
|
||||
subprocess.call(cmd)
|
||||
except:
|
||||
pass
|
||||
|
||||
command = 'wget https://www.litespeedtech.com/packages/5.0/lsws-5.3-ent-x86_64-linux.tar.gz'
|
||||
cmd = shlex.split(command)
|
||||
@@ -1301,7 +1316,7 @@ class InstallCyberPanel:
|
||||
|
||||
|
||||
|
||||
def Main(cwd, mysql, distro, ent):
|
||||
def Main(cwd, mysql, distro, ent, serial = None):
|
||||
|
||||
InstallCyberPanel.mysqlPassword = randomPassword.generate_pass()
|
||||
InstallCyberPanel.mysql_Root_password = randomPassword.generate_pass()
|
||||
@@ -1321,7 +1336,7 @@ def Main(cwd, mysql, distro, ent):
|
||||
else:
|
||||
InstallCyberPanel.mysqlPassword = InstallCyberPanel.mysql_Root_password
|
||||
|
||||
installer = InstallCyberPanel("/usr/local/lsws/",cwd, distro, ent)
|
||||
installer = InstallCyberPanel("/usr/local/lsws/",cwd, distro, ent, serial)
|
||||
|
||||
installer.installLiteSpeed()
|
||||
if ent == 0:
|
||||
|
||||
@@ -21,6 +21,8 @@ from dns.models import Records as dnsRecords
|
||||
from mailServer.models import Forwardings
|
||||
from plogical.acl import ACLManager
|
||||
import os
|
||||
from plogical.dnsUtilities import DNS
|
||||
from loginSystem.models import Administrator
|
||||
|
||||
class MailServerManager:
|
||||
|
||||
@@ -428,9 +430,16 @@ class MailServerManager:
|
||||
execPath = execPath + " generateKeys --domain " + domainName
|
||||
output = subprocess.check_output(shlex.split(execPath))
|
||||
|
||||
if output.find("1,None") > -1:
|
||||
admin = Administrator.objects.get(pk=userID)
|
||||
DNS.dnsTemplate(domainName, admin)
|
||||
|
||||
zone = dnsDomains.objects.get(name=domainName)
|
||||
if output.find("1,None") > -1:
|
||||
import tldextract
|
||||
|
||||
extractDomain = tldextract.extract(domainName)
|
||||
topLevelDomain = extractDomain.domain + '.' + extractDomain.suffix
|
||||
|
||||
zone = dnsDomains.objects.get(name=topLevelDomain)
|
||||
zone.save()
|
||||
|
||||
path = "/etc/opendkim/keys/" + domainName + "/default.txt"
|
||||
@@ -439,6 +448,8 @@ class MailServerManager:
|
||||
leftIndex = output.index('(') + 2
|
||||
rightIndex = output.rindex(')') - 1
|
||||
|
||||
DNS.createDKIMRecords(domainName)
|
||||
|
||||
record = dnsRecords(domainOwner=zone,
|
||||
domain_id=zone.id,
|
||||
name="default._domainkey." + domainName,
|
||||
|
||||
@@ -146,8 +146,8 @@ class mailUtilities:
|
||||
|
||||
import tldextract
|
||||
|
||||
extractDomain = tldextract.extract(virtualHostName)
|
||||
virtualHostName = extractDomain.domain + '.' + extractDomain.suffix
|
||||
#extractDomain = tldextract.extract(virtualHostName)
|
||||
#virtualHostName = extractDomain.domain + '.' + extractDomain.suffix
|
||||
|
||||
if os.path.exists("/etc/opendkim/keys/" + virtualHostName):
|
||||
return 1, "None"
|
||||
|
||||
@@ -134,20 +134,25 @@ def getLogsFromFile(request):
|
||||
fileName = "/var/log/messages"
|
||||
elif type == "modSec":
|
||||
fileName = "/usr/local/lsws/logs/auditmodsec.log"
|
||||
elif type == "cyberpanel":
|
||||
fileName = "/home/cyberpanel/error-logs.txt"
|
||||
|
||||
try:
|
||||
command = "sudo tail -50 " + fileName
|
||||
|
||||
fewLinesOfLogFile = subprocess.check_output(shlex.split(command))
|
||||
|
||||
status = {"logstatus": 1, "logsdata": fewLinesOfLogFile}
|
||||
status = {"status": 1, "logstatus": 1, "logsdata": fewLinesOfLogFile}
|
||||
final_json = json.dumps(status)
|
||||
return HttpResponse(final_json)
|
||||
except:
|
||||
status = {"status": 1, "logstatus": 1, "logsdata": 'Emtpy File.'}
|
||||
final_json = json.dumps(status)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
|
||||
except KeyError, msg:
|
||||
status = {"logstatus":0,"error":"Could not fetch data from log file, please see CyberCP main log file through command line."}
|
||||
status = {"status": 0, "logstatus":0,"error":"Could not fetch data from log file, please see CyberCP main log file through command line."}
|
||||
logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[getLogsFromFile]")
|
||||
return HttpResponse("Not Logged in as admin")
|
||||
final_json = json.dumps(status)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
def clearLogFile(request):
|
||||
try:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user