Este script securiza apache.
La configuración de las reglas debe de ser ajustada a cada caso
Crearé nuevas versiones según lo valla ajustando en lo servidores
#!/bin/bash #Creado por kao 7/11/2014 bajo licencia GPL3 www.informatico-madrid.com echo "hardening apache2 on-ubuntu-server-14-04" echo "visitanos en www.informatico-madrid.com" #Sólo los usarios del grupo de root pueden acceder a sudo: dpkg-statoverride --update --add root sudo 4750 /bin/su #Securizamos la net para los contenedores, que sean lxc implica #que no podemos poner algunas opciones habituales en este punto #ya que si no dejaría de funcionar la red cat >/etc/sysctl.d/10-network-security.conf <<eof #="" block="" syn="" attacks="" net.ipv4.tcp_max_syn_backlog="2048" net.ipv4.tcp_synack_retries="2" net.ipv4.tcp_syn_retries="5" log="" martians="" net.ipv4.conf.all.log_martians="1" net.ipv4.icmp_ignore_bogus_error_responses="1" eof="" #reiniciamos="" el="" servicio="" para="" que="" coja="" las="" nuesvas="" configuraciones="" service="" procps="" start="" #añadimos="" los="" grupos="" necesarios="" gestionen="" apache="" groupadd="" webadmin="" webserv="" #actualización="" del="" sistema="" e="" instalación="" de="" aptitude="" update="" &&="" upgrade="" install="" apache2="" libapache2-modsecurity="" libapache2-mod-php5="" apache2-utils="" #desabilitamos="" módulos="" ineccesarios="" -="" autoindex:="" prove="" una="" buena="" lista="" todos="" ficheros="" en="" un="" directorio="" #cuyo="" index="" no="" ha="" sido="" dado="" status:="" te="" ofrece="" pequeños="" servidor="" monitoreo="" la="" página="" visitas="" a2dismod="" status="" autoindex="" a2enmod="" headers="" #copiamos="" configuración="" por="" defecto="" y="" ahora="" modificaremos="" cp="" etc="" apache2.conf="" apache2.conf.original="" conf-available="" security.conf="" security.conf.original="" #no="" enviar="" tokens="" operativo="" informar="" sobre="" versión="" sed="" -i="" "s|servertokens="" os|servertokens="" prod|g"="" "s|serversignature="" on|serversignature="" off|g"="" "s|#header="" set="" x-content-type-options:="" "nosniff"="" |header="" "nosniff"|g"="" x-frame-options:="" "sameorigin"|#header="" "sameorigin"|g"="" #hasta="" aquí="" default="" #empezamos="" con="" modsecurity="" mv="" modsecurity.conf-recommended="" modsecurity.conf="" #activamos="" reglas:="" "s|secruleengine="" detectiononly|secruleengine="" on|g"="" #aumentamos="" límite="" a="" 16mb="" "s|secrequestbodylimit="" 13107200|secrequestbodylimit="" 16384000|g"="" #instalamos,="" configuramos="" activamos="" módulo="" seguridad="" owasp="" cd="" tmp="" wget="" https:="" github.com="" spiderlabs="" owasp-modsecurity-crs="" archive="" master.zip="" zip="" unzip="" -r="" owasp-modsecurity-crs-master="" *="" modsecurity_crs_10_setup.conf.example="" modsecurity_crs_10_setup.conf="" ls="" base_rules="" |="" xargs="" {}="" ln="" -s="" activated_rules="" optional_rules="" cat=""> /etc/apache2/mods-avaiable/security2.conf< # Default Debian dir for modsecurity's persistent data SecDataDir /var/cache/modsecurity # Include all the *.conf files in /etc/modsecurity. # Keeping your local configuration in that directory # will allow for an easy upgrade of THIS file and # make your life easier IncludeOptional /etc/modsecurity/*.conf Include "/etc/modsecurity/activated_rules/*.conf" EOF service apache2 restart a2enmod headers a2enmod security2 </etc/apache2/mods-available/evasive.conf< DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 DOSEmailNotify $correo #DOSSystemCommand "su - someuser -c '/sbin/... %s ...'" DOSLogDir "/var/log/mod_evasive" EOF ln -s /etc/apache2/mods-available/evasive.conf /etc/apache2/mods-enabled/evasive.conf service apache2 restart echo "Thanks to http://blog.mattbrock.co.uk/hardening-the-security-on-ubuntu-server-14-04/"
Publicado el 12/06/2014 a las 21:36