HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/plogical/__pycache__/csf.cpython-310.pyc
o

��h���@s�ddlZej�d�ddlmZddlZddlZddlZddl	Z	ddl
Zddlm
Z
Gdd�dej�Zdd�Zed	kr@e�dSdS)
�N�/usr/local/CyberCP)�CyberCPLogFileWriter)�ProcessUtilitiesc@s�eZdZdZdZdd�Zdd�Zedd��Zd	d
�Z	edd��Z
ed
d��Zedd��Zedd��Z
edd��Zedd��ZdS)�CSFz/home/cyberpanel/csfInstallLogz)https://download.configserver.com/csf.tgzcCstj�|�||_||_dS)N)�multi�Thread�__init__�
installApp�	extraArgs)�selfr	r
�r�"/usr/local/CyberCP/plogical/csf.pyrs
zCSF.__init__c
Csrz|jdkr
|��WdS|jdkr|��WdSWdSty8}ztj�t|�d�WYd}~dSd}~ww)N�
installCSF�	removeCSFz
 [CSF.run])r	rr�
BaseException�loggingr�writeToFile�str)r�msgrrr
�runs

�"��zCSF.runc	
CsT�zftj�tjdd�dtj}t�|�tj�tjdd�d}t�|�tj�tjdd�t�	d�d}t
d	d
�}|�|�|��t
dd
�}|��d}t
d
d
�}|�|�|��d}t
dd
�}|�|�|��d}t
dd
�}|�|�|��d}t�|�d}t�|�d}t�|�d}t�|�d}t�|�d}t�|�t�
�tjks�t�
�tjkr�d}t�|�n&t�
�tjks�t�
�tjkr�d}t�|�d}t�|�n	tj�tjdd�zt
tjd����d�d�d�}Wnd}Yt
d d���}t
d d
�}|D�](}|�d!�d"k�r.|�d#�d"k�r.|d$d%k�r.|�d&|�d'���q	|�d(�d"k�rP|�d#�d"k�rP|d$d%k�rP|�d)|�d'���q	|�d*�d"k�rn|�d#�d"k�rn|d$d%k�rn|�d+��q	|�d,�d"k�r�|�d#�d"k�r�|d$d%k�r�|�d-��q	|�d.�d"k�r�|�d#�d"k�r�|d$d%k�r�|�d/��q	|�d0�d"k�r�|�d#�d"k�r�|d$d%k�r�|�d1��q	|�d2�d"k�r�|�d#�d"k�r�|d$d%k�r�|�d3��q	|�d4�d"k�r|�d#�d"k�r|d$d%k�r|�d5��q	|�d6�d"k�r"|�d#�d"k�r"|d$d%k�r"|�d7��q	|�d8�d"k�r@|�d#�d"k�r@|d$d%k�r@|�d9��q	|�d:�d"k�r^|�d#�d"k�r^|d$d%k�r^|�d;��q	|�d<�d"k�r||�d#�d"k�r||d$d%k�r||�d=��q	|�d>�d"k�r�|�d#�d"k�r�|d$d%k�r�|�d?��q	|�d@�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dA��q	|�dB�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dC��q	|�dD�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dE��q	|�dF�d"k�r|�d#�d"k�r|d$d%k�r|�dG��q	|�dH�d"k�r0|�d#�d"k�r0|d$d%k�r0|�dI��q	|�dJ�d"k�rN|�d#�d"k�rN|d$d%k�rN|�dK��q	|�dL�d"k�rl|�d#�d"k�rl|d$d%k�rl|�dM��q	|�dN�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dO��q	|�dP�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dQ��q	|�dR�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dS��q	|�dT�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dU��q	|�dV�d"k�r|�d#�d"k�r|d$d%k�r|�dW��q	|�dX�d"k�r |�d#�d"k�r |d$d%k�r |�dY��q	|�dZ�d"k�r>|�d#�d"k�r>|d$d%k�r>|�d[��q	|�d\�d"k�r\|�d#�d"k�r\|d$d%k�r\|�d9��q	|�d]�d"k�rz|�d#�d"k�rz|d$d%k�rz|�d^��q	|�d_�d"k�r�|�d#�d"k�r�|d$d%k�r�|�d`��q	|�da�d"k�r�|�d#�d"k�r�|d$d%k�r�|�db��q	|�dc�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dd��q	|�de�d"k�r�|�d#�d"k�r�|d$d%k�r�|�df��q	|�dg�d"k�r|�d#�d"k�r|d$d%k�r|�dh��q	|�di�d"k�r.|�d#�d"k�r.|d$d%k�r.|�dj��q	|�dk�d"k�rL|�d#�d"k�rL|d$d%k�rL|�dl��q	|�dm�d"k�rj|�d#�d"k�rj|d$d%k�rj|�dn��q	|�do�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dp��q	|�dq�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dr��q	|�ds�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dt��q	|�du�d"k�r�|�d#�d"k�r�|d$d%k�r�|�dv��q	|�dw�d"k�r|�d#�d"k�r|d$d%k�r|�dx��q	|�dy�d"k�r|�d#�d"k�r|d$d%k�r|�dz��q	|�d{�d"k�r<|�d#�d"k�r<|d$d%k�r<|�d|��q	|�d}�d"k�rZ|�d#�d"k�rZ|d$d%k�rZ|�d~��q	|�d�d"k�rx|�d#�d"k�rx|d$d%k�rx|�d���q	|�d��d"k�r�|�d#�d"k�r�|d$d%k�r�|�d���q	|�d��d"k�r�|�d#�d"k�r�|d$d%k�r�|�d���q	|�d��d"k�r�|�d#�d"k�r�|d$d%k�r�|�d���q	|�d��d"k�r�|�d#�d"k�r�|d$d%k�r�|�d���q	|�d��d"k�r|�d#�d"k�r|d$d%k�r|�d���q	|�d��d"k�r,|�d#�d"k�r,|d$d%k�r,|�d���q	|�|��q	|��t�
�tjk�sGt�
�tjk�r4t
d d���}t
d d
�}|D]�}|�d��d"k�ru|�d#�d"k�ru|d$d%k�ru|�d���qU|�d��d"k�r�|�d#�d"k�r�|d$d%k�r�|�d���qU|�d��d"k�r�|�d#�d"k�r�|d$d%k�r�|�d���qU|�d��d"k�r�|�d#�d"k�r�|d$d%k�r�|�d���qU|�d��d"k�r�|�d#�d"k�r�|d$d%k�r�|�d���qU|�d��d"k�r|�d#�d"k�r|d$d%k�r|�d���qU|�d��d"k�r)|�d#�d"k�r)|d$d%k�r)|�d���qU|�|��qU|��d�}t�|�d�}t�|�d�}t�|�tj�tjd�d�zt�d��t�d�WWdSYWdSt�y�}z5zt�d��t�d�WnYt
tjd��}|�t|�d��|��tj�t|�d��WYd}~dSd}~ww)�NzDownloading CSF..
�zwget zExtracting CSF..
ztar -xzf csf.tgzzInstalling CSF..
�csfa"
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

