Está en la página 1de 4

Laboratorio Servidor web Apache

avanzado
Resoluciones

Seguridad
Securice el servidor web previamente configurado.

1. Liste los procesos en ejecución y verifique que los procesos apache estén asociados a los
usuarios correspondientes.

Presentamos todos los procesos en ejecución y filtramos por nombre de proceso.

# ps aux | grep apache


root       542 0.0 0.1   9696 5572 ?       Ss   11:46   0:00
/usr/sbin/apache2 -k start
www-data   546 0.0 0.1   9884 3620 ?       S   11:46   0:00
/usr/sbin/apache2 -k start
www-data   548 0.0 0.1 10004 3676 ?       S   11:46   0:00
/usr/sbin/apache2 -k start
www-data   549 0.0 0.1 10004 3676 ?       S   11:46   0:00
/usr/sbin/apache2 -k start
www-data   550 0.0 0.1 10004 3676 ?       S   11:46   0:00
/usr/sbin/apache2 -k start
www-data   551 0.0 0.1 10004 3676 ?       S   11:46   0:00
/usr/sbin/apache2 -k start
www-data   552 0.0 0.1 10004 3676 ?       S   11:46   0:00
/usr/sbin/apache2 -k start
root     1375 0.0 0.0   6220   824 pts/0   R+   14:15   0:00 grep
apache

Los procesos deben estar a nombre de root y www-data . El proceso a nombre de


root es el considerado main proccess los que están a nombre de www-data son los
considerados child proccess . También si se esta usando módulo mod_suexec los
procesos hijos estarán a nombre del usuario declarado.

Los usuarios se declaran en el fichero de configuración principal:

...
# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
...

Fichero de variables de entorno /etc/apache2/envvars .


...
# Since there is no sane way to get the parsed apache2 config in
scripts, some
# settings are defined via environment variables and then used in
apache2ctl,
# /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
export APACHE_RUN_USER=www-data
export APACHE_RUN_GROUP=www-data
...

2. Usuarios y permisos: Analizar y corregir permisos de archivos en /etc/apache2 que no


posean permisos 644 .

Búsqueda de ficheros.

# find /etc/apache2 -not -perm 644


./sites-available
./sites-enabled
./sites-enabled/000-default.conf
./conf-enabled
./conf-enabled/localized-error-pages.conf
...

Los ficheros ubicados en los directorios *-enabled son enlaces simbólicos a ficheros
ubicados en directorios *-available por lo que poseen permisos 777 .

Analizar directorios cuyos permisos no sean 755 .

# find /etc/apache2/ -type d -not -perm 755


...
/etc/apache2/fakedir

# ls -ld /etc/apache2/fakedir
drwxrwxrwx 2 root root 4096 jun 8 14:38 fakedir

Corrección de permisos.

De directorios:

# find /etc/apache2 -type d -exec chmod 755 {} \;

De ficheros:

# find /etc/apache2 -type f -exec chmod 644 {} \;

Los enaleces simbólicos o symlinks quedan excluidos de la búsqueda.

Puede usar el mismo método para corregir permisos y nombres de usuario en los
directorios /var/log/apache2 y /var/www .

3. Cree el directorio /var/www/hosting-avanzado.intranet/gerencia . Configure el servidor


para que solo las IP 192.168.1.9 y 192.168.1.25 tengan acceso al recurso
https://hosting-avanzado.intranet/gerencia .

Directorio gerencia .
# mkdir /var/www/hosting-avanzado.intranet/gerencia

Fichero sites-available/hosting-avanzado.intranet.ssl.conf .

<IfModule mod_ssl.c>
      <VirtualHost *:443>
              ServerAdmin admin@hosting-avanzado.intranet
              ServerName hosting-avanzado.intranet
...
<Directory /var/www/hosting-avanzado.intranet/gerencia>
Require ip 192.168.1.9, 192.168.1.25
</Directory>

      </VirtualHost>
</IfModule>

Recargar configuraciones.

# systemctl reload apache2

4. Configure su servidor para evitar ataques DDoS.

El módulo mod_evasive : Añada localhost y la IP de acceso al servidor a whitelist


establezca el tiempo de bloqueo en 50 segundos.
Instalación.

# apt install libapache2-mod-evasive

Activar módulo.

# systemctl stop apache2


# a2enmod evasive

Fichero de configuración mods-available/evasive.conf .

<IfModule mod_evasive20.c>
  DOSHashTableSize   3097
  DOSPageCount       2
  DOSSiteCount       50
  DOSPageInterval     1
  DOSSiteInterval     1
  DOSBlockingPeriod   50
DOSWhitelist 192.168.1.160 127.0.0.1
</IfModule>

Iniciar servidor.

# systemctl start apache2

 
El módulo mod_qos : Permitir múltiples solicitudes de una misma conexión, limite a 10
la cantidad de peticiones en conexiones persistentes.

Instalación.

# systemctl stop apache2


# apt install libapache2-mod-qos
# a2enmod qos

Fichero mods-available/qos.conf .

<IfModule qos_module>

MaxClients 1792
TimeOut 10
KeepAlive on
KeepAliveTimeout 5
MaxKeepAliveRequests 10
QS_SrvMaxConnClose 80%
QS_ClientEntries 100000
QS_SrvMinDataRate 150 1200 500
</IfModule>

También podría gustarte