Beispiel #1
0
    def init(self):
        self.title = _('CSF Firewall')
        self.icon = 'fire'
        self.category = _('System')
        self.backend = CSFBackend.get()

        self.append(self.ui.inflate('csf:main'))

        self.config = CSFConfig(path='/etc/csf/csf.conf')
        self.list_allow = []
        self.list_deny = []
        self.list_tempallow = []
        self.list_tempban = []

        def delete_rule(csf_option, i):
            self.save()
            subprocess.call(['csf', csf_option, i.value.split('#')[0]])
            self.refresh()

        self.find('list_allow').on_delete = lambda i, c: delete('-ar', i)
        self.find('list_deny').on_delete = lambda i, c: delete('-dr', i)
        self.find('list_tempallow').on_delete = lambda i, c: delete('-tr', i)
        self.find('list_tempban').on_delete = lambda i, c: delete('-tr', i)

        def add_rule(csf_option, address):
            self.save()
            p = subprocess.Popen(['csf', csf_option, address],
                                 stdout=subprocess.PIPE)
            o, e = p.communicate()
            self.context.notify('info', o)
            self.refresh()

        self.find('list_allow-add').on(
            'click',
            lambda: add_rule('-a',
                             self.find('permanent-lists-add-address').value))
        self.find('list_deny-add').on(
            'click',
            lambda: add_rule('-d',
                             self.find('permanent-lists-add-address').value))
        self.find('list_tempallow-add').on(
            'click',
            lambda: add_rule('-ta',
                             self.find('temporary-lists-add-address').value))
        self.find('list_tempban-add').on(
            'click',
            lambda: add_rule('-td',
                             self.find('temporary-lists-add-address').value))

        self.binder = Binder(None, self)
        self.binder_lists = Binder(self, self.find('lists'))
Beispiel #2
0
    def init(self):
        self.title = _("CSF Firewall")
        self.icon = "fire"
        self.category = _("System")
        self.backend = CSFBackend.get()

        self.append(self.ui.inflate("csf:main"))

        self.config = CSFConfig(path="/etc/csf/csf.conf")
        self.list_allow = []
        self.list_deny = []
        self.list_tempallow = []
        self.list_tempban = []

        def delete_rule(csf_option, i):
            self.save()
            subprocess.call(["csf", csf_option, i.value.split("#")[0]])
            self.refresh()

        self.find("list_allow").on_delete = lambda i, c: delete("-ar", i)
        self.find("list_deny").on_delete = lambda i, c: delete("-dr", i)
        self.find("list_tempallow").on_delete = lambda i, c: delete("-tr", i)
        self.find("list_tempban").on_delete = lambda i, c: delete("-tr", i)

        def add_rule(csf_option, address):
            self.save()
            p = subprocess.Popen(["csf", csf_option, address], stdout=subprocess.PIPE)
            o, e = p.communicate()
            self.context.notify("info", o)
            self.refresh()

        self.find("list_allow-add").on("click", lambda: add_rule("-a", self.find("permanent-lists-add-address").value))
        self.find("list_deny-add").on("click", lambda: add_rule("-d", self.find("permanent-lists-add-address").value))
        self.find("list_tempallow-add").on(
            "click", lambda: add_rule("-ta", self.find("temporary-lists-add-address").value)
        )
        self.find("list_tempban-add").on(
            "click", lambda: add_rule("-td", self.find("temporary-lists-add-address").value)
        )

        self.binder = Binder(None, self)
        self.binder_lists = Binder(self, self.find("lists"))
Beispiel #3
0
    def init(self):
        self.title = _('CSF Firewall')
        self.icon = 'fire'
        self.category = _('System')
        self.backend = CSFBackend.get()

        self.append(self.ui.inflate('csf:main'))

        self.config = CSFConfig(path='/etc/csf/csf.conf')
        self.list_allow = []
        self.list_deny = []
        self.list_tempallow = []
        self.list_tempban = []

        def delete_rule(csf_option, i):
            self.save()
            subprocess.call(['csf', csf_option, i.value.split('#')[0]])
            self.refresh()

        self.find('list_allow').on_delete = lambda i, c: delete('-ar', i)
        self.find('list_deny').on_delete = lambda i, c: delete('-dr', i)
        self.find('list_tempallow').on_delete = lambda i, c: delete('-tr', i)
        self.find('list_tempban').on_delete = lambda i, c: delete('-tr', i)

        def add_rule(csf_option, address):
            self.save()
            p = subprocess.Popen(['csf', csf_option, address], stdout=subprocess.PIPE)
            o, e = p.communicate()
            self.context.notify('info', o)
            self.refresh()

        self.find('list_allow-add').on('click', lambda: add_rule('-a', self.find('permanent-lists-add-address').value))
        self.find('list_deny-add').on('click', lambda: add_rule('-d', self.find('permanent-lists-add-address').value))
        self.find('list_tempallow-add').on('click', lambda: add_rule('-ta', self.find('temporary-lists-add-address').value))
        self.find('list_tempban-add').on('click', lambda: add_rule('-td', self.find('temporary-lists-add-address').value))

        self.binder = Binder(None, self)
        self.binder_lists = Binder(self, self.find('lists'))