import os
import os.path
import sys
import django

sys.path.append('/usr/local/CyberCP')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
django.setup()
from plogical.acl import ACLManager

from plogical.processUtilities import ProcessUtilities
from django.views.decorators.csrf import csrf_exempt
import tempfile
from django.http import HttpResponse
from django.views.decorators.clickjacking import xframe_options_exempt
from plogical.httpProc import httpProc

def configservercsf(request):
    proc = httpProc(request, 'configservercsf/index.html',
                             None, 'admin')
    return proc.render()

@csrf_exempt
@xframe_options_exempt
def configservercsfiframe(request):
    userID = request.session['userID']
    currentACL = ACLManager.loadedACL(userID)

    if currentACL['admin'] == 1:
        pass
    else:
        return ACLManager.loadError()

    if request.method == 'GET':
        qs = request.GET.urlencode()
    elif request.method == 'POST':
        qs = request.POST.urlencode()

    try:
        tmp = tempfile.NamedTemporaryFile(mode = "w", delete=False)
        tmp.write(qs)
        tmp.close()
        command = "/usr/local/csf/bin/cyberpanel.pl '" + tmp.name + "'"

        try:
            output = ProcessUtilities.outputExecutioner(command)
        except:
            output = "Output Error from csf UI script"

        os.unlink(tmp.name)
    except:
        output = "Unable to create csf UI temp file"

    return HttpResponse(output)
z#cyberpanel/configservercsf/views.py�wz%cyberpanel/configservercsf/signals.pyz�
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.apps import AppConfig

class configservercsfConfig(AppConfig):
    name = 'configservercsf'
z"cyberpanel/configservercsf/apps.pyz�
from django.urls import path, re_path
from . import views

urlpatterns = [
    path('', views.configservercsf, name='configservercsf'),
    path('iframe/', views.configservercsfiframe, name='configservercsfiframe'),
]
z"cyberpanel/configservercsf/urls.pya�C
#!/bin/sh
###############################################################################
# Copyright 2006-2018, Way to the Web Limited
# URL: http://www.configserver.com
# Email: sales@waytotheweb.com
###############################################################################

umask 0177

if [ -e "/usr/local/cpanel/version" ]; then
	echo "Running csf cPanel installer"
	echo
	sh install.cpanel.sh
	exit 0
elif [ -e "/usr/local/directadmin/directadmin" ]; then
	echo "Running csf DirectAdmin installer"
	echo
	sh install.directadmin.sh
	exit 0
fi

echo "Installing csf and lfd"
echo

echo "Check we're running as root"
if [ ! `id -u` = 0 ]; then
	echo
	echo "FAILED: You have to be logged in as root (UID:0) to install csf"
	exit
fi
echo

mkdir -v -m 0600 /etc/csf
cp -avf install.txt /etc/csf/

echo "Checking Perl modules..."
chmod 700 os.pl
RETURN=`./os.pl`
if [ "$RETURN" = 1 ]; then
	echo
	echo "FAILED: You MUST install the missing perl modules above before you can install csf. See /etc/csf/install.txt for installation details."
    echo
	exit
else
    echo "...Perl modules OK"
    echo
fi

