Why Slyberoam?
Slyberoam is a program I have written to provide people with an alternative to the standard Cyberoam/24Online client that is required by many ISP's these days. It has several advantages over the standard client:
- Slyberoam runs as a Windows Service, so it doesn't disconnect you from the network every time you need to switch users in Windows XP.
- Slyberoam allows you to use a different MAC address than the one that your ethernet card has. If you have a gateway/proxy computer or device with NAT, you can choose to log in using any of the computers that are inside your LAN.
- Slyberoam maintains an extensive log file for each session. This verbosity of this log file is easily configurable.
- Slyberoam reports any malformed or unrecognized packets that it receives by placing them in the log file. These can then later be evaluated to further understand the Cyberoam protocol.
- Slyberoam comes with Slyberoam Configurator, an easy tool to help you configure Slyberoam for your particular network. This allows Slyberoam to be used on different 24Online networks.
- Slyberoam comes with the Slyberoam Packet Library (sly.dll). This library may be re-used or extended for any other applications you might be interested in developing for Cyberoam/24Online networks.
- Slyberoam is lightweight and unobtrusive. Slyberoam only uses 1.8MB of your system RAM, compared to 7.5MB used by Elitecore's client (*on my system).
- Slyberoam is released under the GNU General Public License (GPL). Thus you can extend or modify Slyberoam to suit your particular requirements provided you comply with the GPL. Links for the source code are provided further below.
Slyberoam 0.4.0.0 is the latest version (released 12.May.2003). I have ironed out any remaining bugs from the 0.2 release and the installation process has been simplified considerably.
Additionally, if you are curious, you will want to read my rationale and concerns about the client provided by 24Online on the main Slyberoam page as well as my study of the Cyberoam protocol.
Disclaimer
Slyberoam (all versions) is being released for public use without any warranty whatsoever. By installing and using Slyberoam, you assume complete responsibility for any problems or damages that might be caused by Slyberoam. The author makes NO claims or guarantees that this application will perform exactly in the manner described on this website. You are encouraged to contact your ISP and inform them about your intention to use Slyberoam. The author or distributors of Slyberoam are in no way responsible for any burden, legal, financial or otherwise, that might be imposed on you as a result of your using and downloading software from this page. If you have any concerns regarding any aspect of Slyberoam, you are urged to NOT download or use any software from this website!
System Requirements
Slyberoam requires that you have the Microsoft .NET Framework 1.0 or later on your PC. If your PC matches the .NET Framework's hardware requirements, then your PC can probably handle Slyberoam pretty easily. Slyberoam also requires that you have an ethernet card that is connected to your ISP's network, and that you have a valid account with your ISP. Slyberoam does not let you illegally use someone else's account, since your ethernet card's MAC address is usually hard-coded into your cable or DSL modem. You will also need Administrator privileges on your computer to be able to install Slyberoam.
The previous release of Slyberoam also required the utility "installutil.exe". Note that this is NO LONGER required.
Slyberoam will probably not work with the latest build of Mono (.NET Framework implementation for Linux) since it uses the Microsoft.Win32.* package to access the system registry. I will be removing the dependency of Slyberoam on the Microsoft.Win32.* classes at some point in the future, but that is not a priority for me at the moment. If you require a Linux based client, I recommend Mayur Naik's linc. If you absolutely require support for Slyberoam on Mono, you may modify the provided source code yourself, or you may provide me with a good incentive to do implement it right away :)
Downloads
Slyberoam 0.4.0.0 (Microsoft Installer Package, 177 KB)
C# Source Code (Zipped, 81 KB) - Released
under the
GNU General Public License
Installation
Slyberoam 0.4.0.0 consists of two components -- the Slyberoam Service and the Slyberoam Configurator which is used to configure the service. The Slyberoam Setup application is a Microsoft Installer package which automatically installs both components. After installation, you must correctly configure the Slyberoam Service with parameters unique to your network account and your ISP. These parameters are most easily configured using the Slyberoam Configurator. Slyberoam can now automatically detect the three known versions of the 24Online/Cyberoam protocol (1.3.1, 1.3.1.1 and 2.1.3.0), also known as versions 5, 7 and 8 respectively. If you haven't uninstalled the client that was provided to you by your ISP, Slyberoam can automatically determine the address of the 24Online/Cyberoam authentication server on your network. Finally, Slyberoam will now also automatically detect the MAC address of your first Ethernet adapter, and use that if you don't already have one specified. The Configurator can be launched by going to the Start Menu and clicking on All Programs and then Slyberoam. The configuration information is actually stored in an XML file, which may be edited directly if desired. Here are the steps required to install Slyberoam on your PC (you will need Administrator-level privileges):
- Locate and write down the following information about your connection on a piece of paper:
- Username (required) - the username that was provided to you by your ISP.
- Password (required) - the password that you use to login using the ISP's client.
- MAC Address (required, automatic) - the Slyberoam Configurator should automatically detect your PC's MAC address. If for some reason this doesn't work, or you want to use a different MAC address to log into the 24Online/Cyberoam network, you can change it to whatever you want. To locate your system's MAC address, open a DOS window and issue the command "ipconfig /all". The "Physical Address" reported by ipconfig is your MAC address.
- Server IP (required) - the IP address of your ISP's Cyberoam/24Online server.
There are several ways to obtain this value:
- Directly from the Cyberoam/24Online client software - right-click on the client and select "Preferences". A window will open up which should contain the IP address of the Cyberoam/24Online server.
- If you still have the Cyberoam/24Online software installed on your system, you could open your system registry and look for the value "Server" under the key "HKEY_LOCAL_MACHINE\SOFTWARE\<ISP's name>\Preferences". This value should be the IP address of the server.
- You should also be able to just call your ISP and ask their technical support staff for the server IP.
- Finally, the server is usually configured as your gateway in your TCP/IP settings and can be obtained by opening a DOS window and issuing the command "ipconfig /all". Look for the "Default Gateway" reported by ipconfig.
- Server Port (optional; default value is 6060 which works on most Cyberoam networks) - the port number on which your ISP's Cyberoam/24Online server is configured to listen.
- Protocol (automatic) - the Cyberoam protocol version used by your ISP. You no longer need to worry about this field, as Slyberoam can automatically detect the protocol version used by your network.
- Ping Period (optional; default value is 180 seconds) - the average time between successive keep-alive (ping) requests to the Cyberoam/24Online server.
- Download the latest Slyberoam installation package from the link provided above. Run the installation package and stick to the default settings where possible.
- Configure the Slyberoam Service - go to Start->All Programs and click on "Slyberoam". This will start the Slyberoam Configurator which will help you with the configuration.
- Configure your Local Settings - Under the "Local Settings" tab of
the Configurator, set the path for the Configuration file and the Log/Trace
file. See the screenshot below for an example.
- Configure your Network Settings - Under the "Network Settings" tab, enter each
value as you recorded in Step 2. You may use the "Find MAC" and "Find Server"
buttons to assist you. See the screenshot below for an example.
- Save settings - Click "Apply". This will save your Local Settings to the registry, and the Network Settings to an XML configuration file as specified in Step 5. Close the Configurator window.
- Uninstall the Cyberoam/24Online client provided by your ISP - Slyberoam cannot work beyond this point if the Cyberoam/24Online client is still installed on your computer. Certain versions of the 24Online client install a network layer driver that deliberately filters outgoing packets to prevent 3rd party programs like Slyberoam from working. Remember that if Slyberoam doesn't work for some reason you can always just uninstall Slyberoam and re-install the 24Online client :) When you uninstall, you will need to reboot your PC.
- That's it! When you log back on, the Slyberoam Service will automatically start. Open up a browser and you should be able to access the internet, free from the perils of the Cyberoam/24Online software :)
If you have trouble after Step 8, check the log file for any error messages. If you are unable to resolve the trouble, feel free to contact me (see the Support section further below).
LAN Setup
If you have a small LAN and you want to provide access to more than one PC on your home LAN, all you have to do is configure one of your PC's as a gateway/proxy. Install and configure Slyberoam on that PC. The Slyberoam Setup will automatically configure this PC. However you will need to manually add a registry setting for every PC on your home LAN that doesn't have the Slyberoam Software installed. Here's what you have to do:
For Windows 2000/XP, click on Start->Run, type in "regedit" and click OK. Navigate to the key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters". Right-click on "Parameters" and select New->"DWORD Value". Name the value "DefaultTOSValue". Double click on the newly created value and change the value from 0 to 2.
For Windows NT, click on Start->Run, type in "regedit" and click OK. Navigate to the key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters". Right-click on "Parameters" and select New->"DWORD Value". Name the value "DefaultTOS". Double click on the newly created value and change the value from 0 to 2.
For Windows 95/98, click on Start->Run, type in "regedit" and click OK. Navigate to the key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP". Right-click on "MSTCP" and select New->"DWORD Value". Name the value "DefaultTOS". Double click on the newly created value and change the value from 0 to 2.
After altering the registry you will have to reboot for the new setting to take effect. Note that if you run the Slyberoam Setup, the above registry values are automatically configured for you.
The Motorola SB4100 Cable modem that I have has a list of MAC addresses configured and stored on its firmware. These MAC addresses are the only ones that the cable modem will permit. The good thing is that this prevents anybody from IP spoofing to try and use your account. However this also means that only the PC (or ethernet card) with the registered MAC address may be allowed access beyond the cable modem. So only these "registered" PC's may be used as your gateway with Slyberoam installed.
If you need to use a different PC for your gateway, then maybe you should consider buying an Ethernet router that allows you to clone your MAC address. A very good model (and one that I own) is the Linksys BEFSR41.
Limitations
Slyberoam does an excellent job of maintaining your internet connection. It is able to automatically resume disconnections, and save you a lot of headaches that the official 24Online/Cyberoam client might provide. Occasionally, however, you might have to stop and restart the service. This may be done using the Slyberoam Configurator, or directly by using the Services panel (Service Control Manager) in the Administrative Tools section of your Control Panel.
Setting the "DefaultTOSValue" registry setting will only work for TCP and UDP based protocols. The good side of this is that most of what you need to get done on the internet is done using these two protocols (HTTP, FTP, email, games, etc). The bad side is that you can't use tools like "ping" or "tracert" because they use ICMP. If you need to use protocols besides TCP and UDP, I suggest you set up a Linux box with iptables and configure it with a "iptables -t mangle -A OUTPUT -j TOS --set-tos 02" (thanks to Mayur Naik for that piece of information).
Advanced Settings
The Slyberoam installation creates three keys in the Windows registry under "HKLM\CurrentControlSet\Services\Slyberoam Service\Parameters". These may be altered if you wish to customize your client, although all these settings are also configurable via the Slyberoam Configurator:
- AlertLevel - 0 for no alerts, 1 for minimal alerts, 2 for mediocre alerts, 3 for verbose alerts. Verbose alerts display the contents of every packet sent and received. If you are having problems with Slyberoam, you can change the AlertLevel to 3 and then run Slyberoam to see if you can reproduce the error. At this AlertLevel, the log file will contain details of every packet that was received or transmitted for you to analyze. This is the same value shown by the Verbosity slider in the Configurator.
- TraceFile - an ASCII text file which serves as the log file.
- ConfigFile - an XML file which specifies the connection settings. A sample
XML file is shown below:
<?xml version="1.0" encoding="utf-8" ?> <slyberoam> <username>your_username</username> <password>your_password</password> <mac>F0:0D:F0:0D:F0:0D</mac> <serverip>101.101.101.101</serverip> <serverport>6060</serverport> <protocol>5</protocol> <pingperiod>180</pingperiod> <logonsuccessmsg>You have successfully logged on.</logonsuccessmsg> <logoffsuccessmsg>You have successfully logged off.</logoffsuccessmsg> <protocolerrormsg>Error in protocol</protocolerrormsg> </slyberoam>
Support
If for any reason the Slyberoam Service is unable to connect to the Cyberoam/24Online servers, please confirm that the settings you specified in the Slyberoam Configurator are correct, and then re-start the Slyberoam Service. This can all be done directly from the Slyberoam Configurator.
Before submitting a bug report or emailing me for help, try to generate a maximum verbosity log file and reproduce your problem. This way I will be able to analyze what went wrong. To do this, set the Verbosity to maximum (AlertLevel 3), and run Slyberoam for at least several minutes. While Slyberoam is running, try to reproduce your problem. Send me an email with the ASCII log file attached and mention your operating system version, the version of the .NET Framework that you have on your system, and any steps to reproduce the problem that you are encountering. You may reach me via my contact page.
Note that if you make any configuration changes, either with Slyberoam Configurator, or by directly editing the above files, you must stop and restart the Slyberoam Service for the changes to take effect. You do not have to reboot, unless the parameters you provided are incorrect and the Slyberoam Service cannot be stopped manually (i.e. program hang).
Future
Future updates will probably include:
- Automatically check if other PC's in the LAN are running Slyberoam, and if so, just do nothing
- Implementation of .NET Remoting to be able to configure Slyberoam from any PC within your LAN