mod_procfs
The mod_procfs module affects the visibility and usage of the
/proc filesystem directory.
This module is contained in the mod_procfs file for
ProFTPD 1.3.x, and is not compiled by default. Installation
instructions are discussed here. More examples
of mod_procfs usage can be found here.
The most current version of mod_procfs can be found at:
https://github.com/Castaglia/proftpd-mod_procfs
Please contact TJ Saunders <tj at castaglia.org> with any questions, concerns, or suggestions regarding this module.
<VirtualHost>, <Global>
The ProcfsEngine directive enables or disables the module's
hiding of the /proc filesystem. When enabled,
mod_procfs works to prevent access to the /proc
filesystem, returning "No such file or directory" errors for such access
attempts.
Note that ProcfsEngine is automatically enabled
if the module detects, on startup, that the /proc filesystem
is present. If the /proc filesystem is not present on startup,
then ProcfsEngine is automatically disabled. Explicitly setting
this directive overrides the automatic behavior.
<VirtualHost>, <Global>
The ProcfsLog directive is used to a specify a log file for
mod_procfs reporting and debugging, and can be done a per-server
basis. The file parameter must be the full path to the file to use for
logging. Note that this path must not be to a world-writeable
directory and, unless AllowLogSymlinks is explicitly set to
on (generally a bad idea), the path must not be a symbolic
link.
If file is "none", no logging will be done at all; this
setting can be used to override a ProcfsLog setting inherited from
a <Global> context.
mod_procfs, copy the mod_procfs.c file
into:
proftpd-dir/contrib/after unpacking the latest proftpd-1.3.x source code. For including
mod_procfs as a statically linked module:
./configure --with-modules=mod_procfsTo build
mod_procfs as a DSO module:
./configure --enable-dso --with-shared=mod_procfsThen follow the usual steps:
make make install
For those with an existing ProFTPD installation, you can use the
prxs tool to add mod_procfs, as a DSO module, to
your existing server:
# prxs -c -i -d mod_procfs.c
The mod_procfs module works by using the ProFTPD FSIO API to
intercept all stat(2) and lstat(2) system calls;
if the paths being checked reference the /proc filesystem,
those system calls will fail with a "No such file or directory" error.
Example configuration:
<IfModule mod_procfs.c>
ProcfsEngine on
ProcfsLog /var/log/proftpd/procfs.log
</IfModule>
Logging
The mod_procfs module supports different forms of logging. The
main module logging is done via the
ProcfsLog directive. For debugging
purposes, the module also uses
trace logging, via
the module-specific channels:
Thus for trace logging, to aid in debugging, you would use the following in
your proftpd.conf:
TraceLog /path/to/proftpd-trace.log Trace fsio:20 procfs:20This trace logging can generate large files; it is intended for debugging use only, and should be removed from any production configuration.