mkdir -v -m 0600 /etc/csf
mkdir -v -m 0600 /var/lib/csf
mkdir -v -m 0600 /var/lib/csf/backup
mkdir -v -m 0600 /var/lib/csf/Geo
mkdir -v -m 0600 /var/lib/csf/ui
mkdir -v -m 0600 /var/lib/csf/stats
mkdir -v -m 0600 /var/lib/csf/lock
mkdir -v -m 0600 /var/lib/csf/webmin
mkdir -v -m 0600 /var/lib/csf/zone
mkdir -v -m 0600 /usr/local/csf
mkdir -v -m 0600 /usr/local/csf/bin
mkdir -v -m 0600 /usr/local/csf/lib
mkdir -v -m 0600 /usr/local/csf/tpl

if [ -e "/etc/csf/alert.txt" ]; then
	sh migratedata.sh
fi

if [ ! -e "/etc/csf/csf.conf" ]; then
	cp -avf csf.cyberpanel.conf /etc/csf/csf.conf
fi

if [ ! -d /var/lib/csf ]; then
	mkdir -v -p -m 0600 /var/lib/csf
fi
if [ ! -d /usr/local/csf/lib ]; then
	mkdir -v -p -m 0600 /usr/local/csf/lib
fi
if [ ! -d /usr/local/csf/bin ]; then
	mkdir -v -p -m 0600 /usr/local/csf/bin
fi
if [ ! -d /usr/local/csf/tpl ]; then
	mkdir -v -p -m 0600 /usr/local/csf/tpl
fi

if [ ! -e "/etc/csf/csf.allow" ]; then
	cp -avf csf.cyberpanel.allow /etc/csf/csf.allow
fi
if [ ! -e "/etc/csf/csf.deny" ]; then
	cp -avf csf.deny /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.redirect" ]; then
	cp -avf csf.redirect /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.resellers" ]; then
	cp -avf csf.resellers /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.dirwatch" ]; then
	cp -avf csf.dirwatch /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.syslogs" ]; then
	cp -avf csf.syslogs /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.logfiles" ]; then
	cp -avf csf.logfiles /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.logignore" ]; then
	cp -avf csf.logignore /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.blocklists" ]; then
	cp -avf csf.blocklists /etc/csf/.
else
	cp -avf csf.blocklists /etc/csf/csf.blocklists.new
fi
if [ ! -e "/etc/csf/csf.ignore" ]; then
	cp -avf csf.cyberpanel.ignore /etc/csf/csf.ignore
fi
if [ ! -e "/etc/csf/csf.pignore" ]; then
	cp -avf csf.cyberpanel.pignore /etc/csf/csf.pignore
fi
if [ ! -e "/etc/csf/csf.rignore" ]; then
	cp -avf csf.rignore /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.fignore" ]; then
	cp -avf csf.fignore /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.signore" ]; then
	cp -avf csf.signore /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.suignore" ]; then
	cp -avf csf.suignore /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.uidignore" ]; then
	cp -avf csf.uidignore /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.mignore" ]; then
	cp -avf csf.mignore /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.sips" ]; then
	cp -avf csf.sips /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.dyndns" ]; then
	cp -avf csf.dyndns /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.syslogusers" ]; then
	cp -avf csf.syslogusers /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.smtpauth" ]; then
	cp -avf csf.smtpauth /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.rblconf" ]; then
	cp -avf csf.rblconf /etc/csf/.
fi
if [ ! -e "/etc/csf/csf.cloudflare" ]; then
	cp -avf csf.cloudflare /etc/csf/.
fi

if [ ! -e "/usr/local/csf/tpl/alert.txt" ]; then
	cp -avf alert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/reselleralert.txt" ]; then
	cp -avf reselleralert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/logalert.txt" ]; then
	cp -avf logalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/logfloodalert.txt" ]; then
	cp -avf logfloodalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/syslogalert.txt" ]; then
	cp -avf syslogalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/integrityalert.txt" ]; then
	cp -avf integrityalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/exploitalert.txt" ]; then
	cp -avf exploitalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/queuealert.txt" ]; then
	cp -avf queuealert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/modsecipdbalert.txt" ]; then
	cp -avf modsecipdbalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/tracking.txt" ]; then
	cp -avf tracking.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/connectiontracking.txt" ]; then
	cp -avf connectiontracking.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/processtracking.txt" ]; then
	cp -avf processtracking.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/accounttracking.txt" ]; then
	cp -avf accounttracking.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/usertracking.txt" ]; then
	cp -avf usertracking.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/sshalert.txt" ]; then
	cp -avf sshalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/webminalert.txt" ]; then
	cp -avf webminalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/sualert.txt" ]; then
	cp -avf sualert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/sudoalert.txt" ]; then
	cp -avf sudoalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/consolealert.txt" ]; then
	cp -avf consolealert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/uialert.txt" ]; then
	cp -avf uialert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/cpanelalert.txt" ]; then
	cp -avf cpanelalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/scriptalert.txt" ]; then
	cp -avf scriptalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/relayalert.txt" ]; then
	cp -avf relayalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/filealert.txt" ]; then
	cp -avf filealert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/watchalert.txt" ]; then
	cp -avf watchalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/loadalert.txt" ]; then
	cp -avf loadalert.txt /usr/local/csf/tpl/.
else
	cp -avf loadalert.txt /usr/local/csf/tpl/loadalert.txt.new
