jueves, 26 de noviembre de 2009

Proteger el ancho de banda-SQUID

Cada usuario tiene tendencia a utilizar el 100% del ancho de banda disponible, no sé si esto es una ley escrita, si no debería estarlo.

Pues ahora que tenemos instalada la red y el acceso mediante proxy cache vamos a intentar regular el consumo de ancho de banda. Resulta interesante que nadie pueda cometer abusos y consumir todos los recursos de la red a costa del resto de usuarios. La regulación del ancho de banda se puede llevar a cabo utilizando distintos criterios: la máquina origen, la dirección o página destino o el tipo de transferencia.

Por un lado podemos intentar discriminar el origen de los datos, resumiendo que los jefe dispongan de mejor conexión. Resumiendo, vamos a asignar distintos anchos de banda a distintos rangos de direcciones IP.

También se nos puede dar el caso de que haya consultas masivas a unos determinados dominios o páginas y puede ser práctico delimitar el ancho de banda asignado a ese dominio.

En general el volumen de tráfico que genera el acceso a páginas web en html es bastante bajo, lo que realmente consume un volumen apreciable del ancho de banda son ficheros de sonido e imagen y una medida posible podría ser limitar de alguna forma la transferencia de estos tipos de ficheros.

Otra posibilidad sería que limitar el ancho de banda sólo para descargas de ficheros grandes y dejar un mayor ancho de banda a ficheros pequeños para que la navegación por páginas html sea más rápida.

Mediante Squid podemos establecer límites al ancho de banda mediante una de sus características de configuración denominada "delay pools". Establecemos una definición de regulación de ancho de banda, establecemos una ACL y asociamos la regulación a la ACL.


Parámetros de configuración

Cada una de las reglas de regulación está definida por un número entero que vamos a utilizar para indentificarlo en los distintos parámetros.

delay_pools
Esta parámetro se utiliza para definir cuantas reglas de regulación vamos a definir.

delay_class
Este parámetro toma dos argumentos el primero el identificador de la regla y en segundo lugar el tipo (clase) de la regla.

El primero argumento es un número entero para identificar la regla.

El segundo argumento puede ser 1,2 ó 3 para indicar uno de estos tipos de reglas.

delay_parameters
Establece los valores de la regla. Los argumentos de este parámetro son parejas de valores velocidad/tamaño, donde velociad es un número entero que indica una velocidad en bytes por segundo (B/s), y tamaño indica el número de bytes de reserva que se transmiten antes de aplicar la velocidad de transferencia.

Es decir cada pareja especifica el número de bytes de margen que se permiten antes de se haga efectiva la restricción de velocidad.

Los valores no tienen por qué ser múltiplos de 2.

Tipos de reglas
Hay tres clases de regulaciones, con características diferentes.

Clase 1
La clase uno consiste en un canal individual compartido por todos los usuarios. Es la clase más simple, todas las tasas de descarga van juntas y lo único que tenemos que especificar es la velocidad, en bytes por segundo, y el número de bytes a partir de los cuales tiene que retardar la descarga.

Ejemplo: Supongamos que queremos que la velocidad de descarga de los ficheros .wmv que ocupen más de 1Mb sea de 8k/s.

delay_pools 1
delay_class 1 1
delay_parameters 1 8192/1048576
acl ficheros_wmv url_regex \.wmv$
delay_access 1 allow ficheros_wmv

Cuando en esa red, algún equipo haya bajado más de 1Mb correspondiente a ficheros .wmv entonces la descarga total de ficheros .wmv se hará a una velocidad de 8k/s. Si quisiéramos establecer este límite para los hosts de una red deberíamos elegir la clase 2.

En el anterior ejemplo hemos supuesto que hay un único canal de regulación en el parámetro delay_pools. Ahora vamos a ver un ejemplo con dos canales de clase 1. Queremos que el tráfico de la red local no tenga límite de transferencia, mientras que para las conexiones a internet vamos a utilizar un total de 256Kbits/s.

delay_pools 2
delay_class 1 1
delay_parameters 1 -1/-1
acl red_local src 192.168.0.0/24
delay_access 1 allow red_local

