SMB2WWW, the gateway to Windows networking

SMB2WWW is a Windows Network client that is accessible through a web browser. It is based on the samba package.

The Current version is 980804

I hope all the obvious bugs are gone now. If not, let's hear it ! Oh, and if you've successfully deployed SMB2WWW on your network, I'd like to know as well. Always nice to hear success stories, and it gives me an idea of the installed base. (for no other purpose than my vanity, of course :-)

Revision History

Demo site

Follow this link for a demonstration of SMB2WWW.

Goodies to come in later versions !

FAQ

1. How does it work ?

SMB2WWW consists of a few perl-scripts that interact with smbclient. It tries to imitate the client side of a Network Neighbourhood.

2. Why do I get all this trailing garbage at the end of a file ?

SMB2WWW isn't capable of overriding the settings in smb.conf. Comment out the 'debug level =' line. This has been fixed in samba 1.9.18p4.

3. Why doesn't SMB2WWW work with hostnames that contain a . ?

Because samba uses . as a separation between a hostname and a network name. This is not yet fixed in samba as of version 1.9.18p4.

4. What about security ?

SMB2WWW does next to nothing about security. In my opinion, having security at all for CGI is not a job of the CGI itself, but for the web server. So, if you're using apache, put something like the following in your access.conf:

<Location /cgi-bin/samba/>
<Limit GET POST>
Require local
AuthName smb2www
AuthType basic
AuthUserFile /etc/smb2www/smb2www-users
AuthGroupFile /dev/null
Require valid-user
Satisfy Any
</Limit>
</Location>
See the FAQ of your web server for more information. To prevent snooping, start thinking about web servers that support SSL.

5. What do I need to run SMB2WWW ?

Nothing! Debian does all the installation for you. You may want to modify some of the web server configurations to suit yourself.

6. What's this auth=FretyBNFyGDx12 gobbledegook ?

In order not to entirely give away your username/passowrd in the URL, SMB2WWW XORs the username/password pair you entered with the key you give in smb2www.conf. It puts a Base64 encoding on top of that. So what you see is essentially a Base64-encoded, XOR'd user/pass string. Of course, it's far away from being bombproof, and easily reverse-engineered. But SMB2WWW wasn't made for security, that's the thing _you_ have to do. The first person to post on bugtraq about this is going to get his ass kicked by me. In person. If you have a better idea about encryption, use the source. It's your network, not mine.

7. Hey ! It doesn't work with a ; in the [insert thingy here] !

That's right. Until I think of a better way to ensure that nobody abuses SMB2WWW to gain unauthorized access to your server, all queries are chopped at the first occurance of a ;.

8. I'd like to build a perl-script that interacts with smbclient.

For now, you can use the smb2www module for that. Take a look at the GetSMB* routines for more information. I'll build a separate library in Copious Spare Time.

9. How fast is it ?

Fast enough. :-) On a 10 mbit network, I managed to get 500K/sec from SMB2WWW, which is pretty fast considering the webserver is getting the information at the same speed it is giving it to you.

10. That's nice. I installed it, now where can I find it ?

If you used the Debian default settings, and have changed your webserver config accordingly, SMB2WWW can be found  here. You might want to bookmark it.

11. I don't have a webserver.

Too bad. CGI doesn't work without one.The solution is so obvious that I won't mention it here.

12. I've got this really weird Network Neigbourhood, and SMB2WWW doesn't seem to work.

So far, I've had a few reports about really odd network neighbourhoods. SMB2WWW is capable of handling nearly any crappy Network Neighbourhood it finds (it was developed on a 1400+ hosts Network Neighbourhood), but if it's really _really_ broken, it won't know how to handle it. If you have such a network, and Windows still has ways to figure it out, please report it to me.

13. I don't like the colours/background/icons/...

Change them ! Just put your new images in the images directory, and change your smb2www.conf accordingly. You can change the text colors there, too. If you've got a new look for SMB2WWW that you really like, mail it to me !

14. SMB2WWW doesn't speak Klingon. I want Klingon.

If you want support for a language that SMB2WWW doesn't know yet, go ahead and write it ! You can use english.lang and english_help.lang as an example. Again, if you've got support for a language that is not in SMB2WWW yet, mail it to me !

15. So, I can send popups with SMB2WWW. Now how do I receive these messages with Samba ?

For now, you can add the following to your smb.conf:

message command = sh -c 'echo -e "---\nDate: %T\nFrom: %f@%m\nTo: %t\n" >>  /var/log/sambamsg; cat %s >> /var/log/sambamsg; echo >> /var/log/sambamsg; rm %s' &

Now, all messages you receive will wind up in the file /var/log/sambamsg. At the moment, SMB2WWW doesn't do anything with this file yet, as I'm still thinking of a way to put it into the package in a nice way. Should you have a great idea on how to do this, please tell me.

16. Is this only for Linux ?

No ! If you've got Samba, Perl and a webserver, you can probably run SMB2WWW. It's been built and tested using Solaris and Linux.



SMB2WWW is © Remco van Mook 1997, 1998. You can contact the author at this address.
This page modified by Craig Small <csmall@debian.org> for the Debian project.