Chapter 1 - Introduction

1.1 - Documentation foreword

The intention of this documentation is to get you up & running with InetPowerServer under OS/2 Warp (IPS/2) or Windows NT/2000 (IPS/32) as quickly as possible, in both simple and advanced configurations. A list of system requirements, step-by-step tutorials for system preparation & configuration, a robust (yet concise) technical reference are provided to quickly get you the concise information you need.

It's our hope that you find this document useful and informative. We welcome your comments, questions and any suggestions you may have on how we can improve it. Thank you for choosing InetPowerServer!

1.2 - About the Authors

1.2.1 - InetPowerServer

Hi, I'm Terje, the author of the InetPowerServer application. I've been using computers since the early 80s, putting away the games after my first six months or so with a computer at home. Today I work within the IT/telecom sector in systems design, development and integration. I don't really have any formal IT related education, but i'm changing that by going after MCSE and MCDBA certifications this year. I should have done this before, but my work situation just wouldn't allow it. The goal is to achieve MCSE status by September or October of this year, MCDBA in December and become a Windows 2000 MCSE by the summer of next year. The reason for not taking Windows 2000 certifications directly now is that I feel it is very important to get experience before going down that road.

As for programming, I almost always find existing offerings either too expensive, or not powerful enough for my needs and therefore I tend to write my own. When I ran a BBS in the 80s and early 90s I also wrote my own system for that which in some areas still has technology in to far better than any current packages. I write most my applications using the Pascal language, today mostly the Virtual Pascal and the Delphi 5 packages are used for development. When I started to code my BBS system years ago I decided to drop C(++) style programming because it requires far more time both writing code and debugging it afterwards. Pascal is far superior in that aspect and still doesn't limit the possibilities in the same matter as other languages.

For more information about me personally, please visit my web page at http://home.eunet.no/~ill/personal/index.html.

1.2.2 - Documentation

Yvon Letourneau

Hi, I'm Yvon, the guy who has been working hard to bring you the documentation for Terje's flagship, cross-platform product, InetPowerServer. It's a pleasure to be working on a project that is destined to be the be-all, end-all information supplement for such a quality product. I look forward to hearing from you folks with suggestions, comments and even new ideas that you feel will make this document better. (I hear the new ones are more shinier than the recycled ones).

I've been computing since the age of seven, and ever since then i've been learning about new technologies and innovations. A social life has been worked in to the mix as well, but for the most part it's been an independent lifestyle of fun and learning. Some of my studies have included those in Windows NT 4.0 network administration, TCP/IP, Novell IntraNetware 4.11 Administration, Technical Writing and presentations. Hard work in these areas have lead me to certifications as a CNA and MCP, all of which I'm very proud of. On the side, I dabble in OS/2 Warp programming, and am a member of IBM's PSP FixPak Beta Team. Currently employed in the sector of continuous data protection, I'm finding life at Legato Systems (Canada), Inc. a real treat for the mind and soul. Here I am taking the opportunity to expand my administration knowledge and skills into the realms of Tru64, SGI IRIX, HP-UX, AIX and Solaris.

My son, Matthew, a great kid, who is the inspiration for all my work, is also an inspiration for me to strive towards achieving my goals. This project is dedicated to you, lil' buddy. I extend special thanks to (in no particular order): Matthew (did I mention he's a great kid?), Jacques and Theresa (my folks), Estelle (my Grandma), Daniel (my Uncle, the guy who got me started in programming û yah, it's all your fault!), Terry Fuchs (you won't find a better source of encouragement, nor a better technical writing and presentations professor), Trevor Rainey, Jim Robinson, Rick Brown (you da man!), Robert Allen, Gene Aikins at Momotek Computer Specialties (www.momotek.com), Irv Spalten at FixPak PSP (one of the hardest working men in OS/2-business), Matt Hickson, Darcy Casselman, Bill Fuller, Tyler Archbold, Joe Karol, Peter Quinn and Konstantin Bondarchuk. To all you folks (wherever you may be), you've provided me with new opportunities and I sincerely appreciate your time, patience and help. I sit before you all (because I'm too tired to stand up), an enriched and happy man. Best wishes to all of you!

Best Regards,

Yvon Letourneau

Terje Flaarønning

For information about me as a person see section 1.2.1 above as I don't feel like repeating that here. As for my work with this documentation I have made the design/layout guidelines as well as written the more technical parts. Most of the body text is written by Yvon who kindly offered to help out. My intention with these documents is that it should be of a quality close to, or equal to professional documentation found in more expensive, commercial products.

1.3 - What is InetPowerServer?

Quite simply put, InetPowerServer (IPS) is a power-packed, feature-rich, secure, scalable and fully customizable Internet server, designed for uni-processor and multi-processor OS/2 Warp and Windows NT/2000 systems. It's built to serve the masses, with seamless operation and flexibility. IPS delivers server services based upon the most current Internet standard technologies, within a scalable framework. IPS maintains peak performance across the board under heavy loads, while delivering rich features for remote monitoring and administration.

IPS provides fully customizable Internet server components for file transfer (FTPd), web hosting (HTTPd) and mail serving (SMTPd and POP3d). In addition, IPS's services are RFC compliant, so any connecting client on any platform can experience the features and high performance that IPS has to offer.

IPS also has it's own extensions for remote management and configuration. What's even better is that IPS entirely customizable and configurable - both remotely or locally. The features of each IPS component are detailed below:

Feature

Description

Resource pooling

All IPS services are based on resource pooling, which means that IPS always has a pool of already-prepared resources for client connections to use. This highly increases performance in the acceptance of new connections and in the serving of the clients.

Automatic failure recovery

The IPS server automatically recovers from most possible error situations if something unexpected should happen.

