Spaghetti

Gateway and Proxy Server for Windows 95 & Windows NT

Version 1.42

 

Ó 1996-1997 Artigiani Virtuali di Giacomo Tufano.

All rights reserved

 

 

 

Introduction

 

Available for Windows 95, Windows NT, and Windows NT Dec Alpha.

 

Spaghetti is a Proxy and Gateway server for Microsoft Windows NT and Windows 95.

 

Spaghetti delivers the Internet to your LAN (Local Area Network) using TCP/IP, eliminating the need for more than one real connection to the Internet. This centralization also provides speed enhancements through Spaghetti's integrated Cache. Spaghetti stores requested Web pages on the local hard drive, providing instant access the next time they are desired by anyone on the LAN. Spaghetti is designed to support any computer on your LAN, regardless of the processor or Operating System.

 

Spaghetti supports most popular Internet protocols and software; Including: Your favorite browser, including Netscape Navigator and Microsoft Internet Explorer, with Http, Https, and Ftp. Your favorite Ftp Client including CuteFTP and WsFTP. Spaghetti also has native Telnet and Real Audio support. Using the Bridging capabilities you can support any protocol using TCP on a definite port, including SMTP and POP3 (The e-mail protocols), NNTP (The news protocol), IRC (The chat protocol), Telnet, WinCIM, etc.

 

Spaghetti can dial your ISP (Internet Service Provider) automatically, and hang up the line when a specified time-out occurs. This frees the System Administrator (or the user of the machine connected to the Internet) from the need of manually dialing whenever someone needs access to the Internet.

 

Spaghetti can also be used like a firewall on a LAN directly connected (via leased line) to the Internet. Using the IP security built into the proxy server, it secures the internal network while allowing users to access the exterior network (the Internet). Spaghetti can also be used as a "regular" proxy server, for Internet Service Providers, in the Proxy-Proxy Channeling mode. In this mode, Spaghetti can establish a hierarchy of proxy, allowing it to connect to the proxy of your provider and so on, minimizing the use of expensive bandwidth.

 

Spaghetti runs as a system service under Microsoft Windows NT, allowing it to run on computers without a user logged in, or as an application under Windows 95 (or Windows NT if you prefer). The package also includes a cache browser, for fast and efficient offline browsing.

 

Status

 

Spaghetti is Copyright Ó 1996 by Artigiani Virtuali di Giacomo Tufano, Naples, Italy. All right reserved.

 

