Erlang -- mod_security

User's Guide
Reference Manual
Release Notes
PDF
Top

inets
Reference Manual
Version 6.0

Expand All
Contract All

Table of Contents

- inets
  - Top of manual page
  - services/0
  - services_info/0
  - service_names/0
  - start/0
  - start/1
  - stop/0
  - start/2
  - start/3
  - stop/2
- ftp
  - Top of manual page
  - account/2
  - append/2
  - append/3
  - append_bin/3
  - append_chunk/2
  - append_chunk_start/2
  - append_chunk_end/1
  - cd/2
  - close/1
  - delete/2
  - formaterror/1
  - lcd/2
  - lpwd/1
  - ls/1
  - ls/2
  - mkdir/2
  - nlist/1
  - nlist/2
  - open/1
  - open/2
  - pwd/1
  - pwd/1
  - recv/2
  - recv/3
  - recv_bin/2
  - recv_chunk_start/2
  - recv_chunk/1
  - rename/3
  - rmdir/2
  - send/2
  - send/3
  - send_bin/3
  - send_chunk/2
  - send_chunk_start/2
  - send_chunk_end/1
  - type/2
  - user/3
  - user/4
  - quote/2
- tftp
  - Top of manual page
  - start/1
  - read_file/3
  - write_file/3
  - info/1
  - info/1
  - info/1
  - change_config/2
  - change_config/2
  - change_config/2
  - start/0
  - prepare/6
  - open/6
  - read/1
  - write/2
  - abort/3
  - error_msg/2
  - warning_msg/2
  - info_msg/2
- httpc
  - Top of manual page
  - request/1
  - request/2
  - request/4
  - request/5
  - cancel_request/1
  - cancel_request/2
  - set_options/1
  - set_options/2
  - get_options/1
  - get_options/2
  - stream_next/1
  - store_cookies/2
  - store_cookies/3
  - cookie_header/1
  - cookie_header/2
  - cookie_header/3
  - reset_cookies/0
  - reset_cookies/1
  - which_cookies/0
  - which_cookies/1
  - which_sessions/0
  - which_sessions/1
  - info/0
  - info/1
- httpd
  - Top of manual page
  - info/1
  - info/2
  - info/2
  - info/3
  - info/4
  - info/3
  - reload_config/2
  - Module:do/1
  - Module:load/2
  - Module:store/2
  - Module:remove/1
  - parse_query/1
- httpd_conf
  - Top of manual page
  - check_enum/2
  - clean/1
  - custom_clean/3
  - is_directory/1
  - is_file/1
  - make_integer/1
- httpd_custom_api
  - Top of manual page
  - response_header/1
  - request_header/1
- httpd_socket
  - Top of manual page
  - deliver/3
  - peername/2
  - resolve/0
- httpd_util
  - Top of manual page
  - convert_request_date/1
  - create_etag/1
  - decode_hex/1
  - day/1
  - flatlength/1
  - hexlist_to_integer/1
  - integer_to_hexlist/1
  - lookup/2
  - lookup/3
  - lookup_mime/2
  - lookup_mime/3
  - lookup_mime_default/2
  - lookup_mime_default/3
  - message/3
  - month/1
  - multi_lookup/2
  - reason_phrase/1
  - rfc1123_date/0
  - rfc1123_date/2
  - split/3
  - split_script_path/1
  - split_path/1
  - strip/1
  - suffix/1
- mod_alias
  - Top of manual page
  - default_index/2
  - path/3
  - real_name/3
  - real_script_name/3
- mod_auth
  - Top of manual page
  - add_user/2
  - add_user/5
  - add_user/6
  - delete_user/2
  - delete_user/3
  - delete_user/4
  - get_user/2
  - get_user/3
  - get_user/4
  - list_users/1
  - list_users/2
  - list_users/3
  - add_group_member/3
  - add_group_member/4
  - add_group_member/5
  - delete_group_member/3
  - delete_group_member/4
  - delete_group_member/5
  - list_group_members/2
  - list_group_members/3
  - list_group_members/4
  - list_groups/1
  - list_groups/2
  - list_groups/3
  - delete_group/2
  - delete_group/4
  - update_password/5
  - update_password/6
