5.12.3 Very Secure File Transfer Protocol daemon
Very Secure File Transfer Protocol daemon (VSFTPD) provides a secure, fast, and stable file transfer service
to and from a remote host. The behavior of VSFTPD can be controlled by its configuration file
/etc/vsftpd/vsftpd.conf. The remainder of this section describes some of the security-relevant
features of VSFTPD. For additional information, on SLES systems see the documents in
/usr/share/doc/packages/vsftpd/SECURITY/*, and also http://vsftpd.beasts.org.
VSFTPD provides the following security-relevant features:
Ability to use PAM to perform authentication.
Ability to disable anonymous logins. If enabled, prevents anonymous users from writing.
Ability to lock certain users in chroot jail in their home directories.
Ability to hide all user and group information in the directory listing.
Ability to set the secure tunneling scheme.
Ability to perform enhanced logging.
Ability to set connection timeout values.
The daemon generally follows these steps:
1. Parses command-line arguments.
2. Parses the configuration file.
3. Performs sanity checks such as ensuring that standard input is a socket.
4. Initializes the session.
5. Sets up the environment.
6. Starts logging.
7. Depending on the configuration, starts one or multiple process sessions.
8. Invokes appropriate functions to initiate connections.
9. Invokes handle_local_login() for non-anonymous users.
10. handle_local_login() invokes vsf_sysdep_check_auth() to perform authentication.
11. Performs authentication by PAM and starts the session. PAM does the following:
1. Invokes pam_start() to initialize the PAM library and to identify the application with a
particular service name.
2. Invokes pam_authenticate() to authenticate the application user. Terminal echo is turned
off while users are typing their passwords.
3. Invokes pam_acct_mgmt() to perform module specific account management.
4. Invokes pam_setcred() to set credentials.
5. Invokes pam_end().
5.12.4 CUPS
CUPS, the Common UNIX Printing System, is a portable printing layer for operating systems based on
UNIX. It provides command-line interfaces for System V and BSD.
192