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