mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-05-06 11:36:28 +02:00
DKIM Support.
This commit is contained in:
@@ -42,6 +42,91 @@ class mailUtilities:
|
||||
print "0," + str(msg)
|
||||
|
||||
|
||||
@staticmethod
|
||||
def setupDKIM(virtualHostName):
|
||||
try:
|
||||
## Generate DKIM Keys
|
||||
|
||||
if os.path.exists("/etc/opendkim/keys/" + virtualHostName):
|
||||
return 1, "None"
|
||||
|
||||
os.mkdir("/etc/opendkim/keys/" + virtualHostName)
|
||||
|
||||
## Generate keys
|
||||
|
||||
command = "opendkim-genkey -D /etc/opendkim/keys/" + virtualHostName + " -d " + virtualHostName + " -s default"
|
||||
subprocess.call(shlex.split(command))
|
||||
|
||||
## Fix permissions
|
||||
|
||||
command = "chown -R root:opendkim /etc/opendkim/keys/" + virtualHostName
|
||||
subprocess.call(shlex.split(command))
|
||||
|
||||
command = "chmod 640 /etc/opendkim/keys/" + virtualHostName + "/default.private"
|
||||
subprocess.call(shlex.split(command))
|
||||
|
||||
command = "chmod 644 /etc/opendkim/keys/" + virtualHostName + "/default.txt"
|
||||
subprocess.call(shlex.split(command))
|
||||
|
||||
## Edit key file
|
||||
|
||||
keyTable = "/etc/opendkim/KeyTable"
|
||||
configToWrite = "default._domainkey." + virtualHostName + " " + virtualHostName + ":default:/etc/opendkim/keys/" + virtualHostName + "/default.private\n"
|
||||
|
||||
writeToFile = open(keyTable, 'a')
|
||||
writeToFile.write(configToWrite)
|
||||
writeToFile.close()
|
||||
|
||||
## Edit signing table
|
||||
|
||||
signingTable = "/etc/opendkim/SigningTable"
|
||||
configToWrite = "*@" + virtualHostName + " default._domainkey." + virtualHostName + "\n"
|
||||
|
||||
writeToFile = open(signingTable, 'a')
|
||||
writeToFile.write(configToWrite)
|
||||
writeToFile.close()
|
||||
|
||||
## Trusted hosts
|
||||
|
||||
trustedHosts = "/etc/opendkim/TrustedHosts"
|
||||
configToWrite = virtualHostName + "\n"
|
||||
|
||||
writeToFile = open(trustedHosts, 'a')
|
||||
writeToFile.write(configToWrite)
|
||||
writeToFile.close()
|
||||
|
||||
## Restart postfix and OpenDKIM
|
||||
|
||||
command = "systemctl restart opendkim"
|
||||
subprocess.call(shlex.split(command))
|
||||
|
||||
command = "systemctl restart postfix"
|
||||
subprocess.call(shlex.split(command))
|
||||
|
||||
return 1, "None"
|
||||
|
||||
except BaseException, msg:
|
||||
logging.CyberCPLogFileWriter.writeToFile(
|
||||
str(msg) + " [setupDKIM]")
|
||||
return 0, str(msg)
|
||||
|
||||
@staticmethod
|
||||
def checkIfDKIMInstalled():
|
||||
try:
|
||||
|
||||
path = "/etc/opendkim.conf"
|
||||
|
||||
if os.path.exists(path):
|
||||
return 1
|
||||
else:
|
||||
return 0
|
||||
|
||||
except BaseException, msg:
|
||||
logging.CyberCPLogFileWriter.writeToFile(
|
||||
str(msg) + " [checkIfDKIMInstalled]")
|
||||
return 0
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
parser = argparse.ArgumentParser(description='CyberPanel Installer')
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
import tldextract
|
||||
|
||||
ext = tldextract.extract('http://forums.bbc.co.uk')
|
||||
|
||||
print ext.subdomain
|
||||
print ext.domain
|
||||
print ext.suffix
|
||||
@@ -11,6 +11,7 @@ from os.path import join
|
||||
from os import listdir, rmdir
|
||||
from shutil import move
|
||||
import randomPassword as randomPassword
|
||||
from mailUtilities import mailUtilities
|
||||
|
||||
|
||||
class virtualHostUtilities:
|
||||
@@ -726,8 +727,6 @@ class virtualHostUtilities:
|
||||
str(msg) + " [IO Error with per host config file [changePHP]]")
|
||||
return [0,str(msg) + " [IO Error with per host config file [changePHP]]"]
|
||||
|
||||
|
||||
|
||||
@staticmethod
|
||||
def getDiskUsage(path, totalAllowed):
|
||||
try:
|
||||
@@ -904,12 +903,21 @@ class virtualHostUtilities:
|
||||
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
||||
|
||||
|
||||
def createVirtualHost(virtualHostName,administratorEmail,phpVersion,virtualHostUser,numberOfSites,ssl,sslPath):
|
||||
def createVirtualHost(virtualHostName,administratorEmail,phpVersion,virtualHostUser,numberOfSites,ssl,sslPath,dkimCheck):
|
||||
try:
|
||||
if virtualHostUtilities.checkIfVirtualHostExists(virtualHostName) == 1:
|
||||
print "0,Virtual Host Directory already exists!"
|
||||
return
|
||||
|
||||
if dkimCheck == 1:
|
||||
if mailUtilities.checkIfDKIMInstalled() == 0:
|
||||
print "0,OpenDKIM is not installed, install OpenDKIM from DKIM Manager."
|
||||
return
|
||||
|
||||
result = mailUtilities.setupDKIM(virtualHostName)
|
||||
if result[0] == 0:
|
||||
raise BaseException(result[1])
|
||||
|
||||
FNULL = open(os.devnull, 'w')
|
||||
|
||||
retValues = virtualHostUtilities.createDirectoryForVirtualHost(virtualHostName, administratorEmail,virtualHostUser, phpVersion)
|
||||
@@ -944,6 +952,8 @@ def createVirtualHost(virtualHostName,administratorEmail,phpVersion,virtualHostU
|
||||
command = "chown -R " + "lsadm" + ":" + "lsadm" + " " + vhostPath
|
||||
cmd = shlex.split(command)
|
||||
subprocess.call(cmd,stdout=FNULL, stderr=subprocess.STDOUT)
|
||||
|
||||
|
||||
print "1,None"
|
||||
|
||||
|
||||
@@ -953,6 +963,8 @@ def createVirtualHost(virtualHostName,administratorEmail,phpVersion,virtualHostU
|
||||
str(msg) + " [createVirtualHost]")
|
||||
print "0,"+str(msg)
|
||||
|
||||
|
||||
|
||||
def createDomain(masterDomain, virtualHostName, phpVersion, path,administratorEmail,virtualHostUser,restart,numberOfSites,ssl):
|
||||
try:
|
||||
if virtualHostUtilities.checkIfVirtualHostExists(virtualHostName) == 1:
|
||||
@@ -1761,6 +1773,7 @@ def main():
|
||||
parser.add_argument("--numberOfSites", help="Number of sites!")
|
||||
parser.add_argument("--ssl", help="Weather to activate SSL")
|
||||
parser.add_argument("--sslPath", help="Path to website document root!")
|
||||
parser.add_argument('--dkimCheck', help='To enable or disable DKIM support for domain.')
|
||||
|
||||
|
||||
## arguments for creation child domains
|
||||
@@ -1803,7 +1816,11 @@ def main():
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.function == "createVirtualHost":
|
||||
createVirtualHost(args.virtualHostName,args.administratorEmail,args.phpVersion,args.virtualHostUser,int(args.numberOfSites),int(args.ssl),args.sslPath)
|
||||
try:
|
||||
dkimCheck = int(args.dkimCheck)
|
||||
except:
|
||||
dkimCheck = 0
|
||||
createVirtualHost(args.virtualHostName,args.administratorEmail,args.phpVersion,args.virtualHostUser,int(args.numberOfSites),int(args.ssl),args.sslPath,dkimCheck)
|
||||
elif args.function == "deleteVirtualHostConfigurations":
|
||||
virtualHostUtilities.deleteVirtualHostConfigurations(args.virtualHostName,int(args.numberOfSites))
|
||||
elif args.function == "createDomain":
|
||||
|
||||
Reference in New Issue
Block a user