Short: Configurable ARexx-based proxy server Author: cmdo@gte.net (Casey Halverson) Uploader: cmdo gte net (Casey Halverson) Type: comm/www Architecture: m68k-amigaos RexxProxy is an ARexx-based proxy server which you can on your Amiga computer using a TCP stack such as Miami, AmiTCP, etc. RexxProxy uses almost the same principles which ARexxWebServer (ARWS) and several other ARexx-based http applications I have written in the past. Features: o Small - only running when in use o Keeps access logs of document requested as well as time and date of proxy access o Supports a keyword-based url deny list o Allows alias of long address to psuedo URLs o Faster downloading routines o Custom footer messages only displayed on text/html documents o Multiple accesses at one time How is a proxy useful on the Amiga? Proxies can be useful in a number of ways. You can use it to block websites to users, alias long URLs to one word, log web access from your computer system, host web access for multiple computers on an ethernet network, allow anonymous viewing of websites while working on a PC, or even use it to by-pass firewalls and proxies which currently exist in your environment. However, make sure you have permission before doing so. I am not responsable for any misuse of RexxProxy. How does a proxy work? A proxy is very simple. It acts exactly like an HTTP/1.0 server, however, becides just providing local files, it allows access to the entire internet. This is done by a simple "GET http://" sent to the proxy, and an enter. The proxy then processes the request, and outputs a standard HTTP/1.0 header. How does RexxProxy work? RexxProxy does this, with a few extra features. With every user access, RexxProxy appends a log file containing the time, date, and site requested. It will display the URL in the log even if the access was denied, or the page did not exist. A denied URL is determined by scanning the entire URL for a keyword. If any keywords are found which are on a keyword list, the request is simply denied by a text message. Examples of this are given in the provided banned.txt file. Aliases are also controled by an alias list. An alias list simply requires the true URL, a space, and the wanted alias. Examples are given in the provided alias.txt file. Also, the html document displayed during a deny can be edited. This document is called denied.html. A footer is created at the bottom of each page to show that the proxy is in action. You may change this footer by changing bottom.html file. a RexxProxy author line is automatically placed at the bottom by the proxy software. How do I set up RexxProxy? This depends on the stacker you are using, however, here are some example setups for AmiTCP and Miami. Some people have complained to me about these configuration strings not working ... all I can say is that they work here. For those who get lost, you want to set this up as a dos wait server. Also, make sure you have RexxMast running! Infact, put this in your startup if it is not already. ****************************************************************************** - Miami - Enter this into your InetD: Service : RexxProxy Socket : Stream Protocol : tcp Wait : dos User : root Server : - Name : c:rx (or wherever you have the rx program) Args : proxy:rexxproxy.rexx (or wherever you have the rexxproxy archive) Enter this into your services: Name : RexxProxy ID : 8000 or whatever port you wish to use Protocol : TCP - AmiTCP - Enter this into your inetd.conf: RexxProxy stream tcp dos bin - c:rx proxy:rexxproxy.rexx Enter this into your services: RexxProxy 8000/tcp RexxProxy ****************************************************************************** Misc. Information: I personally developed this software with the specific intent bypass a proxy server in which a loyal cartoon dog, which will remain nameless, now filters all urls and texts for keyword content. In order to prevent users from by-passing the proxy entirely simply by turning it off (heh), they firewalled port 80. I am not sure how other setups are, but most other ports are left open. Some ports to use on firewall systems would be necessary operations on ports 23, 25, 110, 113, 8000 -- being proxy server port itself, etc. I am not endorsing such misusage, and you should always ask before doing so. A word on security: Remember that RexxProxy is not a fool-proof security system. One can switch off the proxy settings, delete the server from the hard-drive or from the inetd entry, and other nasty things. I am not responsable for any losses or damages which result in usage. Such "security" features could possibly be only be suitable for small children and users who do not know much about computers. Also, since this software uses an external program called "httpget", there could be unseen security issues. If so, I am not responsable for losses or damages. Future: In the future I hope to incorperate more security features such as document keyword detection, encryption, passwords, maintance utilties, user levels, etc. and also avoid the use of external programs to fetch internet data. Currently, I feel that httpget is much faster then any ARexx routine I have done so far. Also, I am planning on releasing several programs in the near future which I have done. One is called RexxMail (A hotmail-like multiuser email service), ARexxMessageBoard, and possibly my software and hardware plans to control lights, devices, and read information as well via the world wide web. Check out my amiga system at http://wot.dyn.ml.org/ for a demo of such software. Contact: You can reach me at cmdo@gte.net, or visit my system at http://wot.dyn.ml.org/ and drop me a note on the message board.