delay_class 2 1
delay_parameters 2 32768/1024
acl resto all src 0.0.0.0/0.0.0.0
delay_access 2 allow resto

La tasa de transferencia viene especificada en bytes por segundo, por ejemplo convirtiendo a otras unidades uno de los parámetros de delay_parameters:

32768 B/s = 32 KB/s = 32 x 8 Kb/s (bits) = 256 Kb/s = 256 Kbits/s

El valor 1024 es un número de bytes lo suficientemente pequeño para que se alcance pronto y se estabilice el ancho de banda.

El valor -1 indica ilimitado.

Las regulaciones de clase 1 están diseñadas para evitar que la acl correspondiente consuma todo el ancho de banda, es decir definen la suma máxima de los anchos de banda de todos los clientes, pero no evita que un cliente pueda consumir ese ancho de banda a costa de otro; todos los clientes comparten un máximo ancho de banda.


Clase 2
La clase dos que consiste en un canal común con 256 canales individuales. Es decir tenemos un canal global y dentro de él otros 256 canales que se aplican a las máquinas de una red de clase C.

Ahora vamos a ver otro ejemplo con dos canales, en este caso ambos de de clase 2. Ahora también que el tráfico de la red local no tenga límite de transferencia, ni global ni por IP, mientras que para las conexiones a internet vamos a utilizar un total de 256Kbits/s y a cada máquina de la red le asigna un máximo de 64kbits/s.

delay_pools 2
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
acl red_local src 192.168.0.0/24
delay_access 1 allow red_local

delay_class 2 2
delay_parameters 2 32768/1024 8192/1024
acl resto all src 0.0.0.0/0.0.0.0
delay_access 2 allow resto

Este ejemplo es muy parecido al anterior de clase 1, sólo tenemos que agregarle una pareja de valores al parámetro "delay_parameters". La primera pareja de este parámetro especifica el ancho de banda global, mientras que la segunda pareja especifica el ancho de banda por host.

Hay que tener en cuenta que los clientes están limitados por el tamaño del canal más pequeño, por lo que no tiene sentido que el canal común tenga un tamaño menor que los canales individuales.


Clase 3
La clase tres que define un canal común que contiene 256 canales de red, 65536 canales individuales. Muy parecida a la clase dos pero par redes de clase B.

Ejemplos de control de ancho de banda

Limitación global del ancho de banda
Tenemos una conexión con internet de 4Mbits y queremos que el ancho de banda dedicado a consulta de páginas web desede las IP comprendidas entre 192.168.5.100 hasta 192.168.5.199 sea de 1Mbits máximo.
1Mb/s = 128kB/s = 131072 B/s
4Mb/s = 512kB/s = 524288 B/s

delay_pools 1
delay_class 1 1
delay_parameters 1 131072/8192
acl lista src 192.168.5.100-192.168.5.199/32
delay_access 1 allow lista

Limitación de ancho de banda por red y host
Tenemos una conexión con internet de 4Mbits y queremos que el ancho de banda dedicado a consulta de páginas web desede las IP comprendidas entre 192.168.5.100 hasta 192.168.5.199 sea de 1Mbits máximo, de forma que cada una de las máquinas no pueda consumir más de 512Kbits/s.

Es como el ejemplo anterior, pero añadiendo restricciones adicionales a cada una de las máquinas, por lo que tendremos que elegir la clase 2:

delay_pools 1
delay_class 1 2
delay_parameters 1 131072/8192 65536/8192
acl lista src 192.168.5.100-192.168.5.199/32
delay_access 1 allow lista

Limitación de ancho de banda por servidor
Queremos limitar el ancho de banda a 4KB/s y que cada máquina consuma a lo sumo 2KB/s para todas las conexiones que se hagan a los servidores de banner cuyo nombre empieza por ad.

delay_pools 1
delay_class 1 2
delay_parameters 1 4096/4096 2048/2048
acl publicidad url_regex http://ad.*
delay_access 1 allow publicidad

Ancho de banda ilimitado para la red local.
Garantizar un ancho de banda ilimitado para los accesos a la red local.

delay_pools 1
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
acl redlocal url_regex -i 192.168
delay_access 1 allow redlocal

