ACTUALIZACI?N: Desde el dÃa 17 de marzo la versión 4 es ya definitiva (ya es casualidad que lo tuviera escrito desde una semana antes y que no mirara la lista de correo hasta dÃas después ¿eh?). El procedimiento de instalación aquà descrito sigue siendo válido y si lo has seguido usando los repositorios se te habrán actualizado los últimos cambios de forma automática.
Para disponer de los paquetes necesarios podemos hacer dos cosas, descargarlos manualmente (de esta dirección si usas arquitectura de 64 bits o de esta otra si usas arquitectura i386) e instalarlos con rpm
(o yum
con la opción --localinstall
) o, mucho más recomendable, añadir un nuevo repositorio a tu máquina para recibir las futuras actualizaciones. En este segundo caso debes de crear un nuevo archivo .repo
(por ejemplo openvas.repo
) en tu directorio /etc/yum.repos.d
y copiar en él lo siguiente (o bajártelo diréctamente desde aquÃ):
[security_OpenVAS_STABLE_v4]
name=security:OpenVAS:STABLE:v4 (Fedora_14)
type=rpm-md
baseurl=http://download.opensuse.org/repositories/security:/OpenVAS:/STABLE:/v4/Fedora_14/
gpgcheck=1
gpgkey=http://download.opensuse.org/repositories/security:/OpenVAS:/STABLE:/v4/Fedora_14/repodata/repomd.xml.key
enabled=1
Lo siguiente que tenemos que hacer es decidir que instalar. Cómo decÃamos antes, OpenVas tiene una estructura cliente servidor de forma que la parte del programa que realiza el escaneo propiamente dicho puede instalarse en una máquina diferente a aquella desde la que se lanza y monitoriza el análisis o, incluso, distribuirlo entre varias para aliviar la carga. Tenemos, asÃ, la posibilidad de instalar servidores en diferentes puntos estratégicos de nuestra red y usar siempre el cliente desde nuestro ordenador de trabajo. Existe una detallada descripción de la arquitectura que se usa en esta dirección pero si no te interesa meterte en tantos detalles, échale al menos un vistazo a esta imagen para comprender lo que sigue:
El servidor de OpenVAS está formado por tres módulos (scanner, manager y administrator) y disponemos de tres posibles clientes para explotarlos: uno en lÃnea de comando (openvas CLI), otro con una aplicación clásica de escritorio que usa las librerÃas qt4 (greenbone security desktop o gsd) y una tercera posibilidad que es acceder directamente a través de un navegador usando, para ello, el módulo denominado greenbone security assistant.
Y vamos a instalar. Si queremos hacer una instalación completa (cliente y servidor) en la misma máquina y estamos usando el repositorio que hemos puesto anteriormente, tenemos que instalar (recordad, como usuario root) los siguientes paquetes:
sudo yum install sqlite nmap libopenvas4 libmicrohttpd10 openvas-scanner openvas-manager openvas-administrator greenbone-security-assistant gsd openvas-cli
Si lo que queremos es hacer una instalación sólo con la parte de servidor y, además, tener la posibilidad de conectarnos usando un navegador como cliente, instalarÃamos lo siguiente:
sudo yum install sqlite nmap libopenvas4 libmicrohttpd10 openvas-scanner openvas-manager openvas-administrator greenbone-security-assistant
Si queremos instalar sólo el cliente en lÃnea de comandos:
sudo yum install libopenvas4 openvas-cli
Y, por último, si sólo quisieramos instalar la aplicación cliente de escritorio:
sudo yum install libopenvas4 gsd
Instalación completada. Ahora hay que poner esto en marcha. Si hemos realizado una instalación distribuida (servidor en una máquina y cliente en otra) lo primero que tenemos que hacer es unos cambios en la configuración del servidor ya que este, por defecto, arranca los servicios usado el parámetro --listen=127.0.0.1
de forma que no admite conexiones que no vengan de la propia máquina. Para corregir esto procedemos de la siguiente forma:
Si lo que queremos es poder conectarnos al servidor a través de un navegador web desde otra máquina, debemos de editar el fichero /etc/sysconfig/greenbone-security-assistant
y localizar las siguientes lÃneas:
GSA_ADDRESS=127.0.0.1
...
ADMINISTRATOR_ADDRESS=127.0.0.1
...
MANAGER_ADDRESS=127.0.0.1
En el fichero original no aparecen todas asà una debajo de otra ¿eh? ð Bien, pues lo único que tenemos que hacer es sustituir el 127.0.0.1 por la ip real de la máquina que actúa como servidor.
Si lo que queremos es usar el cliente de escritorio gsd
desde otra máquina, el fichero que debemos de editar es /etc/sysconfig/openvas-manager
. Localizamos ahora la siguiente lÃnea y hacemos la misma operación que hemos descrito antes:
MANAGER_ADDRESS=127.0.0.1
¿Continuamos? Lo siguiente (aún en el servidor) serÃa añadir un primer usuario con privilegio de administrador (cualquiera de los clientes nos pedirá autenticación antes de darnos acceso). El siguiente comando nos creará un usuario llamado josemaria y nos pedirá de forma interactiva la contraseña para este:
sudo openvasad -c add_user -n josemaria -r Admin
A continuación generamos los certificados que también usaremos en la autenticación:
sudo openvas-mkcert -q
sudo openvas-mkcert-client -n om -i
Y ya casi estamos. Para quién no lo conozca, un programa como este que analiza vulnerabilidades se parece en algunos aspectos a un antivirus: alguien tiene que actualizar de forma permanente que nuevas vulnerabilidades existen y de que forma reconocerlas. Al igual que actualizamos las â??firmasâ? de nuestro antivirus necesitamos actualizar estos patrones de reconocimiento que en OpenVAS reciben el nombre de NVT’s Es por lo tanto necesaria una sincronización periódica. El siguiente script podrÃa servirnos para ello. Además de la sincronización realiza la activación de servicios en el orden correcto de forma que deberÃamos de usarlo antes de la primera conexión y después de cada reinicio de la máquina con el servidor:
sudo openvas-nvt-sync
sudo service openvas-manager stop
sudo service openvas-scanner stop
sudo openvassd
sudo openvasmd --migrate
sudo openvasmd --rebuild
sudo service openvas-administrator stop
sudo service openvas-manager stop
sudo service openvas-scanner restart
sudo service openvas-manager start
sudo service openvas-administrator start
sudo /etc/init.d/greenbone-security-assistant restart
Y con esto está todo. Si queremos asegurarnos o posteriormente cuando lancemos un cliente tenemos algún problema, existe un pequeño script que podemos descargar desde aquà y que, ejecutado con privilegios de root, nos permite verificar si nuestra instalación está correcta o, por el contrario, nos alertarÃa acerca de que es lo que nos falta. Si lo ejecutamos con el parámetro --server
obviarÃa en esta comprobación todo lo referente a la instalación del cliente.
Ahora ya podemos empezar a auditar la red. El cliente de escritorio no crea entrada en ningún menú, asà que lo tenemos que ejecutar a mano (pulsando Alt+F2 o directamente desde un terminal) con el comando gsd
. En las siguientes ilustraciones se ve la pantalla de conexión y la principal del programa
Si preferimos usar el cliente web (mucho más ligero, la verdad) «apuntamos» con nuestro navegador al puerto 9392 de la máquina donde hemos instalado el servidor usando protocolo seguro https (por ejemplo https://192.168.1.217:9392
o https://localhost:9392
en caso de que lo tengamos todo en la misma máquina). A continuación tienes también los pantallazos de la ventana de login y la principal del cliente:
ACTUALIZACI�N: En systenadmin nos cuentan como instalarlo en una Cent.OS además de algunas notas útiles sobre el escalado de eventos y la sobreescritura de alertas para evitar falsos positivos recurrentes.
ACTUALIZACI�N (y II): y si prefieres instalarlo en Ubuntu échale un vistazo a estas notas adicionales.