home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / sockd.zip / SOCKD.DOC < prev    next >
Text File  |  1998-08-15  |  13KB  |  284 lines

  1. If some of you are interrested, I developped a new PM version of my
  2. sockd server for OS/2.
  3. Due to the fact socks V4 protocol requires "DNS name" support, I used the
  4. DNS kit or DDNS code from Warp Server on the same OS/2 gateway workstation.
  5.  
  6. A socks support is required on the end-user stations to enable these to
  7. use the sockd gateway. For my V4 tests, I used the "socks" code from OS/2 V4,
  8. Web Explorer 1.2, Netscape/2  and ...
  9.  
  10. Sockd 1.19:
  11. - Change the limitation on the concurrent number of clients to support bigger
  12.   configuration till 510 (in place of 255). To get a correct level of performances
  13.   there are now three categories of configuration: between 8 and 60 parallel clients,
  14.   between 61 and 199, and betweem 200 and 510. The graphical display of the activity
  15.   is performed session per session for first category, per five sessions for the
  16.   second and per ten for the third. The THREADS keyword of the OS/2 config.sys must
  17.   be adapted to what sockd requires (at least the max number of sessions plus 4, and
  18.   plus what you need for the system and other applicatons).
  19.  
  20. Sockd 1.18:
  21. - Correct Socks UDP Associate support when destination is set only in first
  22.   data frame (like with Sockscap 1.03)
  23. - Add a new parameter to customize the time-out value for session establishment
  24.   (previously set as a fixed 2 minutes delay now can be customized between 1 and
  25.   30 minutes).
  26.  
  27. Sockd 1.17:
  28. - Correct the Socks V4 BIND command support damaged since version 1.15
  29.   (the first height data bytes were truncated in the FTP data transfer sess.)
  30.  
  31. Sockd 1.16:
  32. - An external queue is added (\QUEUES\SOCKD) to permit configuration changes
  33.   to be applied from batch jobs (or to reset sockd from its profile and so
  34.   to change the number of concurrent users). The new command is : sockdmsg.
  35.   Support is given for parameters as:
  36.   1) -c [sockd.cfg] : to reset from a "sockd.cfg" configuration file. If no
  37.      path information is given, sockd looks for the file in ETC directory.
  38.   2) -p [sockd.pro] : to restart sockd from "sockd.pro" in ETC directory or
  39.      another profile file.
  40.   3) -l : to reset the logfile from a batch clist..
  41. - due to TCP/IP 4.1 the gettimeofday macro is replaced by DosGetDateTime in
  42.   sockd and rpingv5.
  43. - I didn't find a way to correct data corruption with buffer greater than 512
  44.   bytes although I tried four different compress/decompress routines and I decided
  45.   to suppress the choice of compression on proxy sessions.
  46. - The dynamically allocated tables previously set with malloc are now through
  47.   DosAllocMem/DosSubAllocMem process. This method is sparing alloc/free at each
  48.   client session.
  49. - An HTML documentation written by Steve Dale (IBM) is added as htmldoc.zip
  50.   (thank you Steve).
  51.  
  52. Sockd 1.15:
  53. - suppress a second positive answer in BIND procedure.
  54. - implement IDEA encryption on proxy CONNECT and BIND sessions.
  55. - add an option to support only encrypted sessions with proxy...
  56.  
  57. Sockd 1.14:
  58. - correct a TRAP when opening the "proxy" setup window if NO proxy was defined
  59.   in the sockd.cfg file
  60. - improve the proxy support adding userid/password authentication based on
  61.   "node names" and a first "compression" support to prepare a real compression
  62.   and encryption in next version.
  63.   THERE IS NO ENCRYPTION YET IN THIS VERSION.
  64.   The compression technic used is described in RFC1978. It is NOT efficient
  65.   but it doesn't use CPU intensively. It was set for testing and preparing
  66.   the next step.
  67.  
  68. Sockd 1.13:
  69. - add support for proxy connections between sockD servers (no authentication
  70.   and NO encryption support at this time... ).
  71.  
  72. Sockd 1.12:
  73. - correct the "adapter" spin in the "profile" setup window... It was
  74.   in any case giving "sl0"...
  75. - add support for sockd.log archiving. By sample it can be saved every
  76.   day into a "sockdlog.NNN" file and only the seventh last days were kept.
  77.   A sample REXX program (sockdrep.cmd) is also included to write a report
  78.   of sockd utilization from these "archived" sockdlog files (in the current
  79.   directory.
  80. - add an option to permit ONLY socks V5 userid/password authentication if
  81.   userids are specified in the "permit" statement(s).(In V4 there is NO
  82.   password checking).
  83.  
  84. Sockd 1.11:
  85. - correct SYS3175 on systems with more than 256 fonts...
  86. - correct SYS3175 at end of initialization if "no logging" was selected.
  87. - add parameters to customize TCP session time-out to support "long" telnet
  88.   connections. A UDP time-out parameter was also added for UDP Associate
  89.   sessions.
  90.  
  91. Sockd 1.10:
  92. - many corrections on PM  "font" support and presentation...
  93.  
  94. Sockd 1.09:
  95. - convert the auto-dial adapter name to lower case before calling "ioctl"
  96.   It corrects problems with auto-dial function.
  97. - add support for "font selection"...
  98.  
  99. Sockd 1.08:
  100. - Tested on OS/2 Warp V4
  101. - auto-configuration of IP alias addresses from OS/2 V4 MPTS.
  102. - Now compiled with Visualage C++ V3 and OS/2 Toolkit V3.
  103. - Enhanced help with RFC 1918 to describe "reusable" IP subnet addresses
  104.   and setup of DDNS server (from Warp Server).
  105. - A correction was build on the UDP Associate protocol to support a destination
  106.   address of 0 in the  command and to get the real destination from the first
  107.   frame sent. Support for frame sequencing was also added but with a limit
  108.   of 8 KBytes as buffer size.
  109. - In addition to flags "811" I add support for "851"(<UP,POINTTOTPOINT,RUNNING>)
  110.  
  111.  
  112. Sockd 1.07:
  113. - To correct a "SYS3175" from time to time at the end of "initialization".
  114.  
  115. Sockd 1.06:
  116. - Support for UDP Associate (V5 only as described in RFC 1928) is added.
  117.   An "rpingv5" commmand is also given as sample to ping hosts on the other
  118.   side of the "firewall". It uses UDP Associate to connect to the sockd
  119.   server with a destination port of "1". The  sockd opens a "raw" socket
  120.   for "icmp" if dest port is 1 (otherwise a UDP socket for standard
  121.   UDP associate applications)... The command pings by default every 3
  122.   seconds (and not every second) to go through the firewall.
  123.   To use it gives the firewall IP address as additional parameter.
  124.   By sample : "rpingv5 www.yahoo.com 9.36.71.9".
  125.  
  126.  
  127. Sockd 1.05:
  128. 1) Auto-Dial setup dialog window had a problem to setup another adapter
  129.    than sl0
  130. 2) Put the initialization process in a thread
  131.  
  132. What's new in sockd 1.04:
  133. 1) PM code was improved to suppress "flickering".
  134. 2) Correction of sockets opened by error during auto-dial process.
  135. 3) Four levels of logging (to avoid too big file if sockd is running
  136.    for a long time).
  137.  
  138. Functions added in sockd 1.03:
  139. 1) Support for switched auto-dial connection to an Internet provider.
  140.   For it, you have to customize two batch files:
  141.   1) sockdial.cmd to dial and logon to the service provider
  142.   2) sockclos.cmd to close the connection (after a delay without session)
  143.   These two "exec" files must be put in a directory set in your "path" statement
  144.   Sockd checks the status of the dial-up connection with the "flags" of the
  145.   the adapter status. On the time being only "811" is considered as OK.
  146.   If you need another status support, please send a note to
  147.     GILLAIN at BRUVMIS1
  148. 2) In addition to the auto-dial function, I try to add "auto" configuration
  149.   for the sockd.rte (the route file) and in auto-dial I put by default
  150.   a sockd.cfg giving access to anybody from subnets connected on "fixed"
  151.   adapters (LAN) to the public network (all ports)... Noboby has access
  152.   to any TCP port on local "LAN" from the "external" network (through the
  153.   auto-dial adapter).
  154. Corrections:
  155. 1) Socks V4 works again (it was damaged in 1.02)
  156. 2) One "extra" byte suppressed in socks V5 DNS support
  157.  
  158. Test configuration
  159.  
  160.                  ----
  161.             ----     ---
  162.         ----            ----
  163.     ----    Internet        --
  164.        ----                    -
  165.            ------ IBM IGN   --
  166.                 ---*-------
  167.                    *
  168.                    *
  169.                 *******                     testuser
  170.                  *   *  Dial-up            ----------
  171.                   * *   modem              *Thinkpad*
  172.                    *                       ----*-----
  173.       * *          *                           *
  174.     *     *  ------*------    Ethernet         *9.36.71.10
  175.    * T-R   *** PS/VP     *---------------------*---
  176.     *     *  * bebd238   *9.36.71.9
  177.       * *    -------------
  178.          9.132.89.238
  179.  ibm.com                          philg.benelux.ibm.com
  180.  9.0.0.0                             9.36.71.0
  181.  
  182. With a correct setup, it is possible to use Internal servers (ibm.com)
  183. through sockd on the PS/VP. If an external server is used (by sample
  184. www.yahoo.com) the auto-dial is automaticcally used.
  185. The choice is done through "sockd.rte" configuration. By default sockd
  186. gives only access to the "local" subnet on the LAN adapter (9.132.88.0).
  187. The "auto-dial" adapter is automatically set as giving access to world.
  188.  
  189. Functions added in sockd 1.02:
  190. 1) A partial support of Socks V5 protocols:
  191.   a) no authentication and userid/password authentication
  192.   b) IP address V4 and DNS name in CONNECT and BIND for Version 5
  193.   c) IP addresses V6 are NOT supported (I need another TCP/IP stack for that)
  194.   d) GSSAPI is not supported (it requires OS/2 DCE V2)
  195.   e) UDP Associate is also NOT implemented (it is a sort of IP tunneling)
  196. 2) A test rftp (rftpv5.exe) command is provided for testing V5 protocols
  197.   It supports only some FTP subcommands (dir, get, put, del, mget and pwd).
  198.   This test command can be used without a Socks gateway
  199.  
  200.   rftpv5 ps.boulder.ibm.com
  201.  
  202.   or through a Socks V5 gateway giving its address as second parameter
  203.  
  204.   rftpv5 ps.boulder.ibm.com 9.36.71.9 by sample
  205.  
  206.  
  207. Functions included in sockd 1.01 are:
  208. 1) support of SOCKS_BIND for FTP application (tested only with socksbeta)
  209. 2) server port number modifiable
  210. 3) logging for successfull and denied sessions (can be disabled)
  211. 4) easy configuration (sockd finding IP addresses from the stack)
  212.    (but it should use previous configuration files)
  213. 5) dynamic reset (without stopping the program) for testing new config
  214.  
  215. You can get the executable code as "sockd.zip" by anonymous FTP on
  216. bedb237.benelux.ibm.com (9.132.89.237) ...
  217. The source code (IBM Internal Use Only) is available on request (send a note).
  218.  
  219. Problems ?:
  220. -----------
  221.  
  222. 1)If sockd doesn't start when named is running:
  223. From time to time sockd blocks in a "gethostbyaddr()" macro used to convert
  224. one of the local IP address in a name. The solution is to stop named (CTRL-C),
  225. start sockd, when it is running, restart named.
  226.  
  227. 2)If after stopping sockd, you can NOT restart it, wait for 2 minutes
  228. and then restart it (the port number 1080 is blocked, sockd tries to "REUSE"
  229. it but ...)
  230.  
  231. 3)If your configuration is limited to one LAN adapter and one dial adapter,
  232. it is better to test sockd without configuring it...
  233. During tests use the view menu option, after check the sockd.log file.
  234.  
  235. 4)If you have really a problem to setup a name server on the gateway
  236. station, define a "hosts" file. For that, when you are testing your
  237. "sockdial.cmd" after the connection and authentication are successfully
  238. completed, use :
  239.  
  240.   host www.yahoo.com
  241.  
  242. in an OS/2 Window.You are able to get the IP addresses of your favorite servers.
  243. If you install a "completed" hosts file in the ETC directory of the end-user PC
  244. you can test sockd with WebEx (socks V4) without setting a name server.
  245. With a name server and its caching mechanism, you have access to any server.
  246. With an hosts file access is limited...
  247.  
  248. 5)To support socks V5 DNS, the dial-up connection is started automatically
  249. if the name can NOT be locally translated... A better solution is perhaps
  250. to define a list of the "internal" domain names, and to start the connection
  251. only if the request is for another domain name.
  252. On the time being, sockd start the dial-up connection for V5, before checking
  253. if the connection is "permitted" except if the DNS name can be locally
  254. converted (this local checking through named can take 1 minute (time-out).
  255. After the connection is established, response times are normal...
  256.  
  257. 6)In this version, only the flags "811" (<UP,POINTTOPOINT>) is considered
  258. as a "good" status (connection established) on the dial-up adapter.
  259. Support was already added for flags "851" (<UP,POINTTOPOINT,RUNNING>).
  260. If the "auto-dial" doesn't work for you, please check these flags with:
  261.  
  262.  ifconfig ppp0  (by sample)
  263.  
  264. Send a note to me and I'll add the required support...
  265.  
  266. 7)With current V4 applications like WebEx, the first session must be
  267. done to a DNS name translatted locally (named or hosts file).
  268. After the dial-up connection is established, names can be translatted by
  269. the Internet provider name server, and cached in the local nameD.
  270.  
  271. 8) The DNS kit nameD server can block if the system is fully "socksified".
  272. Don't hesitate to rename the "socks.cfg" file in the ETC directory when
  273. you are running sockD. Unfortunately sockD was not YET tested with the DNS
  274. server of WARP Server...
  275.  
  276. 9)Using WebEx through sockd, some ".gif" files are not correctly received
  277. I am investigating why and how to improve it.
  278.  
  279.  
  280. Any suggestion or question to Philippe Gillain
  281.  
  282.     Philippe_Gillain@be.ibm.com
  283.  
  284.