Add DenyHosts from Dan Walsh.

This commit is contained in:
Chris PeBenito 2010-04-20 09:46:20 -04:00
parent 44b3808ba5
commit e07fbc004d
4 changed files with 166 additions and 0 deletions

View File

@ -5,6 +5,7 @@
chronyd (Miroslav Grepl) chronyd (Miroslav Grepl)
cobbler (Dominick Grift) cobbler (Dominick Grift)
dbadm (KaiGai Kohei) dbadm (KaiGai Kohei)
denyhosts (Dan Walsh)
nut (Stefan Schulze Frielinghaus, Miroslav Grepl) nut (Stefan Schulze Frielinghaus, Miroslav Grepl)
likewise (Scott Salley) likewise (Scott Salley)
pyicqt (Stefan Schulze Frielinghaus) pyicqt (Stefan Schulze Frielinghaus)

View File

@ -0,0 +1,7 @@
/etc/rc\.d/init\.d/denyhosts -- gen_context(system_u:object_r:denyhosts_initrc_exec_t,s0)
/usr/bin/denyhosts\.py -- gen_context(system_u:object_r:denyhosts_exec_t,s0)
/var/lib/denyhosts(/.*)? gen_context(system_u:object_r:denyhosts_var_lib_t,s0)
/var/lock/subsys/denyhosts -- gen_context(system_u:object_r:denyhosts_var_lock_t,s0)
/var/log/denyhosts(/.*)? gen_context(system_u:object_r:denyhosts_var_log_t,s0)

View File

@ -0,0 +1,85 @@
## <summary>DenyHosts SSH dictionary attack mitigation</summary>
## <desc>
## <p>
## DenyHosts is a script intended to be run by Linux
## system administrators to help thwart SSH server attacks
## (also known as dictionary based attacks and brute force
## attacks).
## </p>
## </desc>
########################################
## <summary>
## Execute a domain transition to run denyhosts.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed to transition.
## </summary>
## </param>
#
interface(`denyhosts_domtrans', `
gen_require(`
type denyhosts_t, denyhosts_exec_t;
')
domtrans_pattern($1, denyhosts_exec_t, denyhosts_t)
')
########################################
## <summary>
## Execute denyhost server in the denyhost domain.
## </summary>
## <param name="domain">
## <summary>
## The type of the process performing this action.
## </summary>
## </param>
#
interface(`denyhosts_initrc_domtrans', `
gen_require(`
type denyhosts_initrc_exec_t;
')
init_labeled_script_domtrans($1, denyhosts_initrc_exec_t)
')
########################################
## <summary>
## All of the rules required to administrate
## an denyhosts environment.
## </summary>
## <param name="domain">
## <summary>
## Domain allowed access.
## </summary>
## </param>
## <param name="role">
## <summary>
## Role allowed access.
## </summary>
## </param>
#
interface(`denyhosts_admin', `
gen_require(`
type denyhosts_t, denyhosts_var_lib_t, denyhosts_var_lock_t;
type denyhosts_var_log_t, denyhosts_initrc_exec_t;
')
allow $1 denyhosts_t:process { ptrace signal_perms };
ps_process_pattern($1, denyhosts_t)
denyhosts_initrc_domtrans($1)
domain_system_change_exemption($1)
role_transition $2 denyhosts_initrc_exec_t system_r;
allow $2 system_r;
files_search_var_lib($1)
admin_pattern($1, denyhosts_var_lib_t)
logging_search_logs($1)
admin_pattern($1, denyhosts_var_log_t)
files_search_locks($1)
admin_pattern($1, denyhosts_var_lock_t)
')

View File

@ -0,0 +1,73 @@
policy_module(denyhosts, 1.0.0)
########################################
#
# DenyHosts personal declarations.
#
type denyhosts_t;
type denyhosts_exec_t;
init_daemon_domain(denyhosts_t, denyhosts_exec_t)
type denyhosts_initrc_exec_t;
init_script_file(denyhosts_initrc_exec_t)
type denyhosts_var_lib_t;
files_type(denyhosts_var_lib_t)
type denyhosts_var_lock_t;
files_lock_file(denyhosts_var_lock_t)
type denyhosts_var_log_t;
logging_log_file(denyhosts_var_log_t)
########################################
#
# DenyHosts personal policy.
#
allow denyhosts_t self:netlink_route_socket create_netlink_socket_perms;
allow denyhosts_t self:tcp_socket create_socket_perms;
allow denyhosts_t self:udp_socket create_socket_perms;
manage_files_pattern(denyhosts_t, denyhosts_var_lib_t, denyhosts_var_lib_t)
files_var_lib_filetrans(denyhosts_t, denyhosts_var_lib_t, file)
manage_dirs_pattern(denyhosts_t, denyhosts_var_lock_t, denyhosts_var_lock_t)
manage_files_pattern(denyhosts_t, denyhosts_var_lock_t, denyhosts_var_lock_t)
files_lock_filetrans(denyhosts_t, denyhosts_var_lock_t, { dir file })
append_files_pattern(denyhosts_t, denyhosts_var_log_t, denyhosts_var_log_t)
create_files_pattern(denyhosts_t, denyhosts_var_log_t, denyhosts_var_log_t)
read_files_pattern(denyhosts_t, denyhosts_var_log_t, denyhosts_var_log_t)
setattr_files_pattern(denyhosts_t, denyhosts_var_log_t, denyhosts_var_log_t)
logging_log_filetrans(denyhosts_t, denyhosts_var_log_t, file)
kernel_read_system_state(denyhosts_t)
corecmd_exec_bin(denyhosts_t)
corenet_all_recvfrom_unlabeled(denyhosts_t)
corenet_all_recvfrom_netlabel(denyhosts_t)
corenet_tcp_sendrecv_generic_if(denyhosts_t)
corenet_tcp_sendrecv_generic_node(denyhosts_t)
corenet_tcp_bind_generic_node(denyhosts_t)
corenet_tcp_connect_smtp_port(denyhosts_t)
corenet_sendrecv_smtp_client_packets(denyhosts_t)
dev_read_urand(denyhosts_t)
files_read_etc_files(denyhosts_t)
# /var/log/secure
logging_read_generic_logs(denyhosts_t)
miscfiles_read_localization(denyhosts_t)
sysnet_manage_config(denyhosts_t)
sysnet_etc_filetrans_config(denyhosts_t)
optional_policy(`
cron_system_entry(denyhosts_t, denyhosts_exec_t)
')