summaryrefslogtreecommitdiff
path: root/debian/README.Debian
diff options
context:
space:
mode:
Diffstat (limited to 'debian/README.Debian')
-rw-r--r--debian/README.Debian234
1 files changed, 234 insertions, 0 deletions
diff --git a/debian/README.Debian b/debian/README.Debian
new file mode 100644
index 000000000..f37cce4b0
--- /dev/null
+++ b/debian/README.Debian
@@ -0,0 +1,234 @@
1OpenSSH for Debian
2------------------
3
4UPGRADE ISSUES
5==============
6
7Privilege Separation
8--------------------
9
10As of 3.3, openssh has employed privilege separation to reduce the
11quantity of code that runs as root, thereby reducing the impact of
12some security holes in sshd. This now also works properly with PAM.
13
14Privilege separation is turned on by default, so, if you decide you
15want it turned off, you need to add "UsePrivilegeSeparation no" to
16/etc/ssh/sshd_config.
17
18PermitRootLogin set to yes
19--------------------------
20
21This is now the default setting (in line with upstream), and people
22who asked for an automatically-generated configuration file when
23upgrading from potato (or on a new install) will have this setting in
24their /etc/ssh/sshd_config file.
25
26Should you wish to change this setting, edit /etc/ssh/sshd_config, and
27change:
28PermitRootLogin yes
29to:
30PermitRootLogin no
31
32Having PermitRootLogin set to yes means that an attacker that knows
33the root password can ssh in directly (without having to go via a user
34account). If you set it to no, then they must compromise a normal user
35account. In the vast majority of cases, this does not give added
36security; remember that any account you su to root from is equivalent
37to root - compromising this account gives an attacker access to root
38easily. If you only ever log in as root from the physical console,
39then you probably want to set this value to no.
40
41As an aside, PermitRootLogin can also be set to "without-password" or
42"forced-commands-only" - see sshd(8) for more details.
43
44DO NOT FILE BUG REPORTS SAYING YOU THINK THIS DEFAULT IS INCORRECT!
45
46The argument above is somewhat condensed; I have had this discussion
47at great length with many people. If you think the default is
48incorrect, and feel strongly enough to want to argue about it, then
49send email to debian-ssh@lists.debian.org. I will close bug reports
50claiming the default is incorrect.
51
52SSH now uses protocol 2 by default
53----------------------------------
54
55This means all your keyfiles you used for protocol version 1 need to
56be re-generated. The server keys are done automatically, but for RSA
57authentication, please read the ssh-keygen manpage.
58
59If you have an automatically generated configuration file, and decide
60at a later stage that you do want to support protocol version 1 (not
61recommended, but note that the ssh client shipped with Debian potato
62only supported protocol version 1), then you need to do the following:
63
64Change /etc/ssh/sshd_config such that:
65Protocol 2
66becomes:
67Protocol 2,1
68Also add the line:
69HostKey /etc/ssh/ssh_host_key
70
71If you do not already have an RSA1 host key in /etc/ssh/ssh_host_key,
72you will need to generate one. To do so, run this command as root:
73
74 ssh-keygen -f /etc/ssh/ssh_host_key -N '' -t rsa1
75
76As of openssh-server 1:4.1p1-2, the option to support protocol version 1
77is no longer available via debconf. You must edit the configuration file
78instead.
79
80X11 Forwarding
81--------------
82
83ssh's default for ForwardX11 has been changed to ``no'' because it has
84been pointed out that logging into remote systems administered by
85untrusted people is likely to open you up to X11 attacks, so you
86should have to actively decide that you trust the remote machine's
87root, before enabling X11. I strongly recommend that you do this on a
88machine-by-machine basis, rather than just enabling it in the default
89host settings.
90
91In order for X11 forwarding to work, you need to install xauth on the
92server. In Debian this is in the xbase-clients package.
93
94As of OpenSSH 3.1, the remote $DISPLAY uses localhost by default to reduce
95the security risks of X11 forwarding. Look up X11UseLocalhost in
96sshd_config(8) if this is a problem.
97
98OpenSSH 3.8 invented ForwardX11Trusted, which when set to no causes the
99ssh client to create an untrusted X cookie so that attacks on the
100forwarded X11 connection can't become attacks on X clients on the remote
101machine. However, this has some problems in implementation - notably a
102very short timeout of the untrusted cookie - breaks large numbers of
103existing setups, and generally seems immature. The Debian package
104therefore sets the default for this option to "yes" (in ssh itself,
105rather than in ssh_config).
106
107Fallback to RSH
108---------------
109
110The default for this setting has been changed from Yes to No, for
111security reasons, and to stop the delay attempting to rsh to machines
112that don't offer the service. Simply switch it back on in either
113/etc/ssh/ssh_config or ~/.ssh/config for those machines that you need
114it for.
115
116Setgid ssh-agent and environment variables
117------------------------------------------
118
119As of version 1:3.5p1-1, ssh-agent is installed setgid to prevent ptrace()
120attacks retrieving private key material. This has the side-effect of causing
121glibc to remove certain environment variables which might have security
122implications for set-id programs, including LD_PRELOAD, LD_LIBRARY_PATH, and
123TMPDIR.
124
125If you need to set any of these environment variables, you will need to do
126so in the program exec()ed by ssh-agent. This may involve creating a small
127wrapper script.
128
129Symlink Hostname invocation
130---------------------------
131
132This version of ssh no longer includes support for invoking ssh with the
133hostname as the name of the file run. People wanting this support should
134use the ssh-argv0 script.
135
136=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
137
138OTHER ISSUES
139============
140
141/usr/bin/ssh not SUID
142---------------------
143
144Due to Debian bug #164325, RhostsRSAAuthentication can only be used if ssh
145is SUID. Until this is fixed, if that is a problem, use:
146
147 dpkg-statoverride
148
149or if that's also missing, use this:
150
151 chown root.root /usr/bin/ssh
152 chmod 04755 /usr/bin/ssh
153
154Authorization Forwarding
155------------------------
156
157Similarly, root on a remote server could make use of your ssh-agent
158(while you're logged into their machine) to obtain access to machines
159which trust your keys. This feature is therefore disabled by default.
160You should only re-enable it for those hosts (in your ~/.ssh/config or
161/etc/ssh/ssh_config) where you are confident that the remote machine
162is not a threat.
163
164Problems logging in with RSA authentication
165-------------------------------------------
166
167If you have trouble logging in with RSA authentication then the
168problem is probably caused by the fact that you have your home
169directory writable by group, as well as user (this is the default on
170Debian systems).
171
172Depending upon other settings on your system (i.e. other users being
173in your group) this could open a security hole, so you will need to
174make your home directory writable only by yourself. Run this command,
175as yourself:
176
177 chmod g-w ~/
178
179to remove group write permissions. If you use ssh-copy-id to install your
180keys, it does this for you.
181
182-L option of ssh nonfree
183------------------------
184
185non-free ssh supported the usage of the option -L to use a non privileged
186port for scp. This option will not be supported by scp from openssh.
187
188Please use instead scp -o "UsePrivilegedPort=no" as documented in the
189manpage to scp itself.
190
191Problem logging in because of TCP-Wrappers
192------------------------------------------
193
194ssh is compiled with support for tcp-wrappers. So if you can no longer
195log into your system, please check that /etc/hosts.allow and /etc/hosts.deny
196are configured so that ssh is not blocked.
197
198Kerberos support
199----------------
200
201ssh is now compiled with Kerberos support. Unfortunately, privilege
202separation is incompatible with Kerberos support for SSH protocol 1 and
203parts of the support for protocol 2; you may need to run kinit after logging
204in.
205
206Interoperability between scp and the ssh.com SSH server
207-------------------------------------------------------
208
209In version 2 and greater of the commercial SSH server produced by SSH
210Communications Security, scp was changed to use SFTP (SSH2's file transfer
211protocol) instead of the traditional rcp-over-ssh, thereby breaking
212compatibility. The OpenSSH developers regard this as a bug in the ssh.com
213server, and do not currently intend to change OpenSSH's scp to match.
214
215Workarounds for this problem are to install scp1 on the server (scp2 will
216fall back to it), to use sftp, or to use some other transfer mechanism such
217as rsync-over-ssh or tar-over-ssh.
218
219Running sshd from inittab
220-------------------------
221
222Some people find it useful to run the sshd server from inittab, to make sure
223that it always stays running. To do this, stop sshd ('/etc/init.d/ssh
224stop'), add the following line to /etc/inittab, and run 'telinit q':
225
226 ss:2345:respawn:/usr/sbin/sshd -D
227
228If you do this, note that you will need to stop sshd being started in the
229normal way ('rm -f /etc/rc[2345].d/S16ssh') and that you will need to
230restart this sshd manually on upgrades.
231
232--
233Matthew Vernon <matthew@debian.org>
234Colin Watson <cjwatson@debian.org>