Beispiel #4
0
class CSFSection (SectionPlugin):
    def init(self):
        self.title = _('CSF Firewall')
        self.icon = 'fire'
        self.category = _('System')
        self.backend = CSFBackend.get()

        self.append(self.ui.inflate('csf:main'))

        self.config = CSFConfig(path='/etc/csf/csf.conf')
        self.list_allow = []
        self.list_deny = []
        self.list_tempallow = []
        self.list_tempban = []

        def delete_rule(csf_option, i):
            self.save()
            subprocess.call(['csf', csf_option, i.value.split('#')[0]])
            self.refresh()

        self.find('list_allow').on_delete = lambda i, c: delete('-ar', i)
        self.find('list_deny').on_delete = lambda i, c: delete('-dr', i)
        self.find('list_tempallow').on_delete = lambda i, c: delete('-tr', i)
        self.find('list_tempban').on_delete = lambda i, c: delete('-tr', i)

        def add_rule(csf_option, address):
            self.save()
            p = subprocess.Popen(['csf', csf_option, address], stdout=subprocess.PIPE)
            o, e = p.communicate()
            self.context.notify('info', o)
            self.refresh()

        self.find('list_allow-add').on('click', lambda: add_rule('-a', self.find('permanent-lists-add-address').value))
        self.find('list_deny-add').on('click', lambda: add_rule('-d', self.find('permanent-lists-add-address').value))
        self.find('list_tempallow-add').on('click', lambda: add_rule('-ta', self.find('temporary-lists-add-address').value))
        self.find('list_tempban-add').on('click', lambda: add_rule('-td', self.find('temporary-lists-add-address').value))

        self.binder = Binder(None, self)
        self.binder_lists = Binder(self, self.find('lists'))

    def on_page_load(self):
        self.refresh()

    def refresh(self):
        self.config.load()
        self.list_allow = self.backend.read_list('allow')
        self.list_deny = self.backend.read_list('deny')
        self.list_tempallow = self.backend.read_list('tempallow')
        self.list_tempban = self.backend.read_list('tempban')
        self.binder.setup(self.config.tree).populate()
        self.binder_lists.populate()

    @on('apply', 'click')
    def on_apply(self):
        self.backend.apply()
        self.context.notify('info', _('Applied'))

    @on('save', 'click')
    def save(self):
        self.binder.update()
        self.config.save()
        self.backend.write_list('allow', self.list_allow)
        self.backend.write_list('deny', self.list_deny)
        self.backend.write_list('tempallow', self.list_tempallow)
        self.backend.write_list('tempban', self.list_tempban)

        self.binder.setup(self.config.tree).populate()
        self.context.notify('info', _('Saved'))
        try:
            self.backend.test_config()
            self.context.notify('info', _('Self-test OK'))
        except Exception as e:
            self.context.notify('error', str(e))
