<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.uugrn.org/index.php?action=history&amp;feed=atom&amp;title=UUGRN%3ADienste%2FRobot</id>
	<title>UUGRN:Dienste/Robot - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.uugrn.org/index.php?action=history&amp;feed=atom&amp;title=UUGRN%3ADienste%2FRobot"/>
	<link rel="alternate" type="text/html" href="https://wiki.uugrn.org/index.php?title=UUGRN:Dienste/Robot&amp;action=history"/>
	<updated>2026-04-24T07:09:48Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in UUGRN</subtitle>
	<generator>MediaWiki 1.42.5</generator>
	<entry>
		<id>https://wiki.uugrn.org/index.php?title=UUGRN:Dienste/Robot&amp;diff=12039&amp;oldid=prev</id>
		<title>Rabe: robot!</title>
		<link rel="alternate" type="text/html" href="https://wiki.uugrn.org/index.php?title=UUGRN:Dienste/Robot&amp;diff=12039&amp;oldid=prev"/>
		<updated>2013-10-20T17:08:35Z</updated>

		<summary type="html">&lt;p&gt;robot!&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 20. Oktober 2013, 17:08 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l63&quot;&gt;Zeile 63:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 63:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[UUGRN:LDAP]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[UUGRN:LDAP]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[UUGRN:Benutzerverwaltung]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[UUGRN:Benutzerverwaltung]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[UUGRN:Robot]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[UUGRN:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Dienste/&lt;/ins&gt;Robot]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:UUGRN:Dienst]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Kategorie:UUGRN:Dienst]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rabe</name></author>
	</entry>
	<entry>
		<id>https://wiki.uugrn.org/index.php?title=UUGRN:Dienste/Robot&amp;diff=12033&amp;oldid=prev</id>
		<title>Rabe: Rabe verschob Seite UUGRN:Robot nach UUGRN:Dienste/Robot: in Dienste</title>
		<link rel="alternate" type="text/html" href="https://wiki.uugrn.org/index.php?title=UUGRN:Dienste/Robot&amp;diff=12033&amp;oldid=prev"/>
		<updated>2013-10-20T16:41:34Z</updated>

		<summary type="html">&lt;p&gt;Rabe verschob Seite &lt;a href=&quot;/UUGRN:Robot&quot; class=&quot;mw-redirect&quot; title=&quot;UUGRN:Robot&quot;&gt;UUGRN:Robot&lt;/a&gt; nach &lt;a href=&quot;/UUGRN:Dienste/Robot&quot; title=&quot;UUGRN:Dienste/Robot&quot;&gt;UUGRN:Dienste/Robot&lt;/a&gt;: in Dienste&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 20. Oktober 2013, 16:41 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;de&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(kein Unterschied)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Rabe</name></author>
	</entry>
	<entry>
		<id>https://wiki.uugrn.org/index.php?title=UUGRN:Dienste/Robot&amp;diff=12031&amp;oldid=prev</id>
		<title>Rabe: Ein sehr sehr grober Entwurf und Braindump.</title>
		<link rel="alternate" type="text/html" href="https://wiki.uugrn.org/index.php?title=UUGRN:Dienste/Robot&amp;diff=12031&amp;oldid=prev"/>
		<updated>2013-09-17T00:51:34Z</updated>

		<summary type="html">&lt;p&gt;Ein sehr sehr grober Entwurf und Braindump.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;UUGRN Robot&amp;#039;&amp;#039;&amp;#039; dient der kryptografisch gesicherten Automation des User-, Service und Servermanagements.&lt;br /&gt;
{{Navigationsleiste Dienste}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
== Idee ==&lt;br /&gt;
Im Jail {{uugrn.uugrn.org}} existiert ein Unix-Account namens &amp;quot;robot&amp;quot;. Dieser ist extern per E-Mail ansprechbar unter &amp;#039;&amp;#039;robot@uugrn.org&amp;#039;&amp;#039;. &lt;br /&gt;
Weiterhin existiert ein Apache-VirtualHost für https://robot.uugrn.org/&lt;br /&gt;
&lt;br /&gt;
Dieser Robot soll privilegierte Tasks im Auftrag von bekannten Benutzern ausführen.&lt;br /&gt;
&lt;br /&gt;
== Tasks ==&lt;br /&gt;
Neben der Autentifizerung von bekannten Benutzern soll der Robot im Auftrag der Benutzer privilegierte Aufgaben wahrnehmen können, zum Beispiel&lt;br /&gt;
* Zurücksetzen von Passwörtern (Login, E-Mail, … )&lt;br /&gt;
* Ändern von SSH-Keys oder authorized_keys auf {{jail|name=uug_shell}}&lt;br /&gt;
* SSL-Clientzertifikate verwalten&lt;br /&gt;
* Mailrouting ändern&lt;br /&gt;
* Mitglieder-Stammdaten ändern&lt;br /&gt;
* Jails managen (Neustart, root-ssh, … )&lt;br /&gt;
* …&lt;br /&gt;
&lt;br /&gt;
== Kommunikation mit dem Robot ==&lt;br /&gt;
=== E-Mail mit PGP ===&lt;br /&gt;
Der Robot kommuniziert per E-Mail nur und ausschließlich mit PGP Verschlüsselung. Dabei wird nur und ausschließlich mit E-Mailadressen kommuniziert, für die das lokale GnuPG einen Public-Key enthält, dem auch vertraut wird. Eingehende E-Mails von unbekannten Absendern, unverschlüsselte E-Mails oder verschlüsselte E-Mails mit unbekannten Signaturen werden kommentarlos verworfen, es gibt keine Fehlermeldungen vom Robot, wenn der Absender in irgendeiner Weise nicht erkannt wird.&lt;br /&gt;
&lt;br /&gt;
Jeder Task, der via robot@uugrn.org ausgeführt wird, muss innerhalb einer bekannten Session stattfinden. Die einzige Ausnahme sind einfache Kommandos wie &lt;br /&gt;
;HELP: Robot antwortet mit einer Anleitung (sofern der Absender per GnuPG bekannt ist)&lt;br /&gt;
;LOGIN: Robot generiert eine zufällige Session-ID in Form einer SHA512 Checksumme über zufällige, variable und statische Werte (bisschen entropi, timestamp, public-key des users) generiert in einer lokalen Datenbank (zB sqlite3) eine Session mit dieser ID. Bestandteil der Session sind neben der Session-ID auch der authentifizierte Benutzer, außerdem ein Zufälliger Benutzername und ein zufälliges Einmal-Passwort, der im Rahmen dieser Session für das Webinterface genutzt werden kann. Der Robot antwortet dem Benutzer per E-Mail mit der Session-ID, Meta-Daten (zB Expire-Date) und dem zufälligen Einmal-Passwort für das Webinterface oder Webservice.&lt;br /&gt;
&lt;br /&gt;
Alle weiteren Kommandos per E-Mail erfordern zur Authentifizierung das für die Session generierte SHA512-Token.&lt;br /&gt;
&lt;br /&gt;
Das Webinterface kann während die Session aktiv ist mit dem Einmal-Passwort benutzt werden. &lt;br /&gt;
&lt;br /&gt;
Eine Session kann explizit oder automatisch verlängert werden, beispielsweise durch ein Kommando (SET TIMEOUT=...) oder auf einen Timeout von 30min nach der letzten Interaktion (zB PING/PONG)&lt;br /&gt;
&lt;br /&gt;
Alle Aktionen innerhalb einer Robot-Session werden in einem Audit-Trail aufgezeichnet, sodass Aktionen nachvollziehbar gemacht werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Web-Interface ===&lt;br /&gt;
Das Web-Interace ist nur per HTTPS ansprechbar und wird mit den Einmal-Accounts aus einer &amp;#039;&amp;#039;&amp;#039;gültigen&amp;#039;&amp;#039;&amp;#039; Robot-Session authentifiziert.&lt;br /&gt;
&lt;br /&gt;
== Daten innerhalb einer Session ==&lt;br /&gt;
* id integer&lt;br /&gt;
* s_token char(64)&lt;br /&gt;
* s_start datetime&lt;br /&gt;
* s_timeout datetime&lt;br /&gt;
* user_id int&lt;br /&gt;
* user_mailaddr varchar&lt;br /&gt;
* user_pgp_key char(40)&lt;br /&gt;
* ws_user char(16)&lt;br /&gt;
* ws_pass char(16)&lt;br /&gt;
* …&lt;br /&gt;
&lt;br /&gt;
Anhand einer Zuordnungstabelle aus E-Mailadressen zu Benutzer-IDs kann über den erfolgreichen LOGIN per E-Mail ein intern verwalteter Benutzer zugeordnet werden. Ein Benutzer kann dabei mehrere verschiedene E-Mailadressen verwenden. &lt;br /&gt;
&lt;br /&gt;
Die für eine Session authentifizierte user_id wird dann innerhalb einer Session für die Authorisierung verschiedener Methoden verwendet, etwa zur Anzeige oder Pflege von Benutzer-Stammdaten über das Webinterface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Robot-Verwaltung ==&lt;br /&gt;
Die Verwaltung des Robots ist Benutzern möglich, die das Recht haben ein &amp;quot;sudo su - robot&amp;quot; im Jail {{uugrn.uugrn.org}} durchzuführen. Das sind der jeweils amtierende Vorstand sowie lokale Admins. In der Aufbauphase wird der Robot entwickelt und betreut von [[Benutzer:Rabe|Raphael Eiselstein]] &amp;lt;sup&amp;gt;&amp;lt;small&amp;gt;[[Benutzer Diskussion:Rabe|talk]]&amp;lt;/small&amp;gt;&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* {{uugrn.uugrn.org}}&lt;br /&gt;
* [[UUGRN:LDAP]]&lt;br /&gt;
* [[UUGRN:Benutzerverwaltung]]&lt;br /&gt;
* [[UUGRN:Robot]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:UUGRN:Dienst]]&lt;/div&gt;</summary>
		<author><name>Rabe</name></author>
	</entry>
</feed>