Skip to content

Commit 4109aaa

Browse files
committed
bug fix: add custom ssh port to csf
1 parent ca6bd36 commit 4109aaa

File tree

3 files changed

+34
-20
lines changed

3 files changed

+34
-20
lines changed

firewall/firewallManager.py

+22-16
Original file line numberDiff line numberDiff line change
@@ -378,21 +378,29 @@ def saveSSHConfigs(self, userID = None, data = None):
378378

379379
if output.find("1,None") > -1:
380380

381-
try:
382-
updateFW = FirewallRules.objects.get(name="SSHCustom")
383-
FirewallUtilities.deleteRule("tcp", updateFW.port, "0.0.0.0/0")
384-
updateFW.port = sshPort
385-
updateFW.save()
386-
FirewallUtilities.addRule('tcp', sshPort, "0.0.0.0/0")
387-
except:
381+
csfPath = '/etc/csf'
382+
383+
if os.path.exists(csfPath):
384+
dataIn = {'protocol': 'TCP_IN', 'ports': sshPort}
385+
self.modifyPorts(dataIn)
386+
dataIn = {'protocol': 'TCP_OUT', 'ports': sshPort}
387+
self.modifyPorts(dataIn)
388+
else:
388389
try:
389-
newFireWallRule = FirewallRules(name="SSHCustom", port=sshPort, proto="tcp")
390-
newFireWallRule.save()
390+
updateFW = FirewallRules.objects.get(name="SSHCustom")
391+
FirewallUtilities.deleteRule("tcp", updateFW.port, "0.0.0.0/0")
392+
updateFW.port = sshPort
393+
updateFW.save()
391394
FirewallUtilities.addRule('tcp', sshPort, "0.0.0.0/0")
392-
command = 'firewall-cmd --permanent --remove-service=ssh'
393-
ProcessUtilities.executioner(command)
394-
except BaseException, msg:
395-
logging.CyberCPLogFileWriter.writeToFile(str(msg))
395+
except:
396+
try:
397+
newFireWallRule = FirewallRules(name="SSHCustom", port=sshPort, proto="tcp")
398+
newFireWallRule.save()
399+
FirewallUtilities.addRule('tcp', sshPort, "0.0.0.0/0")
400+
command = 'firewall-cmd --permanent --remove-service=ssh'
401+
ProcessUtilities.executioner(command)
402+
except BaseException, msg:
403+
logging.CyberCPLogFileWriter.writeToFile(str(msg))
396404

397405
final_dic = {'status': 1, 'saveStatus': 1}
398406
final_json = json.dumps(final_dic)
@@ -1463,7 +1471,7 @@ def changeStatus(self):
14631471
final_json = json.dumps(final_dic)
14641472
return HttpResponse(final_json)
14651473

1466-
def modifyPorts(self):
1474+
def modifyPorts(self, data = None):
14671475
try:
14681476

14691477
userID = self.request.session['userID']
@@ -1474,8 +1482,6 @@ def modifyPorts(self):
14741482
else:
14751483
return ACLManager.loadErrorJson()
14761484

1477-
data = json.loads(self.request.body)
1478-
14791485
protocol = data['protocol']
14801486
ports = data['ports']
14811487

firewall/views.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ def saveSSHConfigs(request):
190190
if result != 200:
191191
return result
192192

193-
fm = FirewallManager()
193+
fm = FirewallManager(request)
194194
coreResult = fm.saveSSHConfigs(userID, json.loads(request.body))
195195

196196
result = pluginManager.postSaveSSHConfigs(request, coreResult)
@@ -520,7 +520,7 @@ def modifyPorts(request):
520520
return result
521521

522522
fm = FirewallManager(request)
523-
coreResult = fm.modifyPorts()
523+
coreResult = fm.modifyPorts(json.loads(request.body))
524524

525525
result = pluginManager.postModifyPorts(request, coreResult)
526526
if result != 200:

plogical/csf.py

+10-2
Original file line numberDiff line numberDiff line change
@@ -486,14 +486,22 @@ def modifyPorts(protocol, portsPath):
486486
if protocol == 'TCP_IN':
487487
for items in data:
488488
if items.find('TCP_IN') > -1 and items.find('=') > -1 and (items[0] != '#'):
489-
writeToFile.writelines('TCP_IN = "' + ports + '"\n')
489+
if ports.find(',') > -1:
490+
writeToFile.writelines('TCP_IN = "' + ports + '"\n')
491+
else:
492+
content = '%s,%s\n' % (items, ports)
493+
writeToFile.writelines(content)
490494
else:
491495
writeToFile.writelines(items)
492496
writeToFile.close()
493497
elif protocol == 'TCP_OUT':
494498
for items in data:
495499
if items.find('TCP_OUT') > -1 and items.find('=') > -1 and (items[0] != '#'):
496-
writeToFile.writelines('TCP_OUT = "' + ports + '"\n')
500+
if ports.find(',') > -1:
501+
writeToFile.writelines('TCP_OUT = "' + ports + '"\n')
502+
else:
503+
content = '%s,%s\n' % (items, ports)
504+
writeToFile.writelines(content)
497505
else:
498506
writeToFile.writelines(items)
499507
writeToFile.close()

0 commit comments

Comments
 (0)