fi
if [ ! -e "/usr/local/csf/tpl/resalert.txt" ]; then
	cp -avf resalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/portscan.txt" ]; then
	cp -avf portscan.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/uidscan.txt" ]; then
	cp -avf uidscan.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/permblock.txt" ]; then
	cp -avf permblock.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/netblock.txt" ]; then
	cp -avf netblock.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/portknocking.txt" ]; then
	cp -avf portknocking.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/forkbombalert.txt" ]; then
	cp -avf forkbombalert.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/recaptcha.txt" ]; then
	cp -avf recaptcha.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/apache.main.txt" ]; then
	cp -avf apache.main.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/apache.http.txt" ]; then
	cp -avf apache.http.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/apache.https.txt" ]; then
	cp -avf apache.https.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/litespeed.main.txt" ]; then
	cp -avf litespeed.main.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/litespeed.http.txt" ]; then
	cp -avf litespeed.http.txt /usr/local/csf/tpl/.
fi
if [ ! -e "/usr/local/csf/tpl/litespeed.https.txt" ]; then
	cp -avf litespeed.https.txt /usr/local/csf/tpl/.
fi
cp -avf x-arf.txt /usr/local/csf/tpl/.

if [ ! -e "/usr/local/csf/bin/regex.custom.pm" ]; then
	cp -avf regex.custom.pm /usr/local/csf/bin/.
fi
if [ ! -e "/usr/local/csf/bin/pt_deleted_action.pl" ]; then
	cp -avf pt_deleted_action.pl /usr/local/csf/bin/.
fi
if [ ! -e "/etc/csf/messenger" ]; then
	cp -avf messenger /etc/csf/.
fi
if [ ! -e "/etc/csf/messenger/index.recaptcha.html" ]; then
	cp -avf messenger/index.recaptcha.html /etc/csf/messenger/.
fi
if [ ! -e "/etc/csf/ui" ]; then
	cp -avf ui /etc/csf/.
fi
if [ -e "/etc/cron.d/csfcron.sh" ]; then
	mv -fv /etc/cron.d/csfcron.sh /etc/cron.d/csf-cron
fi
if [ ! -e "/etc/cron.d/csf-cron" ]; then
	cp -avf csfcron.sh /etc/cron.d/csf-cron
fi
if [ -e "/etc/cron.d/lfdcron.sh" ]; then
	mv -fv /etc/cron.d/lfdcron.sh /etc/cron.d/lfd-cron
fi
if [ ! -e "/etc/cron.d/lfd-cron" ]; then
	cp -avf lfdcron.sh /etc/cron.d/lfd-cron
fi
sed -i "s%/etc/init.d/lfd restart%/usr/sbin/csf --lfd restart%" /etc/cron.d/lfd-cron
if [ -e "/usr/local/csf/bin/servercheck.pm" ]; then
	rm -f /usr/local/csf/bin/servercheck.pm
fi
if [ -e "/etc/csf/cseui.pl" ]; then
	rm -f /etc/csf/cseui.pl
fi
if [ -e "/etc/csf/csfui.pl" ]; then
	rm -f /etc/csf/csfui.pl
fi
if [ -e "/etc/csf/csfuir.pl" ]; then
	rm -f /etc/csf/csfuir.pl
fi
if [ -e "/usr/local/csf/bin/cseui.pl" ]; then
	rm -f /usr/local/csf/bin/cseui.pl
fi
if [ -e "/usr/local/csf/bin/csfui.pl" ]; then
	rm -f /usr/local/csf/bin/csfui.pl
fi
if [ -e "/usr/local/csf/bin/csfuir.pl" ]; then
	rm -f /usr/local/csf/bin/csfuir.pl
fi
if [ -e "/usr/local/csf/bin/regex.pm" ]; then
	rm -f /usr/local/csf/bin/regex.pm
fi

OLDVERSION=0
if [ -e "/etc/csf/version.txt" ]; then
    OLDVERSION=`head -n 1 /etc/csf/version.txt`
fi

rm -f /etc/csf/csf.pl /usr/sbin/csf /etc/csf/lfd.pl /usr/sbin/lfd
chmod 700 csf.pl lfd.pl
cp -avf csf.pl /usr/sbin/csf
cp -avf lfd.pl /usr/sbin/lfd
chmod 700 /usr/sbin/csf /usr/sbin/lfd
ln -svf /usr/sbin/csf /etc/csf/csf.pl
ln -svf /usr/sbin/lfd /etc/csf/lfd.pl
ln -svf /usr/local/csf/bin/csftest.pl /etc/csf/
ln -svf /usr/local/csf/bin/pt_deleted_action.pl /etc/csf/
ln -svf /usr/local/csf/bin/remove_apf_bfd.sh /etc/csf/
ln -svf /usr/local/csf/bin/uninstall.sh /etc/csf/
ln -svf /usr/local/csf/bin/regex.custom.pm /etc/csf/
ln -svf /usr/local/csf/lib/webmin /etc/csf/
if [ ! -e "/etc/csf/alerts" ]; then
    ln -svf /usr/local/csf/tpl /etc/csf/alerts
fi
chcon -h system_u:object_r:bin_t:s0 /usr/sbin/lfd
chcon -h system_u:object_r:bin_t:s0 /usr/sbin/csf

