Contents
IPv6 capable vsftpd FTP server
vsftpd is a small, fast and secure FTP server. Project homapage: http://vsftpd.beasts.org
vsftpd is able to compile and run on the following platforms:
- Fedora Core
RedHat Linux
RedHat Enterprise Linux
- Solaris / GNU tools (Solaris 8 or newer)
- SuSE Linux
- Debian Linux
- OpenBSD
- FreeBSD
- NetBSD
- HP-UX / GNU tools
- IRIX / GNU tools
- AIX / GNU tools
- Mac OS
The following description was made using Debian Linux and AIX operating systems.
IPv6 capable vsftpd compilation and installation in general
vsftpd source will compile without any serious problems on any well maintaned and updated operating system. In order to compile, use make command. For detailed installation information, please see INSTALL text file included in the source package.
IPv6 configuration of vsftpd
After a successful installation in order to enable the IPv6 protocol, edit vsftpd.conf configuration file in the following way:
... #listen=YES listen_ipv6=YES ...
Comment listen parameter and enable listen_ipv6=YES setting. After this is done and vsftpd is restarted, the server will be reachable using both IPv4 and IPv6 protocols.
In case using inetd daemon you will need the following line in inetd.conf configuration file to enable IPv6:
ftp stream tcp6 nowait root /usr/local/sbin/vsftpd
When using this configuration, the server will only be reachable through the IPv6 protocol. If IPv4 reachability is needed, use the IPv4 (tcp4) version of the above configuration line.
Compilation and installation on AIX systems
This description is about of a combination of AIX 4.3.3 and vsftpd 1.2.1. When using version combinations other than this, misbehaviour is possible.
In order to compile, you will need gcc and GNU make. By issuing make command, the software will compile and will be usable for IPv4 FTP services.
On newer AIX versions, a need for a slight modification of the source code is likely: in sysdeputil.c file, near line 112
#undefine VSF_SYSDEP_HAVE_PAM
should be modified to:
#define VSF_SYSDEP_HAVE_PAM
With this setting, authentication will work through PAM. In this case manual linking of PAM library is needed, the very last linking should be repeated:
gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o tcpwrap.o ipv6parse.o access.o sysutil.o sysdeputil.o -Wl,-s ./vsf_findlibs.sh -lpam
IPv6 configuration on AIX
In case IPv4 passive FTP mode does not work after enabling listen_ipv6=YES setting in standalone mode, it is adviced to disable it by this configuration line (this is just a workaround):
pasv_enable=NO
If the FTP connection freezes right after the authentication or it is unable to receive further commands, it's worth to give a try to link libraries with AIX's own C compiler, similarly to PAM's case (see above). In this case gcc library should be linked to the software by hand as the following:
xlc_r -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.o parseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o tcpwrap.o ipv6parse.o access.o sysutil.o sysdeputil.o -Wl,-s ./vsf_findlibs.sh -L/usr/local/lib -lpam -L/usr/local/lib/gcc-lib/powerpc-ibm-aix4.3.3.0/2.95.3 -lgcc