Support for doing DNS at the proxy end. I've invented a new type of
[u/mdw/putty] / doc / config.but
index 4a855e0..909d60f 100644 (file)
@@ -1,4 +1,4 @@
-\versionid $Id: config.but,v 1.37 2002/09/08 13:28:38 simon Exp $
+\versionid $Id: config.but,v 1.47 2002/12/18 16:23:10 simon Exp $
 
 \C{config} Configuring PuTTY
 
@@ -686,6 +686,11 @@ constitute an overload, how short a time period they have to arrive
 in to do so, and how much silent time is required before the
 overload feature will deactivate itself.
 
+Bell overload mode is always deactivated by any keypress in the
+terminal. This means it can respond to large unexpected streams of
+data, but does not interfere with ordinary command-line activities
+that generate beeps (such as filename completion).
+
 \H{config-features} The Features panel
 
 PuTTY's terminal emulation is very highly featured, and can do a lot
@@ -1375,6 +1380,8 @@ The Nagle algorithm is disabled by default.
 
 \H{config-proxy} The Proxy panel
 
+\cfg{winhelp-topic}{proxy.main}
+
 The Proxy panel allows you to configure PuTTY to use various types
 of proxy in order to make its network connections. The settings in
 this panel affect the primary network connection forming your PuTTY
@@ -1383,6 +1390,8 @@ forwarding (see \k{using-port-forwarding}).
 
 \S{config-proxy-type} Setting the proxy type
 
+\cfg{winhelp-topic}{proxy.type}
+
 The \q{Proxy type} radio buttons allow you to configure what type of
 proxy you want PuTTY to use for its network connections. The default
 setting is \q{None}; in this mode no proxy is used for any
@@ -1403,6 +1412,8 @@ PuTTY to use this type of proxy.
 
 \S{config-proxy-exclude} Excluding parts of the network from proxying
 
+\cfg{winhelp-topic}{proxy.exclude}
+
 Typically you will only need to use a proxy to connect to non-local
 parts of your network; for example, your proxy might be required for
 connections outside your company's internal network. In the
@@ -1428,17 +1439,71 @@ from proxying.
 
 This excludes both of the above ranges at once.
 
+Connections to the local host (the host name \c{localhost}, and any
+loopback IP address) are never proxied, even if the proxy exclude
+list does not explicitly contain them. It is very unlikely that this
+behaviour would ever cause problems, but if it does you can change
+it by enabling \q{Consider proxying local host connections}.
+
+Note that if you are doing DNS at the proxy (see
+\k{config-proxy-dns}), you should make sure that your proxy
+exclusion settings do not depend on knowing the IP address of a
+host. If the name is passed on to the proxy without PuTTY looking it
+up, it will never know the IP address and cannot check it against
+your list.
+
+\S{config-proxy-dns} Name resolution when using a proxy
+
+\cfg{winhelp-topic}{proxy.dns}
+
+If you are using a proxy to access a private network, it can make a
+difference whether DNS name resolution is performed by PuTTY itself
+(on the client machine) or performed by the proxy.
+
+The \q{Do DNS name lookup at proxy end} configuration option allows
+you to control this. If you set it to \q{No}, PuTTY will always do
+its own DNS, and will always pass an IP address to the proxy. If you
+set it to \q{Yes}, PuTTY will always pass host names straight to the
+proxy without trying to look them up first.
+
+If you set this option to \q{Auto} (the default), PuTTY will do
+something it considers appropriate for each type of proxy. Telnet
+and HTTP proxies will have host names passed straight to them; SOCKS
+proxies will not.
+
+Note that if you are doing DNS at the proxy, you should make sure
+that your proxy exclusion settings (see \k{config-proxy-exclude}) do
+not depend on knowing the IP address of a host. If the name is
+passed on to the proxy without PuTTY looking it up, it will never
+know the IP address and cannot check it against your list.
+
+The original SOCKS 4 protocol does not support proxy-side DNS. There
+is a protocol extension (SOCKS 4A) which does support it, but not
+all SOCKS 4 servers provide this extension. If you enable proxy DNS
+and your SOCKS 4 server cannot deal with it, this might be why.
+
 \S{config-proxy-auth} Username and password
 
+\cfg{winhelp-topic}{proxy.auth}
+
 If your proxy requires authentication, you can enter a username and
 a password in the \q{Username} and \q{Password} boxes.
 
-Currently only the \q{Username} box has any effect, and that only for
-SOCKS 4 proxies. ( [FIXME] No forms of authentication are supported
-for other types of proxy.)
+Authentication is not supported for all forms of proxy:
+
+\b Username and password authentication is supported for HTTP
+proxies and SOCKS 5 proxies.
+
+\b SOCKS 4 can use the \q{Username} field, but does not support
+passwords.
+
+\b You can specify a way to include a username and password in the
+Telnet proxy command (see \k{config-proxy-command}).
 
 \S{config-proxy-command} Specifying the Telnet proxy command
 
