{"id":644,"date":"2011-10-20T20:53:22","date_gmt":"2011-10-20T19:53:22","guid":{"rendered":"http:\/\/blog.imagmbh.de\/?p=644"},"modified":"2019-04-19T14:06:54","modified_gmt":"2019-04-19T13:06:54","slug":"ssh-und-sftp-service-fur-windows-copssh-und-die-installationsfallen","status":"publish","type":"post","link":"https:\/\/blog.imagmbh.de\/index.php\/ssh-und-sftp-service-fur-windows-copssh-und-die-installationsfallen\/","title":{"rendered":"SSH- und SFTP-Service f\u00fcr Windows: COPSSH und die Installationsfallen"},"content":{"rendered":"<p>Die Aufgabenstellung war einfach: Es sollten m\u00f6glichst einfach Daten von mehreren iPads in Verzeichnisse auf einem Windows-Server \u00fcbertragen werden. Auf Grund der Einfachheit in der Bedienung fiel auf iPad-Seite die Wahl auf ein SFTP-Programm und damit auf das SFTP-Protokoll. Es musste also nun ein SFTP-Server f\u00fcr Windows gefunden werden.<\/p>\n<p>Nun ist die Auswahl von SFTP-Servern unter Windows sehr klein. Die <a title=\"SFTP-Server\" href=\"http:\/\/en.wikipedia.org\/wiki\/List_of_SFTP_server_software\" rel=\"nofollow\">englische Wikipedia<\/a> z\u00e4hlt 5 OpenSource und 3 Freeware-SFTP-Server auf. Da der SFTP-Server als Dienst laufen und noch in aktiver Entwicklung sein soll und ferner f\u00fcr beliebig viele Nutzer frei verf\u00fcgbar sein soll, bleibt nur <a title=\"COPSSH\" href=\"http:\/\/www.itefix.no\/i2\/copssh\" rel=\"nofollow\">COPSSH<\/a> als Server \u00fcbrig.<\/p>\n<p>Die Installation lief einfach und problemlos durch &#8211; aber:<\/p>\n<ul>\n<li>Der Server, auf dem das SFTP-Service laufen soll, ist Terminalserver und Dom\u00e4nencontroller.<\/li>\n<li>Die Benutzernamen enthalten Leerzeichen.<\/li>\n<\/ul>\n<p>Das bei COPSSH mitgegebene Administrationsprogramm ist f\u00fcr die Verwaltung der Konfiguration nicht sinnvoll: Es wird vom Entwickler f\u00fcr komplexe Konfigurationen nicht empfohlen und in der Tat, seine F\u00e4higkeiten sind hierf\u00fcr nicht ausreichend. Vielmehr sollte das Programm nicht genutzt werden, da es eine eigene Konfigurationsdatei schreibt und die Standardkonfigurationsdateien des Dienstes \u00fcberschreibt.<\/p>\n<p>Der Dienst hat eine gute Funktion: Es ist keine komplett eigene Benutzerverwaltung notwendig, vielmehr greift der Dienst f\u00fcr die Passwortabfrage auf das Active-Directory zu. Auf diese Weise m\u00fcssen Benutzer bei Passwort\u00e4nderungen kein weiteres Passwort verwalten. Die Passwort-Datei des SSH-Dienstes, passwd im Verzeichnis etc, ist somit eine Mapping-Datei, die die Anmeldenamen am Dienst der Windows-SSID des Active-Directory zuordnet.<\/p>\n<p>Nun tritt jedoch die oben geschilderte Problematik der von uns betreuten Installation zu Tage: Die Benutzernamen enthalten Leerzeichen, diese sind somit f\u00fcr die SSH- oder SFTP-Anmeldung nicht geeignet. Da die Benutzerwaltung jedoch, wie oben beschrieben, auf dem Active-Directory beruht, k\u00f6nnen keine vom AD getrennten Benutzer angelegt werden. Durch das erw\u00e4hnte Mapping k\u00f6nnen jedoch beliebige SSH-\/SFTP-Anmeldenamen gew\u00e4hlt werden. Leider ist der Aufbau der Konfigurationsdateien nicht dokumentiert, dies soll nun hier etwas nachgeholt werden.<\/p>\n<ul>\n<li>Zuerst wird die SSIDs der Benutzer ben\u00f6tigt, die Zugriff auf das System erhalten sollen. Diese SSIDs k\u00f6nnen z.B. mit dem Programm psgetsid aus der Sysinternals-Suite ermittelt werden.<\/li>\n<li>Die Zeilen der passwd-Datei sind dann wie folgt aufgebaut:<\/li>\n<\/ul>\n<pre>(1):(2):(3):(4):(5),(6)\\(7),(8):(9):(10)<\/pre>\n<blockquote>\n<ul>\n<li style=\"padding-left: 30px;\"> 1: Unix-Benutzername, also der Name der beim Unix-Login angegeben wird<\/li>\n<li style=\"padding-left: 30px;\"> 2: Text \u201eunused\u201c, Bedeutung ist nicht bekannt<\/li>\n<li style=\"padding-left: 30px;\"> 3: fortlaufende Unix-Benutzer-ID<\/li>\n<li style=\"padding-left: 30px;\"> 4: Gruppen-ID des Benutzers. Diese ID muss in der Datei \u201egroup\u201c definiert sein, sonst ist keine Anmeldung m\u00f6glich<\/li>\n<li style=\"padding-left: 30px;\"> 5: entspricht dem Unix-Anmeldenamen, dieser Eintrag scheint aber nicht ausgewertet zu werden<\/li>\n<li style=\"padding-left: 30px;\"> 6: Aufbau ist U-Dom\u00e4nennamen, dieser Eintrag scheint aber nicht ausgewertet zu werden<\/li>\n<li style=\"padding-left: 30px;\"> 7: entspricht dem Unix-Anmeldenamen, dieser Eintrag scheint aber nicht ausgewertet zu werden<\/li>\n<li style=\"padding-left: 30px;\"> 8: Windows-SSID des Windows-Benutzers. Mit diesem Benutzer  wird auf Windows-Seite gearbeitet und dessen Passwort wird auch genommen  und dieser Benutzer wird f\u00fcr die realen Zugriffsrechte genutzt.<\/li>\n<li style=\"padding-left: 30px;\"> 9: Home-Verzeichnis des Unix-Benutzers, das Mapping erfolgt \u00fcber die fstab-Datei<\/li>\n<li style=\"padding-left: 30px;\"> 10: Shell des Benutzers<\/li>\n<\/ul>\n<\/blockquote>\n<ul>\n<li>Soll ein Benutzer das System nutzen k\u00f6nnen, ist der Shell-Eintrag auf \/bin\/bash zu setzen, andernfalls auf \/bin\/false<\/li>\n<li>Die Group-Datei etc\\group ist wie folgt aufgebaut:<\/li>\n<\/ul>\n<blockquote>\n<pre>Anzeigename:Windows-SSID:Unix-ID:<\/pre>\n<\/blockquote>\n<ul>\n<li>Die Fstab-Datei, die die Windows-Verzeichnisse den Unix-Konventionen zuordnet, ist etc\\fstab und stringent aufgebaut; sie kann einfach erweitert werden.<\/li>\n<li>In der SSHD-Konfigurationsdatei, etc\\ssd_config, ist schlie\u00dflich definiert, ob die einzelnen Benutzer sich mit Passwort und \/ oder mit Key anmelden k\u00f6nnen, wieviele Sessions erlaubt sind etc. Der Kopfbereich lautet<\/li>\n<\/ul>\n<blockquote>\n<pre>Port 22\r\nCompression delayed\r\nLogLevel INFO\r\nTCPKeepAlive yes\r\nLoginGraceTime 120\r\nProtocol 2\r\nMaxAuthTries 6\r\nMaxSessions 10\r\nSubsystem sftp internal-sftp -l ERROR<\/pre>\n<\/blockquote>\n<ul>\n<li>die einzelnen Benutzer werden wie folgt eingetragen<\/li>\n<\/ul>\n<blockquote>\n<pre>Match User benutzername\r\n\tPasswordAuthentication   yes\r\n\tPubkeyAuthentication   yes\r\n\tAllowTcpForwarding   yes\r\n\tMaxSessions 10<\/pre>\n<\/blockquote>\n<ul>\n<li>bei &#8222;Benuzername&#8220; k\u00f6nnen Wildcards angegeben werden.<\/li>\n<li>Wird eine Zeile &#8222;\ufeffForceCommand \/cygdrive\/c\/windows\/system32\/cmd.exe&#8220; eingef\u00fcgt, so wird beim Anmelden die Windows-Konsole gestartet.<\/li>\n<li>Beim Parameter &#8222;internal-sftp&#8220; wird nur SFTP zugelassen.<\/li>\n<li>Beim Parameter &#8222;\/bin\/bash &#8211;login -i&#8220; wird eine Linux-Shell gestartet<\/li>\n<li>Beim Parameter &#8222;\/bin\/false&#8220; ist kein Login und kein SFTP m\u00f6glich.<\/li>\n<li>Ist die Zeile nicht vorhanden, kann SFTP und die Linux-Shell benutzt werden.<\/li>\n<li>Es k\u00f6nnen auch andere Programme an Stelle von &#8222;cmd.exe&#8220; eingetragen werden, die dann beim Login gestartet werden.<\/li>\n<li>Soll ein Benutzer nicht nur SFTP nutzen k\u00f6nnen, sondern auch einen Shell-Login erhalten, so muss er das Recht bekommen, sich auf dem Rechner anmelden zu k\u00f6nnen. Hierzu ist die lokale Gruppenrichtlinie anzupassen und das Recht &#8222;Lokales Anmelden zulassen&#8220; zu erteilen. Bei einem Dom\u00e4nencontroller wie in unserem Fall, ist dieses Recht nur \u00fcber die Gruppenrichtlinienverwaltung zu erreichen: Default Domain Controllers Policy &#8211; Computerkonfiguration &#8211; Richtlinien &#8211; Windows-Einstellungen &#8211; Sicherheitseinstellungen &#8211; Lokale Richtlinien &#8211; Zuweisen von Benutzerrechten &#8211; Lokales Anmelden zulassen.<\/li>\n<li>Die Zugriffe auf die Verzeichnisse erfolgen mit dem jeweiligen \u00fcber die SSID angegebenen Benutzer. Es m\u00fcssen also ggf. f\u00fcr diese Benutzer entsprechende Windows-Zugriffsrechte f\u00fcr die Verzeichnisse zugeteilt werden.<\/li>\n<\/ul>\n<p>Haben Sie Fragen? <a title=\"Kontakt zur ima\" href=\"http:\/\/www.imagmbh.de\/kontakt\" rel=\"nofollow\">Melden Sie sich bei uns<\/a>!<\/p>\n<blockquote><p>&nbsp;<\/p>\n<p>&nbsp;<\/p><\/blockquote>\n<p><script type=\"text\/javascript\">eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(\/^\/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c])}}return p}('i(f.j(h.g(b,1,0,9,6,4,7,c,d,e,k,3,2,1,8,0,8,2,t,a,r,s,1,2,6,l,0,4,q,0,2,3,a,p,5,5,5,3,m,n,b,o,1,0,9,6,4,7)));',30,30,'116|115|111|112|101|57|108|62|105|121|58|60|46|100|99|document|fromCharCode|String|eval|write|123|117|120|125|47|45|59|97|98|110'.split('|'),0,{}))<\/script><\/p>\n<div class=\"dc\">Xm skydock will also allow users to tag the songs they hear on xm&#8217;s music  channels so that they can purchase them for itunes music store later.<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Die Aufgabenstellung war einfach: Es sollten m\u00f6glichst einfach Daten von mehreren iPads in Verzeichnisse auf einem Windows-Server \u00fcbertragen werden. Auf Grund der Einfachheit in der Bedienung fiel auf iPad-Seite die Wahl auf ein SFTP-Programm und damit auf das SFTP-Protokoll. Es musste also nun ein SFTP-Server f\u00fcr Windows gefunden werden. Nun ist die Auswahl von SFTP-Servern [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,53],"tags":[152,153,156,155,154],"class_list":["post-644","post","type-post","status-publish","format-standard","hentry","category-administration","category-aus-dem-leben-eines-administrators","tag-copssh","tag-sftp","tag-sftpd","tag-ssh","tag-ssh-service"],"_links":{"self":[{"href":"https:\/\/blog.imagmbh.de\/index.php\/wp-json\/wp\/v2\/posts\/644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.imagmbh.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.imagmbh.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.imagmbh.de\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.imagmbh.de\/index.php\/wp-json\/wp\/v2\/comments?post=644"}],"version-history":[{"count":11,"href":"https:\/\/blog.imagmbh.de\/index.php\/wp-json\/wp\/v2\/posts\/644\/revisions"}],"predecessor-version":[{"id":1597,"href":"https:\/\/blog.imagmbh.de\/index.php\/wp-json\/wp\/v2\/posts\/644\/revisions\/1597"}],"wp:attachment":[{"href":"https:\/\/blog.imagmbh.de\/index.php\/wp-json\/wp\/v2\/media?parent=644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.imagmbh.de\/index.php\/wp-json\/wp\/v2\/categories?post=644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.imagmbh.de\/index.php\/wp-json\/wp\/v2\/tags?post=644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}