PDF de programación - Seguridad web-ftp-smtp

Imágen de pdf Seguridad web-ftp-smtp

Seguridad web-ftp-smtpgráfica de visualizaciones

Publicado el 8 de Agosto del 2020
317 visualizaciones desde el 8 de Agosto del 2020
60,8 KB
14 paginas
Creado hace 19a (20/05/2004)
Seguridad web-ftp-smtp

Seguridad Web. Apache.

Directivas

Instalación de mayor seguridad.

Mover httpd al directorio /sbin
Actualizar permisos

Mv /apache/bin/httpd /sbin/httpd

Chown 0 /sbin/httpd Propietario root
Chgrp 0 /sbin/httpd Grupo root
Chmod 511 /sbin/httpd Permiso de lectura y ejecución
para root y ejecución para el resto.
Vi /apache/bin/apachectl
httpd = /sbin

Colocar el valor de la variable httpd en la nueva ubicación.


TimeOut Para evitar que se colapse la red Apache no mantendrá las
conexiones del cliente activas indefinidamente.

MaxClients Evita ataques de denegación de servicio.

Listen, Port Para cambiar el puerto por el que escuchar el servidor.

LoadModule, AddModule Cargar y activar exclusivamente los modulos
necesarios para evitar posibles agujeros de seguridad.

ServerName No especificar el nombre de la máquina donde esta el
servidor para evitar dar más información de la necesaria al exterior.

User, Group No debe aparecer ningún grupo o usuario del sistema para
ejecutar el servicio. Se usará nobody, nogroup o apache como usuarios
y grupo.

UserDir enable/disable Deshabilitar usuarios específicos para
administrar el sistema.
Ej. UserDir disable root ftp Deshabilita las paginas personales
para estos dos usuarios.

