secure_optimize_apache
secure_optimize_apache(){
clear
f_banner
echo -e "\e[34m---------------------------------------------------------------------------------------------------------\e[00m"
echo -e "\e[93m[+]\e[00m Optimizing Apache"
echo -e "\e[34m---------------------------------------------------------------------------------------------------------\e[00m"
echo ""
cp templates/apache /etc/apache2/apache2.conf
echo " -- Enabling ModRewrite"
spinner
a2enmod rewrite
service apache2 restart
say_done
}
La función secure_optimize_apache reemplaza la configuración por defecto de apache por una configuración mas segura haciendo uso de la plantilla que se encuentra en templates/apache, veamos que contiene el archivo:
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 2
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 3
MaxSpareServers 6
MaxClients 24
MaxRequestsPerChild 3000
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy all
</Files>
<Directory />
Options -Indexes -Includes -ExecCGI
<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>
</Directory>
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
# Include module configuration:
Include mods-enabled/*.load
Include mods-enabled/*.conf
# Include ports listing
Include ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
<IfModule security2_module>
Include /usr/share/modsecurity-crs/*.conf
Include /usr/share/modsecurity-crs/base_rules/*.conf
</IfModule>
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
ServerSignature Off
ServerTokens Prod
ErrorDocument 404 "Archivo no encontrado"
ErrorDocument 500 "Tareas de mantenimiento en curso. Disculpe las molestias"
FileETag None
Header unset ETag
TraceEnable off
Aquí optimizamos algunos valores, cargamos las reglas de ModSecurity y agregamos algunas directivas de seguridad. Para mencionar algunas:
ServerSignature Off
ServerTokens Prod
Con estas directivas protegemos de divulgar informaciones sensibles del servidor apache que luego pueden ser utilizadas para crear un vector de ataque.
<Files ~ "^\.ht">
Order allow,deny
Deny from all
Satisfy all
</Files>
Aquí protegemos nuestro arhivo .htaccess en caso de que estemos utilizando alguno.
Options -Indexes -Includes -ExecCGI
deny from all
Con esta sección controlamos que se pueden hacer desde el directorio raíz y limitamos los accesos exclusivamente a GET, POST y HEAD.
FileETag None
Header unset ETag
TraceEnable off
Estas directivas protegen con ataques para conseguir información sensible o ataques para robar información de cookies.