Changes

From SME Server
Jump to navigationJump to search
5,491 bytes added ,  04:53, 24 January 2023
Created page with "{{WIP box|}} SME Server offers a ftp server, which is Proftpd. If enabled it allows you to access to the Pirmary ibay files folder with anonymous access, and to any content..."
{{WIP box|}}

SME Server offers a ftp server, which is Proftpd. If enabled it allows you to access to the Pirmary ibay files folder with anonymous access, and to any content your user is allowed to, if authenticated, inside /home/e-smith/files.

Prior to SME 10 ftp was using cleat text communication ('''FTP'''), allowing one to listen to your password and files exchanged on the network. Now TLS is enforced by default ('''FTPs'''), and it is suggested to keep it enabled.

While you might be used to the traditional port 21 for file transfer protocol ('''FTP'''), this page is here to help you having a steady access to your ftp server, by understanding it, and enabling the extra needed ports.

Your server is using

Do not confuse '''sFTP''', which is part of ssh protocol and uses port 22, with '''FTPs''' which is the regular ftp protocol over port 21 using a layer of SSL/TLS encryption.

== FTP connection modes : active versus passive ==
SME by default offers both active and passive mode when you are on LAN. However, as soon as you try to access from a remote location you will hist some difficulties depending on the situation.

By default for passive connection Proftpd will use ports from 1024 and up, which means that you must forward ''all'' ports 1024-65535 from the NAT to the FTP server! And you have to allow many (possibly) dangerous ports in your fire-walling rules! Not a good situation.

==== the modes ====

===== active =====
From the server-side firewall's standpoint, to support active mode FTP the following communication channels need to be opened (http://slacksite.com/other/ftp.html):

* FTP server's port 21 from anywhere (Client initiates connection)
* FTP server's port 21 to ports > 1024 (Server responds to client's control port)
* FTP server's port 20 to ports > 1024 (Server initiates data connection to client's data port)
* FTP server's port 20 from ports > 1024 (Client sends ACKs to server's data port)

===== passive =====
From the server-side firewall's standpoint, to support passive mode FTP the following communication channels need to be opened (http://slacksite.com/other/ftp.html):

* FTP server's port 21 from anywhere (Client initiates connection)
* FTP server's port 21 to ports > 1024 (Server responds to client's control port)
* FTP server's ports > 1024 from anywhere (Client initiates data connection to random port specified by server)
* FTP server's ports > 1024 to remote ports > 1024 (Server sends ACKs (and data) to client's data port)

==== examples ====

===== SME is server-gateway connected to Internet - Client is remote behind a NAT =====
Active mode will not work because the NAT will mostly hide the client port.

Passive mode will need to use the <code>PassivePorts</code> directive in your <code>proftpd.conf</code> to control what ports <code>proftpd</code> will use for its passive data transfers, and you will need to open those port in your SME firewall.

===== SME is server-gateway behind a firewall / NAT to Internet - Client is remote behind a NAT =====
Active mode will not work because the NAT will mostly hide the client port.

Passive mode will need to use the <code>PassivePorts</code> directive in your <code>proftpd.conf</code> to control what ports <code>proftpd</code> will use for its passive data transfers, and you will need to open those port in your SME firewall and in your firewall between you SME and Internet. You will also need a template custom to add MasqueradeAddress (http://www.proftpd.org/docs/modules/mod_core.html#MasqueradeAddress).

===== SME is server-gateway connected to Internet - Client is remote directly connected to the Internet =====
Active mode will not work because the NAT will mostly hide the client port.

Passive mode will need to use the <code>PassivePorts</code> directive in your <code>proftpd.conf</code> to control what ports <code>proftpd</code> will use for its passive data transfers, and you will need to open those port in your SME firewall.

== SSL mode: Explicit SSL versus Implicit SSL ==
'''SME 10 and above uses explicit SSL mode for FTPs''' over port 21 only and does not need port 990. <u>The client must explicitly request for SSL/TLS to be able to go on</u>.

FTPS (FTP over TLS) is served up in two incompatible modes. If using explicit FTPS, the client connects to the normal FTP port and explicitly switches into secure (TLS) mode with "AUTH TLS", whereas implicit FTPS is an older style service that assumes TLS mode right from the start of the connection (and normally listens on TCP port 990, rather than 21). In a FileZilla client this means prefixing the host with "FTPES://" to connect an "explicit" FTPS server, or "FTPS://" for the legacy "implicit" server (for which you will likely also need to set the port to 990).

== TODO ==

* template to use PassivePort 44900:44950
* template to add those ports in the the SME Firewall
* template to add port 20
* http://www.proftpd.org/docs/modules/mod_core.html#MasqueradeAddress Virtualhost vs Class see http://www.proftpd.org/docs/howto/NAT.html
* http://www.proftpd.org/docs/howto/FXP.html

== Sources ==

* https://wiki.filezilla-project.org/FTP_over_TLS#Explicit_vs_Implicit_FTPS
* http://www.proftpd.org/docs/howto/TLS.html
* https://hstechdocs.helpsystems.com/manuals/globalscape/archive/secureserver3/Explicit_versus_Implicit_SSL.htm
* https://winscp.net/eng/docs/ftp_modes
* http://www.proftpd.org/docs/howto/NAT.html
* http://slacksite.com/other/ftp.html

[[Category:Howto]]
Super Admin, Wiki & Docs Team, Bureaucrats, Interface administrators, Administrators
3,254

edits

Navigation menu