updated manual to 4.7.0
[xboard.git] / manual / html_node / Firewalls.html
1 <html lang="en">
2 <head>
3 <title>Firewalls - XBoard</title>
4 <meta http-equiv="Content-Type" content="text/html">
5 <meta name="description" content="XBoard">
6 <meta name="generator" content="makeinfo 4.13">
7 <link title="Top" rel="start" href="index.html#Top">
8 <link rel="prev" href="Chess-Servers.html#Chess-Servers" title="Chess Servers">
9 <link rel="next" href="Environment.html#Environment" title="Environment">
10 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
11 <meta http-equiv="Content-Style-Type" content="text/css">
12 <style type="text/css"><!--
13   pre.display { font-family:inherit }
14   pre.format  { font-family:inherit }
15   pre.smalldisplay { font-family:inherit; font-size:smaller }
16   pre.smallformat  { font-family:inherit; font-size:smaller }
17   pre.smallexample { font-size:smaller }
18   pre.smalllisp    { font-size:smaller }
19   span.sc    { font-variant:small-caps }
20   span.roman { font-family:serif; font-weight:normal; } 
21   span.sansserif { font-family:sans-serif; font-weight:normal; } 
22 --></style>
23 </head>
24 <body>
25 <div class="node">
26 <a name="Firewalls"></a>
27 <p>
28 Next:&nbsp;<a rel="next" accesskey="n" href="Environment.html#Environment">Environment</a>,
29 Previous:&nbsp;<a rel="previous" accesskey="p" href="Chess-Servers.html#Chess-Servers">Chess Servers</a>,
30 Up:&nbsp;<a rel="up" accesskey="u" href="index.html#Top">Top</a>
31 <hr>
32 </div>
33
34 <h2 class="chapter">6 Firewalls</h2>
35
36 <p>By default, XBoard communicates with an Internet Chess Server
37 by opening a TCP socket directly from the machine it is running on
38 to the ICS. If there is a firewall between your machine and the ICS,
39 this won't work. Here are some recipes for getting around common
40 kinds of firewalls using special options to XBoard. 
41 Important: See the paragraph in the below about extra echoes, in
42 <a href="Limitations.html#Limitations">Limitations</a>.
43
44    <p>Suppose that you can't telnet directly to ICS, but you can telnet
45 to a firewall host, log in, and then telnet from there to ICS. 
46 Let's say the firewall is called &lsquo;<samp><span class="samp">firewall.example.com</span></samp>&rsquo;. Set
47 command-line options as follows:
48
49 <pre class="example">     xboard -ics -icshost firewall.example.com -icsport 23
50 </pre>
51    <p class="noindent">Then when you run XBoard in ICS mode, you will be prompted
52 to log in to the firewall host. This works because port 23 is the
53 standard telnet login service. Do so, then telnet to ICS, using a
54 command like &lsquo;<samp><span class="samp">telnet chessclub.com 5000</span></samp>&rsquo;, or whatever command
55 the firewall provides for telnetting to port 5000.
56
57    <p>If your firewall lets you telnet (or rlogin) to remote hosts but
58 doesn't let you telnet to port 5000, you may be able to connect to the
59 chess server on port 23 instead, which is the port the telnet program
60 uses by default.  Some chess servers support this (including
61 chessclub.com and freechess.org), while some do not.
62
63    <p>If your chess server does not allow connections on port 23 and your
64 firewall does not allow you to connect to other ports, you may be able
65 to connect by hopping through another host outside the firewall that
66 you have an account on.  For instance, suppose you have a shell
67 account at &lsquo;<samp><span class="samp">foo.edu</span></samp>&rsquo;. Follow the recipe above, but instead of
68 typing &lsquo;<samp><span class="samp">telnet chessclub.com 5000</span></samp>&rsquo; to the firewall, type
69 &lsquo;<samp><span class="samp">telnet foo.edu</span></samp>&rsquo; (or &lsquo;<samp><span class="samp">rlogin foo.edu</span></samp>&rsquo;), log in there, and
70 then type &lsquo;<samp><span class="samp">telnet chessclub.com 5000</span></samp>&rsquo;.
71
72    <p>Suppose that you can't telnet directly to ICS, but you can use rsh
73 to run programs on a firewall host, and that host can telnet to ICS. 
74 Let's say the firewall is called &lsquo;<samp><span class="samp">rsh.example.com</span></samp>&rsquo;. Set
75 command-line options as follows:
76
77 <pre class="example">     xboard -ics -gateway rsh.example.com -icshost chessclub.com
78 </pre>
79    <p class="noindent">Then when you run XBoard in ICS mode, it will connect to
80 the ICS by using <samp><span class="file">rsh</span></samp> to run the command
81 &lsquo;<samp><span class="samp">telnet chessclub.com 5000</span></samp>&rsquo; on host &lsquo;<samp><span class="samp">rsh.example.com</span></samp>&rsquo;.
82
83    <p>Suppose that you can telnet anywhere you want, but you have to
84 run a special program called <samp><span class="file">ptelnet</span></samp> to do so.
85
86    <p>First, we'll consider the easy case, in which
87 &lsquo;<samp><span class="samp">ptelnet chessclub.com 5000</span></samp>&rsquo; gets you to the chess server. 
88 In this case set command line options as follows:
89
90 <pre class="example">     xboard -ics -telnet -telnetProgram ptelnet
91 </pre>
92    <p class="noindent">Then when you run XBoard in ICS mode, it will issue the
93 command &lsquo;<samp><span class="samp">ptelnet chessclub.com 5000</span></samp>&rsquo; to connect to the ICS.
94
95    <p>Next, suppose that &lsquo;<samp><span class="samp">ptelnet chessclub.com 5000</span></samp>&rsquo; doesn't work;
96 that is, your <samp><span class="file">ptelnet</span></samp> program doesn't let you connect to
97 alternative ports. As noted above, your chess server may allow you to
98 connect on port 23 instead.  In that case, just add the option
99 &lsquo;<samp><span class="samp">-icsport ""</span></samp>&rsquo; to the above command. 
100 But if your chess server doesn't let you connect on port 23, you will have
101 to find some other host outside the firewall and hop through it. For
102 instance, suppose you have a shell account at &lsquo;<samp><span class="samp">foo.edu</span></samp>&rsquo;. Set
103 command line options as follows:
104
105 <pre class="example">     xboard -ics -telnet -telnetProgram ptelnet -icshost foo.edu -icsport ""
106 </pre>
107    <p class="noindent">Then when you run XBoard in ICS mode, it will issue the
108 command &lsquo;<samp><span class="samp">ptelnet foo.edu</span></samp>&rsquo; to connect to your account at
109 &lsquo;<samp><span class="samp">foo.edu</span></samp>&rsquo;. Log in there, then type &lsquo;<samp><span class="samp">telnet chessclub.com 5000</span></samp>&rsquo;.
110
111    <p>ICC timestamp and FICS timeseal do not work through some
112 firewalls.  You can use them only if your firewall gives a clean TCP
113 connection with a full 8-bit wide path.  If your firewall allows you
114 to get out only by running a special telnet program, you can't use
115 timestamp or timeseal across it.  But if you have access to a
116 computer just outside your firewall, and you have much lower netlag
117 when talking to that computer than to the ICS, it might be worthwhile
118 running timestamp there.  Follow the instructions above for hopping
119 through a host outside the firewall (foo.edu in the example),
120 but run timestamp or timeseal on that host instead of telnet.
121
122    <p>Suppose that you have a SOCKS firewall that will give you a clean
123 8-bit wide TCP connection to the chess server, but only after you
124 authenticate yourself via the SOCKS protocol.  In that case, you could
125 make a socksified version of XBoard and run that.  If you are using
126 timestamp or timeseal, you will to socksify it, not XBoard; this may
127 be difficult seeing that ICC and FICS do not provide source code for
128 these programs.  Socksification is beyond the scope of this document,
129 but see the SOCKS Web site at http://www.socks.permeo.com/. 
130 If you are missing SOCKS, try http://www.funbureau.com/.
131
132    </body></html>
133