sábado, 31 de octubre de 2009

Instalando y Configurando OpenSSH para conexiones seguras

vamos a configurar el servicio ssh para conexiones seguras, no sin
antes dejar una definición de lo que es el servicio. fuente Wikipedia.

Servidor ssh

SSH (acrónimo del inglés Secure SHell, cuya traducción sería intérprete de comandos seguro) es un protocolo de comunicación para controlar un ordenador en remoto a través de una CLI (Command Line Interface -Interfaz de Línea de Comandos- también llamada: "shell"). Sirve para conectarnos con un ordenador ante el cual no estamos físicamente, bien porque está en una sala de servidores refrigerada, bien porque no tiene teclado ni pantalla, por ejemplo los que están apilados en un rack (un armario donde se guardan ordenadores como los servidores web, de correo electrónico, firewalls, etc...).

Es parecido a Telnet, con la gran diferencia de que en el caso de ssh, la información viaja codificada con lo cual es muchísimo más segura, en el caso de conectarnos a un ordenador que esté en nuestra LAN no es tan importante, pero si nos conectamos a través de Internet es fundamental, casi diría que imprescindible, usar un protocolo seguro como SSH.

Instalando servidor SSH

# apt-get install openssh-server

Ahora vamos a configurar el archivo, el fichero de ssh el cual se encuentra en

/etc/ssh/sshd_config

y configuramos los siguientes parámetros según nuestra conveniencia

Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 768
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
RhostsRSAAuthentication
PermitEmptyPasswords no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes

Algunos comandos básicos para la conexión a host o servidores remotos.

$ ssh host_remoto
$ ssh usuario_remoto@host_remoto

Gustavo Burgos (gnburgos)

viernes, 30 de octubre de 2009

Sitio Web Seguro con Apache2, SSL y soporte PHP

Comenzamos con la instalación de Apache2

#apt-get install apache2

NOTA: instalar todos los componentes que requiera

vamos a configura un poco nuestro server

si en nuestro caso es necesario la configuracion de /etc/apache2/apache2.conf
lo hacemos pero en este caso no tocaremos nada de la configuracion de apache2.conf
En el fichero /etc/apache2/ports.conf configuramos el o los puertos por donde queremos que escuche las peticiones nuestro apache.
Ejemplo:

NameVirtualHost *:80
Listen 80


# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443


luego de esto nos dirigimos al directorio /etc/apache2/sites-available para
configurar nuestro fichero default en este caso vamos a suponer que
contamos con un domio www.bbb.com.sv, el cual vamos a alvergar en
el directorio /var/www

#virtual host

ServerName www.bbb.com.sv
ServerAlias bbb.com.sv
DocumentRoot "/var/www"

AllowOverride All
Options MultiViews Indexes SymLinksIfOwnerMatch
Allow from All



Hasta el momento tenemos nuestro apache2 configurado pero aun no sea
configurado SSL ni el soporte para paginas PHP.
Con esta configuracion basta para echar a andar nuestro servidor web
reiniciamos el servicio:
#/etc/init.d/apache2 force-reload

hora desde cualquier navegador web podemos accesar a el ya sea digitando
127.0.0.1, localhost, o la ip de nuestro servidor.

Configuracion de soporte para paginas PHP....XD

#apt-get install php5 libapache-mod-php5 php5-mysql

#apt-get install php5-gd

#apt-get install phpmyadmin

despues de instalar estos paquetes solo nos resta la configuracion y aplicacion de SSL

Comensaremos por crear un certificado SSL para apache2

# apache2-ssl-certificate —force -days 365 -set_serial 2

esto nos deberia crear lo siguiente..

/etc/apache2/ssl/apache.pem

/etc/apache2/ssl.crt

vamos configurar los puertos por donde apache va a escuchar el puerto 80

esta configurado por default y vamos a agregar el puerto 443

/etc/apache2/ports.conf

Listen 80
Listen 443
Crea un fichero nuevo en /etc/apache2/sites-available que representa un nuevo sitio web. Por ejemplo lo puedes llamar “sitio-ssl” y debe contener algo como esto:


ServerName www.mota.com.sv
ServerAlias example

SSLEngine on
SSLCertificateFile /etc/apache2/ssl.crt/server.crt
SSLCertificateKeyFile /etc/apache2/ssl.crt/server.key

habilitar el SSL

# a2ensite sitio-ssl

Activamos el modulo SSL

# a2enmod ssl

Reiniciamos apache y lo forzamos a que lea la nueva configuracion.

# /etc/init.d/apache2 force-reload


y es asi como ya tenemos nuestro servidor seguro con soporte para php


gnburgos (Gustavo Burgos)

domingo, 4 de octubre de 2009

Configurando e instalacion de servidor FTP con VSFTPD +SSL en Debian Lenny

Despues de estar curiosiando con un sniffer me di cuenta que en muchos de los casos cuando no se cuenta con seguridad, nuestra informacion la que trasmitimos a diario por la internet o por la red local es verdaderamente bulnerable. Asi que opte por conmensar por el servidor FTP que uso para fines meramente de nancing ya que el servidor FTP es catalogado como uno de los mas vulnerables ya que nuestro user y pass viajan por la red en forma de texto plano que cualquiera pudiera capturar.

Bueno en este caso voy utilizar los servicios de VSFTPD Y SSL.

VSFTPD: es el demonio que utilizaremos para FTP

Con SSL tanto en el cliente como en el servidor, sus comunicaciones en Internet serán transmitidas en formato codificado. De esta manera, puede confiar en que la información que envíe llegará de manera privada y no adulterada al servidor que usted especifique.

Lo primero es la instalacion de los paquetes a utilazar.

* Instalando el servicio de FTP

# apt-get install vsftpd

* Instalando SSL

# apt-get install openssl

Ya que tenemos todo instalado biene lo mas importante que es la configuracion de el demonio de FTP en mi casa la configuracion que ocupo para este es bastante abierta para la manipulacion de los usuarios de este servidor

*Configurando el vsftpd.conf

# nano /etc/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

dirmessage_enable=YES

xferlog_enable=YES
connect_from_port_20=YES

xferlog_std_format=YES

ftpd_banner=Welcome to blah FTP service.

listen=YES
pam_service_name=vsftpd
userlist_enable=YES tcp_wrappers=YES
pasv_enable=YES pasv_promiscuous=YES
pasv_min_port=6000
pasv_max_port=7000
ya tengo configurado lo que el servidor FTP vamos a trabajar en lo que es el tema de la

codificacion con ssl.

Bueno para empezar vamos a crear lo que es un certificado ssl.
# openssl req -x509 -nodes -days- 365 -newkey rsa:1024 -key /etc/ssl/certs/vsftpd.pem
-out /etc/ssl/certs/vsftpd.pem

despues de esto nos hara una serie de preguntas a las cuales tenemos que esponder no son

preguntas tecnicas, asi que cualquiera las puede responder. ya solo nos resta las ultimas
configuraciones para el demonio de FTP para que surja efecto SSL

# nano /etc/vsftpd.conf

ssl_enable=YES
allow_anon_ssl=NO
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/certs/vsftpd.pem


ahora ya solo nos queda reiniciar el servicio y todo listo para disfrutar de un servidor FTP seguro.

# /etc/init.d/vsftdd restart

les dejo una serie de capturas de pantalla.

este es mi archivo de configuracion


En esta podemos ver como iceweasel ni firefox soportan ssl
Esta es de el cliente ftp que usaba hasta hoy pero que en realidad tampoco soporta SSL
Bueno y les pongo la ultima ya con mi nuevo cliente de FTP que soporta SSL es muy bueno no gasta muchos recursos ya que es en forma de consola.


Bueno espero que a alguien le sirva aparte de la mara que me pidio que se los posteara.

gnburgos (Gustavo Burgos)