Question List (Last updated 03-05-96): Q1. What is SOCKS? Q2. What is SOCKS5 different from SOCKS4? Q3. Is SOCKS5 interoperable with SOCKS4? Q4. Where can I get it? Q5. Are there any SOCKS related mailing lists? Q6. Are there binaries available? Q7. How about Windows? Can they use SOCKS? Q8. How about the Mac? Q9. What do I have to do to modify programs to use SOCKS? Q10. Does SOCKS handle UDP? Q11. How does SOCKS interact with DNS? Q12. What is a single-homed and multi-homed firewall? Q13. Is there an RFC for SOCKS? Q14. What does SOCKS stand for? Q15. Why does the password echo when I run rftp from SOCKS? Q16. How do you traverse multiple firewalls (socksified SOCKS server?) -------------------------------------------------------- Q1. What is SOCKS? SOCKS is a networking proxy mechanism that enables hosts in one side of SOCKS server to gain full access to hosts in the other side of the SOCKS server without requiring direct IP reachability. It works by redirecting connection requests from hosts in one side to hosts in the other side to a SOCKS server, who authenticates and authorizes the requests, establishes a proxy connection and passes data back and forth. It has been typically used as a network firewall which enables hosts behind a SOCKS server to gain full access to the Internet while protects unauthorized access from the Internet to the internal hosts. There are two major versions of SOCKS, SOCKS4 and SOCKS5. David Koblas is the original author. More information about SOCKS can be found at http://www.socks.nec.com/. Question List Q2. What is SOCKS5 different from SOCKS4? The main differences between SOCKS5 and SOCKS4 are: 1. SOCKS4 doesn't support authentication while SOCKS5 has the built-in mechanism to support a variety of authentications methods. 2. SOCKS4 doesn't support UDP proxy while SOCKS5 does. 3. SOCKS4 clients require full support of DNS while SOCKS5 clients can rely on SOCKS5 server to perform the DNS lookup. More details can be found in Introduction to SOCKS. Question List Q3. Is SOCKS5 interoperable with SOCKS4? SOCKS5 protocol doesn't include any provision for supporting SOCKS4 protocol. However, it is a simple matter of implementation. The SOCKS5 implementation from NWSL of NEC USA does support the SOCKS4 protocol. The server supports both V5 and V4 clients and can communicate with other V5 and V4 servers. Question List Q4. Where can I get it? Both SOCKS4 and SOCKS5 sources are available via anonymous ftp at ftp.nec.com in /pub/socks They are also available via http at http://www.socks.nec.com/ Both packages include basic clients for telnet, ftp, finger, and whois. In addition, NEC's SOCKS5 implementation includes archie, ping and traceroute. The standard NCSA distribution of X Mosaic comes with SOCKS4 support as an enableable option (available from ftp.ncsa.uiuc.edu in /Mosaic). The standard httpd distribution in info.cern.ch:/pub/www/src contains SOCKS4 hooks. Also, Netscape's web browsers come with SOCKS4 support. Several other clients are available in the same directory at ftp.nec.com as well as in http://www.socks.nec.com/ Question List Q5. Are there any SOCKS related mailing lists? Yes, there are three SOCKS related mailing lists, the original SOCKS mailing list and the new SOCKS5 and SocksCap mailing lists. To join the SOCKS mailing list, send email to: majordomo@socks.nec.com with subscribe socks your@email.address in the body. to join the SOCKS5 mailing list, send email to: majordomo@socks.nec.com with subscribe socks5 your@email.address in the body. and to join the SocksCap mailing list, send email to: majordomo@socks.nec.com with subscribe sockscap your@email.address in the body. All these mailing lists are archived at http://www.socks.nec.com/ Question List Q6. Are there binaries available? Typically not. The SOCKS5 package from NEC USA uses "autoconf" so that the installation of the software is straightforward. Nevertheless, the installation of SOCKS4 will need to modify some configuration information that is hard-coded into the library for additional security. There are some binaries for some SOCKS clients for Windows (see next question). Question List Q7. How about Windows? Can they use SOCKS? Yes. There are SOCKSified clients known as the PC SOCKS Pack available via anonymous FTP at ftp.nec.com in /pub/socks/socks4/PC_Socks_Pack Networking Systems Lab. (NWSL) of NEC USA provides a DLL called SocksCap which can SOCKSify many commercial and public WinSock stacks enabling WinSock based applications to use SOCKS. You can download the SocksCap from http://www.socks.nec.com/download.html or ftp it from ftp://ftp.nec.com/pub/socks/sockscap/ More information about SocksCap can be found at http://www.socks.nec.com/sockscap.html. Netscape's web browser for Windows comes with SOCKS4 support. NCSA's Mosaic for Windows can also use SOCKS4 by working via a proxy CERN httpd daemon that has SOCKS4 enabled. Another options is Peter Tattam's SOCKSified Trumpet Winsock (currently in beta). http://www.trumpet.com.au/wsk/winsock.htm. Question List Q8. How about the Mac? Netscape's web browser for Mac supports SOCKS and the newest Mosaic for Mac (in beta now) will also support SOCKS. [has anyone tried?] Question List Q9. What do I have to do to modify programs to use SOCKS? The specific details of SOCKSification can be found at http://www.socks.nec.com/how2socksify.html. Basically, you need to recompile the sources with a few pre-processor directives to intercept the regular calls to things like bind(). SOCKS5 library can SOCKSify both TCP and UDP applications while SOCKS4 library can only SOCKSify TCP based programs. NWSL of NEC USA provides a set of tools that can dynamically SOCKSify programs without modifying nor recompiling them. One is SOCKS5 shared library for certain UNIX platforms and the other is SocksCap for MS-Windows. Datails can be found at http://www.socks.nec.com. Question List Q10. Does SOCKS handle UDP? Yes and no. SOCKS5 protocol includes support of UDP but SOCKS4 does not deal with UDP. The SOCKS5 package from NWSL of NEC USA includes a socksified archie client program which is an UDP application. Question List Q11. How does SOCKS interact with DNS? In a SOCKS4 environment, SOCKS clients are required to be able to resolve IP address of remote hosts no matter whether they are local hosts or internet hosts. Therefore DNS must be configured in such a way that SOCKS clients' resolver is able to do so. Special arrangement needs to be made when more than one DNS servers are being used (such as dual DNS environment). In a SOCKS5 environment, the above requirement is no longer necessary. SOCKS clients can passing the un-resolvable host names to SOCKS servers and the servers will try to resolve those names. As a result, so long as one of the resolvers used by either SOCKS clients or SOCKS servers is able to resolve a given host, SOCKS will work OK. Question List Q12. What is a single-homed and multi-homed firewall? Multi-homed means that the firewall has multiple network interfaces and that the firewall does not forward packets. This is highly recommended. Single-homed firewalls only have one network interface card. This can be useful if a choke (like a router) can filter packets not coming from the firewall, since SOCKS will cause the connections to appear as though they are coming from the firewall. Question List Q13. Is there an RFC for SOCKS? Although there is no 'official' RFC, there is a document describing SOCKS4's protocol. In addition, a working group of the IETF is currently reviewing a draft for SOCKS5 protocol, also known as Authenticated Firewall Traversal (AFT). It is currently a Proposed Standard. It was submitted by Marcus Leech . The draft can be ftp'ed from ds.internic.net in /internet-drafts/draft-ietf-aft-socks-protocol-v5-05.txt Question List Q14. What does SOCKS stand for? SOCK-et-S; it was one of those "development names" that never left. Question List Q15. Why does the password echo when I run "rftp" from SOCKS4? The password only echoes for the username anonymous. Since this really isn't a password anyways, this is considered a feature. Question List Q16. How do you traverse multiple firewalls (socksified SOCKS server?) The 'standard' SOCKS4 server program, sockd, has not been socksified. An older (v3) sockd is available for HP-UX as-is, on: ftp.cup.hp.com in /dist/socks/socks.tar.gz The SOCKS5 implementation from NWSL of NEC USA comes with the support of multiple firewalls traverse. Datails can be found at http://www.socks.nec.com. Question List -------------------------------------------------------- Contributors: * rk@Unify.Com - Ron Kuris, Unify Corporation * steve@syl.dl.nec.com - Steven Lass, NEC USA * wlu@syl.dl.nec.com - Wei Lu, NEC USA