+\cfg{winhelp-topic}{proxy.command}
+
 If you are using the Telnet proxy type, the usual command required
 by the firewall's Telnet server is \c{connect}, followed by a host
 name and a port number. If your proxy needs a different command,
@@ -1451,11 +1516,25 @@ other character. \c{\\\\} is used to encode the \c{\\} character
 itself.
 
 Also, the special strings \c{%host} and \c{%port} will be replaced
-by the host name and port number you want to connect to. To get a
-literal \c{%} sign, enter \c{%%}.
+by the host name and port number you want to connect to. The strings
+\c{%user} and \c{%pass} will be replaced by the proxy username and 
+password you specify. To get a literal \c{%} sign, enter \c{%%}.
+
+If the Telnet proxy server prompts for a username and password
+before commands can be sent, you can use a command such as:
+
+\c %user\\n%pass\\nconnect %host %port\\n
+
+This will send your username and password as the first two lines to 
+the proxy, followed by a command to connect to the desired host and 
+port. Note that if you do not include the \c{%user} or \c{%pass}
+tokens in the Telnet command, then the \q{Username} and \q{Password}
+configuration fields will be ignored.
 
 \S{config-proxy-socksver} Selecting the version of the SOCKS protocol
 
+\cfg{winhelp-topic}{proxy.socksver}
+
 SOCKS servers exist in two versions: version 5
 (\W{http://www.ietf.org/rfc/rfc1928.txt}{RFC 1928}) and the earlier
 version 4. The \q{SOCKS Version} radio buttons allow you to select
@@ -1693,6 +1772,12 @@ consider substandard. By default, PuTTY supplies a preference order
 intended to reflect a reasonable preference in terms of security and
 speed.
 
+In SSH-2, the encryption algorithm is negotiated independently for
+each direction of the connection, although PuTTY does not support
+separate configuration of the preference orders. As a result you may
+get two warnings similar to the one above, possibly with different
+encryptions.
+
 Single-DES is not supported natively in the SSH 2 draft protocol
 standards. One or two server implementations do support it, by a
 non-standard name. PuTTY can use single-DES to interoperate with
@@ -1839,6 +1924,19 @@ in the list box.
 To remove a port forwarding, simply select its details in the list
 box, and click the \q{Remove} button.
 
+In the \q{Source port} box, you can also optionally enter an IP
+address to listen on. Typically a Windows machine can be asked to
+listen on any single IP address in the \cw{127.*.*.*} range, and all
+of these are loopback addresses available only to the local machine.
+So if you forward (for example) \c{127.0.0.5:79} to a remote
+machine's \cw{finger} port, then you should be able to run commands
+such as \c{finger fred@127.0.0.5}. This can be useful if the program
+connecting to the forwarded port doesn't allow you to change the
+port number it uses. This feature is available for local-to-remote
+forwarded ports; SSH1 is unable to support it for remote-to-local
+ports, while SSH2 can support it in theory but servers will not
+necessarily cooperate.
+
 \S{config-ssh-portfwd-localhost} Controlling the visibility of
 forwarded ports
 
@@ -1981,7 +2079,7 @@ server, communication will fail.
 
 This is an SSH2-specific bug.
 
-\S{config-ssh-bug-ssh} \q{Requires padding on SSH2 RSA signatures}
+\S{config-ssh-bug-sig} \q{Requires padding on SSH2 RSA signatures}
 
 \cfg{winhelp-topic}{ssh.bugs.rsapad2}
 
@@ -2000,6 +2098,23 @@ to talking to OpenSSH.
 
 This is an SSH2-specific bug.
 
+\S{config-ssh-bug-dhgex} \q{Chokes on Diffie-Hellman group exchange}
+
+\cfg{winhelp-topic}{ssh.bugs.dhgex2}
+
+We have anecdotal evidence that some SSH servers claim to be able to
+perform Diffie-Hellman group exchange, but fail to actually do so
+when PuTTY tries to. If your SSH2 sessions spontaneously close
+immediately after opening the PuTTY window, it might be worth
+enabling the workaround for this bug to see if it helps.
+
+We have no hard evidence that any specific version of specific
+server software reliably demonstrates this bug. Therefore, PuTTY
+will never \e{assume} a server has this bug; if you want the
+workaround, you need to enable it manually.
+
+This is an SSH2-specific bug.
+
 \H{config-file} Storing configuration in a file
 
 PuTTY does not currently support storing its configuration in a file