<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Netz - Rettung - Recht (Artikel mit Tag irc)</title>
    <link>https://netz-rettung-recht.de/</link>
    <description>Bloggen seit Juni 2003</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 2.5.0 - http://www.s9y.org/</generator>
    <pubDate>Sun, 08 Aug 2021 06:49:29 GMT</pubDate>

    <image>
    <url>https://netz-rettung-recht.de/templates/2k11/img/s9y_banner_small.png</url>
    <title>RSS: Netz - Rettung - Recht - Bloggen seit Juni 2003</title>
    <link>https://netz-rettung-recht.de/</link>
    <width>100</width>
    <height>21</height>
</image>

<item>
    <title>irc.szaf.org</title>
    <link>https://netz-rettung-recht.de/archives/2303-irc.szaf.org.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/2303-irc.szaf.org.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=2303</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=2303</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Webserver sind ja nichts Besonderes, meinen eigenen Mailserver betreibe ich seit 2002, und einen &amp;#8220;richtigen&amp;#8221; Newsserver, der nicht nur ein paar lokale Gruppen führt, ebenfalls seit 2005 - und SSH samt SCP und Co. und ggf. FTP sind ja eh dabei. Was fehlt also noch in der Liste der &amp;#8220;klassischen&amp;#8221; Dienste? Richtig - derjenige, mit dem ich als letztes warm geworden bin und den ich am wenigsten nutze: IRC, der &amp;#8220;Internet Relay Chat&amp;#8221;.&lt;/p&gt;

&lt;p&gt;Nach dem unerwarteten Tod eines &lt;a href=&quot;https://cord.de/files/Public/sven/&quot; title=&quot;&quot;&gt;Freundes&lt;/a&gt; an Ostern 2020 musste sich die Gemeinschaft der &lt;a href=&quot;https://szaf.org/&quot; title=&quot;szaf.org - Home, szweet home&quot;&gt;Szafe&lt;/a&gt; auch eine neue Lösung für die bislang mitgenutzten IRC-Server einfallen lassen, so dass in der Folge selbst ein Netzwerk aufgesetzt wurde - und da wollte ich auch gerne dabei sein und meinen eigenen Server aufsetzen und einbinden.&lt;/p&gt;

&lt;h3 id=&quot;installation-und-erstkonfiguration&quot;&gt;Installation und Erstkonfiguration&lt;/h3&gt;

&lt;p&gt;Ich befürchtete schon, das werde sicherlich ganz furchtbar kompliziert, aber dem war angenehmerweise nicht so. Die Software-Wahl war auf den &lt;a href=&quot;https://ngircd.barton.de/&quot; title=&quot;ngIRCd: Free, portable and lightweight Internet Relay Chat server&quot;&gt;&lt;em&gt;ngircd&lt;/em&gt;&lt;/a&gt; gefallen, den &amp;#8220;next-generation IRC daemon&amp;#8221;, und der ist in Debian verfügbar: &lt;code&gt;apt install ngircd&lt;/code&gt; reicht also aus, und dann muss nur noch ein wenig an der Konfiguration in &lt;code&gt;/etc/ngircd/ngircd.conf&lt;/code&gt; geschraubt werden:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;    Name = irc.szaf.org

    AdminInfo1 = (Info zum Administrator, Zeile 1)
    AdminInfo2 = (Info zum Administrator, Zeile 2)
    AdminEMail = (Mailadresse des Administrators)

    Info = Szeep on IRC
    ;MotdPhrase = &quot;irc.szaf.org SzafNet IRC Server. Ready. Bleat ahead.&quot;

    Network = szafnet

    Password = Swordfish

[Limits]
    MaxJoins = 20
    MaxNickLength = 25
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Wenn man will, kann man auch noch die Zugangsdaten für einen IRC-Operator hinterlegen:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[Operator]
    Name = thh
    Password = pass123
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&quot;tls&quot;&gt;TLS&lt;/h3&gt;

