Security Audit and Trailing Functionality
Summary
Functions
block_user/4 and block_user/5 each
blocks the user User from directory Dir for a specified amount of time.
list_auth_users/1,
list_auth_users/2, and
list_auth_users/3 each returns a list of users that are
currently authenticated. Authentications are stored for SecurityAuthTimeout
seconds, and then discarded.
list_blocked_users/1,
list_blocked_users/2, and
list_blocked_users/3 each returns a list of users
that are currently blocked from access.
unblock_user/2, unblock_user/3, and
unblock_user/4 each removes the user User from the list
of blocked users for Port (and Dir).
Callbacks
Types
What = auth_fail | user_block | user_unblock
Address = inet:ip4_address() | inet:ip6_address() | string()
Port = integer()
Dir = string()
Data = [Info]
Info = {Name :: term(), Value :: term()}
event/4 or event/5 is called whenever an event
occurs in the mod_security Erlang web server API module.
(event/4 is called if Address is undefined, otherwise
event/5. Argument What specifies the type of event that has
occurred and is one of the following reasons:
auth_fail- A failed user authentication.user_block- A user is being blocked from access.user_unblock- A user is being removed from the block list.
Note
The event user_unblock is not triggered when a user is removed from the
block list explicitly using the unblock_user function.
Functions
Types
User = Dir = string()
Address = inet:ip4_address() | inet:ip6_address() | string() | undefined
Port = inet:port_number()
Seconds = non_neg_integer() | infinity
Result = true | {error, Reason}
Reason = no_such_directory
block_user/4 and block_user/5 each
blocks the user User from directory Dir for a specified amount of time.
-spec list_auth_users(Port) -> Users | [] when Port :: inet:port_number(), Users :: [string()].
-spec list_auth_users(Port, Directory) -> Users | [] when Port :: inet:port_number(), Directory :: string(), Users :: [string()]; (Address, Port) -> Users | [] when Port :: inet:port_number(), Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined, Users :: [string()].
-spec list_auth_users(Address, Port, Dir) -> Users | [] when Port :: inet:port_number(), Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined, Dir :: string(), Users :: [string()].
list_auth_users/1,
list_auth_users/2, and
list_auth_users/3 each returns a list of users that are
currently authenticated. Authentications are stored for SecurityAuthTimeout
seconds, and then discarded.
-spec list_blocked_users(Port) -> Users | [] when Port :: integer(), Users :: [{blocked_user, term(), term(), term(), term()}].
-spec list_blocked_users(Port, Directory) -> Users | [] when Port :: integer(), Directory :: string(), Users :: [{blocked_user, term(), term(), term(), term()}]; (Address, Port) -> Users | [] when Port :: integer(), Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined, Users :: [{blocked_user, term(), term(), term(), term()}].
-spec list_blocked_users(Address, Port, Dir) -> Users | [] when Port :: integer(), Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined, Dir :: string(), Users :: [{blocked_user, term(), term(), term(), term()}].
list_blocked_users/1,
list_blocked_users/2, and
list_blocked_users/3 each returns a list of users
that are currently blocked from access.
-spec unblock_user(User, Port) -> true | {error, Reason} when User :: string(), Port :: integer(), Reason :: term().
-spec unblock_user(User, Port, Directory) -> true | {error, Reason} when User :: string(), Port :: integer(), Directory :: string(), Reason :: term(); (User, Address, Port) -> true | {error, Reason} when User :: string(), Port :: integer(), Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined, Reason :: term().
-spec unblock_user(User, Address, Port, Dir) -> true | {error, Reason} when User :: string(), Port :: integer(), Address :: inet:ip4_address() | inet:ip6_address() | string() | undefined, Dir :: string(), Reason :: term().
unblock_user/2, unblock_user/3, and
unblock_user/4 each removes the user User from the list
of blocked users for Port (and Dir).