Establecer privilegios de acceso.

Establecer privilegios en la red.

delay_pools 3
delay_class 1 1
delay_class 2 1
delay_class 3 1
delay_parameters 1 -1/-1
delay_parameters 2 131072/8192
delay_parameters 3 65536/8192
acl jefes src 192.168.5.1-192.168.5.50/32
acl subjefes src 192.168.5.51-192.168.5.99/32
acl resto src 0/0
delay_access 1 allow jefes
delay_access 2 allow subjefes
delay_access 3 allow resto

Establecer ancho de banda en franja horaria.
acl todos src 0/0
acl laboral time 08:30-16:30
delay_pools 2
delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow todos
delay_class 2 2
delay_parameters 2 131072/8192 65536/8192
delay_access 2 allow laboral
delay_access 2 deny !laboral
delay_access 2 allow todos


Configuración de los navagadores clientes
Esta configuración exige que cada navegador esté configurado para utilizar el proxy. Pero claro, por una lado es un engorro tener que configurar uno a uno todos los equipos de la red y por otro, tenemos la posibilidad de que la configuración TCP/IP le da salida a través de una pasarela.

Si a pesar de todo queremos esta configuración, tendremos que decirle al navegador que utilice como proxy el equipo que alberga Squid y el puerto el 3128. El puerto se puede cambiar en el fichero de configuración. Otro puerto que se suele usar para proxy es el 8080, pero ¿para qué cambiarlo?

Proxy Transparente
Como queremos evitar tener que configurar los navegadores cliente y queremos evitar posibles puertas traseras de salida vamos a configurar un proxy transparente.

¿Qué es un proxy transparente? Es un proxy que no necesita ninguna configuración especial en los clientes. Se denomina transparente porque el cliente en realidad no sabe que lo está usando, es transparente para él.

Cómo configurar el proxy transparente, pues en primer lugar tenemos que configurar el cortafuegos para que reenvíe todas las peticiones que se hagan a un puerto 80 hacia el puerto 3128 que utiliza Squid. Es decir, capturamos todas las peticiones que se hagan a un servidor http y se las enviamos a Squid para que él se encarge del resto.

Estas son las reglas de iptables. La primera para redrigir las peticiones al proxy la siguiente para rechazar el resto de los reenvíos.

Si queremos que las páginas web pasen por el proxy con squid que está en 192.168.5.254, pero el resto siga con acceso normal, pondríamos:

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.5.254:3128

Si el equipo con squid está en la misma pasarela entonces podemos poner:

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Cuidado, de las opciones anteriores sólo debemos escoger una de ellas.

Si sólo queremos salida para visitar págias web, entonces pondremos:

Primero garantizamos el tráfico DNS:

iptables -A FORWARD -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp -m udp --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A FORWARD -p udp -m udp --sport 53 -j ACCEPT

miércoles, 25 de noviembre de 2009

SARG

Puede que en Ubuntu el archivo de configuración se encuentre en

/etc/squid/sarg.conf

Las lineas mas importantes a configurar son:

language English

Configura el idioma que sarg va a mostrar.

access_log /var/log/squid/access.log

Se indica donde sarg va a sacar los registros, en este caso es por defecto donde squid guarda los Log de acceso por Ip, Hora, Web visitada y varios formatos que se pueden configurar.

title “Squid User Access Reports” :

Titulo que mostrará sarg cuando se acceda por la web.

output_dir /var/www/squid-reports

La salida por donde se van a mostrar los registros que Sarg muestra, se debe colocar la Ruta donde esta configurado Apache.

resolve_ip yes o no

Si el registro aparece o no aparece por la IP

exclude_users /etc/squid/sarg.users

No registra los usuario que esten configurados en el archivo correspondiente.

date_format u

Reportes con la configuracion de la hora U america (mes/dia/año)

mail_utility mailx

Los reportes se envian mediante correo, no es recomendable.

weekdays 0-6 : Se indica dias a ver en los registros.( Sunday->0, Saturday->6 )

La linea de Dansguardian se deben dejar comentadas ya que si no se tiene configurada ninguna de estas opciones en el server dara error Sarg.