Un ejemplo sobre los permisos que deberian tener las carpetas seria
el siguiente.
/home/pablo/web/*
El directorio pablo permisos pablo:pablo 711
El directorio web permisos pablo:apache 750
El resto de los directorios pablo:apache 644


DirectoryIndex Asegurar que en los directorios existen los ficheros
especificados para que no pueda verse el contenido del mismo.


Control de acceso

<Directory directorio_a_restringir>
#Autentificación basica. Restriccion para permitir a pocos
order deny, allow



1

DirectoryIndex index.html

deny from all
allow form 192.168.0. apache.org
options indexes
DirectoryIndex index.html
</Directory>

<Directory directorio_a_restringir2>
<Files restringido.html>
#Autentificación basica. Restriccion para permitir a muchos

order allow, deny
allow from all


deny from 192.168.

options indexes

</Files>
</Directory>

Ficheros de log
ErrorLog, LogLevel, CustomLog y LogFormat Es importante para
administrar y verificar la seguridad del sistema realizar un buen
control de los ficheros de logs.
ErrorLog /var/log/error_log
Loglevel warn
Logformat “Ip del cliente: %h; hora %t” miformato
Customlog logs/access_log miformato


Alias de directorios
Aliases (Redirección interna) Es buena política no usar rutas reales
y si rutas relativas para no dar pistas de nuestra estructura de
directorios.


Autentificación básica

<Directory /private/projects>

Authtype Basic autentificacion basica
AuthName “Fichero empleados” se mostrara en el equi remoto
AuthUserFile /etc/httpd/usuarios-empleados fichero con
usuarios
Require valid-user

</Directory>

El control de los usuarios se hará creándolos y manteniéndolos usando
el fichero httpasswd. Es necesario almacenar el fichero de claves en
un lugar seguro.

Httpasswd –b –c fichero usuario password



Autentificación básica php

$username = “tribilin”
$pwd = “secreta”
if (!isset($PHP_AUTH_USER)){



Header(“WWW-Authenticate: Basic realm=\”Zona protegida\””);
Header(“HTTP/1.0 401 Unauthorized”);



2



Echo “Autorizacion ejecutada para $username”;
Echo “$username no tiene autorización”;}

Echo “Imposible ejecutar la autorizacion\n”;
Exit
If (($PHP_AUTH_USER == $username) && ($PHP_AUTH_PW == %pwd)){

Else



Else



}


Autentificación basica con PHP y mysql

<?function autentificar() {
header("WWW-Authenticate: Basic realm='Sistema de autenticación'");
header("HTTP/1.0 401 Acceso Denegado");
echo "<font 'verdana,arial' size='2' color='red'><center>Acceso
denegado al Centro de Soporte Tecnico de NCT Informatica.\n
</center></font>";
exit;
}

if(!isset($PHP_AUTH_USER)){ autentificar(); }
else {
$link=mysql_connect("localhost", "root");
mysql_select_db("gestion",$link);
$sql=sprintf("SELECT * FROM clientes WHERE nif='%s' AND
clave='%s'",$PHP_AUTH_USER,$PHP_AUTH_PW);

$sql=mysql_query($sql);

if(mysql_num_rows($sql)==0){ autentificar(); }



session_start();


$usuario[0] = $PHP_AUTH_USER;
$usuario[1] = $PHP_AUTH_PW;

session_register(usuario);


}
?>



SSL. (Secure Socket Layer)


SSL es una especificación propietaria de Netscape puesta en dominio
público para la definición de canales seguros sobre TCP cuyo objetivo
es la realización de conexiones seguras a servidores www que
permitiera, por ejemplo, enviar números de tarjetas de crédito a través
de un formulario.
Debe asegurar
- La integridad: La garantía de que los mensajes que enviamos o

recibimos no han sido modificados.

- La confidencialidad: Nadie sin autorización puede leer la
información transmitida, y garantiza que efectivamente la recibe quien
debe recibirla.

2.- Puesta en Marcha:
2.1.- Requerimientos:



3

Apache. www.apache.org
Librerias SSL. www.openssl.org
Modulo para el Apache. www.modssl.org


Instalación del Apache+SSL:
Se puede realizar este proceso de dos formas:
1. Instalación de los diferentes programas por separado

a. Instalar Apache, openssl y modssl de forma independiente

(./config && make && make install)

b. Crear el certificado

rsa

–in

ii. Openssl

i. Openssl req –new > pepe-informatica.csr (Crea un
certificado con los datos del usuario y una clave
privada (PEM passphrase) de 1024 bits. Cuando
pregunte por Common name hay que darle el nombre del
servidor web (www.pepe-informatica.com). Se debe
responder sobre la organización.
pepe-
informatica.key (Elimina la frase de paso de la
clave privada. Pepe-informatica.key solo debe ser
leído por el administrador y apache. Se elimina
cualquier información que de pistas sobre como
averiguar la clave privada.
iii. Openssl x509 –in pepe-informatica.csr –out pepe-
informatica.cert –req –signkey pepe-informatica.key
–days 365. Con eso se obtiene el certificado que
podemos usar hasta obtener uno de la autoridad de
certificados. (Opcional)

privkey.pem

–out

c. Ahora debemos configurar Apache para que pueda responder
ante peticiones https (HiperText Transfer Protocol
Secure). Las directivas son :

i. Addmodule mod_ssl.c
ii. …
iii. LoadModule ssl_module modules/mod_ssl.so (libssl.so)
iv. …
v. SSLLog logs/ssl.log
vi. SSLLoglevel warn
vii. …
viii. <VirtualHost www.pepe-informatica.com:443>
ix. SSLEngine on #Activa el protocolo SSL/TSL
x. SSLCertificateFile

/rutacertificado/pepe-

/rutacertificado/pepe-

informatica.cert

xi. SSLCertificateKeyFile

informatica.key

xii. ...
xiii. </VirtualHost>

d. Reiniciar Apache. Puede ser necesario reiniciar apache con

la opcion –D SSL o bien con /usr/sbin/apachectl startssl;
e. Podemos comprobar que la conexión es correcta mediante :



4

i. Openssl s_client –connect pepe-informatica.com:443
(Si no se produce ningun error es que esta
correctamente instalado).

El puerto estandard es el 443. De todas maneras, se puede
configurar para que sea otro, y lo mas importante: A la hora de navegar
no es http://localhost:443 (o cualquier otro), sino que es
httpS://localhost, o httpS://localhost:(cualquier otro) (Hyper Text
Transfer Protocol Secure).



La otra forma de instalar es configurando la instalación:


• Descomprimir e instalar openssl. Se instala con la configuración
• Posteriormente mod_ssl. Se le pasará la ruta donde se
• Y Finalmente se compila Apache

básica ./configure
descomprimió Apache. ./configure –with-apache=../apache_x.y.z

o SSL_BASE =../openssl
o ./configure –enable-module=ssl –prefix=/www –enable-
o make
o make certificate (Completar los datos solicitados para la

module=so

creación del certificado)



5


Seguridad FTP. ProFTPd.


FTP son las iniciales de File Transfer Protocol (Protocolo de
Transferencia de Ficheros o archivos) y aluden a uno de los protocolos
más utilizados en Internet. Su función es permitirnos bajar (o subir)
información desde (o hacia) los servidores que se encuentran en
Internet.

datos),
servidores remotos,
almacenar ficheros en diferentes ordenadores, y

Los objetivos del FTP son:
1) promocionar el uso compartido de ficheros (programas y/o
2) animar al uso indirecto o implícito (a través de programas) de
3) hacer transparente al usuario las variaciones entre la forma de
4) transferir datos fiable y eficientemente.

El FTP, aunque puede ser utilizado directamente por un usuario en
un terminal, está diseñado principalmente para ser usado por programas.

El ProFTPd

ProFTPd es una de las alternativas para Linux en el campo de los
servidores FTP. Presenta cualidades muy apreciadas en este terreno,
como son escalabilidad, rendimiento, seguridad y facilidad de
configuración. Permite definir dominios virtuales, FTP anónimo y
control de permisos.
Proftpd es un software potente y seguro. Su fichero de
configuración utiliza una sintaxis similar a la de Apache, lo que
permite homogeneizar su configuración. Ha sido elegido como servidor
ftp oficial por la distribución Debian/GNU Linux. Su elección se debe a
sus numerosas funcionalidades y por la gran cantidad de programadores
que trabajan en él corrigiendo errores.
El uso d
  • Links de descarga
http://lwp-l.com/pdf18031

Comentarios de: Seguridad web-ftp-smtp (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad