Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LIBBLACKLIST(3) 	     Library Functions Manual		 LIBBLACKLIST(3)

NAME
     blacklist_open,  blacklist_open2,	blacklist_close, blacklist_r, blacklist,
     blacklist_sa, blacklist_sa_r -- Blacklistd notification library

LIBRARY
     libblacklist

SYNOPSIS
     #include <blacklist.h>

     struct blacklist *
     blacklist_open(void);

     struct blacklist *
     blacklist_open2(void (*logger)(int, struct syslog_data *, va_list));

     void
     blacklist_close(struct blacklist *cookie);

     int
     blacklist(int action, int fd, const char *msg);

     int
     blacklist_r(struct blacklist *cookie, int action, int fd, const char *msg);

     int
     blacklist_sa(int action, int fd, const struct sockaddr *sa,
	 socklen_t salen, const char *msg);

     int
     blacklist_sa_r(struct blacklist *cookie, int action, int fd,
	 const struct sockaddr *sa, socklen_t salen, const char *msg);

DESCRIPTION
     These functions can be used by daemons to notify blacklistd(8)  about  suc-
     cessful  and  failed remote connections so that blacklistd can block or re-
     lease port access to prevent Denial of Service attacks.

     The function blacklist_open() creates the necessary  state  to  communicate
     with blacklistd(8) and returns a pointer to it, or NULL on failure.

     The  function blacklist_open2() is similar to blacklist_open() but allows a
     logger to be specified.  If the logger is NULL, then  no  logging	is  per-
     formed.

     The blacklist_close() function frees all memory and resources used.

     The  blacklist() function sends a message to blacklistd(8), with an integer
     action argument specifying the type of notification, a file  descriptor  fd
     specifying the accepted file descriptor connected to the client, and an op-
     tional message in the msg argument.

     The action parameter can take these values:

     BLACKLIST_AUTH_FAIL	 There	was  an  unsuccessful authentication at-
				 tempt.

     BLACKLIST_AUTH_OK		 A user successfully authenticated.

     BLACKLIST_ABUSIVE_BEHAVIOR  The sending daemon has detected abusive  behav-
				 ior from the remote system.  The remote address
				 should be blocked as soon as possible.

     BLACKLIST_BAD_USER 	 The  sending daemon has determined the username
				 presented for authentication is  invalid.   The
				 blacklistd(8) daemon compares the username to a
				 configured  list  of  forbidden  usernames  and
				 blocks the address immediately if  a  forbidden
				 username matches.  (The BLACKLIST_BAD_USER sup-
				 port is not currently available.)

     The blacklist_r() function is more efficient because it keeps the blacklist
     state around.

     The  blacklist_sa()  and blacklist_sa_r() functions can be used with uncon-
     nected sockets, where getpeername(2) will not work, the  server  will  pass
     the peer name in the message.

     In all cases the file descriptor passed in the fd argument must be pointing
     to  a valid socket so that blacklistd(8) can establish ownership of the lo-
     cal endpoint using getsockname(2).

     By default, syslogd(8) is used for message logging.  The  internal  bl_cre-
     ate()  function can be used to create the required internal state and spec-
     ify a custom logging function.

RETURN VALUES
     The function blacklist_open() returns a cookie on success and NULL on fail-
     ure setting errno to an appropriate value.

     The functions blacklist(), blacklist_sa(), and blacklist_sa_r() return 0 on
     success and -1 on failure setting errno to an appropriate value.

NOTES
     The libblacklist has been renamed to libblocklist(3).

SEE ALSO
     blacklistd.conf(5), blacklistd(8)

AUTHORS
     Christos Zoulas

FreeBSD ports 15.1		February 5, 2025		 LIBBLACKLIST(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=libblacklist&sektion=3&manpath=FreeBSD+15.1-RELEASE+and+Ports>

home | help