Las demas lineas hay que dejarlas tal como estan por defecto al igual que las comentadas.

Saludos.

martes, 24 de noviembre de 2009

Brazilfw

Download

Brazilfw

http://www.brazilfw.com.br/forum/viewtopic.php?f=46&t=63972

How to Install and Configure DHCP Server in Ubuntu Server

Install DHCP server in ubuntu

sudo apt-get install dhcp3-server

This will complete the installation.

Configuring DHCP server

If you have two network cards in your ubuntu server you need to select which interface you want to use for DHCP server listening.By default it listens to eth0.

You can change this by editing /etc/default/dhcp3-server file

sudo vi /etc/default/dhcp3-server

Find this line

INTERFACES=”eth0″

Replace with the following line

INTERFACES=”eth1″

Save and exit.This is optional.

Next you need to make a backup copy of /etc/dhcp3/dhcpd.conf file

cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.back

Edit /etc/dhcp3/dhcpd.conf file using the following command

sudo vi /etc/dhcp3/dhcpd.conf

Using address pool method

You need to change the following sections in /etc/dhcp3/dhcpd.conf file

default-lease-time 600;
max-lease-time 7200;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name “yourdomainname.com”;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.200;
}

save and exit the file

This will result in the DHCP server giving a client an IP address from the range 192.168.1.10-192.168.1.200 . It will lease an IP address for 600 seconds if the client doesn’t ask for a specific time frame. Otherwise the maximum (allowed) lease will be 7200 seconds. The server will also “advise” the client that it should use 255.255.255.0 as its subnet mask, 192.168.1.255 as its broadcast address, 192.168.1.254 as the router/gateway and 192.168.1.1 and 192.168.1.2 as its DNS servers.

Using MAC address method

This method is you can reserver some of the machines or all the machines with fixed ip address.In the following example i am using fixed ip address for server1,server2,printer1 and printer2

default-lease-time 600;
max-lease-time 7200;

option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name “yourdomainname.com”;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.200;
}

host server1 {
hardware ethernet 00:1b:63:ef:db:54;
fixed-address 192.168.1.20;
}

host server2 {
hardware ethernet 00:0a:95:b4:d4:b0;
fixed-address 192.168.1.21;
}

host printer1 {
hardware ethernet 00:16:cb:aa:2a:cd;
fixed-address 192.168.1.22;
}

host printer2 {
hardware ethernet 00:0a:95:f5:8f:b3;
fixed-address 192.168.1.23;
}

Now you need to restart dhcp server using the following command

sudo /etc/init.d/dhcp3-server restart

Configure Ubuntu DHCP Client

If you want to configure your ubuntu desktop as DHCP client following this procedure

You need to open /etc/network/interfaces file

sudo vi /etc/network/interfaces

make sure you have the following lines (eth0 is an example)

auto lo eth0
iface eth0 inet dhcp
iface lo inet loopback

Save and exit the file

You need to restart networking services using the following command

sudo /etc/init.d/networking restart

How to find DHCP server IP address

You need to use the following commands

sudo dhclient

or

tail -n 15 /var/lib/dhcp3/dhclient.*.leases

viernes, 20 de noviembre de 2009

Instalar y configurar OpenVPN (servidor – cliente)

http://nekan.net/instalar-y-configurar-openvpn-servidor-cliente

Enlazar 2 redes diferentes a través de Internet utilizando OpenVPN

—Instalación del software tanto en cliente como en servidor:
apt-get install openvpn openssl

—Copiamos ejemplos y ficheros para realizar la configuración:
cp -R /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn/
cd /etc/openvpn/easy-rsa/2.0

— Editamos el fichero “vars” para configurar los siguientes valores:
export KEY_SIZE=1024
export KEY_COUNTRY=”ES”
export KEY_PROVINCE=”BA”
export KEY_CITY=”BARCELONA”
export KEY_ORG=”ORGANIZACION”
export KEY_EMAIL=”muestro@mail.es”


—Activamos la configuración, cargamos variables:
.vars
clean-all

—Creamos la key y el certificado:
build-ca

—Creamos el key para el servidor y para el cliente:
build-key-server
build-key
build-dh