&lt;p&gt;Dazu dann noch eine &lt;a href=&quot;https://irc.szaf.org/&quot; title=&quot;irc.szaf.org&quot;&gt;Webseite&lt;/a&gt;, über die es ein Zertifikat von &lt;em&gt;Let&amp;#8217;s encrypt&lt;/em&gt; gibt, das man dann auch dem IRC-Server verfüttern kann; die &lt;a href=&quot;https://netz-rettung-recht.de/archives/1943-letsencrypt-jenseits-des-Webservers.html&quot; title=&quot;&quot;&gt;grundsätzliche Vorgehensweise&lt;/a&gt; hatte ich ja bereits vor knapp fünf Jahren beschrieben.&lt;/p&gt;

&lt;p&gt;Erstmal das Zertifikat einkopieren &amp;#8230;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;mkdir /etc/ngircd/certs/
cp /etc/letsencrypt/live/irc.szaf.org/fullchain.pem /etc/ngircd/certs/
cp /etc/letsencrypt/live/irc.szaf.org/privkey.pem /etc/ngircd/certs/
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&amp;#8230; und in der Konfiguration (&lt;code&gt;/etc/ngircd/ngircd.conf&lt;/code&gt;) einrichten:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[SSL]
    # SSL-related configuration options.
    CertFile = /etc/ngircd/certs/fullchain.pem
    KeyFile = /etc/ngircd/certs/privkey.pem
    Ports = 6697
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Nach &lt;code&gt;service ngircd restart&lt;/code&gt; sind wir dann im Geschäft.&lt;/p&gt;

&lt;p&gt;Das ganze lässt sich auch automatisieren - ich baue mir ein kurzes Shellscript, bspw. &lt;code&gt;/etc/ngircd/certbot-deploy-certs.sh&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/bin/dash
cp /etc/letsencrypt/live/irc.szaf.org/fullchain.pem /etc/ngircd/certs/
cp /etc/letsencrypt/live/irc.szaf.org/privkey.pem /etc/ngircd/certs/
/usr/sbin/service ngircd reload
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;und mache es ausführbar (&lt;code&gt;chmod 755 /etc/ngircd/certbot-deploy-certs.sh&lt;/code&gt;) und setze einen entsprechenden Cronjob &lt;strong&gt;vor&lt;/strong&gt; denjenigen, der alle abgelaufenen Zertifikate rundum erneuert.&lt;/p&gt;

&lt;p&gt;Ein kleines Manko hat die ganze Sache noch: leider kann erst der &lt;em&gt;ngIRCd 26~rc1&lt;/em&gt; ein TLS-Zertifikat im laufenden Betrieb nachladen, wenn er mit GnuTLS arbeitet, wie das bei Debian der Fall ist; in früheren Versionen geht das nur bei OpsenSSL. Leider hat &lt;em&gt;Debian Stretch&lt;/em&gt; nur die Version 24-1, und auch das aktuelle &lt;em&gt;Debian Buster&lt;/em&gt; nur die Version 25-2. Das Script funktioniert also bisher nicht; zwar wird das neue Zertifikat einkopiert, aber der Server verarbeitet es nicht. Dafür wäre ein &lt;code&gt;service ngircd restart&lt;/code&gt; notwendig - der aber die Verbindung zu allen Clients und allen verbundenen Servern trennt. Bislang habe ich daher einen alle drei Monate wiederholten Eintrag in meinem Todo-System, um nach dem Zertifikat zu schauen und ggf. den Server manuell zu starten. Mit dem künftigen &lt;em&gt;Debian Bullseye&lt;/em&gt; sollte das dann ein Ende haben.&lt;/p&gt;

&lt;h3 id=&quot;vernetzung-mit-anderen-irc-servern&quot;&gt;Vernetzung mit anderen IRC-Servern&lt;/h3&gt;

