Difference between revisions of "FTP Serving"

From Da Nerd Mage Wiki
Jump to navigation Jump to search
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
* sudo apt-get install proftpd
<span style="font-size: 18pt; color: rgb(186, 55, 42);">WIP!</span>


* sudo service proftpd restart
FTP is most often used as a way to remotely access files on servers of other types. As such, you'll likely be configuring this service on a server primarily intended for something else. (i.e.: a [[Building Web Servers{{!}}web server]])
= Using vsftpd =


== accessing FTP through a firewall (pfSense) ==
== Install vsftpd ==


* vi /etc/proftpd/proftpd.conf
*<code>sudo apt-get update</code>
*<code>sudo apt-get install vsftpd</code>
 
== Configure vsftpd  ==
*<code>sudo vim /etc/vsftpd.conf</code>
 
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Enable PASV
#
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=7000
pasv_max_port=7100
 
*<code>sudo service vsftpd restart</code>
 
*Open ports 21 & 7000-7100 to this server in your firewall.
 
<big>'''Interesting dilemma... passive mode doesn't work for SHIT if the client is behind a firewall.'''</big>
 
Also: The Windows FTP command-line client (<code>ftp.exe</code>) does not support the passive mode, on any version of Windows. It makes it pretty useless nowadays due to ubiquitous firewalls and NATs.<br>
Use any thirdparty Windows FTP command-line client instead. Most other support the passive mode.
Even just accessing your FTP server with a web browser '''(<nowiki>ftp://server.address</nowiki>)''' works better...
 
== Further Reading... ==
 
*[https://www.digitalocean.com/community/tutorials/how-to-set-up-vsftpd-for-a-user-s-directory-on-ubuntu-16-04 How To Set Up vsftpd for a User's Directory]
*[http://slacksite.com/other/ftp.html Active FTP vs. Passive FTP, a Definitive Explanation]
 
= Using ProFTP =
[http://www.proftpd.org/ The ProFTPD Project Home Page]
 
== Installing ProFTPd ==
 
*<code>sudo apt-get update</code>
* <code>sudo apt-get install proftpd</code>
At this point, any user with an account on the network can access the machine via ftp using their regular name & password. (Note: by default, this does not include root.)
 
This is the MINIMUM required to get it running & you'll want to go deeper into the available options.
 
== Accessing FTP through NAT ([[PfSense{{!}}pfSense]] here...) ==
 
[http://www.proftpd.org/docs/howto/NAT.html ProFTPD: Firewalls, Routers, and NAT]
 
<span style="color: rgb(132, 63, 161);">The minimum requirements to make it work...</span>
 
* <code>sudo vi /etc/proftpd/proftpd.conf</code>
Lines 51 & 56 need to be un-commented & edited
Lines 51 & 56 need to be un-commented & edited


Choose an available range of ports for '''PassivePorts'''.
Choose an available range of ports for '''PassivePorts'''.
Set '''MasqueradeAddress''' to either the WAN address of your firewall or it's '''FQDN'''.
Set '''MasqueradeAddress''' to either the WAN address of your firewall or it's '''FQDN'''.
Then create 2 port forwards, one specifically for port 21 (FTP) & one for the the range chosen in '''PassivePorts'''.
 
Then restart the service:
* <code>sudo service proftpd restart</code>
Then create 2 [[PfSense#Port_Forwarding{{!}}port forwards]], one specifically for port 21 (FTP) & one for the the range chosen in '''PassivePorts'''.
 
== Further Configurations ==
For now, I'd strongly suggest spending some quality time browsing the [http://www.proftpd.org/docs/howto/index.html ProFTPd Documentation].&nbsp; There are a LOT of things that can be done...

Latest revision as of 15:27, 30 January 2025

WIP!

FTP is most often used as a way to remotely access files on servers of other types. As such, you'll likely be configuring this service on a server primarily intended for something else. (i.e.: a web server)

Using vsftpd

Install vsftpd

  • sudo apt-get update
  • sudo apt-get install vsftpd

Configure vsftpd

  • sudo vim /etc/vsftpd.conf
# Uncomment this to enable any form of FTP write command.
write_enable=YES

#
# Enable PASV
#
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=7000
pasv_max_port=7100
  • sudo service vsftpd restart
  • Open ports 21 & 7000-7100 to this server in your firewall.

Interesting dilemma... passive mode doesn't work for SHIT if the client is behind a firewall.

Also: The Windows FTP command-line client (ftp.exe) does not support the passive mode, on any version of Windows. It makes it pretty useless nowadays due to ubiquitous firewalls and NATs.
Use any thirdparty Windows FTP command-line client instead. Most other support the passive mode. Even just accessing your FTP server with a web browser (ftp://server.address) works better...

Further Reading...

Using ProFTP

The ProFTPD Project Home Page

Installing ProFTPd

  • sudo apt-get update
  • sudo apt-get install proftpd

At this point, any user with an account on the network can access the machine via ftp using their regular name & password. (Note: by default, this does not include root.)

This is the MINIMUM required to get it running & you'll want to go deeper into the available options.

Accessing FTP through NAT (pfSense here...)

ProFTPD: Firewalls, Routers, and NAT

The minimum requirements to make it work...

  • sudo vi /etc/proftpd/proftpd.conf

Lines 51 & 56 need to be un-commented & edited

Choose an available range of ports for PassivePorts.

Set MasqueradeAddress to either the WAN address of your firewall or it's FQDN.

Then restart the service:

  • sudo service proftpd restart

Then create 2 port forwards, one specifically for port 21 (FTP) & one for the the range chosen in PassivePorts.

Further Configurations

For now, I'd strongly suggest spending some quality time browsing the ProFTPd Documentation.  There are a LOT of things that can be done...