—Si queremos autentificación TLS ejecutamos los siguientes comandos en el path /etc/openvpn/:
openvpn –genkey –secret ta.key

El fichero que nos ha generado debemos de copiarlo en el servidor y en el cliente.

//// Tenemos que tener los siguientes ficheros \\\\

Servidor: ca.crt / “server_common_name”.key / “server_common_name”.crt / ta.key / dh1024.pem
Cliente: ca.crt / “client_common_name”.key / “client_common_name”.crt / ta.key

*Configurando el servidor…

—Copiamos el fichero de ejemplo e configuración y lo descomprimimos:
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
gzip -d /etc/openvpn/server.conf.gz

—Modificamos el fichero de configuración descomprimido para el servidor:
dev tun
proto udp
secret static.key
comp-lzo
port 1194
comp-lzo
ifconfig 10.8.0.1 10.8.0.2
status openvpn-status.log
log openvpn.log

ping 10
verb 3
mute 10
ping-restart 60
ping-timer-rem
persist-tun
persist-key
resolv-retry 86400

—Modificamos el fichero de configuración descomprimido para el cliente:
dev tun
remote IP_SERVIDOR_REMOTO
proto udp
ifconfig 10.8.0.2 10.8.0.1
secret static.key
port 1194
comp-lzo

ping 10
verb 3
mute 10
ping-restart 60
ping-timer-rem
persist-tun
persist-key
resolv-retry 86400

—Arrancamos el servicio tanto en el servidor como en el cliente:
openvpn server.conf
openvpn client.conf

En breve ya podemos estar haciendo pings entre ellos.

miércoles, 11 de noviembre de 2009

Howto SQUID

http://www.linuxzone.es/howtos-manuales/how-to-instalar-squid-el-proxy-cache-de-linux/

pfSense Firewall

pfSense es una distribución basada en FreeBSD, derivada de m0n0wall. Su objetivo es tener un cortafuegos (firewall) fácilmente configurable a través de una interfase web e instalable en cualquier PC, incluyendo los miniPC de una sola tarjeta.

http://www.bellera.cat/josep/pfsense/index_cs.html

Howto

http://www.bellera.cat/josep/pfsense/config_base_cs.html

jueves, 5 de noviembre de 2009

Instalar Apache2 con SSL en Ubuntu 9.04 (Jaunty)

Esta es una guía para ayudar en la instalación de Apache2 con soporte para SSL en un servidor Ubuntu 9.04 (Jaunty). Esta guía asume que para esto ya se tiene instalado un stack LAMP (Linux, Apache, MySQL y PHP) en la máquina donde se desea realizar la instalación. No será necesario contar con el stack completo sin embargo si es necesario al menos contar con Apache2 instalado en el equipo.

Para verificar que efectivamente contamos con todos los requisitos tecleamos en la terminal:

sudo apt-get install apache2 apache2.2-common apache2-utils openssl openssl-blacklist openssl-blacklist-extra


Para configurar un servidor seguro, se utiliza en este caso criptografía de clave pública para crear un par de llaves, una pública y una privada. En la mayoría de los casos, el certificado que se genera localmente en el equipo tiene que ser enviado junto con varios requisitos a una Autoridad Certificadora (CA por sus siglas en inglés). La CA verifica su petición y su identidad, y luego le devuelve un certificado para asegurar el servidor. En este caso como no tenemos ni el dinero ni el tiempo suficiente (:D) tendremos que crear nuestro propio certificado, firmado por nosotros mismos. Sin embargo, es importante recalcar que estos certificados no deberán ser utilizados en ambientes de producción. El problema con este tipo de certificados es que no son aceptados de manera automática por los navegadores, por lo que tendremos que (al menos en FireFox) crear una excepción para el sitio con el cerficado que estamos creando nosotros. Pero para fines de demostrar los pasos será más que suficiente.

Primero: Generamos un CSR (Petición de Firma de Certificado)

Para generar el CSR debemos crear nuestra llave (key):

openssl genrsa -des3 -out server.key 4096

