Need a way to implement FTP securely

IT_Architect

Verified User
Joined
Feb 27, 2006
Messages
1,114
Everybody knows the issues with FTP. It is really only usable as long as it is read-only-anonymous and you don't depend on authenticated logins. I have an issue that probably nobody else here has. I service suppliers whose customers post blueprints via FTP to their servers. They each have separate FTP logins, which drop them into their respective directories. The FTP in DA works great for that. People are mobile these days operating from anywhere and everywhere and their credentials are easily hacked. Any ideas how I might be able to duplicate this in a secure way?

Thanks!
 
Don't know solution but first i think you have to look for a safe kind of encrypted vpn (tunnel) solution.
( so both side end pont encryption, while wifi or whatever mobile is as unsafe as it could be for that you're describing)

Then maybe some with ssh auth and a kind of sftp?
 
Hello,

ProFTPd can be compiled with sFTP support. You will still have all FTP credentials workinf for sFTP and no SSH access is required to get sFTP from ProFTPd to be usable. Then you might close 20, 21 ports with firewall.

Install guide: https://help.directadmin.com/item.php?id=439

IS this solved then with only sFTP?
That is new for me!

People are mobile these days operating from anywhere and everywhere and their credentials are easily hacked

That is why i'm pointing to some extra AUTH... if possible in combination, so not only the credentials are needed to access.

sFTP is more secure yes, but some MITM attacks ??
 
IS this solved then with only sFTP?...sFTP is more secure yes, but some MITM attacks ??
Thank you so much for bringing this up. It caught my mis-thinking of what zEitEr said. I had sFTP and FTPs backwards in my mind. What zEitEr said actually makes me feel even better. Clients can use sFTP tools like WinSCP, etc. because sFTP uses SCP command to only allow file transfer to a remote server over an SSH-like connection. This is good because it's fully encrypted end to end. With FTPs, there always seems to be a myriad of variations and gotchas. sFTP also can use CA Certs, and PSK. It uses the same security mechanism a credit card uses, but without the browser it is easier for an user to be tricked. What I'm protected is not financial information, and the area the user has access to is his own private area. I would agree that if this was highly secure information, two-factor or multi-factor would be preferable to not rely on user training. However, the only user training required in my case would be to not cache any new keys.

Again, thanks a TON zEitEr. That was better news than I realized at the time.
 
@IT_Architect,

You're welcome.

@ikkeben,

IS this solved then with only sFTP?
That is new for me!

Actually I don't use plain FTP and FTPs on my own servers for ages already, and whenever it's possible and requested I do disable FTP/FTPs on the servers of my customers and enable SFTP.

Access to SFTP and SSH for better security can be limited in a firewall on per IP bases.

In cases when an access to a server is required from non-trusted networks I use OpenVPN.

sFTP is more secure yes, but some MITM attacks ??

Do you still use SSH then? :D You approve a connection if a host key is unknown or changed: host-key-unknown.png

See: SFTP refers to "Secure File Transfer Protocol", and is not related to FTP in any way. SFTP is based on the SSH2 protocol, which uses binary encoding of messages over a secure channel. Unlike FTP, SSH2 only uses a single TCP connection, and multiplexes multiple transfers or "channels" over that single connection.

The mod_sftp module for ProFTPd implements the SSH2 protocol and its SFTP subsystem, for secure file transfer over an SSH2 connection.

Check this http://www.proftpd.org/docs/contrib/mod_sftp.html for more details.
 
Last edited:
In cases when an access to a server is required from non-trusted networks I use OpenVPN.


That pointing out yup. ;)

While open WIFI networks as IT_Architect mentioned. There you have to teach the (NON IT)(FTP) USER a little or worse ... in the head. ;)

Still it is a good custom to check log files for access.
 
Well, how much NON IT should an user be if he/she uses FTP/FTPs/sFTP? ;)

Yes, VPN is not very common yet. Potentially a hosting company might offer key-based openvpn profiles for their customers, and a short video guide on how to install OpenVPN from a Play market for Android and Apple store for iPhones. I believe it's a matter of company marketing... as this limitation is a security improvement to keep customers data secured and private. Many users know about hackers, and SPAM, and VPN is coming more common these days.

If it's still too much complicated then an user should use FTPs, with .ftpaccess per IP limitations as an option.
 
Why is the --enable-dso flag not present in the services/all/sftp/configure.proftpd.sftp file?

Compile fails on some configurations, I guess ClamAV as it complains about external stuff
 
ProFTPd can be compiled with sFTP support. You will still have all FTP credentials workinf for sFTP and no SSH access is required to get sFTP from ProFTPd to be usable. Then you might close 20, 21 ports with firewall. Install guide: https://help.directadmin.com/item.php?id=439
These instructions don't work. I moved sshd to port 44 before all of this and turned the firewall off.
Code:
root@server:/usr/local/directadmin/custombuild # sockstat -l -4| grep sshd
root     sshd       709   4  tcp4   *:44                  *:*

