<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>http://vwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=ProFTPD</id>
	<title>ProFTPD - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://vwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=ProFTPD"/>
	<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=ProFTPD&amp;action=history"/>
	<updated>2026-06-03T21:05:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=ProFTPD&amp;diff=1954&amp;oldid=prev</id>
		<title>Sstrutt: /* Enable TLS Encryption (FTPS) */ typo fix</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=ProFTPD&amp;diff=1954&amp;oldid=prev"/>
		<updated>2012-05-22T09:15:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Enable TLS Encryption (FTPS): &lt;/span&gt; typo fix&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:15, 22 May 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l31&quot;&gt;Line 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Unlike [[Acronyms#H|HTTPS]], where a different TCP port is used to differentiate from [[Acronyms#H|HTTPS]]; this is not required for [[Acronyms#F|FTPS]], which can use the same default ports as for [[Acronyms#F|FTP]] (TCP 20 and 21).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Unlike [[Acronyms#H|HTTPS]], where a different TCP port is used to differentiate from [[Acronyms#H|HTTPS]]; this is not required for [[Acronyms#F|FTPS]], which can use the same default ports as for [[Acronyms#F|FTP]] (TCP 20 and 21).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Obtain / create appropriate certificates (see [[Secure_Website#Create_Self-Signed_Certificate|Create  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Obtain / create appropriate certificates (see [[Secure_Website#Create_Self-Signed_Certificate|Create Self-Signed Certificate&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt;] for info), required files...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Self-Signed Certificate] for info), required files...&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* Certificate Authority certificate (eg &amp;lt;code&amp;gt; self-ca.crt &amp;lt;/code&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* Certificate Authority certificate (eg &amp;lt;code&amp;gt; self-ca.crt &amp;lt;/code&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* Server Private Key (eg &amp;lt;code&amp;gt; my-server.key &amp;lt;/code&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;#* Server Private Key (eg &amp;lt;code&amp;gt; my-server.key &amp;lt;/code&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=ProFTPD&amp;diff=1887&amp;oldid=prev</id>
		<title>Sstrutt: Initial creation</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=ProFTPD&amp;diff=1887&amp;oldid=prev"/>
		<updated>2012-05-01T16:14:15Z</updated>

		<summary type="html">&lt;p&gt;Initial creation&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;All procedures etc on this page have been created by me, with usage of the [http://www.proftpd.org/localsite/Userguide/linked/userguide.html ProFTPD manual], unless otherwise stated.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
On Ubuntu the basic install is incredibly taxing, as you&amp;#039;d expect...&lt;br /&gt;
# Start installation&lt;br /&gt;
#* &amp;lt;code&amp;gt; apt-get install proftpd &amp;lt;/code&amp;gt;&lt;br /&gt;
# When prompted, select the following options&lt;br /&gt;
#* Accept &amp;quot;unable to authenticate&amp;quot;&lt;br /&gt;
#* Select &amp;quot;standalone&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will provide access to existing users of the server (no anonymous access).  Users will be directed to their home directory, but able to change into any other directory on the system (so the same permissions as is they were SSH&amp;#039;ed to the system).&lt;br /&gt;
&lt;br /&gt;
Suggested config changes (edit &amp;lt;code&amp;gt; /etc/proftpd/proftpd.conf &amp;lt;/code&amp;gt;)...&lt;br /&gt;
* &amp;lt;code&amp;gt; ServerName       &amp;quot;name&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
** This is displayed during login, and can be useful to remind/verify that you&amp;#039;ve logged into the correct server (though isn&amp;#039;t shown if you enable &amp;lt;code&amp;gt; DeferWelcome &amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt; DeferWelcome     on&amp;lt;/code&amp;gt;&lt;br /&gt;
** Prevents welcome message being displayed until after successful login, which restricts what information might be given away to unwanted probers, such as local IP address.  Note that the fact that its a ProFTPD serer and the running version is still displayed unless you set in &amp;lt;code&amp;gt;ServerIdent&amp;lt;/code&amp;gt;!&lt;br /&gt;
* &amp;lt;code&amp;gt; ServerIdent       on      &amp;quot;FTP Server ready&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
** Sets the message displayed on initial connect (on by default) &lt;br /&gt;
* &amp;lt;code&amp;gt; DefaultRoot      ~ &amp;lt;/code&amp;gt;&lt;br /&gt;
** Locks users into their home directory (this is NOT infallible and can, with quite a bit of effort, be broken out from, see http://www.bpfh.net/simes/computing/chroot-break.html)&lt;br /&gt;
&lt;br /&gt;
To limit which systems users are allowing to login, use the following in &amp;lt;code&amp;gt; /etc/proftpd/proftpd.conf &amp;lt;/code&amp;gt;...&lt;br /&gt;
 &amp;lt;Limit LOGIN&amp;gt;&lt;br /&gt;
   AllowUser usera, userb&lt;br /&gt;
   DenyAll&lt;br /&gt;
 &amp;lt;/Limit&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enable TLS Encryption (FTPS) ===&lt;br /&gt;
Unlike [[Acronyms#H|HTTPS]], where a different TCP port is used to differentiate from [[Acronyms#H|HTTPS]]; this is not required for [[Acronyms#F|FTPS]], which can use the same default ports as for [[Acronyms#F|FTP]] (TCP 20 and 21).&lt;br /&gt;
&lt;br /&gt;
# Obtain / create appropriate certificates (see [[Secure_Website#Create_Self-Signed_Certificate|Create &lt;br /&gt;
&lt;br /&gt;
Self-Signed Certificate] for info), required files...&lt;br /&gt;
#* Certificate Authority certificate (eg &amp;lt;code&amp;gt; self-ca.crt &amp;lt;/code&amp;gt;)&lt;br /&gt;
#* Server Private Key (eg &amp;lt;code&amp;gt; my-server.key &amp;lt;/code&amp;gt;)&lt;br /&gt;
#* Server Site Certificate (eg &amp;lt;code&amp;gt; ftp-my-server.crt &amp;lt;/code&amp;gt;)&lt;br /&gt;
# Edit master config file, &amp;lt;code&amp;gt; /etc/proftpd/tls.conf &amp;lt;/code&amp;gt; and uncomment TLS config include&lt;br /&gt;
#* &amp;lt;code&amp;gt; Include /etc/proftpd/tls.conf &amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit &amp;lt;code&amp;gt; /etc/proftpd/tls.conf &amp;lt;/code&amp;gt; as shown below&lt;br /&gt;
# Restart the ProFTPD service&lt;br /&gt;
#* &amp;lt;code&amp;gt; service proftpd restart &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TLSEngine                               on&lt;br /&gt;
TLSLog                                  /var/log/proftpd/tls.log&lt;br /&gt;
TLSProtocol                             SSLv3 TLSv1&lt;br /&gt;
&lt;br /&gt;
TLSRSACertificateFile                   /etc/proftpd/ftp-my-server.crt&lt;br /&gt;
TLSRSACertificateKeyFile                /etc/apache2/ssl/web2-server.key&lt;br /&gt;
TLSCACertificateFile                    /etc/apache2/ssl/self-ca.crt&lt;br /&gt;
&lt;br /&gt;
TLSVerifyClient                         off&lt;br /&gt;
TLSRequired                             off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create Locked Down User ==&lt;br /&gt;
The following example creates a user with access to a specific (home) directory only.&lt;br /&gt;
&lt;br /&gt;
The example creates the user &amp;lt;code&amp;gt; ftp-user &amp;lt;/code&amp;gt;, with access tied to an existing folder &amp;lt;code&amp;gt;/var/www/wp&amp;lt;/code&amp;gt; (which could be the root of a [http://wordpress.org/ WordPress] blog, allowing one-click updating of the software from the WordPress interface)&lt;br /&gt;
&lt;br /&gt;
# Create a dummy (non existent) shell, by editing &amp;lt;code&amp;gt; /etc/shells &amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt; /bin/false &amp;lt;/code&amp;gt;&lt;br /&gt;
# Create user account with home dir, and no shell&lt;br /&gt;
#* &amp;lt;code&amp;gt; useradd ftp-user -p ftp-password -d /var/www/wp -s /bin/false &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that unless the user (&amp;lt;code&amp;gt;ftp-user&amp;lt;/code&amp;gt; in the above example) has access to write in the folder already, that user will not be able to write.  Assuming that the group ownership for the files in folder is &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;, then the user will need to be added to the &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; group.  To determine which group has rights over the files, do a &amp;lt;code&amp;gt; ls -l &amp;lt;/code&amp;gt; in the directory, the second name is the group, so in the example below, the user is &amp;lt;code&amp;gt;me&amp;lt;/code&amp;gt; and the group is &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;...&lt;br /&gt;
&lt;br /&gt;
 root@server:/var/www/wp# ls -l&lt;br /&gt;
 total 332&lt;br /&gt;
 -rw-rw-r-- 1 me     www-data  4268 2010-10-20 15:40 wp-activate.php&lt;br /&gt;
 drwxrwxr-x 9 me     www-data  4096 2011-01-03 20:53 wp-admin&lt;br /&gt;
 -rw-rw-r-- 1 me     www-data 40272 2010-10-28 16:48 wp-app.php&lt;br /&gt;
 -rw-rw-r-- 1 me     www-data   274 2010-11-20 21:44 wp-blog-header.php&lt;br /&gt;
 ....&lt;br /&gt;
&lt;br /&gt;
To add user &amp;lt;code&amp;gt;ftp-user&amp;lt;/code&amp;gt; to group &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;...&lt;br /&gt;
# Edit &amp;lt;code&amp;gt; vi /etc/group &amp;lt;/code&amp;gt;&lt;br /&gt;
# Append &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt; to the end of the line for &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;&lt;br /&gt;
#* EG &amp;lt;code&amp;gt; www-data:x:34:wibble,ftp-user &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Source: http://ubuntuforums.org/showthread.php?t=79588&lt;br /&gt;
&lt;br /&gt;
[[Category:ProFTPD]]&lt;br /&gt;
[[Category:Ubuntu]]&lt;/div&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
</feed>