&lt;p&gt;Alleine chatten ist nett, ein IRC-Netzwerk aufzubauen noch netter. Zu diesem Zweck muss man dem &lt;em&gt;ngircd&lt;/em&gt; nur verklicken, welche anderen Server &amp;#8220;dazugehören&amp;#8221;, und mit denen ein Passwort vereinbaren. Jeder Serverbetreiber notiert dann das eigene Passwort und das der Gegenstelle in der Konfiguration, und schon vernetzen sich die Server - jeder allerdings immer nur mit einem anderen, die Topologie bildet also Linien, keine Sterne. Wenn aber ein Server aus dem Netz fällt, bspw. weil er restartet wird, verbinden sich die verbleibenden Server neu, bis sie alle wieder miteinander verbunden sind.&lt;/p&gt;

&lt;p&gt;Eine solche Konfiguration kann dann bspw. so aussehen:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;[Server]
    Name = irc.anderer-server.example
    Host = irc.anderer-server.example
    Port = 6697
    MyPassword = OhmyOhmyOhmy
    PeerPassword = Ramalamadingdong
    Group = 1
    Passive = no
    SSLConnect = yes
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Das weist diesen Server der Gruppe 1 zu (wenn ein Server innerhalb einer Gruppe nicht verfügbar ist, wird ein anderer ausprobiert), lässt automatische Verbindungen zu und verlangt dafür SSL/TLS. Die Gegenstelle (&lt;code&gt;irc.anderer-server.example&lt;/code&gt;) muss natürlich die Werte für &lt;code&gt;MyPassword&lt;/code&gt; und &lt;code&gt;PeerPassword&lt;/code&gt; vertauschen.&lt;/p&gt;

&lt;p&gt;Server neu starten, et voilà: das IRC-Netzwerk steht. Das war einfach - und tut seit April 2020 sehr zuverlässig.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Titelbild © AliFuat - stock.adobe.com&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[Nachträglich veröffentlicht im August 2021.]&lt;/em&gt;&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/12979f8f36fa4bc6967c75f6fa734934&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Thu, 11 Feb 2021 06:20:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/2303-guid.html</guid>
    <category>anleitung</category>
<category>irc</category>

</item>
<item>
    <title>Strange things are happening</title>
    <link>https://netz-rettung-recht.de/archives/1908-Strange-things-are-happening.html</link>
            <category>Bits'n'Bytes</category>
    
    <comments>https://netz-rettung-recht.de/archives/1908-Strange-things-are-happening.html#comments</comments>
    <wfw:comment>https://netz-rettung-recht.de/wfwcomment.php?cid=1908</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>https://netz-rettung-recht.de/rss.php?version=2.0&amp;type=comments&amp;cid=1908</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Hochstein)</author>
    <content:encoded>
    &lt;p&gt;Nach über einem Jahrzehnt habe ich dieser Tage mal wieder einen &lt;em&gt;&lt;a href=&quot;http://www.eggheads.org/&quot; title=&quot;&quot;&gt;Eggdrop&lt;/a&gt;&lt;/em&gt; installiert und konfiguriert - einen &lt;em&gt;IRC&lt;/em&gt;-Bot, für diejenigen, denen letzteres mehr sagt als ersteres. Das ist ganz praktisch, denn u.a. loggt der Bot einen Channel mit, so dass sich aus dem Log ebenso lustige wie unsinnige bunte Statistiken erzeugen lassen, und zum anderen kann er mir morgens das Logfile des letzten Tages mailen, damit ich nichts wichtiges verpasse: &lt;a href=&quot;https://de.wikipedia.org/wiki/Fomo&quot; title=&quot;&quot;&gt;FOMO&lt;/a&gt; at its best. (Wobei ich gestehen muss, seit Jahren nicht mehr in die Mails hineingeschaut zu haben, aber nun gut.)&lt;/p&gt;

&lt;p&gt;Eigentlich ist das gar nicht so schwer: es gibt ein Debian-Paket, die Konfiguration ist weitgehend selbsterklärend und lässt sich ansonsten aus der alten Installation ableiten, einige wenige Scripts samt gesammelter Daten und Konfiguration lassen sich umkopieren &amp;#8230; und dann sollte alles tun.&lt;/p&gt;