Dynamic configuration

All IPS services offer dynamic configuration for client connection related settings, meaning that you don't need to restart the server if you change the configuration.

Plain text configuration and user database

All IPS configuration is done in plain text configuration files. This allows for easy editing of configuration and user data, as well as the ease of configuring settings for 3rd-party addons.

Site personalities

IPS offers the possibility to run multiple, completely different sites on the same computer, as well as the same site across several computers. Each personality can have its own user database, access control list and virtual tree setup. In addition, you can run one or more services based on the available components in each personality. **** <-- what does this mean? **** Multiple instances of the same service components are allowed within one personality as long as they are assigned different IP address/port pairs.

Multi-homed services

IPS offers the possibility to operate multi-homed though a single site personality, or through multiple, different site personalities for complete flexibility.

Virtual Directory tree

All object-sharing service components of IPS share a Virtual Directory tree, which you can build from any or all disk resources available on your computer or network. You can "mount" any OS resource to any Virtual Directory you wish.

Virtual Directory roots

Each object-sharing service component can use any directory in the Virtual Directory tree as a root directory for that service.

Remote management

IPS offers remote management and monitoring by providing an open remote administration interface, and a built-in, web-based management interface.

External authentication interface

IPS offers an interface for external password authentication, making it possible to integrate with already-existing user databases.

Advanced scripting interface

The RexxHook system in IPS allows for advanced scripting to expand the already massive feature set of IPS. RexxHooks can also be used to call hooks written in other compiled languages.

Fully customizable service responses

All responses given by the IPS service components are fully customizable. This works dynamically, in the same way as configuration files, making server restarts unnecessary.

A powerful variable and FIBs (Fill In the Blanks) system is makes it possible to insert almost any data from the service component and/or client connection into the responses or response files.

RFC compliant service components

All IPS services aim to be fully RFC compliant. Support for the latest RFC additions regarding services are almost always up-to-date in the latest IPS releases.

High-security, high-performance services

All IPS service components are designed for high-security, and have been hand-optimized for high peformance.

Multi-platform support

IPS supports multiple platforms: currently OS/2 Warp and Windows NT/2000. Configuration files for one platform are transferrable, unchanged, to the another. Even the user database can be used by services on both platforms, and can be even used simultaneously by both platforms!

1.3.1 - FTP component

IPS's robust FTPd supports provides nearly all functionality of an FTPd defined by the latest Internet standards. In addition to this, IPS's own SITE commands increase productivity by providing complete remote site administration suite. Some of the IPS FTPd's highlights include:

Feature

Description

Full transfer resume support

Both file downloads and uploads support resuming of aborted transfers.

Extensive set of SITE commands

IPS offers an extensive set of SITE commands for both users and administrators. This can be further extended by the use of RexxHooks.

Support for the latest protocol extensions

IPS supports all current FTP protocol extensions û including MLSD, MLST, OPTS and more.

High client and firewall compatibility

A high number of clients have been tested, and have proved to work very well with IPS. IPS has also been well-tested in it's processing of FTP PORT and PASV commands in a firewall-friendly manner.


The complete list of FTPd features and their details can be found in the Technical Reference section of this document (see Chapter 5). New features are always in development!

1.3.2 - HTTP component

IPS provides a highly optimized, completely HTTP/1.1 Internet standards compliant web server with CGI capabilities. It's ready to go, and is constantly being improved. For more details on IPS's HTTPd implementation, please see Chapter 5.

Feature

Description

Virtual Hosting

Host header support is fully supported. For you, this means you can host any number of domains on your single IPS server, with this standardized HTTP/1.1 feature.

1.3.3 - POP3 component

IPS's POP3 mail service provides efficient mailbox services in accordance with the Internet standards. For more details on IPS's POP3 implementation, please see Chapter 5.

Feature

Description



1.3.4 - SMTP component

The SMTP mail service component provides efficient inbound and outbound email services for your Inet server. For details on IPS's SMTP implementation, please see Chapter 5.

Feature

Description



1.3.5 - The story behind it all

The development which lead to IPS started years ago, when I wanted to run an OS/2-based FTP server at one of my customer's sites. I tried the IBM FTP server included with OS/2, but found that to be causing all kinds of problems for various FTP clients, due to the OS/2-specific directory listings the daemon sent. I searched the Internet for other offerings but found nothing which supported OS/2. So, I started to write my own FTP daemon called "tftpd", Terje's FTPd! Prior to this, I had never written a TCP/IP application. I quickly discovered that the name tftpd was not a good choice, as the TCP/IP community already had something different called Trivial FTP (tftp). The project was renamed to zftpd. The z didn't mean much, but I had to find another name.

I worked on zftpd for some time, and zftp acquired many users around the globe. zftpd supported the FTP standards very well, and most clients worked fine with the daemon. The features of the daemon however, were limited, so after working with zftpd a few years or so, I decided to start a completely new project. This project is known today as InetPowerServer (or IPS for short). IPS was to be developed professionally like any other development project at work, even though it was a private project. That meant lots of specification work on "paper" before coding. I've not been able to keep that going like this all the time because of the heavy development required to make IPS real, and my rather limited spare time. Even if I'd used my spare time on this (which I still have very little of), I had already put 8,000 hours into the project (including the tftpd and zftpd projects). When added up, since November/December 1999 is nearly a year of working round-the-clock.

Today, IPS is like a development baby which I develop new code techniques for, and test them out before using them at work projects. The project continues to support both OS/2 Warp and Windows NT/2000 platforms. If you wonder why the "I" in IPS stands for Inet, not Internet, it's because IPS is meant to be an enterprise-wide Intranet solution, as well as an Internet and Extranet solution.