Spaghetti is a shareware program and it is not free software. You can test it for thirty days using the Demo key (that have a limit of 200 requests) to verify it fulfills your requirement then you will have to buy a license for it. You can request the author of the program (via email at gt@avirt.com or via web at http://www.avirt.com/Spaghetti/) a temporary key that will last for a maximum of 30 days. Use of the program without licensing over the thirty days evaluation period is in violation of Italian and international copyright laws.

 

This software and the accompanying files are sold "as is" and without warranties as to performance of merchantability or any other warranties whether expressed or implied. The only guarantee is that Spaghetti will use disk space and CPU time on your computer.

Any liability of the seller will be limited exclusively to product replacement or refund of purchase price.

 

 

System requirements

 

Spaghetti is not a port of another program; it is a multithreaded system service completely written from scratch using C and Win32 API. It, also, does not have much "bell and whistles", and have, for this reason, a relatively small "footprint". For this reason, it is not too heavy to run it on relatively "small" machines.

 

It is know to run on a 32Mb 486DX4/100 computer with Windows NT Server acting also as DNS and running RAS on 16 telephone lines.

 

The program itself requires:

 

Processor:

It runs on any Intel x386 compatible processor or (separate version) on Digital Alpha AXP processors.

 

OS:

Windows NT 3.51 or 4.0, Workstation or Server (to run as a System Service).

Windows 95 (we suggest to apply the Service Pack 1), only in application mode.

 

RAM:

It runs when the OS runs. Therefore, under NT it needs 12Mb of RAM, under Windows 95, 4 MB. Like the OS on which it runs, it is happier when it have more RAM. It is know to run on Win95 computer with 8 MB RAM and NT computer with 16 MB

 

TCP/IP 32 bit stack (like the native stacks of NT and 95)

 

Some HD space for the cache, the more, the better. It can run with cache disabled, if you don’t have disk space to use for it.

 

 

Installation

 

If you have a version before 1.40 installed, uninstall it using the Uninstall button in Tomato.

 

Unzip the distribution files in your system directory (typically c:\windows\system on Windows 95 systems and c:\winnt\system32 on Windows NT systems).

 

Open the Control Panel and double-click the Spaghetti icon. This installs the program with default parameters.

 

If version 1.40 of Spaghetti is already installed and you don’t want do uninstall and loose all of your Spaghetti Settings, use Regedit and add the value: HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\INetMgr\\Parameters\\AddOnServices\ \Spaghetti Proxy REG_SZ "Spaghetti.cpl" to register Spaghetti as an Internet Service Manager Extension.

 

Configuration options

 

This is the main configuration screen:

 

Computer Name – The NETBIOS name of the computer on which Spaghetti is running. When asking for a trial (or a definitive) key, don’t forget to mention the name of your computer!

 

Registry Version - This should contain the version number of spaghetti configuration. It must be 1.4, if it is different evidently you forgot to remove the old version. If this is the case, uninstall spaghetti and repeat the installation procedure.

 

Service Port - is the port to which Spaghetti awaits connections for Http, Ftp and Https (Http over SSL) from browsers. By default, it is fixed to 8080, obviously you must tell the browsers to use the same port you configure here (in proxy configuration of your browser).

 

Registration Key - is your registration key. By default it is fixed to DEMO, in this mode, Spaghetti will answer to 200 requests and then gracefully shuts down itself, it is intended for demonstration only. You can ask (by mail) gt@avirt.com for an evaluation key that will permit (for a month) the use of the program without the 200 requests limitation. In this box, you will also insert the ‘definitive’ registration key when you will buy the program. Remember that the evaluation and the final key are bound to the NETBIOS name of your machine, so it is needed to generate the key.

 

Connection Logging - if the box is checked Spaghetti will write a row in the Application Log (or in command window, if executed as an application) telling the host connected and the request made for every request made to the proxy. This can be very verbose and it will impact performance, use it only for debugging or information purpose, not as a rule.

 

Perform timestamp Checking - this instructs the cache manger to always check the timestamp of the cached file against the original file on remote server. Checking this box assures that the page your browser will receive will never be older than the original page. This check can severely impact performance on slow lines, so check it and disable it if the performances are not satisfactory.

 

‘Native’ Ftp Proxy - this activates the proxy for ‘native’ Ftp clients, like CuteFTP or WsFTP on IBM compatibles or Fetch on Macintosh platform. The port is the port to which the proxy awaits connections. Beware to change the port from 21 if you have also an Ftp server on the same machine.

 

Real Audio Proxy - this activates the Real Audio proxy for Real Audio player, plug-in or ActiveX component on the corresponding port.

 

Telnet Proxy - this activates the Telnet proxy on the corresponding port.

 

Caching Proxy - If the box is checked, spaghetti will cache pages requested. Disable caching if you’re short on disk space.

 

Days cached - the number of days the expiration process will maintain pages in cache (i.e.: the expiration process will delete pages older than the days marked in the box). If you insert ‘0’ in this box, the expiration process of Spaghetti will never delete pages from cache.

 

Cache Directory - the directory to which the proxy will write cache files. It will be created if it not exist. It is strongly recommended that the cache directory be not used for any other purpose.

 

Browse Cache – this activates the cache browser program.

 

Bridging - the box indicates that Spaghetti must bridge connections to the corresponding port between the client and the server indicated. Press Add to add bridges to the proxy configuration and remove to remove the selected bridge. In the Add box, Port on Proxy represents the port Spaghetti should wait for connection, Bridge to Server the server to which Spaghetti must route connections and on Port the port on the remote server Spaghetti should connect. Remember that you can write the names of the protocols in the boxes (or the number of the port, if you prefer). I.e.: you can write Telnet or 21 on the port box (having the same effect).

 

Mail Gateway – this activates a bridge for POP3 and SMTP protocols, it is only a shortcut for bridging email.

 

News Gateway – this activates a bridge for NNTP protocol, it is only a shortcut for bridging news.

 

Proxy-Proxy channeling you can check this box to connect the server to the Internet via another proxy. Useful on dial up accounts to target the proxy of your Service Provider or, on leased line, to 'channel' proxy together to have a bigger cache on 'upper' proxy.

 

Master Proxy: the address of the proxy to which you want to connect Spaghetti.

 

Master Proxy Port: the port to which your Master Proxy awaits for connections.

 

OK: the OK button saves configuration and exits the applet.

 

Cancel: the Cancel button exits the applet without saving configuration.

 

Save Config: this button saves configuration without exiting the program, useful for first time installation, use it before starting Spaghetti for the first time.

 

Statistic: goes to the Statistic dialog box.

 

Default: reloads factory configuration.

 

Security: brings up the security dialog box.

 

Dialing: brings up the dialog box for dial up configuration

 

Uninstall this uninstall Spaghetti, leaving no trace of it in System Registry.

 

Start/Stop: this starts Spaghetti (as a service) if it is currently stopped, or stops it if it is running. It is unavailable under Windows 95.

 

App Start: this start Spaghetti as a minimized application.

 

Expire Cache: this button starts the expiration process. You can also start it via command line typing 'spaghetti expire'.

 

This is the Statistic Box

 

 

The statistic screen shows statistic for Spaghetti from the last start. It is self-explanatory, simply press OK to return to the main screen.

 

 

This is the Security configuration screen:

 

 

The list of IP addresses allowed connecting to the proxy. You can use the start of the address to allow connections, i.e.: to give right to all the net 194.20.181.0, simply add ‘194.20.181.’ to the list of permitted IP (do not use '*' or '?' in the addresses). By default, it will permit connection for the net 192.168.0.0 (a "private" class C network) to which we recommend setting IP addresses for the internal network.

 

Remember to add addresses of your 'slave' proxies if you use Spaghetti as Master Proxy.

 

If you make some mistake you can remove permitted addresses selecting the address to remove and pressing the left arrow key.

 

 

This is the Dial up configuration screen:

 

 

Dial RAS on connections: check this box to activate dialing up of proxy in case of connection. It will dial up on the first request that cannot be fulfilled from the cache.

 

Time-out (seconds) - is the number of seconds that Spaghetti should be wait (at connection established) without traffic before it hangs up the link. Modify it to adapt to your country telephone prices and/or to your needs. If you insert ‘0’ on this box Spaghetti will dial up but never hung up connections. It is recommended, in this case, to use the auto hang up feature of RAS.

 

Connection Name - is the name of the RAS phonebook entry to be used (if you're using NT) or of the Remote Access icon you use to connect (for Windows 95). If you leave it blank, Spaghetti will use the first entry.

 

Username - The username Spaghetti will use to authenticate on the remote server. Leave it blank to use the username associated to the RAS connection name.

 

Password - The password Spaghetti will use to authenticate on the remote server. Leave it blank to use the password associated to the RAS connection name.

 

OK: will save RAS configuration.

 

Cancel: will leave the box without saving configuration.

 

 

The cache browser:

 

This is the cache browser main screen:

 

 

You can start the cache browser from the control panel applet, or execute directly the executable. If you double click on the icons, expanding the tree.

You can right click on the document icons to show a menu. Select ‘open’ from this menu to show the document selected on your default browser. Select ‘Properties’ to view information about the cached document.

Remember that the cache browser requires Windows NT 4 or Windows 95 to work!

For the ‘open’ menu to work, spaghetti must be running on the computer and the browser must be configured to use the proxy.

 

Registration Information

 

You can request a temporary key for evaluation of the proxy. The key can be requested via email at gt@avirt.com or via web at http://www.avirt.com/Spaghetti/. The temporary key disables the 200 connections limit permitting you to use Spaghetti for a period of ca. one-month before expiring. Like the definitive key, the evaluation key is bound to the Microsoft Networks computer name and it is needed to know the name to generate the key.

 

The price for the registration is fixed in 99 ECU (European Currency Unit, also XEU, ca. 1,28 US$ for 1 ECU as 22 November 1996), students and educational institutions are entitled to a 30% discount. This payment entitles you to have a key that permanently enable the proxy (and gives you the legal right to use the program on one computer). There is no fee due on per-connection basis (i.e.: with the registration, you can use the proxy on one computer regardless to the number of other computers that connect to it to reach the Internet). The key will be valid for every future version of Spaghetti.

 

You can pay with a Visa/MasterCard credit card or via bank or postal transfer. Email gt@avirt.com to order the key. You can also fax at +39-81-7676673 your order, remember that we are at GMT+1. Remember also that, for credit card payments, you will be charged for the equivalent of the price in Italian Liras and not directly in ECU.

 

Your address (and reference) is needed for the invoice. Remember that, if you are in EEC, may be you will have to pay also 19% VAT (if you don't have a VAT number in your country). If you are in Italy, you will have to pay a 19% of IVA.

 

 

How to setup internal network

 

Before using Spaghetti to connect your LAN to the Internet, you must have your LAN configured and running TCP/IP. The process of installing TCP/IP is described in the manuals or in many sites of the Internet and is beyond the scope of this manual.

 

Some hint on configuring it:

 

If you need to secure a network connected to the Internet, using Spaghetti as a firewall, use a computer with 2 network adapters (one on internal network, the other connected to the router), and then:

 

 

Clients Configuration

 

Examples of clients configurations:

 

Remember to substitute your Proxy computer internal IP address (typically 192.168.0.1) to 195.32.111.11.

 

Microsoft Internet Explorer:

 

Go to View->Options and select the Connection Tab. Here is my configuration:

 

 

 

Netscape 3.0x:

 

Go to Option->Network and select the Proxies tab and then select ‘Manual Proxy Configuration’ and press View. Here is my configuration:

 

 

 

Real Audio:

 

Got to View->Preferences and then select the ‘Proxy’ tab. Here is my configuration:

 

 

 

CuteFTP:

 

Go to FTP->Settings->Options, select the ‘Firewall’ tab. Here is my configuration:

 

 

 

 

Frequently Asked Question

 

I cannot get news. I've put port 119 in the port box...

Assuming your news server is news.demon.co.uk, you will have to add a bridge from port nntp to the server news.demon.co.uk port nntp. Then you will have, in your clients, use the internal IP address of your proxy as the news server address...

 

I run the spaghetti.exe from windows95 it load and tells me it has "correctly initialized" and then displays a few lines saying it is "waiting for connection on port 8080" etc. etc. If then from the control panel applet I select statistics it reports after a while "can not connect to spaghetti". I feel that unless this particular feature works correct that I'm not going to get any further. I have tried a number of things to no avail, as far as spaghetti is concerned nothing is trying to connect to it.

This depends from Security configuration, before connecting to Spaghetti (for Statistics or other) you will have to add the addresses of the computers that will have to connect in the Security Section of the control panel applet.

 

Also, is there a reason you put username and password fields here, if the DUN connection setup properly it should already have the username and password assigned to it during it's creation.

If you leave the fields blanks, the dialer will use the username and the password of the connection.

 

We were not able to find the Application Log? Where would that be saved?

The Application Log is part of Windows NT OS. You can find it under Administration Tools->Event Log, and then you can select Application Log from the first menu.

 

I am having problems though with clicking FTP links on Web Pages where the server is saying that an invalid response was received and the FTP file not being received - any ideas?

I cannot decipher if the problem is from Spaghetti or from IE3 (are you using IE3, true?). Microsoft tells this is a bug of MsIE 3.0 resolved with the version 3.01. I noticed that 3.01 do the same (although more rarely) and I'm working on Spaghetti side to try to find the bug. As a workaround, you can press the link with the right key of the mouse and select 'Save as...’ this bypass the problem.

 

Does Spaghetti DNS Forwarding? I haven't installed a local DNS yet (I haven't really seen a need) and therefore need to use my ISP host for DNS.

Spaghetti doesn’t need DNS forwarding... use the IP number of the proxy in your client and the proxy will resolve the addresses for you.

 

I was told that Spaghetti Proxy would run on a Mac. From your page, that doesn't seem true. Do you have plans to do a Mac version?

Spaghetti runs on NT and Window 95. It can be used on a mixed environment (i.e.: can have Mac clients) but it doesn’t run on Macintosh. May be it runs under the Windows 95 emulator from Insignia, but none of my users nor I ever tested it.

 

What would be the price we have to pay for one license (one server with, say 10 clients)?

Spaghetti is sold on a per server basis (i.e.: you pay a fee for the server, regardless to the number of clients connected to).

 

How can I configure my proxy to use MIRC service on my users' stations?

You will have to add bridges for the port of Irc. For example (our setup):

Add a bridge on control panel applet: Port on Proxy: 6667; Server: it.undernet.org; On Port: 667

Then in mIRC client, use the internal address of the proxy server at port 6667 as Irc server...

If you need another server:

Add another bridge on control panel applet: Port on Proxy: 6668 (or whatever (high) number you like); Server: eu.undernet.org; On Port: 6667

Then in mIRC client, use the internal address of the proxy server at port 6668 as Irc server...

Repeat for any server you need and then pass the 'new' IRC server addresses to your clients.

 

There is a way to Telnet through this proxy?

Yes. Activate the Telnet proxy, from the telnet client connect to the proxy and then (following the prompt) type the address of the server you want to reach.

 

There is some reseller, somewhere in the world?

No. I’m looking for resellers over the world for my product, so, if you’re interested, please contact gt@avirt.com by email

 

How do I set up Spaghetti and network clients for multiple NNTP sites? We do not have an NNTP server and sign on as a client to our ISP. Some of our staff also read other company newsgroups (Microsoft being one).

You should add another bridge, for example:

First server:

Port on Proxy: nntp; on server: news.foo.bar; on port: nntp

And then in the clients use (as server) the internal address of the computer running spaghetti.

Second Server:

Port on Proxy: 2222 (or whatever 'high' number you like) on server: news.microsoft.com; on port: nntp

And then in the clients use (as server) always the internal address of the computer running Spaghetti but on port 2222. Many newsreaders can choose the port in advanced configuration options, simply change the port from 119 (the default) to the port you choose in control panel applet.

The same applies also to Telnet, or to 'simple' mail. Simply use a different port for any remote server and configure the clients to use the port you configured.

 

Will your proxy server run under NT 4.0 Server?

It works.

 

How can I start Spaghetti automatically at boot?

To start Spaghetti automatically at boot time, go to Control Panel->Services, select ‘Spaghetti Gateway and Proxy Server’, press the ‘Startup’ button and select ‘Automatic’ under ‘Startup Type’.

 

Choosing "statistics" within Spaghetti Control Panel applet leads in nearly all cases to a huge "Spaghetti Statistics" window with the only contents of "Cannot connect to Spaghetti", although the proxy is working perfectly all the time

Statistics works only on the same machine as the proxy.

 

Is it possible that spaghetti can handle a large disk cache of about ca. 1 - 2 GB? If so, what would be a preferred hardware for such a system?

One of my test systems runs a cache of 1,5 GB on a P120/32Mb RAM (with IDE HD). You can run in some problem if you try to run chkdsk on the cache partition (it needs 2-3- hour on my system to complete). Except this, we have no other problem (and I have no problem signaled from other customers). Of course, the cache partition must be formatted with NTFS, the FAT file system don’t works very well on directories with thousands of files...

 

Is it possible to use the Spaghetti proxy server with secure web servers? If so, is there something special I need to do to enable it?

From the version 1.3 Spaghetti will proxy SSL (and so, it will proxy Https and snews). There’s nothing special to do, only configure the browser to use a proxy on secure connections. The port is the same of Http and Ftp proxy (by default 8080).

 

We have a Direct Connection (leased line), making Internet connection via PPP. This machine is under Windows NT RAS. How I can make a connection with Spaghetti.

Setup the network with the addresses in 192.168.0.0, typically: the proxy machine 192.168.0.1, the first workstation 192.168.0.2 and so on (you can also use other addresses, but these are the ‘official’ addresses for ‘private’ networks. Start spaghetti on the first computer and makes the other computers point proxies to 192.168.0.1. Spaghetti will make the rest (this for Http, Ftp, SSL and Real Audio).

For Smtp, pop3, nntp and other protocols is a little more difficult:

Configure (via control panel applet) bridges on port Smtp and pop3 for email, nntp for news and so on for other protocols. On second field of the add box (the Point to Server) insert the addresses of the "real" servers (on the Internet). On clients you should set the server to be 192.168.0.1, Spaghetti will "transport" connections to the remote server.

 

I get an error when trying to start the service. The message from "spaghetti run" is:

29/08/96 10:50:14 Microsoft Windows Sockets Version 1.1 correctly initialized!

29/08/96 10:50:14 Error 10048: couldn't bind socket.

29/08/96 10:50:14 HTTPServiceInitialization failed with error: 10048, 3.

This occurs when some other program is listening at the same port. Typically this can happen when you have another proxy started on port 8080 or when you have an Ftp server running and try to use the ‘native’ Ftp proxy of Spaghetti on port 21.