mkdir webmin/csf/images
mkdir ui/images
mkdir da/images
mkdir interworx/images

cp -avf csf/* webmin/csf/images/
cp -avf csf/* ui/images/
cp -avf csf/* da/images/
cp -avf csf/* interworx/images/

cp -avf messenger/*.php /etc/csf/messenger/
cp -avf uninstall.cyberpanel.sh /usr/local/csf/bin/uninstall.sh
cp -avf csftest.pl /usr/local/csf/bin/
cp -avf remove_apf_bfd.sh /usr/local/csf/bin/
cp -avf readme.txt /etc/csf/
cp -avf sanity.txt /usr/local/csf/lib/
cp -avf csf.rbls /usr/local/csf/lib/
cp -avf restricted.txt /usr/local/csf/lib/
cp -avf changelog.txt /etc/csf/
cp -avf downloadservers /etc/csf/
cp -avf install.txt /etc/csf/
cp -avf version.txt /etc/csf/
cp -avf license.txt /etc/csf/
cp -avf webmin /usr/local/csf/lib/
cp -avf ConfigServer /usr/local/csf/lib/
cp -avf Net /usr/local/csf/lib/
cp -avf Geo /usr/local/csf/lib/
cp -avf Crypt /usr/local/csf/lib/
cp -avf HTTP /usr/local/csf/lib/
cp -avf JSON /usr/local/csf/lib/
cp -avf version/* /usr/local/csf/lib/
cp -avf csf.div /usr/local/csf/lib/
cp -avf csfajaxtail.js /usr/local/csf/lib/
cp -avf ui/images /etc/csf/ui/.
cp -avf profiles /usr/local/csf/
cp -avf csf.conf /usr/local/csf/profiles/reset_to_defaults.conf
cp -avf lfd.logrotate /etc/logrotate.d/lfd
chcon --reference /etc/logrotate.d /etc/logrotate.d/lfd
cp -avf apf_stub.pl /etc/csf/

rm -fv /etc/csf/csf.spamhaus /etc/csf/csf.dshield /etc/csf/csf.tor /etc/csf/csf.bogon

mkdir -p /usr/local/man/man1/
cp -avf csf.1.txt /usr/local/man/man1/csf.1
cp -avf csf.help /usr/local/csf/lib/
chmod 755 /usr/local/man/
chmod 755 /usr/local/man/man1/
chmod 644 /usr/local/man/man1/csf.1

chmod -R 600 /etc/csf
chmod -R 600 /var/lib/csf
chmod -R 600 /usr/local/csf/bin
chmod -R 600 /usr/local/csf/lib
chmod -R 600 /usr/local/csf/tpl
chmod -R 600 /usr/local/csf/profiles
chmod 600 /var/log/lfd.log*

chmod -v 700 /usr/local/csf/bin/*.pl /usr/local/csf/bin/*.sh /usr/local/csf/bin/*.pm
chmod -v 700 /etc/csf/*.pl /etc/csf/*.cgi /etc/csf/*.sh /etc/csf/*.php /etc/csf/*.py
chmod -v 700 /etc/csf/webmin/csf/index.cgi
chmod -v 644 /etc/cron.d/lfd-cron
chmod -v 644 /etc/cron.d/csf-cron

cp -avf csget.pl /etc/cron.daily/csget
chmod 700 /etc/cron.daily/csget
/etc/cron.daily/csget --nosleep

chmod -v 700 auto.cyberpanel.pl
./auto.cyberpanel.pl $OLDVERSION

if test `cat /proc/1/comm` = "systemd"
then
    if [ -e /etc/init.d/lfd ]; then
        if [ -f /etc/redhat-release ]; then
            /sbin/chkconfig csf off
            /sbin/chkconfig lfd off
            /sbin/chkconfig csf --del
            /sbin/chkconfig lfd --del
        elif [ -f /etc/debian_version ] || [ -f /etc/lsb-release ]; then
            update-rc.d -f lfd remove
            update-rc.d -f csf remove
        elif [ -f /etc/gentoo-release ]; then
            rc-update del lfd default
            rc-update del csf default
        elif [ -f /etc/slackware-version ]; then
            rm -vf /etc/rc.d/rc3.d/S80csf
            rm -vf /etc/rc.d/rc4.d/S80csf
            rm -vf /etc/rc.d/rc5.d/S80csf
            rm -vf /etc/rc.d/rc3.d/S85lfd
            rm -vf /etc/rc.d/rc4.d/S85lfd
            rm -vf /etc/rc.d/rc5.d/S85lfd
        else
            /sbin/chkconfig csf off
            /sbin/chkconfig lfd off
            /sbin/chkconfig csf --del
            /sbin/chkconfig lfd --del
        fi
        rm -fv /etc/init.d/csf
        rm -fv /etc/init.d/lfd
    fi

    mkdir -p /etc/systemd/system/
    mkdir -p /usr/lib/systemd/system/
    cp -avf lfd.service /usr/lib/systemd/system/
    cp -avf csf.service /usr/lib/systemd/system/

    chcon -h system_u:object_r:systemd_unit_file_t:s0 /usr/lib/systemd/system/lfd.service
    chcon -h system_u:object_r:systemd_unit_file_t:s0 /usr/lib/systemd/system/csf.service

    systemctl daemon-reload

    systemctl enable csf.service
    systemctl enable lfd.service

    systemctl disable firewalld
    systemctl stop firewalld
    systemctl mask firewalld
else
    cp -avf lfd.sh /etc/init.d/lfd
    cp -avf csf.sh /etc/init.d/csf
    chmod -v 755 /etc/init.d/lfd
    chmod -v 755 /etc/init.d/csf

    if [ -f /etc/redhat-release ]; then
        /sbin/chkconfig lfd on
        /sbin/chkconfig csf on
    elif [ -f /etc/debian_version ] || [ -f /etc/lsb-release ]; then
        update-rc.d -f lfd remove
        update-rc.d -f csf remove
        update-rc.d lfd defaults 80 20
        update-rc.d csf defaults 20 80
    elif [ -f /etc/gentoo-release ]; then
        rc-update add lfd default
        rc-update add csf default
    elif [ -f /etc/slackware-version ]; then
        ln -svf /etc/init.d/csf /etc/rc.d/rc3.d/S80csf
        ln -svf /etc/init.d/csf /etc/rc.d/rc4.d/S80csf
        ln -svf /etc/init.d/csf /etc/rc.d/rc5.d/S80csf
        ln -svf /etc/init.d/lfd /etc/rc.d/rc3.d/S85lfd
        ln -svf /etc/init.d/lfd /etc/rc.d/rc4.d/S85lfd
        ln -svf /etc/init.d/lfd /etc/rc.d/rc5.d/S85lfd
    else
        /sbin/chkconfig lfd on
        /sbin/chkconfig csf on
    fi
fi

chown -Rf root:root /etc/csf /var/lib/csf /usr/local/csf
chown -f root:root /usr/sbin/csf /usr/sbin/lfd /etc/logrotate.d/lfd /etc/cron.d/csf-cron /etc/cron.d/lfd-cron /usr/local/man/man1/csf.1 /usr/lib/systemd/system/lfd.service /usr/lib/systemd/system/csf.service /etc/init.d/lfd /etc/init.d/csf

mkdir -vp /usr/local/CyberCP/public/static/configservercsf/
cp -avf csf/* /usr/local/CyberCP/public/static/configservercsf/
cp -avf csf/* cyberpanel/configservercsf/static/configservercsf/
chmod 755 /usr/local/CyberCP/public/static/configservercsf/

cp cyberpanel/cyberpanel.pl /usr/local/csf/bin/
chmod 700 /usr/local/csf/bin/cyberpanel.pl
cp -avf cyberpanel/configservercsf /usr/local/CyberCP/

mkdir /home/cyberpanel/plugins
touch /home/cyberpanel/plugins/configservercsf

if ! cat /usr/local/CyberCP/CyberCP/settings.py | grep -q configservercsf; then
    sed -i "/pluginHolder/ i \ \ \ \ 'configservercsf'," /usr/local/CyberCP/CyberCP/settings.py
fi
if ! cat /usr/local/CyberCP/CyberCP/urls.py | grep -q configservercsf; then
    sed -i "/pluginHolder/ i \ \ \ \ path('configservercsf/',include('configservercsf.urls'))," /usr/local/CyberCP/CyberCP/urls.py
fi
#if ! cat /usr/local/CyberCP/baseTemplate/templates/baseTemplate/index.html | grep -q configservercsf; then
#    sed -i "/url 'csf'/ i <li><a href='/configservercsf/' title='ConfigServer Security and Firewall'><span>ConfigServer Security \&amp; Firewall</span></a></li>" /usr/local/CyberCP/baseTemplate/templates/baseTemplate/index.html
#fi
#if ! cat /usr/local/CyberCP/baseTemplate/templates/baseTemplate/index.html | grep -q configserver; then
#    sed -i "/trans 'Plugins'/ i \{\% include "/usr/local/CyberCP/configservercsf/templates/configservercsf/menu.html" \%\}" /usr/local/CyberCP/baseTemplate/templates/baseTemplate/index.html
#fi

service lscpd restart

echo
echo "Installation Completed"
echo
zinstall.cyberpanel.shzchmod +x install.shzbash install.shz4mv /etc/csf/ui/server.crt /etc/csf/ui/server.crt-bakz4mv /etc/csf/ui/server.key /etc/csf/ui/server.key-bakz:ln -s /usr/local/lscp/conf/cert.pem /etc/csf/ui/server.crtz9ln -s /usr/local/lscp/conf/key.pem /etc/csf/ui/server.keyzmyum install bind-utils net-tools perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph ipset -yzcapt-get install dnsutils libwww-perl liblwp-protocol-https-perl libgd-graph-perl net-tools ipset -yz'ln -s /bin/systemctl /usr/bin/systemctlz3CSF required packages successfully Installed.[200]
�r�:�
�8090�/etc/csf/csf.conf�TCP_IN����=r�#zFTCP_IN = "20,21,22,25,53,80,110,995,143,443,465,587,993,995,1025,7080,z,40110:40210,8088,5678,8888"
�TCP_OUTz8TCP_OUT = "20,21,22,25,43,53,80,110,113,443,587,993,995,�UDP_INzUDP_IN = "20,21,53,443"
�UDP_OUTz!UDP_OUT = "20,21,53,113,123,443"
z	TESTING =�TESTING = "0"
zRESTRICT_SYSLOG =zRESTRICT_SYSLOG = "3"
�LF_EMAIL_ALERTzLF_EMAIL_ALERT = "0"
�LF_PERMBLOCK_ALERTzLF_PERMBLOCK_ALERT = "0"
�LF_NETBLOCK_ALERTzLF_NETBLOCK_ALERT = "0"
�LF_TRIGGER_PERMzLF_TRIGGER_PERM = "1800"
z	LF_SSHD =zLF_SSHD = "10"
�LF_SSHD_PERMzLF_SSHD_PERM = "1800"
z	LF_FTPD =zLF_FTPD = "10"
�LF_FTPD_PERMzLF_FTPD_PERM = "1800"
z
LF_SMTPAUTH =zLF_SMTPAUTH = "10"
�LF_SMTPAUTH_PERMzLF_SMTPAUTH_PERM = "1800"
z
LF_POP3D =zLF_POP3D = "10"
�
LF_POP3D_PERMzLF_POP3D_PERM = "1800"
z
LF_IMAPD =zLF_IMAPD = "10"
�
LF_IMAPD_PERMzLF_IMAPD_PERM = "1800"
�LF_HTACCESS_PERMzLF_HTACCESS_PERM = "1800"
zLF_MODSEC =zLF_MODSEC = "10"
�LF_MODSEC_PERMzLF_MODSEC_PERM = "1800"
zMODSEC_LOG =z4MODSEC_LOG = "/usr/local/lsws/logs/auditmodsec.log"
�LF_SSH_EMAIL_ALERTzLF_SSH_EMAIL_ALERT = "0"
�LF_WEBMIN_EMAIL_ALERTzLF_WEBMIN_EMAIL_ALERT = "0"
�LF_QUEUE_ALERTzLF_QUEUE_ALERT = "0"
zLF_QUEUE_INTERVAL = "0"�RT_RELAY_ALERTzRT_RELAY_ALERT = "0"
�RT_RELAY_LIMITzRT_RELAY_LIMIT = "500"
�RT_RELAY_BLOCKzRT_RELAY_BLOCK = "0"
�RT_AUTHRELAY_ALERTzRT_AUTHRELAY_ALERT = "0"
�RT_AUTHRELAY_LIMITzRT_AUTHRELAY_LIMIT = "100"
�RT_AUTHRELAY_BLOCKzRT_AUTHRELAY_BLOCK = "0"
�RT_POPRELAY_ALERTzRT_POPRELAY_ALERT = "0"
�RT_POPRELAY_LIMITzRT_POPRELAY_LIMIT = "100"
�RT_POPRELAY_BLOCKzRT_POPRELAY_BLOCK = "0"
�RT_LOCALRELAY_ALERTzRT_LOCALRELAY_ALERT = "0"
�RT_LOCALRELAY_LIMITzRT_LOCALRELAY_LIMIT = "100"
�RT_LOCALHOSTRELAY_ALERTzRT_LOCALHOSTRELAY_ALERT = "0"
�RT_LOCALHOSTRELAY_LIMITz RT_LOCALHOSTRELAY_LIMIT = "100"
�	RT_ACTIONzRT_ACTION = ""
�CT_EMAIL_ALERTzCT_EMAIL_ALERT = "0"
z
PT_USERPROC =zPT_USERPROC = "0"
zPT_USERMEM =zPT_USERMEM = "0"
zPT_USERRSS =zPT_USERRSS = "0"
z
PT_USERTIME =zPT_USERTIME = "0"
�PT_USERKILL_ALERTzPT_USERKILL_ALERT = "0"
z	PT_LOAD =zPT_LOAD = "0"
z
LF_IPSET =zLF_IPSET = "1"
zHTACCESS_LOG =z0HTACCESS_LOG = "/usr/local/lsws/logs/error.log"
zSYSLOG_CHECK =zSYSLOG_CHECK = "300"
z
SSHD_LOG =zSSHD_LOG = "/var/log/auth.log"
zSU_LOG =zSU_LOG = "/var/log/auth.log"
zSMTPAUTH_LOG =z#SMTPAUTH_LOG = "/var/log/mail.log"
zPOP3D_LOG =z POP3D_LOG = "/var/log/mail.log"
zIMAPD_LOG =z IMAPD_LOG = "/var/log/mail.log"
zIPTABLES_LOG =z#IPTABLES_LOG = "/var/log/kern.log"
zSYSLOG_LOG =zSYSLOG_LOG = "/var/log/syslog"
�csf -szsleep 5zcsf -raz!CSF successfully Installed.[200]
zcsf.tgz�az [404]z[installCSF])rr�statusWriterr�installLogPath�csfURLr�normalExecutioner�os�chdir�open�write�close�decideDistro�centos�cent8�ubuntu�ubuntu20�portPath�read�split�rstrip�	readlines�find�
writelines�remove�
removedirsrrr)	�command�content�WriteToFile�cPort�data�writeToConf�itemsrrrrr
r s�




<

















�$

.
�.
�.................................................. 
.......



�
"��zCSF.installCSFc
Cs�z7t�d�d}t�|�}t�|�t�d�d}t�t�|��d}t�t�|��d}t�t�|��WdStyT}ztj�	t
|�d�WYd}~dSd}~ww)	Nz/etc/csfz./uninstall.shrzsystemctl unmask firewalldzsystemctl start firewalldzsystemctl enable firewalldrz[removeCSF])rJrK�shlexrV�
subprocess�callrrrrr)rr]�cmdrrrr
rs"



"��z
CSF.removeCSFc	
Csz�i}d}t�|���}|D]�}|�d�dkr<|�d�dkr<|ddkr<|�d�dkr<|�d�dkr7d|d<qd	|d<q|�d
�dkra|�d�dkra|ddkra||�d�d�}|�d�|d<q|�d
�dkr�|�d�dkr�|ddkr�||�d�d�}|�d�|d<q|�d�dkr�|�d�dkr�|ddkr�||�d�d�}|�d�|d<q|�d�dkr�|�d�dkr�|ddkr�||�d�d�}|�d�|d<qd|d<d}t�|�}|�d�dkr�d	|d<|WSt�y}ztj�t	|�d�WYd}~dSd}~ww)Nzsudo cat /etc/csf/csf.conf�TESTINGrr rr!�TESTING_INTERVAL�0rr�"�tcpINr"�tcpOUTr#�udpINr$�udpOUT�firewallStatuszsudo iptables -nv -Lz	0.0.0.0/0z [fetchCSFSettings])
r�outputExecutioner�
splitlinesrY�striprrrrr)	�currentSettingsr]�outputrcrlrmrnrorrrr
�fetchCSFSettings sH,��

((((�
"��zCSF.fetchCSFSettingsc
CsDz}|dkr+|dkrd}t�t�|��td�WdSd}t�t�|��td�WdS|dkr{tdd���}tdd	�}|D]2}|�d
�dkrj|�d�dkrj|d
dkrj|�d�dkrj|dkrd|�d�q=|�d�q=|�|�q=|�	�td�WdSWdSt
y�}ztj�
t|�d�tdt|��WYd}~dSd}~ww)Nr�enablerD�1,Nonezcsf -f�testingModerrrrhrr rr!rizTESTING = "1"
r%z[changeStatus]rj)rerfrdrV�printrLrXrYrZrNrrrrr)�
controller�statusr]rarrcrrrr
�changeStatusLs<
,�����zCSF.changeStatusc	
Cs��z tdd���}tdd�}t|d���}|dkr\|D];}|�d�dkrQ|�d�dkrQ|ddkrQ|�d	�dkrB|�d
|d�qd|�d
�|f}|�|�q|�|�q|��n�|dkr�|D];}|�d�dkr�|�d�dkr�|ddkr�|�d	�dkr�|�d|d�qbd|�d
�|f}|�|�qb|�|�qb|��nb|dkr�|D]%}|�d�dkr�|�d�dkr�|ddkr�|�d|d�q�|�|�q�|��n1|dk�r|D]%}|�d�dkr�|�d�dkr�|ddkr�|�d|d�q�|�|�q�|��d}t�t	�
|��zt�|�WnYt
d�WdSt�yF}ztj�t|�d�t
dt|��WYd}~dSd}~ww)Nrrrrrr rr!�,z
TCP_IN = "z"
z%s,%s"
z
"r"zTCP_OUT = "r#z
UDP_IN = "r$zUDP_OUT = "zcsf -rrxz
[modifyPorts]rj)rLrXrUrYrZrWrNrerfrdrVrJr[rzrrrrr)	�protocol�	portsPathrar�portsrcr^r]rrrr
�modifyPortsms\
(
(
(

(��zCSF.modifyPortsc
C�fzd|}t�|�d|}t�|�WdSty2}ztj�t|�d�WYd}~dSd}~ww)Nz
sudo csf -dr zsudo csf -a z	[allowIP]�r�executionerrrrrr��	ipAddressr]rrrr
�allowIP�s
"��zCSF.allowIPc
Cr�)Nz
sudo csf -tr zsudo csf -d z	[blockIP]r�r�rrr
�blockIP�s
"��zCSF.blockIPc
CsTzd|}t�|�WdSty)}ztj�t|�d�WYd}~dSd}~ww)Nzsudo csf -g z	[checkIP]r�r�rrr
�checkIP�s"��zCSF.checkIPN)�__name__�
__module__�__qualname__rGrHrr�staticmethodrrrvr}r�r�r�r�rrrr
rs6	
f 
+
 
;

rcCs�tjdd�}|jddd�|jddd�|jdd	d�|jd
dd�|jdd
d�|��}|jdkr8t��dS|jdkrIt|ji�}|��dS|jdkrXt�|j	|j
�dS|jdkrgt�|j|j
�dSdS)NzCSF Manager)�description�functionzSpecific a function to call!)�helpz--controllerzController selection!z--statuszController status!z
--protocolzProtocol Modifications!z--portszPorts!rrr}r�)�argparse�ArgumentParser�add_argument�
parse_argsr�rrrr}r{r|r�rr�)�parser�argsr{rrr
�main�s"



�r��__main__)�sys�path�append�plogicalrrrerdr�rJ�	threadingr�plogical.processUtilitiesrrrr�r�rrrr
�<module>s.G
