SILENT KILLERPanel

Current Path: > > lib > python3.6 > > site-packages > > firewall > core


Operation   : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Software     : Apache
Server IP    : 162.0.232.56 | Your IP: 216.73.216.111
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: //lib/python3.6//site-packages//firewall/core

NameTypeSizeLast ModifiedActions
__pycache__ Directory - -
io Directory - -
__init__.py File 0 bytes March 11 2025 09:51:09.
base.py File 2102 bytes March 11 2025 09:51:09.
ebtables.py File 9390 bytes March 11 2025 09:51:09.
fw.py File 50405 bytes March 11 2025 09:51:09.
fw_config.py File 48408 bytes March 11 2025 09:51:09.
fw_direct.py File 22518 bytes March 11 2025 09:51:09.
fw_helper.py File 1833 bytes March 11 2025 09:51:09.
fw_icmptype.py File 2485 bytes March 11 2025 09:51:09.
fw_ifcfg.py File 2562 bytes March 11 2025 09:51:09.
fw_ipset.py File 9674 bytes March 11 2025 09:51:09.
fw_nm.py File 7186 bytes March 11 2025 09:51:09.
fw_policies.py File 2803 bytes March 11 2025 09:51:09.
fw_policy.py File 87613 bytes March 11 2025 09:51:09.
fw_service.py File 1639 bytes March 11 2025 09:51:09.
fw_transaction.py File 6310 bytes March 11 2025 09:51:09.
fw_zone.py File 45689 bytes March 11 2025 09:51:09.
helper.py File 804 bytes March 11 2025 09:51:09.
icmp.py File 3101 bytes March 11 2025 09:51:09.
ipXtables.py File 61878 bytes March 11 2025 09:51:09.
ipset.py File 12913 bytes March 11 2025 09:51:09.
logger.py File 31038 bytes March 11 2025 09:51:09.
modules.py File 3822 bytes March 11 2025 09:51:09.
nftables.py File 101143 bytes March 11 2025 09:51:09.
prog.py File 1510 bytes March 11 2025 09:51:09.
rich.py File 33848 bytes March 11 2025 09:51:09.
watcher.py File 3228 bytes March 11 2025 09:51:09.

Reading File: //lib/python3.6//site-packages//firewall/core/fw_policies.py

# -*- coding: utf-8 -*-
#
# Copyright (C) 2011-2016 Red Hat, Inc.
#
# Authors:
# Thomas Woerner <twoerner@redhat.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

__all__ = [ "FirewallPolicies" ]

from firewall import config
from firewall.core.logger import log
from firewall.core.io.lockdown_whitelist import LockdownWhitelist
from firewall import errors
from firewall.errors import FirewallError

class FirewallPolicies(object):
    def __init__(self):
        self._lockdown = False
        self.lockdown_whitelist = LockdownWhitelist(config.LOCKDOWN_WHITELIST)

    def __repr__(self):
        return '%s(%r, %r)' % (self.__class__, self._lockdown,
                                           self.lockdown_whitelist)

    def cleanup(self):
        self._lockdown = False
        self.lockdown_whitelist.cleanup()

    # lockdown

    def access_check(self, key, value):
        if key == "context":
            log.debug2('Doing access check for context "%s"' % value)
            if self.lockdown_whitelist.match_context(value):
                log.debug3('context matches.')
                return True
        elif key == "uid":
            log.debug2('Doing access check for uid %d' % value)
            if self.lockdown_whitelist.match_uid(value):
                log.debug3('uid matches.')
                return True
        elif key == "user":
            log.debug2('Doing access check for user "%s"' % value)
            if self.lockdown_whitelist.match_user(value):
                log.debug3('user matches.')
                return True
        elif key == "command":
            log.debug2('Doing access check for command "%s"' % value)
            if self.lockdown_whitelist.match_command(value):
                log.debug3('command matches.')
                return True
        return False

    def enable_lockdown(self):
        if self._lockdown:
            raise FirewallError(errors.ALREADY_ENABLED, "enable_lockdown()")
        self._lockdown = True

    def disable_lockdown(self):
        if not self._lockdown:
            raise FirewallError(errors.NOT_ENABLED, "disable_lockdown()")
        self._lockdown = False

    def query_lockdown(self):
        return self._lockdown


SILENT KILLER Tool