&lt;p&gt;Heute morgen &lt;em&gt;habe&lt;/em&gt; ich dann einmal in die Mail mit dem gestrigen Channel-Log geschaut und festgestellt, dass der Bot irgendwann aufgehört hat, den Chat zu loggen. Ereignisse (&lt;code&gt;/join&lt;/code&gt; und &lt;code&gt;/leave&lt;/code&gt;) sind da, Actions (&lt;code&gt;/me&lt;/code&gt;) auch, aber der eigentliche Chat nicht. Höchst seltsam, nachdem der Bot bereits einige Tage lang - und bis gestern nachmittag - ordnungsgemäß funktioniert hat. Es muss also irgendetwas mit den gestrigen Modifikationen zu tun gehabt haben. Nur was?&lt;/p&gt;

&lt;p&gt;Die Ursachensuche, für die ich auf Google angewiesen bin - nein, &lt;a href=&quot;https://de.wikipedia.org/wiki/Tcl&quot; title=&quot;&quot;&gt;Tcl&lt;/a&gt; spreche ich nicht -, wird nicht gerade dadurch erleichtert, dass offenbar die DNS-Einträge für &lt;em&gt;egghelp.org&lt;/em&gt; aus dem Netz gefallen sind: die zuständigen Nameserver, die sich aus dem &lt;em&gt;whois&lt;/em&gt;-Eintrag ableiten lassen, haben sie noch, aber offenbar fehlen in der &lt;em&gt;.org&lt;/em&gt;-Zone die Einträge für die Nameserver. So muss also der Google-Cache herhalten. (Oder man hilft dem System durch einen passenden Eintrag in die &lt;code&gt;/etc/hosts&lt;/code&gt; bzw. &lt;code&gt;C:\Windows\System32\drivers\etc\hosts&lt;/code&gt; auf die Sprünge, aber ich schweife ab.)&lt;/p&gt;

&lt;p&gt;Jedenfalls ist die &lt;a href=&quot;http://forum.egghelp.org/viewtopic.php?t=12824&quot; title=&quot;&quot;&gt;Lösung&lt;/a&gt; dann eine der Art, auf die man sicherlich nie von alleine gekommen wäre:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;There is a known &amp;#8220;issue&amp;#8221; with pubm-bindings in eggdrop1.6.18; If the command invoked returns 1 (TCL_OK), eggdrop will not log the message that triggered the binding.&lt;br /&gt;
  I would suspect this to be the reason why your bot does not log public chat, that is, there seems to be a script running on your system with a pubm-binding that blocks public chat from being logged on that channel.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;10 Jahre alt ist der Foreneintrag, aber offenbar immer noch stimmig (auch für &lt;code&gt;eggdrop 1.6.21&lt;/code&gt;). Es läuft nämlich tatsächlich seit gestern nachmittag ein Script, das (u.a.) per &lt;code&gt;bind pubm&lt;/code&gt; &amp;#8220;public chat&amp;#8221; in eine Funktion umleitet (um nämlich zu zählen, wer wieviel sagt - für sinnlose Statistiken, ich erwähnte es schon). Und diese Funktion hat keinen Rückgabewert, was offenbar einem impliziten &lt;code&gt;return 1&lt;/code&gt; entspricht.&lt;/p&gt;

&lt;p&gt;Also habe ich versuchsweise ein &lt;code&gt;return 0&lt;/code&gt; am Ende der Funktion eingefügt und den Bot neu gestartet - alles paletti.&lt;/p&gt;

&lt;p&gt;Computer sind seltsame Wesen.&lt;/p&gt;
&lt;img src=&quot;https://ssl-vg03.met.vgwort.de/na/47307c38bc6e4e93ac0a09075838baf0&quot; width=&quot;1&quot; height=&quot;1&quot; alt=&quot;&quot;&gt; 
    </content:encoded>

    <pubDate>Sun, 24 Apr 2016 09:00:00 +0000</pubDate>
    <guid isPermaLink="false">https://netz-rettung-recht.de/archives/1908-guid.html</guid>
    <category>eggdrop</category>
<category>irc</category>

</item>

</channel>
</rss>
