CIFS unter Linux (teilweise gelöst)

cancel
Showing results for 
Search instead for 
Did you mean: 
dirk1
Member II

CIFS unter Linux (teilweise gelöst)

Hallo,

OS: Debian stable (lenny) - in einer vm-ware
Alfresco: Community-Edition 3.2
Tomcat: aus dem Debian-Repository (5.5) - port ist standardmässig bei Debian auf 8180 - den habe ich auf 8080 geändert (erspart Stress)
Postgresql: aus dem Debian-Repository (8.3)

Installation erfolgte also aus den war-files (Alfresco.war, share.war)

Lösung s. 3. post.

———————————————–

Das in dieser Anleitung http://wiki.alfresco.com/wiki/CIFS_linux empfohlene 
smbclient -U admin \\\\127.0.0.1\\alfresco admin
schlägt jedoch fehl.

Inzwischen habe ich den Samba-server deaktiviert, mit dem Resultat, dass der Server von "aussen" überhaupt nicht mehr sichtbar ist.
Dies: http://wiki.alfresco.com/wiki/File_Server_Subsystem
hilft mir leider überhaupt nicht.
Mir wird einfach nicht klar, woran man erkennt, dass der Alfresco-CIFS-Service überhaupt läuft und wie man ihn anpingen kann o.ä.
Insofern fehlt mir irgendwie der Ansatzpunkt zur Selbsthilfe.

Wer kann mir auf die Sprünge helfen?

Vielen Dank.

Dirk
9 Replies
dirk1
Member II

Re: CIFS unter Linux (teilweise gelöst)

So. Jetzt habe ich noch mal alle möglichen Varianten durch. Ergebnis ist stets das Gleiche:

smbclient -L //127.0.0.1/Alfresco -d 3
lp_load_ex: refreshing parameters
Initialising global parameters
params.c:pm_process() - Processing configuration file "/etc/samba/smb.conf"
Processing section "[global]"
added interface eth0 ip=fe80::20c:29ff:fe96:87b9%eth0 bcast=fe80::ffff:ffff:ffff:ffff%eth0 netmask=ffff:ffff:ffff:ffff::
added interface eth1 ip=fe80::20c:29ff:fe96:87c3%eth1 bcast=fe80::ffff:ffff:ffff:ffff%eth1 netmask=ffff:ffff:ffff:ffff::
added interface eth1 ip=172.16.193.132 bcast=172.16.193.255 netmask=255.255.255.0
added interface eth0 ip=192.168.1.100 bcast=192.168.1.255 netmask=255.255.255.0
Client started (version 3.2.5).
Connecting to 127.0.0.1 at port 445
error connecting to 127.0.0.1:445 (Verbindungsaufbau abgelehnt)
Connecting to 127.0.0.1 at port 139
error connecting to 127.0.0.1:139 (Verbindungsaufbau abgelehnt)
Error connecting to 127.0.0.1 (Verbindungsaufbau abgelehnt)
Connection to 127.0.0.1 failed (Error NT_STATUS_CONNECTION_REFUSED)

nmblookup -S -d 1 localhost
querying localhost on 172.16.193.255
querying localhost on 192.168.1.255
name_query failed to find name localhost

Und hier ist nochmal der entsprechende Auzug aus der Alfresco.log:

INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'fileServers' subsystem, ID: [default]
INFO  [org.alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Starting 'Authentication' subsystem, ID: [managed, alfrescoNtlm1]
INFO  [org.alfresco.config.JndiPropertyPlaceholderConfigurer] Loading properties file from class path resource [alfresco/alfresco-shared.properties]
INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'Authentication' subsystem, ID: [managed, alfrescoNtlm1] complete
INFO  [org.alfresco.repo.management.subsystems.ChildApplicationContextFactory] Startup of 'fileServers' subsystem, ID: [default] complete

Mir ist schleierhaft, wie man auf der Basis systematisch vorgehen soll. Woher weiss man, ob überhaupt irgendwas funktioniert?
Brauche ich Samba oder nicht? Und wenn ja, wie muss es konfiguriert werden?

Das darf doch alles nicht ein derartiges Rätselraten sein?

Wer hilf einem Doofen auf die Sprünge?

Dirk
dirk1
Member II

Re: CIFS unter Linux (teilweise gelöst)

Jetzt habe ich es auch endlich geschafft.
Hier die Antworten auf meine Fragen:

1. Samba darf laufen - Damit kann man erst mal üben (Schritt 2.)

2.  smbclient -L 192.168.1.100
Beim passwort-prompt NICHTS eingeben, einfach Enter. Daran bin ich fast verrückt geworden, weil ich immer mein passwort eingegeben habe.
Gibt einen schnellen Überblick über die Befindlichkeit des Samba-Servers (ip-Adresse ist natürlich auf Gegebenheit anzupassen).
Man muss über Serverbezeichnungen, Workgroups, User udgl. also erst einmal nicht nachdenken (entlastet enorm bei der Fehlersuche)
Solange nichts weiter unternommen wurde sollte ein gesundes Samba so ähnlich reagieren:
dirk@debian1:~$ smbclient -L 192.168.1.100
Enter dirk's password:
Anonymous login successful
Domain=[meine-Workgroup] OS=[Unix] Server=[Samba 3.2.5]

        Sharename       Type      Comment
        ———       —-      ——-
        print$          Disk      Printer Drivers
        alfresco-import Disk
        IPC$            IPC       IPC Service (Samba 3.2.5)
        PDF             Printer   PDF
Anonymous login successful
Domain=[meine-Workgroup] OS=[Unix] Server=[Samba 3.2.5]

        Server               Comment
        ———            ——-
        ALFRESCO             Samba 3.2.5
        DIRK-PC              Samba 3.2.5

        Workgroup            Master
        ———            ——-
        meine-Workgroup      ALFRESCO
Von Alfresco sieht man erwartungsgemäß also erst einmal nichts.

3. Die ports in den einschlägigen Dateien ändern:
File-servers.properties
cifs.tcpipSMB.port=1445
cifs.netBIOSSMB.sessionPort=1139
cifs.netBIOSSMB.namePort=1137
cifs.netBIOSSMB.datagramPort=1138
file-servers.xml folgende Zeilen hinzufügen (Ich habe nicht den ähnlich aussehenden block auskommentiert).
     <tcpipSMB port="1445" platforms="linux,solaris,macosx"/>
     <netBIOSSMB sessionPort="1139" namePort="1137" datagramPort="1138" platforms="linux,solaris,macosx"/>

4. Das vielfach beschriebene Script ablaufen lassen:
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -A PREROUTING -p tcp –dport 445 -j REDIRECT –to-ports 1445
iptables -t nat -A PREROUTING -p tcp –dport 139 -j REDIRECT –to-ports 1139
iptables -t nat -A PREROUTING -p udp –dport 137 -j REDIRECT –to-ports 1137
iptables -t nat -A PREROUTING -p udp –dport 138 -j REDIRECT –to-ports 1138

5. smbclient -L 192.168.1.100 ergibt jetzt folgendes Resultat (auch hier KEIN passwort):
dirk@debian1:~$ smbclient -L 192.168.1.100
Enter dirk's password:
Anonymous login successful
Domain=[meine-Workgroup] OS=[Java] Server=[Alfresco CIFS Server 5.0.0]

        Sharename       Type      Comment
        ———       —-      ——-
cli_rpc_pipe_open_noauth: rpc_pipe_bind for pipe \srvsvc failed with error NT_STATUS_BUFFER_TOO_SMALL
        Alfresco        Disk
        IPC$            IPC
        AVM             Disk
Anonymous login successful
Domain=[meine-Workgroup] OS=[Java] Server=[Alfresco CIFS Server 5.0.0]

        Server               Comment
        ———            ——-

        Workgroup            Master
        ———            ——-

6. smbclient //192.168.1.100/Alfresco -U admin admin
Sollte zu einem prompt führen, mit dem man ähnlich wie bei FTP operieren kann (z.B. cd, dir, etc.)
Natürlich nur, wenn die Schritte davor erfolgreich waren.

7. Um seinen alten Samba-server wieder zu bekommen:
alfresco:~# iptables -F
alfresco:~# iptables -t nat -F

Vielleicht spart dies mal jemandem etwas Zeit.

Dirk
matr
Member II

Re: CIFS unter Linux (teilweise gelöst)

Hallo Dirk,

habe noch eine weitere Möglichkeit - für mich einfacher, da ich mit iptables nicht rummachen muss - Alfresco neben Samba laufen zu lassen. Dabei binde ich den Alfresco-Server einfach an eine andere (virtuelle) IP. Meine Standard-IP ist 192.168.1.79, den Alfresco-Server binde ich an 192.168.1.80.

[irgendwas]/Alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/fileServers/default/file-servers.properties
cifs.bindto=192.168.1.80

/etc/network/interfaces

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.79
netmask 255.255.255.0
gateway 192.168.1.1

auto eth0:1
allow-hotplug eth0
iface eth0:1 inet static
address 192.168.1.80
netmask 255.255.255.0
gateway 192.168.1.1

Jetzt muss samba im Gegenzug an die ursprüngliche Adresse gebunden werden. Hierzu habe ich das Interface eth0 gewählt, es kann aber auch die IP-Adresse 192.168.1.79 genutzt werden.

/etc/samba/smb.conf

[global]
    interfaces = eth0
    bind interfaces only = Yes
    …

Dann nur noch mounten:

mount -o username=hansi -o password=hinterseer -t smbfs //192.168.1.80/Alfresco /mnt/archiv

Alles unter Debian.

Gruß, Martin
dirk1
Member II

Re: CIFS unter Linux (teilweise gelöst)

Hallo Martin,

ja das wäre das nächste gewesen. Mir erschienen die bisherigen Anleitungen dazu nur immer etwas kompliziert.
Bei dir sieht es sehr übersichtlich aus. Ich werde es demnächst damit mal probieren.

Vielen Dank.

Dirk
dirk1
Member II

Re: CIFS unter Linux (teilweise gelöst)

Hallo Martin,

seltsam, das Verfahren funktioniert bei mir nicht.
Die virtuelle Adresse lässt sich nicht an Alfresco binden.

Mit der anderen Adresse funktioniert es - nur mit der Virtuellen nicht.
Dort meldet sich immer Samba (oder es gibt eine Fehlermeldung, wenn Samba deaktiviert ist).

Gibt es bei diesen virtuellen Adressen noch irgend einen Trick, der zu beachten wäre.

Gruß
Dirk
matr
Member II

Re: CIFS unter Linux (teilweise gelöst)

Hallo Dirk,

habe doch tatsächlich vergessen, dass samba natürlich an die ursprüngliche Adresse bzw. das dazugehörige Interface gebunden werden muss, damit es bei Anfragen an die virtuelle IP nicht antwortet. Habe meinen Beitrag oben entsprechend ergänzt.

/etc/samba/smb.conf

[global]
    interfaces = eth0
    bind interfaces only = Yes

Gruß, Martin
dirk1
Member II

Re: CIFS unter Linux (teilweise gelöst)

Hallo Martin,

Danke, Das kannte ich noch nicht. Bringt mich aber letztlich auch noch nicht ans Ziel.
Die virtuelle Adresse wird von Alfresco anscheinend nicht angenommen.
Samba hingegen schon - daraus schliesse ich erst mal, dass die virtuelle Adresse grundsätzlich funktioniert. 

Ausserdem funktionieren die Standard-Ports mit Alfresco unter keinen von mir getesteten Umständen.
Es gehen also nur Konstellationen mit 1445 etc. und Portumleitung.

Und es ist noch irgend etwas anderes faul:
Denn den Alfresco-Server habe ich überhaupt noch nie auf der Maschine, auf der er läuft zu Gesicht bekommen.
Von Aussen eben auch nur unter den beschriebenen Bedingungen.

Das klingt vielleicht jetzt alles etwas verworren und auch irgendwie nicht logisch. Aber das ist der Stand meiner Forschungen.

Ich lebe jetzt erst mal damit, dass der CIFS-Server nur von "aussen" im Zugriff ist.
Dadurch kann ein anderes System, dass auf dem selben Server läuft allerdings auch nicht ins Archiv schreiben - das ist etwas schade.

Letzteres habe ich jedoch dadurch gelöst, dass dieses andere System (ERP-Software) auf einen share eines anderen Servers schreibt, der seinerseits mit dem Alfresco-CIFS-Server verbunden ist.
Das ist etwas von hinten durch die Brust - aber erst mal ein kurioser Weise funktionierender Workaround.

Momentanes Fazit für mich: der CIFS-Server von Alfresco ist noch nicht ganz ausgereift.

Dirk
matr
Member II

Re: CIFS unter Linux (teilweise gelöst)

Hallo Dirk,

ich glaube nicht, dass Alfresco ursächlich für dein Problem ist. Deine Konstellation birgt mehrere Gefahren:

  1. Separater Tomcat

  2. Separate Installation mit den WAR-Files

  3. VMware
Deine Symptome deuten eher auf eine Misskonfiguration hin als auf ein tatsächliches Problem mit der CIFS-Implementierung von Alfresco.

Mein Vorschalg, versuch erst mal das "Preconfigured Tomcat bundle". Da kann man nicht viel falsch machen. Dann bleibt nur noch zu hoffen, dass dir VMware nicht einen Strich durch die Rechnung macht.

Gruß, Martin
dirk1
Member II

Re: CIFS unter Linux (teilweise gelöst)

Hallo Martin,

vielen Dank für deine Hinweise.
Hmm, du hast die war-Files in Verdacht?
Tja. Ehrlich gesagt will mir nicht ganz einleuchten, was an einem frisch installierten Standard-Debian und dem Tomcat aus dem Stable-Zweig mißkonfiguriert sein kann.
Bringt mich zu meiner Ursprungsfrage zurück, was die Systemvoraussetzungen angeht.

Und die VM-Ware?
Nun ja. Ich habe das ganze gerade eben noch mal auf meinem Arbeitsplatz installiert.
Also anderer Rechner, ohne VM-ware.

Was soll ich sagen - Die Phänomene sind exakt die gleichen:
Der CIFS-Server ist nur von aussen sichtbar und auch nur, wenn die höheren ports verwendet werden.

Kann sein, dass alles funktioniert, wenn man ein Komplett-Paket verwendet.
Was allerdings die Probleme mit den war-Files nicht erklärt - Vielleicht sind die ja fehlerhaft
Aber wenn man z.B. auf eine bestehende Tomcat-Installation aufzusetzen hat, ist die Methode ja irgendwie wichtig.

Vielen Dank für alle Tipps.

Dirk