Puede ejecutar su propio servidor sin una clave. Esto es conveniente proque no necesitaría en este caso estar introduciendo la clave cada que requiera iniciar el servidor de https. Pero es demasiado inseguro, no recomendable ya que compromete seriamente la seguridad del sistema. De cualquier manera, es posible elegir ejecutar el servidor seguro sin clave eliminando la opción -des3 con lo que el comando quedaría de la siguiente manera:

openssl rsa -in server.key -out server.key.insegura

Al ejecutar este comando en cualquiera de sus dos formas presentadas anteriormente el sistema nos requerirá varia información que acompañará al certificado, la ubicación de la companía, el nombre de la misma, el nombre de quien firma el certificado y varias cosas mas. Todos estos datos son guardados en el archivo /etc/ssl/openssl.cnf. Si se requieren mas llaves para mas servidores o sitios que se ejecutarán en el mismo equipo se pueden agregar mendiante:

openssl req -new -key server.key -out server.csr

Este certificado (el archivo server.csr en este caso) es el que deberemos enviar a la Autoridad Certificadora (CA).

Una vez que hemos generado nuestro certificado necesitamos instalarlo en el servidor.

Segundo: Crear un Certificado Firmado por nosotros mismos.
Para firmar nuestro certificado de manera local ejecutamos:

openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

El comando anterior nos va a requerir que introduzcamos la clave de nuestra llave (si optamos por utilizar una clave segura, de otro modo no solicitará esta información), que es la clave que introdujimos al crear nuestra Petición de Firma de Certificado (CSR). Una vez que hemos ingresado la clave correcta, se generará un cerficiado y se almacenará con el nombre server.crt en nuestro servidor.

Tercero: Instalar el Certificado
Para instalar el certificado vamos a copiar los archivos server.crt y server.key a un directorio donde en adelante podremos almacenar todos los certificados de nuestro equipo.

Vamos a crear un directorio ssl dentro del directorio de configuración de apache y enseguida copiamos los archivos generados:

sudo mkdir /etc/apache2/ssl/
sudo cp server.crt /etc/apache2/ssl/
sudo cp server.key /etc/apache2/ssl/

Cuarto: Habilitar el módulo SSL para Apache2
Ejecutamos el siguiente comando:

sudo a2enmod ssl

Quinto: Crear y habilitar el sitio SSL
Vamos a crear un VirtualHost para nuestro sitio:
sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/www.misitio.com

Luego, editamos el archivo www.misitio.com

sudo gedit /etc/apache2/sites-available/www.misitio.com
Y lo dejamos con el siguiente contenido:


ServerAdmin webmaster@localhost
ServerName www.misitio.com
LogLevel warn
ErrorLog /var/log/apache2/www.misitio.com.error.log
CustomLog /var/log/apache2/www.misitio.com.access.log combined

DocumentRoot /var/www/www.misitio.com/


Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all


SSLEngine On
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown


Por último, habilitamos el sitio que acabamos de crear:


sudo a2ensite www.misitio.com

Sexto: Habilitar Apache2 para que escuche en el puerto 443.
Necesitamos editar el archivo ports.conf:


sudo gedit /etc/apache2/ports.conf

Al abrirlo se ve de la siguiente manera:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default

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

Vamos a agregar el NameVirtualHost al puerto de https (443). Así que al terminar deberá quedar de esta manera :

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default

NameVirtualHost *:80
Listen 80
# SSL name based virtual hosts are not yet supported, therefore no
NameVirtualHost *:443
Listen 443

No hay que olvidar editar el archivo /etc/hosts si se esta corriendo de manera local el sitio www.misitio.com y apuntarlo a 127.0.0.1

Ahora reiniciamos el servidor:

sudo /etc/init.d/apache2 restart

Si se ha optado por utilizar una llave con clave, el servidor requerirá que tecleemos la contraseña para poder continuar, en caso contrario no arrancará el servicio.

Séptimo: Acceder al servidor.
Ahora es posible acceder al servidor en la dirección https://www.misitio.com. Si se ha utilizado un certificado que nostros mismos hemos firmado, el navegador nos indicará que ha fallado la conexión segura, es cuestión de ignorar simplemente el mensaje y agregar una excepción de seguridad para nuestro sitio.