- mod_esi
  - Top of manual page
  - deliver/2
  - Module:Function/3
  - Module:Function/2
- mod_security
  - Top of manual page
  - list_auth_users/1
  - list_auth_users/2
  - list_auth_users/2
  - list_auth_users/3
  - list_blocked_users/1
  - list_blocked_users/2
  - list_blocked_users/2
  - list_blocked_users/3
  - block_user/4
  - block_user/5
  - unblock_user/2
  - unblock_user/3
  - unblock_user/3
  - unblock_user/4
  - event/4
  - event/5
- http_uri
  - Top of manual page
  - scheme_defaults/0
  - parse/1
  - parse/2
  - encode/1
  - decode/1

# mod_security

### MODULE

mod_security

### MODULE SUMMARY

Security Audit and Trailing Functionality

### DESCRIPTION

Security Audit and Trailing Functionality

### EXPORTS

list_auth_users(Port) -> Users | []
list_auth_users(Address, Port) -> Users | []
list_auth_users(Port, Dir) -> Users | []
list_auth_users(Address, Port, Dir) -> Users | []

Types:

Port = integer()
Address = {A,B,C,D} | string() | undefined
Dir = string()
Users = list() = [string()]

list_auth_users/1, list_auth_users/2 and list_auth_users/3 returns a list of users that are currently authenticated. Authentications are stored for SecurityAuthTimeout seconds, and are then discarded.

list_blocked_users(Port) -> Users | []
list_blocked_users(Address, Port) -> Users | []
list_blocked_users(Port, Dir) -> Users | []
list_blocked_users(Address, Port, Dir) -> Users | []

Types:

Port = integer()
Address = {A,B,C,D} | string() | undefined
Dir = string()
Users = list() = [string()]

list_blocked_users/1, list_blocked_users/2 and list_blocked_users/3 returns a list of users that are currently blocked from access.

block_user(User, Port, Dir, Seconds) -> true | {error, Reason}
block_user(User, Address, Port, Dir, Seconds) -> true | {error, Reason}

Types:

User = string()
Port = integer()
Address = {A,B,C,D} | string() | undefined
Dir = string()
Seconds = integer() | infinity
Reason = no_such_directory

block_user/4 and block_user/5 blocks the user User from the directory Dir for a specified amount of time.

unblock_user(User, Port) -> true | {error, Reason}
unblock_user(User, Address, Port) -> true | {error, Reason}
unblock_user(User, Port, Dir) -> true | {error, Reason}
unblock_user(User, Address, Port, Dir) -> true | {error, Reason}

Types:

User = string()
Port = integer()
Address = {A,B,C,D} | string() | undefined
Dir = string()
Reason = term()

unblock_user/2, unblock_user/3 and unblock_user/4 removes the user User from the list of blocked users for the Port (and Dir) specified.

### The SecurityCallbackModule

The SecurityCallbackModule is a user written module that can receive events from the mod_security Erlang Webserver API module. This module only exports the function(s), event/4,5, which are described below.

### EXPORTS

event(What, Port, Dir, Data) -> ignored
event(What, Address, Port, Dir, Data) -> ignored

Types:

What = atom()
Port = integer()
Address = {A,B,C,D} | string() <v>Dir = string()
Data = [Info]
Info = {Name, Value}

event/4 or event/4 is called whenever an event occurs in the mod_security Erlang Webserver API module (event/4 is called if Address is undefined and event/5 otherwise). The What argument specifies the type of event that has occurred, and should be one of the following reasons; auth_fail (a failed user authentication), user_block (a user is being blocked from access) or user_unblock (a user is being removed from the block list).

Note

Note that the user_unblock event is not triggered when a user is removed from the block list explicitly using the unblock_user function.