abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 05:44 | Komunita

    PSF (Python Software Foundation) po mnoha měsících práce získala grant ve výši 1,5 milionu dolarů od americké vládní NSF (National Science Foundation) v rámci programu "Bezpečnost, ochrana a soukromí open source ekosystémů" na zvýšení bezpečnosti Pythonu a PyPI. PSF ale nesouhlasí s předloženou podmínkou grantu, že během trvání finanční podpory nebude žádným způsobem podporovat diverzitu, rovnost a inkluzi (DEI). PSF má diverzitu přímo ve svém poslání (Mission) a proto grant odmítla.

    Ladislav Hagara | Komentářů: 0
    dnes 04:55 | Nová verze

    Balík nástrojů Rust Coreutils / uutils coreutils, tj. nástrojů z GNU Coreutils napsaných v programovacím jazyce Rust, byl vydán ve verzi 0.3.0. Z 634 testů kompatibility Rust Coreutils s GNU Coreutils bylo úspěšných 532, tj. 83,91 %. V Ubuntu 25.10 se již používá Rust Coreutils místo GNU Coreutils, což může přinášet problémy, viz například nefunkční automatická aktualizace.

    Ladislav Hagara | Komentářů: 0
    včera 21:00 | IT novinky

    Od 3. listopadu 2025 budou muset nová rozšíření Firefoxu specifikovat, zda shromažďují nebo sdílejí osobní údaje. Po všech rozšířeních to bude vyžadováno někdy v první polovině roku 2026. Tyto informace se zobrazí uživateli, když začne instalovat rozšíření, spolu s veškerými oprávněními, která rozšíření požaduje.

    Ladislav Hagara | Komentářů: 0
    včera 17:11 | Humor

    Jste nuceni pracovat s Linuxem? Chybí vám pohodlí, které vám poskytoval Microsoft, když vás špehoval a sledoval všechno, co děláte? Nebojte se. Recall for Linux vám vrátí všechny skvělé funkce Windows Recall, které vám chyběly.

    Ladislav Hagara | Komentářů: 1
    včera 16:11 | Komunita

    Společnost Fre(i)e Software oznámila, že má budget na práci na Debianu pro tablety s cílem jeho vyžívání pro vzdělávací účely. Jako uživatelské prostředí bude použito Lomiri.

    Ladislav Hagara | Komentářů: 0
    26.10. 17:11 | IT novinky

    Proběhla hackerská soutěž Pwn2Own Ireland 2025. Celkově bylo vyplaceno 1 024 750 dolarů za 73 unikátních zranitelností nultého dne (0-day). Vítězný Summoning Team si odnesl 187 500 dolarů. Shrnutí po jednotlivých dnech na blogu Zero Day Initiative (1. den, 2. den a 3. den) a na YouTube.

    Ladislav Hagara | Komentářů: 4
    26.10. 13:33 | Komunita

    Byl publikován říjnový přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Pracuje se na podpoře M3. Zanedlouho vyjde Fedora Asahi Remix 43. Vývojáře lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    25.10. 15:44 | Zajímavý software

    Iniciativa Open Device Partnership (ODP) nedávno představila projekt Patina. Jedná se o implementaci UEFI firmwaru v Rustu. Vývoj probíhá na GitHubu. Zdrojové kódy jsou k dispozici pod licencí Apache 2.0. Nejnovější verze Patiny je 13.0.0.

    Ladislav Hagara | Komentářů: 0
    25.10. 05:11 | Zajímavý článek

    Obrovská poptávka po plynových turbínách zapříčinila, že datová centra začala používat v generátorech dodávajících energii pro provoz AI staré dobré proudové letecké motory, konvertované na plyn. Jejich výhodou je, že jsou menší, lehčí a lépe udržovatelné než jejich průmyslové protějšky. Proto jsou ideální pro dočasné nebo mobilní použití.

    karkar | Komentářů: 9
    24.10. 19:55 | Nová verze

    Typst byl vydán ve verzi 0.14. Jedná se o rozšiřitelný značkovací jazyk a překladač pro vytváření dokumentů včetně odborných textů s matematickými vzorci, diagramy či bibliografií.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (36%)
     (47%)
     (20%)
     (19%)
     (23%)
     (17%)
     (21%)
     (17%)
     (18%)
    Celkem 279 hlasů
     Komentářů: 14, poslední 14.10. 09:04
    Rozcestník

    Dotaz: Fail2ban - prosím o pomoc s IPv6 patchem

    29.12.2010 13:12 Thomas123 | skóre: 15
    Fail2ban - prosím o pomoc s IPv6 patchem
    Přečteno: 367×

    Dobrý den,

    začal jsem využívat program fail2ban nakonfigurovaný pro využívání iptables. Program je geniální, ovšem chybí mi podpora pro IPv6. Autoři se o tom nikde nezmiňují, ani jsem nasazení podpory pro ipv6 nenašel v žádném TODO listu ani roadmap, ...

    Rozhodl jsem se, že by nebylo špatné, kdybych si podporu pro IPv6 přidal. Ovšem Python neovládám a proto bych poprosil o radu i místní, věřím, že práce nebude zbytečná pro nikoho a že bych to nevyužil jen já.

    Prozkoumal jsem zdrojové kódy fail2ban 0.8.4 a zjednodušeně bych přidal podporu takto:

    V action.d jsou akce pro iptables (jinou podporu zatím neuvažujme) a vymyslel jsem to takto:

    actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP

    změnit na

    actionban = ip<ipv6>tables -I fail2ban-<name> 1 -s <ip> -j DROP

    A za <ipv6> bych dosazoval buď "6" (pokud bude <ip> typu IPv6) nebo "None" (pokud jsem to pochopil správně a je to ekvivalent pro PHP "null"). A takto by to bylo obdobně dál. Samozřejmě, že IPv6 by fungovalo jen při iptables.

    A nyní to důležité, prosím o pomoc s touto úpravou zde na abclinuxu, aby to mohl kdokoliv použít (výsledkem by mohl být nějaký patch nebo něco takového).

    Zatím jsem udělal jen toto:

    upravil jsem tyto "fce" v server/action.py:

    ##
    # Executes the action "ban" command.
    #
    # @return True if the command succeeded

    def execActionBan(self, aInfo):

    if re.match("\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b", aInfo["ip"]):
    aInfo["ipv6"] = None
    else:
    aInfo["ipv6"] = 6

    return self.__processCmd(self.__actionBan, aInfo)

    ##
    # Executes the action "unban" command.
    #
    # @return True if the command succeeded

    def execActionUnban(self, aInfo):

    if re.match("\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b", aInfo["ip"]):
    aInfo["ipv6"] = None
    else:
    aInfo["ipv6"] = 6

    return self.__processCmd(self.__actionUnban, aInfo)

    Předpokládám, že by to mělo fungovat, tak, jak jsem si myslel.

    TODO list:

    Dosazování <ipv6> za actioncheck
    Start ActionStart a stop ActionStop s ip6tables
    Z nějakéhodůvodu nebere fail2ban IPv6 adresy za <HOST> - opravit

    Přidáte se?

    Odpovědi

    29.12.2010 14:20 Thomas123 | skóre: 15
    Rozbalit Rozbalit vše Re: Fail2ban - prosím o pomoc s IPv6 patchem

    Takže se mé řešení asi ukazuje jako mírně složité. Dále nedoporučuji uvažovat nad nahrazováním <ipv6>, ale asi to provádět takto:

    ##
    # Executes the action "ban" command.
    #
    # @return True if the command succeeded

    def execActionBan(self, aInfo):

    actionBanCMD = self.__actionBan

    if not re.match("\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b", aInfo["ip"]):
    return self.__processCmd(actionBanCMD, aInfo)

    ##
    # Executes the action "unban" command.
    #
    # @return True if the command succeeded

    def execActionUnban(self, aInfo):

    actionUnbanCMD = self.__actionUnban

    if not re.match("\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b", aInfo["ip"]):
    actionUnbanCMD = actionUnbanCMD.replace('iptables ', 'ip6tables')

    return self.__processCmd(actionUnbanCMD, aInfo)

    ActionCheck, ActionStart a ActionStop se asi bude řešit přímo v __processCmd ve stejném souboru

    29.12.2010 14:27 Thomas123 | skóre: 15
    Rozbalit Rozbalit vše Re: Fail2ban - prosím o pomoc s IPv6 patchem

    Zkusil jsem upravit fci __processCMD takto:

    ##
    # Executes a command with preliminary checks and substitutions.
    #
    # Before executing any commands, executes the "check" command first
    # in order to check if prerequirements are met. If this check fails,
    # it tries to restore a sane environnement before executing the real
    # command.
    # Replaces "aInfo" and "cInfo" in the query too.
    #
    # @param cmd The command to execute
    # @param aInfo Dynamic properties
    # @return True if the command succeeded

    def __processCmd(self, cmd, aInfo = None):
    """ Executes an OS command.
    """
    if cmd == "":
    logSys.debug("Nothing to do")
    return True

    # IPv4
    checkCmd = Action.replaceTag(self.__actionCheck, self.__cInfo)
    if not Action.executeCmd(checkCmd):
    logSys.error("Invariant check failed. Trying to restore a sane" +
    " environment")
    stopCmd = Action.replaceTag(self.__actionStop, self.__cInfo)
    Action.executeCmd(stopCmd)
    startCmd = Action.replaceTag(self.__actionStart, self.__cInfo)
    Action.executeCmd(startCmd)
    if not Action.executeCmd(checkCmd):
    logSys.fatal("Unable to restore environment")
    return False

    # IPv6
    checkCmd = Action.replaceTag(self.__actionCheck, self.__cInfo)
    checkCmd = checkCmd.replace('iptables ', 'ip6tables')
    if not Action.executeCmd(checkCmd):
    logSys.error("Invariant check failed. Trying to restore a sane" +
    " environment")
    stopCmd = Action.replaceTag(self.__actionStop, self.__cInfo)
    stopCmd = stopCmd.replace('iptables ', 'ip6tables')
    Action.executeCmd(stopCmd)
    startCmd = Action.replaceTag(self.__actionStart, self.__cInfo)
    startCmd = startCmd.replace('iptables ', 'ip6tables')
    Action.executeCmd(startCmd)
    if not Action.executeCmd(checkCmd):
    logSys.fatal("Unable to restore environment")
    return False

    # Replace tags
    if not aInfo == None:
    realCmd = Action.replaceTag(cmd, aInfo)
    else:
    realCmd = cmd

    # Replace static fields
    realCmd = Action.replaceTag(realCmd, self.__cInfo)

    return Action.executeCmd(realCmd)

    Mrkněte se prosím na to, zda to tak může být, nebo zda byste to udělali jinak/lépe. Nic jiného mě nenapadlo.

    Momentálně zbývá hlavní část a to, jak naučit fail2ban rozpoznávat IPv6 adresy v regulárních výrazech, zatím to rozeznává pouze IPv4.

    29.12.2010 16:40 Thomas123 | skóre: 15
    Rozbalit Rozbalit vše Re: Fail2ban - prosím o pomoc s IPv6 patchem

    Prosím, podívejte se na to také, neříkejte mi, že jsem sám, komu by se to hodilo.

    Zatím jsem musel upravit soubor server/action.py takto:

    	##
    # Executes the action "start" command.
    #
    # Replaces the tags in the action command with value of "cInfo"
    # and executes the resulting command.
    #
    # @return True if the command succeeded

    def execActionStart(self):
    startCmd = Action.replaceTag(self.__actionStart, self.__cInfo)
    Action.executeCmd(startCmd)
    startCmd = startCmd.replace('iptables ', 'ip6tables ')
    return Action.executeCmd(startCmd)
    	##
    # Executes the action "ban" command.
    #
    # @return True if the command succeeded

    def execActionBan(self, aInfo):
    if not re.match("\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b", str(aInfo["ip"])):self.__actionBan = self.__actionBan.replace('iptables ', 'ip6tables ');return self.__processCmd(self.__actionBan, aInfo)
    else:return self.__processCmd(self.__actionBan, aInfo)
    	##
    # Executes the action "unban" command.
    #
    # @return True if the command succeeded

    def execActionUnban(self, aInfo):

    if not re.match("\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b", aInfo["ip"]):self.__actionUnban = self.__actionUnban.replace('iptables ', 'ip6tables ');return self.__processCmd(self.__actionUnban, aInfo)
    else:return self.__processCmd(self.__actionUnban, aInfo)
    	##
    # Executes the action "stop" command.
    #
    # Replaces the tags in the action command with value of "cInfo"
    # and executes the resulting command.
    #
    # @return True if the command succeeded

    def execActionStop(self):
    stopCmd = Action.replaceTag(self.__actionStop, self.__cInfo)
    Action.executeCmd(stopCmd)
    stopCmd = stopCmd.replace('iptables ', 'ip6tables ')
    return Action.executeCmd(stopCmd)

    V současné době to dělá následující:

    Při startu to přidá pravidlo do iptables a ip6tables. Při zastavení vše smaže. Při restartu oboje naráz.
    Momentálně to při zjištění změny a získání IP adresy k zabanování nepřidá pravidlo s IP adresou do žádného iptables.
    Dále je potřeba ověřit funkčnost autochecku
    Je nutné zprovoznit to, aby fail2ban bral z logu IPv6 adresy

    Chytrex avatar 29.12.2010 22:24 Chytrex | skóre: 30 | Bohumín
    Rozbalit Rozbalit vše Re: Fail2ban - prosím o pomoc s IPv6 patchem
    Já mám pocit že na to celé jdeš špatnou cestou..

    Ono stačilo přidat něco jako <HOST6> což by označovalo IPv6 adresu a match s tímhle přeposlat ip6tables. (pak jen zduplikovat všecky pravidla aby byly i s <HOST6>) Ale pomoct ti s tím asi nepomůžu. nepoužívám ipv6, IMO je utopie aby to (ipv6) fungovalo všeobecně ve stejné kvalitě jako ipv4.
    Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.