Beispiel #5
0
class CSFSection(SectionPlugin):
    def init(self):
        self.title = _('CSF Firewall')
        self.icon = 'fire'
        self.category = _('System')
        self.backend = CSFBackend.get()

        self.append(self.ui.inflate('csf:main'))

        self.config = CSFConfig(path='/etc/csf/csf.conf')
        self.list_allow = []
        self.list_deny = []
        self.list_tempallow = []
        self.list_tempban = []

        def delete_rule(csf_option, i):
            self.save()
            subprocess.call(['csf', csf_option, i.value.split('#')[0]])
            self.refresh()

        self.find('list_allow').on_delete = lambda i, c: delete('-ar', i)
        self.find('list_deny').on_delete = lambda i, c: delete('-dr', i)
        self.find('list_tempallow').on_delete = lambda i, c: delete('-tr', i)
        self.find('list_tempban').on_delete = lambda i, c: delete('-tr', i)

        def add_rule(csf_option, address):
            self.save()
            p = subprocess.Popen(['csf', csf_option, address],
                                 stdout=subprocess.PIPE)
            o, e = p.communicate()
            self.context.notify('info', o)
            self.refresh()

        self.find('list_allow-add').on(
            'click',
            lambda: add_rule('-a',
                             self.find('permanent-lists-add-address').value))
        self.find('list_deny-add').on(
            'click',
            lambda: add_rule('-d',
                             self.find('permanent-lists-add-address').value))
        self.find('list_tempallow-add').on(
            'click',
            lambda: add_rule('-ta',
                             self.find('temporary-lists-add-address').value))
        self.find('list_tempban-add').on(
            'click',
            lambda: add_rule('-td',
                             self.find('temporary-lists-add-address').value))

        self.binder = Binder(None, self)
        self.binder_lists = Binder(self, self.find('lists'))

    def on_page_load(self):
        self.refresh()

    def refresh(self):
        self.config.load()
        self.list_allow = self.backend.read_list('allow')
        self.list_deny = self.backend.read_list('deny')
        self.list_tempallow = self.backend.read_list('tempallow')
        self.list_tempban = self.backend.read_list('tempban')
        self.binder.setup(self.config.tree).populate()
        self.binder_lists.populate()

    @on('apply', 'click')
    def on_apply(self):
        self.backend.apply()
        self.context.notify('info', _('Applied'))

    @on('save', 'click')
    def save(self):
        self.binder.update()
        self.config.save()
        self.backend.write_list('allow', self.list_allow)
        self.backend.write_list('deny', self.list_deny)
        self.backend.write_list('tempallow', self.list_tempallow)
        self.backend.write_list('tempban', self.list_tempban)

        self.binder.setup(self.config.tree).populate()
        self.context.notify('info', _('Saved'))
        try:
            self.backend.test_config()
            self.context.notify('info', _('Self-test OK'))
        except Exception as e:
            self.context.notify('error', str(e))
Beispiel #6
0
class CSFSection(SectionPlugin):
    def init(self):
        self.title = _("CSF Firewall")
        self.icon = "fire"
        self.category = _("System")
        self.backend = CSFBackend.get()

        self.append(self.ui.inflate("csf:main"))

        self.config = CSFConfig(path="/etc/csf/csf.conf")
        self.list_allow = []
        self.list_deny = []
        self.list_tempallow = []
        self.list_tempban = []

        def delete_rule(csf_option, i):
            self.save()
            subprocess.call(["csf", csf_option, i.value.split("#")[0]])
            self.refresh()

        self.find("list_allow").on_delete = lambda i, c: delete("-ar", i)
        self.find("list_deny").on_delete = lambda i, c: delete("-dr", i)
        self.find("list_tempallow").on_delete = lambda i, c: delete("-tr", i)
        self.find("list_tempban").on_delete = lambda i, c: delete("-tr", i)

        def add_rule(csf_option, address):
            self.save()
            p = subprocess.Popen(["csf", csf_option, address], stdout=subprocess.PIPE)
            o, e = p.communicate()
            self.context.notify("info", o)
            self.refresh()

        self.find("list_allow-add").on("click", lambda: add_rule("-a", self.find("permanent-lists-add-address").value))
        self.find("list_deny-add").on("click", lambda: add_rule("-d", self.find("permanent-lists-add-address").value))
        self.find("list_tempallow-add").on(
            "click", lambda: add_rule("-ta", self.find("temporary-lists-add-address").value)
        )
        self.find("list_tempban-add").on(
            "click", lambda: add_rule("-td", self.find("temporary-lists-add-address").value)
        )

        self.binder = Binder(None, self)
        self.binder_lists = Binder(self, self.find("lists"))

    def on_page_load(self):
        self.refresh()

    def refresh(self):
        self.config.load()
        self.list_allow = self.backend.read_list("allow")
        self.list_deny = self.backend.read_list("deny")
        self.list_tempallow = self.backend.read_list("tempallow")
        self.list_tempban = self.backend.read_list("tempban")
        self.binder.setup(self.config.tree).populate()
        self.binder_lists.populate()

    @on("apply", "click")
    def on_apply(self):
        self.backend.apply()
        self.context.notify("info", _("Applied"))

    @on("save", "click")
    def save(self):
        self.binder.update()
        self.config.save()
        self.backend.write_list("allow", self.list_allow)
        self.backend.write_list("deny", self.list_deny)
        self.backend.write_list("tempallow", self.list_tempallow)
        self.backend.write_list("tempban", self.list_tempban)

        self.binder.setup(self.config.tree).populate()
        self.context.notify("info", _("Saved"))
        try:
            self.backend.test_config()
            self.context.notify("info", _("Self-test OK"))
        except Exception, e:
            self.context.notify("error", str(e))