Mirror of glftpd-ng.com | Git: glftpd-ng-mirror

Downloads (BETA)

Changelog

64-bit compatibility

AppArmor Profile

In order to make glftpd as safe and secure as possible to use, dispite it's design, you can use an AppArmor profile to enhance it's security. AppArmor is standard and available in Ubuntu Server and openSuSE.

To install the profile, download jail.glftpd.bin.glftpd.txt and put in your /etc/apparmor.d/ directory. Modify the @{GLROOT} and @{GLCONF} variables accordingly. And if you have other custom site commands which glftpd needs executing, add them in @{GLBINS}.

Activation of profile is achieved by running aa-enforce /etc/apparmor.d/jail.glftpd.bin.glftpd, then reloading the profiles to include it. To see status, run aa-status :

This profile has only been tested on stock installations. If you get permission problems and/or runtime problems, check your system logs to track down the problem. This is PoC only.

Implemented (extended) standard

Original standard: RFC 2428

RFC 2428 implements two commands replacing PASV and PORT. They are EPSV (Extended Passive mode) and EPRT (Extended Port mode).

The original implementation looks like:
net-prt = Network Protocol, 1 = IPv4, 2 = IPv6
net-addr = Network Address
tcp-port = TCP port
d = delimiter (preferred |)

As PASV would return an IP address and TCP port to make FXP working smoothly, EPSV does not. In fact, the standard prohibits populating the empty fields with protocol and IP. This is what we have extended.

glftpd with IPv6-protocol will implement RFC 2428 as following:

Which gives

This allows for a full flexibility FXP which provides:

  * Using FTP bouncers
  * FXP:ing over IPv6 even though connected via IPv4
  * Utilizing IPv6 between v6-enabled sites without requirement of client IPv6, and vice versa with legacy IPv4

glftpd.conf

To play with IPv6 on your glftpd installation, add the following to glftpd.conf:

   ipv6 1

By doing this it will on login look what IPv6 addresses you have available. It will select to use the first public it can find. By public we discount link local (fe80::) and loopback (::1).

In case you want to bind to a specific address and/or perform round robin between multiple, simply add the following to glftpd.conf:

   active_addr6 <v6 address>
   pasv_addr6 <v6 address>

That should be it for now... :)