Code:
./build set proftpd yes - returns proftpd is not a valid option.
I also don't think it is needed as pureftpd=0 in directadmin.conf.

./build proftpd - fails, returns this:
Code:
./build: setenv: not found
Found /usr/local/directadmin/custombuild/proftpd-1.3.6.tar.gz
Extracting /usr/local/directadmin/custombuild/proftpd-1.3.6.tar.gz...
Using 174.37.30.194 for your server IP
Configuring proftpd-1.3.6...
checking build system type... x86_64-unknown-freebsd11.2
checking host system type... x86_64-unknown-freebsd11.2
checking target system type... x86_64-unknown-freebsd11.2
checking for gcc... clang
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether clang accepts -g... yes
checking for clang option to accept ISO C89... none needed
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by clang... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/local/bin/nm -B
checking the name lister (/usr/local/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/local/bin/nm -B output from clang object... ok
checking how to run the C preprocessor... clang-cpp
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if clang supports -fno-rtti -fno-exceptions... yes
checking for clang option to produce PIC... -fPIC -DPIC
checking if clang PIC flag -fPIC -DPIC works... yes
checking if clang static flag -static works... yes
checking if clang supports -c -o file.o... yes
checking if clang supports -c -o file.o... (cached) yes
checking whether the clang linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... no
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... no
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... no
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for gcc... (cached) clang
checking whether we are using the GNU C compiler... (cached) yes
checking whether clang accepts -g... (cached) yes
checking for clang option to accept ISO C89... (cached) none needed
checking whether we are using the GNU C++ compiler... yes
checking whether clang++ accepts -g... yes
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether clang++ accepts -g... (cached) yes
checking how to run the C++ preprocessor... clang++ -E
checking for ld used by clang++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the clang++ linker (/usr/bin/ld) supports shared libraries... no
checking for clang++ option to produce PIC... -fPIC -DPIC
checking if clang++ PIC flag -fPIC -DPIC works... yes
checking if clang++ static flag -static works... yes
checking if clang++ supports -c -o file.o... yes
checking if clang++ supports -c -o file.o... (cached) yes
checking whether the clang++ linker (/usr/bin/ld) supports shared libraries... no
checking dynamic linker characteristics... no
checking how to hardcode library paths into programs... immediate
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking whether the C compiler accepts -Wall... yes
checking whether the C compiler accepts -fno-omit-frame-pointer... yes
checking for getopt... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for getopt_long... yes
checking which extension is used for runtime loadable modules... .so
checking which variable specifies run-time module search path...
checking for the default library search path... /lib /usr/lib
checking for library containing dlopen... none required
checking for dlerror... yes
checking for shl_load... (cached) no
checking for shl_load in -ldld... (cached) no
checking for dld_link in -ldld... no
checking for _ prefix in compiled symbols... no
checking whether deplibs are loaded by dlopen... yes
checking for argz.h... no
checking for error_t... no
checking for argz_add... no
checking for argz_append... no
checking for argz_count... no
checking for argz_create_sep... no
checking for argz_insert... no
checking for argz_next... no
checking for argz_stringify... no
checking whether libtool supports -dlopen/-dlpreopen... yes
checking for bindtextdomain in -lintl... no
checking for bindtextdomain in -lc... no
configure: error: libintl support, required for NLS, not present -- aborting
Done. Making proftpd-1.3.6...
Trying to make ProFTPD...
gmake: *** No targets specified and no makefile found.  Stop.

*** The make has failed, would you like to try to make again? (y,n):
^Z
# cd proftpd-1.3.6
# ./configure
# cd ..
# fg
press 'y' + [ENTER] (It will retry the compile except it will work this time)

Code:
Suspended
root@server:/usr/local/directadmin/custombuild # cd proftpd-1.3.6
root@server:/usr/local/directadmin/custombuild/proftpd-1.3.6 # ./configure
checking build system type... x86_64-unknown-freebsd11.2
checking host system type... x86_64-unknown-freebsd11.2
checking target system type... x86_64-unknown-freebsd11.2
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/local/bin/ld
checking if the linker (/usr/local/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/local/bin/nm -B
checking the name lister (/usr/local/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 196608
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... no
checking for /usr/local/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/local/bin/nm -B output from gcc object... ok
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/local/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... no
checking how to hardcode library paths into programs... immediate
checking for shl_load... no
checking for shl_load in -ldld... no
checking for dlopen... yes
checking whether a program can dlopen itself... yes
checking whether a statically linked program can dlopen itself... no
checking whether stripping libraries is possible... no
checking if libtool supports shared libraries... no
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ accepts -g... (cached) yes
checking how to run the C++ preprocessor... g++ -E
checking for ld used by g++... /usr/local/bin/ld
checking if the linker (/usr/local/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/local/bin/ld) supports shared libraries... no
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/local/bin/ld) supports shared libraries... no
checking dynamic linker characteristics... no
checking how to hardcode library paths into programs... immediate
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking whether the C compiler accepts -Wall... yes
checking whether the C compiler accepts -fno-omit-frame-pointer... yes
checking for getopt... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for getopt_long... yes
checking which extension is used for runtime loadable modules... .so
checking which variable specifies run-time module search path...
checking for the default library search path... /lib /usr/lib
checking for library containing dlopen... none required
checking for dlerror... yes
checking for shl_load... (cached) no
checking for shl_load in -ldld... (cached) no
checking for dld_link in -ldld... no
checking for _ prefix in compiled symbols... no
checking whether deplibs are loaded by dlopen... yes
checking for argz.h... no
checking for error_t... no
checking for argz_add... no
checking for argz_append... no
checking for argz_count... no
checking for argz_create_sep... no
checking for argz_insert... no
checking for argz_next... no
checking for argz_stringify... no
checking whether libtool supports -dlopen/-dlpreopen... yes
checking for standalone crypt... no
checking for crypt in -lcrypt... yes
checking for standalone gethostbyname... yes
checking for standalone inet_aton... yes
checking for standalone nsl functions... yes
checking for standalone socket functions... yes
checking for _pw_stayopen variable... no
checking krb.h usability... no
checking krb.h presence... no
checking for krb.h... no
checking login.h usability... no
checking login.h presence... no
checking for login.h... no
checking prot.h usability... no
checking prot.h presence... no
checking for prot.h... no
checking usersec.h usability... no
checking usersec.h presence... no
checking for usersec.h... no
checking sys/audit.h usability... no
checking sys/audit.h presence... no
checking for sys/audit.h... no
checking hpsecurity.h usability... no
checking hpsecurity.h presence... no
checking for hpsecurity.h... no
checking for hpsecurity.h workaround... no
checking for AIX authenticate... no
checking for AIX loginfailed... no
checking for AIX loginsuccess... no
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for ANSI C header files... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking linux/prctl.h usability... no
checking linux/prctl.h presence... no
checking for linux/prctl.h... no
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/prctl.h usability... no
checking sys/prctl.h presence... no
checking for sys/prctl.h... no
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking junistd.h usability... no
checking junistd.h presence... no
checking for junistd.h... no
checking for memory.h... (cached) yes
checking shadow.h usability... no
checking shadow.h presence... no
checking for shadow.h... no
checking for security/pam_appl.h... yes
checking for security/pam_modules.h... yes
checking for pam/pam_appl.h... no
checking for pam_start in -lpam... yes
checking whether to enable mod_cap... no
checking bstring.h usability... no
checking bstring.h presence... no
checking for bstring.h... no
checking crypt.h usability... no
checking crypt.h presence... no
checking for crypt.h... no
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking execinfo.h usability... yes
checking execinfo.h presence... yes
checking for execinfo.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking for inttypes.h... (cached) yes
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking stropts.h usability... no
checking stropts.h presence... no
checking for stropts.h... no
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for sys/types.h... (cached) yes
checking sys/ucred.h usability... yes
checking sys/ucred.h presence... yes
checking for sys/ucred.h... yes
checking sys/uio.h usability... yes
checking sys/uio.h presence... yes
checking for sys/uio.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking for net/if.h... yes
checking ifaddrs.h usability... yes
checking ifaddrs.h presence... yes
checking for ifaddrs.h... yes
checking for sys/param.h... yes
checking for sys/mount.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking whether netdb.h requires _USE_IRS... no
checking for netinet/in_systm.h... yes
checking for netinet/ip.h... yes
checking netinet/tcp.h usability... yes
checking netinet/tcp.h presence... yes
checking for netinet/tcp.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking libintl.h usability... yes
checking libintl.h presence... yes
checking for libintl.h... yes
checking for sys/stat.h... (cached) yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking sys/termios.h usability... yes
checking sys/termios.h presence... yes
checking for sys/termios.h... yes
checking sys/termio.h usability... no
checking sys/termio.h presence... no
checking for sys/termio.h... no
checking sys/statfs.h usability... no
checking sys/statfs.h presence... no
checking for sys/statfs.h... no
checking sys/statvfs.h usability... yes
checking sys/statvfs.h presence... yes
checking for sys/statvfs.h... yes
checking sys/un.h usability... yes
checking sys/un.h presence... yes
checking for sys/un.h... yes
checking sys/vfs.h usability... no
checking sys/vfs.h presence... no
checking for sys/vfs.h... no
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking dirent.h usability... yes
checking dirent.h presence... yes
checking for dirent.h... yes
checking ndir.h usability... no
checking ndir.h presence... no
checking for ndir.h... no
checking sys/ndir.h usability... no
checking sys/ndir.h presence... no
checking for sys/ndir.h... no
checking sys/dir.h usability... yes
checking sys/dir.h presence... yes
checking for sys/dir.h... yes
checking vmsdir.h usability... no
checking vmsdir.h presence... no
checking for vmsdir.h... no
checking ucred.h usability... no
checking ucred.h presence... no
checking for ucred.h... no
checking ucontext.h usability... yes
checking ucontext.h presence... yes
checking for ucontext.h... yes
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking utmpx.h usability... yes
checking utmpx.h presence... yes
checking for utmpx.h... yes
checking regex.h usability... yes
checking regex.h presence... yes
checking for regex.h... yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking curses.h usability... yes
checking curses.h presence... yes
checking for curses.h... yes
checking ncurses.h usability... yes
checking ncurses.h presence... yes
checking for ncurses.h... yes
checking for tzname global variable... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking for uid_t in sys/types.h... yes
checking for pid_t... yes
checking for size_t... yes
checking for mode_t... yes
checking for off_t... yes
checking type of array argument to getgroups... gid_t
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for short... yes
checking size of short... 2
checking for int... yes
checking size of int... 4
checking for long... yes
checking size of long... 8
checking for long long... yes
checking size of long long... 8
checking for off_t... (cached) yes
checking size of off_t... 8
checking for size_t... (cached) yes
checking size of size_t... 8
checking for time_t... yes
checking size of time_t... 8
checking for char *... yes
checking size of char *... 8
checking for void *... yes
checking size of void *... 8
checking for uid_t... (cached) yes
checking size of uid_t... 4
checking for gid_t... yes
checking size of gid_t... 4
checking for mode_t... (cached) yes
checking for ino_t... yes
checking for intptr_t... yes
checking for socklen_t... yes
checking utmp.h usability... no
checking utmp.h presence... no
checking for utmp.h... no
checking whether struct utmp has ut_user... no
checking whether struct utmp has ut_host... no
checking whether struct utmp has ut_exit... no
checking whether syslog.h defines LOG_CRON... yes
checking whether syslog.h defines LOG_FTP... yes
checking for d_fd in DIR structure... no
checking for dd_fd in DIR structure... no
checking for __dd_fd in DIR structure... no
checking for working alloca.h... no
checking for alloca... yes
checking for alloca in -lucb... no
checking whether gcc needs -traditional... no
checking return type of signal handlers... void
checking for vprintf... yes
checking for _doprnt... no
checking for bcopy... yes
checking for crypt... yes
checking for fdatasync... yes
checking for fgetgrent... no
checking for fgetpwent... no
checking for fgetspent... no
checking for flock... yes
checking for fpathconf... yes
checking for freeaddrinfo... yes
checking for fsync... yes
checking for futimes... yes
checking for getifaddrs... yes
checking for getpgid... yes
checking for getpgrp... yes
checking for mkdtemp... yes
checking for nl_langinfo... yes
checking for gai_strerror... yes
checking for iconv... no
checking for dirfd... yes
checking for getaddrinfo... yes
checking for getcwd... yes
checking for getenv... yes
checking for getgrouplist... yes
checking for getgroups... yes
checking for getgrset... no
checking for gethostbyname2... yes
checking for gethostname... yes
checking for getnameinfo... yes
checking for gettimeofday... yes
checking for hstrerror... yes
checking for inet_aton... yes
checking for inet_ntop... yes
checking for inet_pton... yes
checking for initgroups... yes
checking for loginrestrictions... no
checking for memcpy... yes
checking for mempcpy... no
checking for memset_s... yes
checking for mkdir... yes
checking for mkstemp... yes
checking for mlock... yes
checking for mlockall... yes
checking for munlock... yes
checking for munlockall... yes
checking for pathconf... yes
checking for posix_fadvise... yes
checking for prctl... no
checking for putenv... yes
checking for regcomp... yes
checking for rmdir... yes
checking for select... yes
checking for setgroups... yes
checking for socket... yes
checking for statfs... yes
checking for strchr... yes
checking for strcoll... yes
checking for strerror... yes
checking for strlcat... yes
checking for strlcpy... yes
checking for strsep... yes
checking for strtod... yes
checking for strtof... yes
checking for strtol... yes
checking for strtoll... yes
checking for strtoull... yes
checking for setprotoent... yes
checking for setspent... no
checking for endprotoent... yes
checking for vsnprintf... yes
checking for snprintf... yes
checking for setsid... yes
checking for setgroupent... yes
checking for seteuid... yes
checking for setegid... yes
checking for setenv... yes
checking for setpgid... yes
checking for siginterrupt... yes
checking for tzset... yes
checking for uname... yes
checking for unsetenv... yes
checking for setpassent... yes
checking for struct cmsgcred.cmcred_uid... yes
checking for struct sockcred.sc_uid... yes
checking for struct sockpeercred.uid... no
checking for struct sockaddr_in.sin_len... yes
checking for struct statfs.f_fstypename... yes
checking for struct statfs.f_type... yes
checking whether struct addrinfo is defined... yes
checking whether struct sockaddr_storage is defined... yes
checking whether ss_family is defined... yes
checking whether ss_len is defined... yes
checking sys/acl.h usability... yes
checking sys/acl.h presence... yes
checking for sys/acl.h... yes
checking acl/libacl.h usability... no
checking acl/libacl.h presence... no
checking for acl/libacl.h... no
checking for perm_copy_fd in -lacl... no
checking which POSIX ACL implementation to use... BSD
checking which sendfile() implementation to use... BSD
checking sys/extattr.h usability... yes
checking sys/extattr.h presence... yes
checking for sys/extattr.h... yes
checking for extattr_delete_link... yes
checking for extattr_get_link... yes
checking for extattr_list_link... yes
checking for extattr_set_link... yes
checking sys/xattr.h usability... no
checking sys/xattr.h presence... no
checking for sys/xattr.h... no
checking whether setgrent returns void... no
checking for initscr in -lcurses... yes
checking for initscr in -lncurses... yes
checking for halfdelay in -ltinfo... yes
checking for setproctitle... yes
checking libutil.h usability... yes
checking libutil.h presence... yes
checking for libutil.h... yes
checking for setproctitle in -lutil... yes
checking for backtrace in -lexecinfo... yes
checking for execinfo.h... (cached) yes
checking for ucontext.h... (cached) yes
checking for backtrace... yes
checking for backtrace_symbols... yes
checking whether printf supports %llu format... yes
checking for duplicate module build requests... no
configure: creating ./config.status
config.status: creating contrib/Makefile
config.status: creating include/Makefile
config.status: creating lib/Makefile
config.status: creating locale/Makefile
config.status: creating modules/Makefile
config.status: creating src/Makefile
config.status: creating src/prxs
config.status: creating src/ftpdctl.8
config.status: creating src/proftpd.8
config.status: creating src/proftpd.conf.5
config.status: creating src/xferlog.5
config.status: creating tests/Makefile
config.status: creating utils/Makefile
config.status: creating utils/ftpcount.1
config.status: creating utils/ftpscrub.8
config.status: creating utils/ftpshut.8
config.status: creating utils/ftptop.1
config.status: creating utils/ftpwho.1
config.status: creating Makefile
config.status: creating Make.rules
config.status: creating config.h
config.status: executing libtool commands
config.status: executing default commands

--------------
Build Summary
--------------
Building the following static modules:
  mod_ident
  mod_auth_pam

--------------
root@server:/usr/local/directadmin/custombuild/proftpd-1.3.6 # cd ..
root@server:/usr/local/directadmin/custombuild # fg
./build proftpd
y

Trying to make ProFTPD...
echo \#define BUILD_STAMP \"`date +"%a %b %e %Y %H:%M:%S %Z"`\" > include/buildstamp.h
cd lib/ && /usr/local/bin/gmake lib
cd src/ && /usr/local/bin/gmake src
gmake[1]: Entering directory '/usr/local/directadmin/custombuild/proftpd-1.3.6/lib'
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c pr_fnmatch.c
gmake[1]: Entering directory '/usr/local/directadmin/custombuild/proftpd-1.3.6/src'
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c main.c
In file included from pr_fnmatch.c:260:0:
pr_fnmatch_loop.c: In function 'internal_fnmatch':
pr_fnmatch_loop.c:75:7: [COLOR="#FF0000"]warning[/COLOR]: variable 'is_seqval' set but not used [[COLOR="#FF0000"]-Wunused-but-set-variable[/COLOR]]
   int [COLOR="#FF0000"]is_seqval[/COLOR] = 0;
       ^~~~~~~~~
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c sstrncpy.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c strsep.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c vsnprintf.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c timers.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c glibc-glob.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c sets.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c pool.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c glibc-hstrerror.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c glibc-mkstemp.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c pr-syslog.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c privs.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c pwgrent.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c str.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c hanson-tpl.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c table.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c regexp.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c configdb.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c ccan-json.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c dirtree.c
ar rc libsupp.a pr_fnmatch.o sstrncpy.o strsep.o vsnprintf.o glibc-glob.o glibc-hstrerror.o glibc-mkstemp.o pr-syslog.o pwgrent.o hanson-tpl.o ccan-json.o
ranlib libsupp.a
gmake[1]: Leaving directory '/usr/local/directadmin/custombuild/proftpd-1.3.6/lib'
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c expr.c
cd modules/ && /usr/local/bin/gmake static
gmake[1]: Entering directory '/usr/local/directadmin/custombuild/proftpd-1.3.6/modules'
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_core.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c signals.c
signals.c: In function 'handle_stacktrace_signal':
signals.c:170:15: [COLOR="#FF0000"]warning[/COLOR]: variable 'uc' set but not used [[COLOR="#FF0000"]-Wunused-but-set-variable[/COLOR]]
   ucontext_t *uc = NULL;
               ^~
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c support.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c netaddr.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c inet.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_xfer.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c child.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c parser.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c log.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c lastlog.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c xferlog.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c bindings.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_rlimit.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_auth_unix.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c netacl.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c class.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_auth_file.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c scoreboard.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c help.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_auth.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c feat.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c netio.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c cmd.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c response.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c ascii.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_ls.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c data.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c modules.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c stash.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c display.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c auth.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_log.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c fsio.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_site.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_delay.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_facts.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_ident.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mkhome.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c mod_auth_pam.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c ctrls.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c event.c
srcdir=. ./glue.sh mod_core.o mod_xfer.o mod_rlimit.o mod_auth_unix.o mod_auth_file.o mod_auth.o mod_ls.o mod_log.o mod_site.o mod_delay.o mod_facts.o mod_ident.o mod_auth_pam.o
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c module_glue.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c var.c
gmake[1]: Leaving directory '/usr/local/directadmin/custombuild/proftpd-1.3.6/modules'
test -z """" -a -z """" || (cd modules/ && /usr/local/bin/gmake shared)
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c throttle.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c session.c
test -z """" || (cd locale/ && /usr/local/bin/gmake locale)
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c trace.c
cd utils/ && /usr/local/bin/gmake utils
gmake[1]: Entering directory '/usr/local/directadmin/custombuild/proftpd-1.3.6/utils'
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c ftpcount.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c encode.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c scoreboard.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c proctitle.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c misc.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c filter.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c ftpscrub.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c pidfile.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c ftpshut.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c env.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c ftptop.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c version.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c rlimit.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c ftpwho.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c wtmp.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c json.c
gmake[1]: Leaving directory '/usr/local/directadmin/custombuild/proftpd-1.3.6/utils'
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c memcache.c
gcc -L./lib  -rdynamic  -o ftpcount utils/ftpcount.o utils/scoreboard.o utils/misc.o -ltinfo -lsupp -lexecinfo -lcrypt  -lutil
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c redis.c
gcc -DHAVE_CONFIG_H  -DFREEBSD11_2 -DFREEBSD11 -I.. -I../include  -g2 -O2 -Wall -fno-omit-frame-pointer -c ftpdctl.c
gcc -L./lib  -rdynamic  -o ftpscrub utils/ftpscrub.o utils/scoreboard.o utils/misc.o -ltinfo -lsupp -lexecinfo -lcrypt  -lutil
gmake[1]: Leaving directory '/usr/local/directadmin/custombuild/proftpd-1.3.6/src'
gcc -L./lib  -rdynamic  -o ftpshut utils/ftpshut.o -ltinfo -lsupp -lexecinfo -lcrypt  -lutil
gcc -L./lib  -rdynamic  -o ftptop utils/ftptop.o utils/scoreboard.o utils/misc.o -lncurses -ltinfo -lsupp -lexecinfo -lcrypt  -lutil
gcc -L./lib  -rdynamic  -o ftpwho utils/ftpwho.o utils/scoreboard.o utils/misc.o -ltinfo -lsupp -lexecinfo -lcrypt  -lutil
test -f ./module-libs.txt || touch ./module-libs.txt
/bin/sh ./libtool --mode=link --tag=CC gcc -L./lib  -rdynamic   -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/configdb.o src/dirtree.o src/expr.o src/signals.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/ascii.o src/data.o src/modules.o src/stash.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/rlimit.o src/wtmp.o src/json.o src/memcache.o src/redis.o modules/mod_core.o modules/mod_xfer.o modules/mod_rlimit.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_auth_pam.o  modules/module_glue.o  -lsupp -lexecinfo -lcrypt  -lutil  -lpam    `uniq ./module-libs.txt | tr '\n' ' '`
gcc -L./lib  -rdynamic  -o ftpdctl src/ftpdctl.o src/pool.o src/str.o src/netaddr.o src/log.o src/ctrls.o -lsupp -lexecinfo -lcrypt  -lutil  -lpam
libtool: link: gcc -rdynamic -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/configdb.o src/dirtree.o src/expr.o src/signals.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/ascii.o src/data.o src/modules.o src/stash.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/rlimit.o src/wtmp.o src/json.o src/memcache.o src/redis.o modules/mod_core.o modules/mod_xfer.o modules/mod_rlimit.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_auth_pam.o modules/module_glue.o  -L/usr/local/directadmin/custombuild/proftpd-1.3.6/lib -lsupp -lexecinfo -lcrypt -lutil -lpam
Make complete
Installing proftpd-1.3.6...
cd lib/ && make lib
cd modules/ && make static
test -z """" -a -z """" || (cd modules/ && make shared)
test -z """" || (cd locale/ && make locale)
test -f ./module-libs.txt || touch ./module-libs.txt
/bin/sh ./libtool --mode=link --tag=CC gcc -L./lib  -rdynamic  -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o  src/table.o src/regexp.o src/configdb.o src/dirtree.o src/expr.o  src/signals.o src/support.o src/netaddr.o src/inet.o src/child.o  src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o  src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o  src/netio.o src/cmd.o src/response.o src/ascii.o src/data.o  src/modules.o src/stash.o src/display.o src/auth.o src/fsio.o  src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o  src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o  src/pidfile.o src/env.o src/version.o src/rlimit.o src/wtmp.o  src/json.o src/memcache.o src/redis.o modules/mod_core.o modules/mod_xfer.o modules/mod_rlimit.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_auth_pam.o  modules/module_glue.o  -lsupp -lexecinfo -lcrypt  -lutil  -lpam  `uniq ./module-libs.txt | tr '\n' ' '`
libtool: link: gcc -rdynamic -o proftpd src/main.o src/timers.o src/sets.o src/pool.o src/privs.o src/str.o src/table.o src/regexp.o src/configdb.o src/dirtree.o src/expr.o src/signals.o src/support.o src/netaddr.o src/inet.o src/child.o src/parser.o src/log.o src/lastlog.o src/xferlog.o src/bindings.o src/netacl.o src/class.o src/scoreboard.o src/help.o src/feat.o src/netio.o src/cmd.o src/response.o src/ascii.o src/data.o src/modules.o src/stash.o src/display.o src/auth.o src/fsio.o src/mkhome.o src/ctrls.o src/event.o src/var.o src/throttle.o src/session.o src/trace.o src/encode.o src/proctitle.o src/filter.o src/pidfile.o src/env.o src/version.o src/rlimit.o src/wtmp.o src/json.o src/memcache.o src/redis.o modules/mod_core.o modules/mod_xfer.o modules/mod_rlimit.o modules/mod_auth_unix.o modules/mod_auth_file.o modules/mod_auth.o modules/mod_ls.o modules/mod_log.o modules/mod_site.o modules/mod_delay.o modules/mod_facts.o modules/mod_ident.o modules/mod_auth_pam.o modules/module_glue.o  -L/usr/local/directadmin/custombuild/proftpd-1.3.6/lib -lsupp -lexecinfo -lcrypt -lutil -lpam
/usr/bin/install -c  -o root -g wheel -m 0755 proftpd /usr/local/sbin/proftpd
if [ -f /usr/local/sbin/in.proftpd ] ; then  rm -f /usr/local/sbin/in.proftpd ;  fi
ln -s proftpd /usr/local/sbin/in.proftpd
chown -h root:wheel /usr/local/sbin/in.proftpd
test -z """" -a -z """" -a -z """" || (cd modules/ && make install)
cd contrib/ && make install-utils
/usr/bin/install -c -o root -g wheel -m 0755 ftpasswd /usr/local/bin/ftpasswd
/usr/bin/install -c -o root -g wheel -m 0755 ftpmail /usr/local/bin/ftpmail
/usr/bin/install -c -o root -g wheel -m 0755 ftpquota /usr/local/bin/ftpquota
/usr/bin/install -c  -o root -g wheel -m 0755  ftpcount /usr/local/bin/ftpcount
/usr/bin/install -c  -o root -g wheel -m 0755  ftpdctl  /usr/local/bin/ftpdctl
/usr/bin/install -c  -o root -g wheel -m 0755 ftpscrub /usr/local/sbin/ftpscrub
/usr/bin/install -c  -o root -g wheel -m 0755 ftpshut  /usr/local/sbin/ftpshut
/usr/bin/install -c  -o root -g wheel -m 0755  ftptop   /usr/local/bin/ftptop
/usr/bin/install -c  -o root -g wheel -m 0755  ftpwho   /usr/local/bin/ftpwho
/usr/bin/install -c -o root -g wheel -m 0755 src/prxs /usr/local/bin/prxs
if [ ! -f /usr/local/etc/proftpd.conf ] ; then  /usr/bin/install -c -o root -g wheel -m 0644  ./sample-configurations/basic.conf  /usr/local/etc/proftpd.conf ;  fi
/usr/bin/install -c -o root -g wheel -m 0644 ./src/ftpdctl.8    /usr/local/share/man/man8
/usr/bin/install -c -o root -g wheel -m 0644 ./src/proftpd.8    /usr/local/share/man/man8
/usr/bin/install -c -o root -g wheel -m 0644 ./utils/ftpasswd.1 /usr/local/share/man/man1
/usr/bin/install -c -o root -g wheel -m 0644 ./utils/ftpmail.1  /usr/local/share/man/man1
/usr/bin/install -c -o root -g wheel -m 0644 ./utils/ftpquota.1 /usr/local/share/man/man1
/usr/bin/install -c -o root -g wheel -m 0644 ./utils/ftpscrub.8 /usr/local/share/man/man8
/usr/bin/install -c -o root -g wheel -m 0644 ./utils/ftpshut.8  /usr/local/share/man/man8
/usr/bin/install -c -o root -g wheel -m 0644 ./utils/ftpcount.1 /usr/local/share/man/man1
/usr/bin/install -c -o root -g wheel -m 0644 ./utils/ftptop.1   /usr/local/share/man/man1
/usr/bin/install -c -o root -g wheel -m 0644 ./utils/ftpwho.1   /usr/local/share/man/man1
/usr/bin/install -c -o root -g wheel -m 0644 ./src/proftpd.conf.5 /usr/local/share/man/man5
/usr/bin/install -c -o root -g wheel -m 0644 ./src/xferlog.5    /usr/local/share/man/man5
cd lib/ && make install
/usr/bin/install -c -o root -g wheel -m 0644 config.h /usr/local/include/proftpd/config.h
cd include/ && make install
/usr/bin/install -c -o root -g wheel -m 0644 proftpd.pc /usr/local/lib/pkgconfig/proftpd.pc
test -z """" || (cd locale/ && make install)
Done proftpd.
./build: unsetenv: not found
Restarting ProFTPd.
Shutting down proftpd:          [ OK ]
Starting proftpd:               [ OK ]

Code:
# telnet localhost 21
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 ProFTPD Server ready.
quit
221 Goodbye.
Connection closed by foreign host.
# telnet localhost 23
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
Trying ::1...
telnet: connect to address ::1: Connection refused
telnet: Unable to connect to remote host

Code:
root@server:/usr/local/directadmin/custombuild # sockstat -l -4 | grep proftpd
ftp      proftpd    41755 0  tcp46  *:21                  *:*

Apparently this doesn't work with FreeBSD.
 
I would not say the guide doesn't work... if I do

Code:
./build proftpd 2>&1 | grep -i sftp -c

I will get 23 matched lines on my CentOS 6. But if I check your output I don't count even a single line with sftp mentioned.

I don't know what you did and what not, but be assured the guide works. I used the guide many times on CentOS and Debian servers, I don't recall whether or not I've tested on any FreeBSD version.... probably the latest was FreeBSD 5.x... too long ago.

So let's start and see what you have in [FONT=&quot]custom/proftpd/configure.proftpd[/FONT]
 
I would not say the guide doesn't work... if I do

Code:
./build proftpd 2>&1 | grep -i sftp -c

I will get 23 matched lines on my CentOS 6. But if I check your output I don't count even a single line with sftp mentioned.

I don't know what you did and what not, but be assured the guide works. I used the guide many times on CentOS and Debian servers, I don't recall whether or not I've tested on any FreeBSD version.... probably the latest was FreeBSD 5.x... too long ago.

So let's start and see what you have in [FONT=&quot]custom/proftpd/configure.proftpd[/FONT]

If you follow the guide:
1. From the get-go ./build set proftpd yes throws the error: proftpd is not a valid option. At first I thought it was an error, but it really is not a valid option, pureftp=0 or 1 is.

2. As soon as you make the custom/proftpd and run the script to put files in there, you can't compile anymore. You end up with the error:
configure: error: libintl support, required for NLS, not present -- aborting
That's because the original script turns off the NLS when it sees it is FreeBSD. This is a thread Proftpd update where everyone else with FreeBSD also had the issue, and John and SmTalk discuss it, and while it is the same error, there is not necessarily a solution for this case. A work-around that was suggested by sysdev worked for others, and worked for me too, but as you said, I don't see any evidence if it pulling in mod_sftp, which is also why you see the port 23 test not working.

3. Towards the bottom it throws another error as well:
./build: unsetenv: not found

The areas I have colored are the areas the compiler colored.

Prior to all of this, I upgraded all of the parts of the DA install to the latest, and a build all. The guide does not work with FreeBSD. I since rolled back to the snapshot and can start from scratch again, but it doesn't make sense to just go down the script like last two times because I know that doesn't work. I already tried the method suggested by sysdev that worked for others and me, and while it takes care of the compile issue, it doesn't appear to add in mod_sftp. I may try SmTalk's unproven suggestion next time, and go through the configs as I go, because it cannot be that the scripts are making the right changes or it would work.
 
Last edited:
OK, I see. Thanks for the clarification.

It should start with the following command
Code:
./build set ftpd proftpd
for custombuild 2 instead of [FONT=&quot]./build set proftpd yes[/FONT]

I don't have anything more to add or comment , I don't have FreeBSD server for testing it.

And still are you sure that you updated custom/proftpd/configure.proftpd in a correct way?
 
OK, I see. Thanks for the clarification.

It should start with the following command
Code:
./build set ftpd proftpd
for custombuild 2 instead of [FONT="]./build set proftpd yes[/FONT][/COLOR]
[/B]
I don't have anything more to add or comment , I don't have FreeBSD server for testing it.

And still are you sure that you updated [COLOR=#000000][I]custom/proftpd/configure.proftpd [/I][/COLOR]in a correct way?[/QUOTE]I'm thinking through a logical strategy of what to try next before I attempt it again. I did try FTPs and it works fine in explicit mode.

[B]PS[/B]: I did implement smtalk's suggestion, and the compiler didn't error out after I did that, however, I didn't end up with sFTP either. I rolled back to the snapshot so that I would go back to clean, and not leave behind any artifacts of my failed attempts. The only thing I can gather from this and reading other threads is nobody has been successful implementing ProFTPd sFTP with FreeBSD using [URL="https://help.directadmin.com/item.php?id=439"]How to install mod_sftp into proftpd[/URL], nor does implementing the compiler error work-arounds suggested by sysadmin and smtalk result in
 
Last edited:
Back
Top