Actualizado el 21 de Marzo del 2018 (Publicado el 25 de Noviembre del 2017)
641 visualizaciones desde el 25 de Noviembre del 2017
190,0 KB
35 paginas
Creado hace 20a (20/05/2004)
httphttp –– ftp
ftp -- smtp
smtp
Seguridad
Seguridad
José Juan Cerpa Ortega
José Juan Cerpa Ortega
11
Seguridad
Seguridad
proxy a a
(cid:132)(cid:132) Conviene usar
(cid:132)(cid:132) También puede ser necesario un
Conviene usar firewall
firewall. .
También puede ser necesario un proxy
nivel de aplicación.
nivel de aplicación.
Actualizar lo antes posible las aplicaciones
(cid:132)(cid:132) Actualizar lo antes posible las aplicaciones
para evitar posibles agujeros de
para evitar posibles agujeros de
seguridad.
seguridad.
Documentarse bien ya que de una versión
(cid:132)(cid:132) Documentarse bien ya que de una versión
a otra puede variar la configuración.
a otra puede variar la configuración.
22
Apache -- Seguridad
Seguridad
Apache
Instalación de mayor seguridad.
(cid:132)(cid:132) Instalación de mayor seguridad.
(cid:132)(cid:132) Mover
al directorio /sbinsbin
httpd //sbinsbin//httpd
httpd
(cid:132)(cid:132) Colocar el valor de la variable
511 /sbinsbin//httpd
httpd
/apache/binbin//apachectl
apachectl
httpd en la nueva
en la nueva
33
Apache -- Seguridad
Seguridad
Apache
Apache ó UserUser Nobody
Nobody
ejecute el proceso httpd
httpd. .
root ejecute el proceso
No es nada seguro que el root
(cid:132)(cid:132) No es nada seguro que el
En las nuevas versiones de apache se han creado
(cid:132)(cid:132) En las nuevas versiones de apache se han creado
usuarios y grupos para esta labor.
usuarios y grupos para esta labor.
(cid:132)(cid:132) UserUser Apache ó
(cid:132)(cid:132) Group
Tampoco es seguro usar el nombre real de la máquina
(cid:132)(cid:132) Tampoco es seguro usar el nombre real de la máquina
con la directiva ServerName
ServerName..
con la directiva
Si se activa DirectoryIndex
contenedoras y no existe la página de inicio indicada por
contenedoras y no existe la página de inicio indicada por
defecto se mostrará el contenido del directorio y eso es
defecto se mostrará el contenido del directorio y eso es
peligroso.
peligroso.
DirectoryIndex en las Directivas
en las Directivas
Group Apache ó
Apache ó Group
Group Nogroup
Nogroup
(cid:132)(cid:132) Si se activa
44
Apache -- Seguridad
Seguridad
Apache
(cid:132)(cid:132) PortPort y y Listen
(cid:132)(cid:132) Timeout
(cid:132)(cid:132) MaxClients
(cid:132)(cid:132) UserDir
Listen: Para que escuche por otro puerto.
: Para que escuche por otro puerto.
Timeout sgsg: Tiempo máximo que mantiene una
: Tiempo máximo que mantiene una
conexión activa. Evita bloqueos.
conexión activa. Evita bloqueos.
MaxClients nºnº: Límite máximo de clientes
: Límite máximo de clientes
conectados a la vez al servidor. Evita ataques de
conectados a la vez al servidor. Evita ataques de
denegación de servicio.
denegación de servicio.
UserDir directorio /
: Habilita las páginas de inicio en usuarios del
: Habilita las páginas de inicio en usuarios del
sistema. Permite el uso del comodín * en las
sistema. Permite el uso del comodín * en las
rutas. Deshabilitar root
rutas. Deshabilitar
UserDir disable
disable root
(cid:132)(cid:132) Ej. Ej. UserDir
UserDir wwwwww (/(/home
(cid:132)(cid:132) Ej. Ej. UserDir
(cid:132)(cid:132) El directorio del usuario :
(cid:132)(cid:132) El directorio
(cid:132)(cid:132) Resto de directorios :
El directorio del usuario : user:user
user:apache 750750
El directorio wwwwww : : user:apache
Resto de directorios : user:apache
user:apache 644644
root ftpftp
home/*//*/wwwwww))
user:user 711711
66
Apache -- Seguridad
Seguridad
Apache
httpd/ulpgc/
/ulpgc/html
html//docsdocs>>
1.2.3.4 pepe.org
pepe.org clientes.net
clientes.net
deny, , allowallow
/apache/httpd
Control de acceso básico
(cid:132)(cid:132) Control de acceso básico
Denegar a muchos
(cid:132)(cid:132) Denegar a muchos
(cid:132)(cid:132) <<Directory
Directory /apache/
Order deny
(cid:132)(cid:132) Order
deny fromfrom allall
(cid:132)(cid:132) deny
(cid:132)(cid:132) allowallow fromfrom 1.2.3.4
(cid:132)(cid:132) </</Directory
Permitir a muchos
(cid:132)(cid:132) Permitir a muchos
(cid:132)(cid:132) <<Directory
(cid:132)(cid:132) Order
(cid:132)(cid:132) AllowAllow fromfrom allall
(cid:132)(cid:132) DenyDeny fromfrom 1.2.3.4
(cid:132)(cid:132) </</Directory
Directory /apache/
Order allowallow, , deny
deny
/apache/httpd
Directory>>
Directory>>
httpd/ulpgc/
/ulpgc/html
html//docsdocs>>
1.2.3.4 pepe.org
pepe.org competencia.net
competencia.net
77
Apache -- Seguridad
Seguridad
Apache
(cid:132)(cid:132) LogLevel
LogLevel tipotipo: Apache reconoce 8 niveles
: Apache reconoce 8 niveles
de error distintos para determinar la
de error distintos para determinar la
cantidad de información a almacenar.
cantidad de información a almacenar.
(cid:132)(cid:132) ErrorLog
ErrorLog /ruta/ruta: Graba información sobre
: Graba información sobre
los eventos del servidor en el archivo
los eventos del servidor en el archivo
especificado.
especificado.
88
Apache -- Seguridad
Seguridad
Apache
Debug : Graba todo.
: Graba todo.
LogLevel TipoTipo: Los tipos pueden ser…
: Los tipos pueden ser…
(cid:132)(cid:132) LogLevel
(cid:132)(cid:132) Debug
(cid:132)(cid:132) InfoInfo : Solo mensajes informativos.
: Solo mensajes informativos.
Notice : Importantes pero no vitales.
: Importantes pero no vitales.
(cid:132)(cid:132) Notice
(cid:132)(cid:132) WarnWarn : Advertencia, quizás importantes.*
: Advertencia, quizás importantes.*
Error : Fallo. Necesario hacer algo.*
(cid:132)(cid:132) Error : Fallo. Necesario hacer algo.*
(cid:132)(cid:132) CritCrit : Error grave. Hacer algo rápidamente.
: Error grave. Hacer algo rápidamente.
(cid:132)(cid:132) AlertAlert : Apocalíptico.
: Apocalíptico.
(cid:132)(cid:132) Emerg
Emerg : Emergencia total.
: Emergencia total.
99
Apache -- Seguridad
Seguridad
Apache
(cid:132)(cid:132) TransferLog
(cid:132)(cid:132) LogFormat
nomb: Permite
: Permite
TransferLog /ruta/ruta: Graba información acerca de
: Graba información acerca de
los datos que se transfieren al servidor y desde
los datos que se transfieren al servidor y desde
este.
este.
LogFormat “Tipos = %X …”
personalizar el formato de los archivos de
personalizar el formato de los archivos de
registro.
registro.
CustomLog /ruta nomb : Crea el fichero de log
: Crea el fichero de log
con el formato especificado con nomb.
con el formato especificado con nomb.
“Tipos = %X …”: Ejemplos de variables
: Ejemplos de variables
LogFormat “Tipos = %X …”
para el formato.
para el formato.
(cid:132)(cid:132) %A%A : Dirección IP local
: Dirección IP local
: Dirección IP remota
(cid:132)(cid:132) %a%a : Dirección IP remota
(cid:132)(cid:132) %f%f : Ruta del documento solicitado
: Ruta del documento solicitado
: Puerto TCP del que se recibió la solicitud
(cid:132)(cid:132) %p%p : Puerto TCP del que se recibió la solicitud
(cid:132)(cid:132) %t%t : Fecha y hora de la solicitud
: Fecha y hora de la solicitud
: Tiempo usado para procesar la solicitud
(cid:132)(cid:132) %T%T : Tiempo usado para procesar la solicitud
(cid:132)(cid:132) %u%u : Usuario remoto en solicitudes autentificadas
: Usuario remoto en solicitudes autentificadas
(cid:132)(cid:132) %v%v : Nombre del servidor
: Nombre del servidor
(cid:132)(cid:132) Ejemplo :
Ejemplo : LogFormat
LogFormat “hots = %a Fecha = %t Usuario = %u”
“hots = %a Fecha = %t Usuario = %u”
1111
Autentificación
Autentificación
Autentificación Básica (usuario y contraseña)
(cid:132)(cid:132) Autentificación Básica (usuario y contraseña)
almacenados en un fichero.
almacenados en un fichero.
<<Directory
Directory //home
El fichero con los usuarios se crea y se
(cid:132)(cid:132) El fichero con los usuarios se crea y se
mantiene con htpasswd
htpasswd..
mantiene con
Htpasswd ––b b ––c fichero usuario passwd
(cid:132)(cid:132) Ej. Ej. Htpasswd
c fichero usuario passwd
Almacenar el fichero de claves en un lugar
(cid:132)(cid:132) Almacenar el fichero de claves en un lugar
seguro.
seguro.
(cid:132)(cid:132) -- c crea el fichero si este no existe.
c crea el fichero si este no existe.
1313
Control de acceso con PHP
Control de acceso con PHP
(cid:132)(cid:132)
$username = “tribilin
tribilin””
if (!isset($PHP_AUTH_USER
(cid:132)(cid:132) $username = “
(cid:132)(cid:132) $$pwdpwd = “= “secreta
secreta””
isset($PHP_AUTH_USER)){)){
(cid:132)(cid:132) if (!
Header(“WWW--Authenticate: Basic realm=
Header(“WWW
protegida\\””);
””);
protegida
Header(“HTTP/1.0 401 Unauthorized”);
Header(“HTTP/1.0 401 Unauthorized”);
Echo “Imposible ejecutar la autorizacion\\n”;n”;
Echo “Imposible ejecutar la autorizacion
Exit
Exit
If (($PHP_AUTH_USER == $username) &&
If (($PHP_AUTH_USER == $username) &&
Comentarios de: http – ftp - smtp - Seguridad (0)
No hay comentarios