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 12:33 | Nová verze

    Byla vydána nová verze 5.12 svobodného multiplatformního softwaru pro konverzi a zpracování digitálních fotografií primárně ve formátů RAW RawTherapee (Wikipedie). Vedle zdrojových kódů je k dispozici také balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.

    Ladislav Hagara | Komentářů: 0
    včera 19:33 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za květen (YouTube).

    Ladislav Hagara | Komentářů: 0
    včera 12:11 | Bezpečnostní upozornění

    Byly publikovány informace (txt) o zranitelnostech CVE-2025-5054 v Apport a CVE-2025-4598 v systemd-coredump. Lokální uživatel se může dostat k výpisu paměti programu (core dump) s SUID a přečíst si tak například /etc/shadow.

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

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu aktuálně činí 2,69 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 30,95 %. Procesor AMD používá 68,77 % hráčů na Linuxu.

    Ladislav Hagara | Komentářů: 3
    1.6. 23:22 | Nová verze

    Byla vydána verze 4.0 open source programu na kreslení grafů Veusz (Wikipedie). Přehled novinek v poznámkách k vydání. Proběhla portace na Qt 6.

    Ladislav Hagara | Komentářů: 0
    1.6. 11:44 | Nová verze

    Dibuja je jednoduchý kreslící program inspirovaný programy Paintbrush pro macOS a Malování pro Windows. Vydána byla verze 0.26.0.

    Ladislav Hagara | Komentářů: 1
    31.5. 23:33 | Nová verze

    Byla vydána nová verze 9.13 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    31.5. 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    31.5. 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.22.0, tj. první z nové řady 3.22, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    30.5. 00:33 | IT novinky

    FEL ČVUT vyvinula robotickou stavebnici pro mladé programátory. Stavebnice Brian byla navržená speciálně pro potřeby populární Robosoutěže. Jde ale také o samostatný produkt, který si může koupit každý fanoušek robotiky a programování od 10 let, ideální je i pro střední školy jako výuková pomůcka. Jádro stavebnice tvoří programovatelná řídicí jednotka, kterou vyvinul tým z FEL ČVUT ve spolupráci s průmyslovými partnery. Stavebnici

    … více »
    Ladislav Hagara | Komentářů: 67
    Jaký je váš oblíbený skriptovací jazyk?
     (55%)
     (32%)
     (7%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 188 hlasů
     Komentářů: 14, poslední včera 08:30
    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: 353×

    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.