Detectando Sniffers en nuestra red. Redes conmutadas y no conmutadas.
Este escenario sería una subred o red no conmutada. Aunque más adelante nos introduciremos brevemente en la escucha en redes conmutadas o basadas en switches y herramientas de detección en este tipo de redes. Antes que nada, decir que los sniffers no son fáciles de detectar y combatir, ya que se trata de programas que trabajan en modo pasivo. Las técnicas que se tratan aquí, por tanto, no son totalmente fiables, aunque en algunos casos si suponen una gran aproximación al descubrimiento de este tipo de software.
Antes que nada y para entender algunos conceptos de este artículo veremos como funciona, brevemente, el protocolo ARP.
¿Qué es. Para qué sirve ARP?
En una red Ethernet cuando queremos enviar un paquete IP entre dos hosts conectados las únicas direcciones válidas son las MAC y lo que circula son tramas Ethernet. Entonces y volviendo al ejemplo de antes cuando queremos enviar un paquete IP lo que se hace es meter el paquete dentro de una trama Ethernet y enviar.
Formato de una cabecera ARP:
Formato de una cabecera ARP
HLEN Longitud dirección hardware
PLEN Longitud dirección del protocolo
OPERACION Código de operación (ARPreques ó ARPreply)
SENDER HA Dirección de origen hardware
SENDER IP Dirección de origen del protocolo
TARGET HA Dirección de destino hardware
¿Cuál es el problema entonces?
El problema radica en que sabemos la dirección IP del host de destino pero no su dirección MAC.
¿Cómo se soluciona esto?
La solución está en que antes de enviar el paquete IP se debe usar ARP para averiguar cual es la dirección MAC del host destino de la conexión que pretendemos realizar.
¿Y cómo se hace?
ARP tiene dos tipos básicos de mensajes:
* Mensaje de petición o ARPrequest
* Mensaje de respuesta o ARPreply
Los dos viajan por nuestra red dentro de tramas Ethernet.
Cuando queremos enviar un paquete IP desde un host origen (A) hacia un host destino (B) sucede:
(A) crea un mensaje o petición ARPrequest indicando:
* Su dirección IP
* Su dirección MAC
* Dirección IP del host (B)
* Campo de dirección MAC host (B) sin rellenar.
Envía el ARPrequest a la dirección broadcast (todos los hosts de la red) pero sólo contesta uno de ellos (B). Entonces:
(B) crea un mensaje ARPreply:
* Rellena el campo de dirección MAC con su MAC
* Intercambia las direcciones origen y destino
* Cambia el tipo de mensaje de ARPreques a ARPreply
* Envía el mensaje ARPrpely a (A).
Ya hay entonces información suficiente para establecer cualquier comunicación entre (A) y (B).
Esto lo podemos comprobar utilizando un sniffer de red como Ethereal y filtrando por protocolos, en este caso ARP:
C:\scan>windump -qtn arp
windump: listening on \Device\NPF_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF}
arp who-has 192.168.5.241 tell 192.168.5.240
arp who-has 192.168.4.234 tell 192.168.4.1
arp who-has 192.168.4.234 tell 192.168.4.1
arp who-has 192.168.4.234 tell 192.168.4.1
arp who-has 192.168.5.4 tell 192.168.5.240
arp who-has 192.168.5.6 tell 192.168.5.240
arp who-has 192.168.5.44 tell 192.168.5.240
arp who-has 192.168.5.14 tell 192.168.5.240
arp who-has 192.168.4.234 tell 192.168.4.1
arp who-has 192.168.4.15 tell 192.168.4.10
arp reply 192.168.4.15 is-at 0:1:2:e7:57:cf
arp who-has 192.168.4.234 tell 192.168.4.1
arp who-has 192.168.4.15 tell 192.168.4.1
arp reply 192.168.4.15 is-at 0:1:2:e7:57:cf
arp who-has 192.168.4.234 tell 192.168.4.1
arp who-has 192.168.4.15 tell 192.168.4.13
arp reply 192.168.4.15 is-at 0:1:2:e7:57:cf.....
Toda la información de las relaciones IP/MAC se guarda en la cache ARP.
En un sistema Windows:
C:\>arp -a
Interfaz: 192.168.4.3 on Interface 0x1000003
Dirección IP Dirección física Tipo
192.168.4.1 00-04-76-97-b3-a9 dinámico
192.168.4.20 00-a0-24-4e-4e-4e dinámico
Sistemas Linux:
$ arp -a
serprint (192.168.4.2) at 52:54:05:fd:de:e5
infografia3 (192.168.4.3) at 00:90:27:6a:58:74
Una vez visto como funciona el protocolo ARP, seguimos con la detección de los sniffers.
Detección en sistemas UNIX/Linux
En entornos Linux o UNIX la verificación de una interfase en modo promiscuo se puede hacer usando ifconfig. Este programa configura la interfase de red instalada en un determinado host y obtiene información de la configuración en el momento de ejecutar el programa. Cuando un adaptador de red se encuentra en modo promiscuo, ifconfig nos devuelve la siguiente información:
$ ifconfig -a
eth0 Link Encap: 10Mbps Ethernet HWaddr: xx:xx:xx:xx:xx:xx
inet addr: a.b.c.d Bcast: a.b.c.f Mask: m.m.m.m
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 (OJO: Modo
promiscuo)
RX packets: 0 errors:0 dropped:0 overruns:0TX packets:0 errors:0
dropped:0 overruns:0
Interrupt:15 Base Address:0x300
Este sistema no es infalible.
Existen programas que pueden hacer esta labor como:
cpm (Check Promiscuous Mode)
Este pequeño programa realizado por la Universidad de Carnegie Mellon, chequea el interfaz de red de la máquina descubriendo si está siendo utilizado en modo promiscuo (escuchando todo el tráfico de la red).
$ cpm
4 network interfaces found:
eth0:5: Normal
eth0:3: Normal
eth0:2: Normal
eth0:1: Normal
eth0: *** IN PROMISCUOUS MODE ***
Existen otros programas como Antisniff, Sentinel, SniffDet, ifstatus o NEPED:
Veamos como trabaja NEPED
Tenemos que introducir la interfase de red:
neped eth0
----------------------------------------------------------
> My HW Addr: 00:50:BF:1C:41:59
> My IP Addr: 192.168.0.1
> My NETMASK: 255.255.255.0
> My BROADCAST: 192.168.1.255
----------------------------------------------------------
Scanning ....
* Host 192.168.0.3, 00:C2:0F:64:05:FF **** Promiscuous mode detected
!!!
End.
NEPED utiliza la técnica de realizar una simple petición ARP para cada una de las IPs de la red a diagnosticar, pero ojo, los paquetes no van destinados a broadcast (FF:FF:FF:FF:FF:FF), sino a una dirección aleatoria e inexistente. Sólo las interfaces en modo promiscuo verán estos paquetes, y de esta manera, sólo estas interfaces contestarán a estas peticiones.
Existe también un dispositivo de hardware llamado Tap. Este dispositivo permite conectarse a un Hub o incluso a un switch de red al cual conectásemos un dispositivo (ordenador) para monitorizar la red. Existen tipos de Taps para cada tipo de red Ethernet 10 Mbps, 100 Mbps y 1 Gbps.
Más información en: http://www.netoptics.com/
SniffDet - Remote Sniffer Detection
http://prdownloads.sourceforge.net/sniffdet/sniffdet-0.9.tar.gz
Usa las técnicas test ICMP, test ARP, test DNS y test de ping de latencia.
# ./sniffdet 0.9
A Remote sniffer Detection Tool
Copyright (c) 2003
Ademar de Souza Reis Jr.
Milton Soares Filho
Usage: ./sniffdet [options] TARGET
Where:
TARGET is a canonical hostname or a dotted decimal IPv4 address
-i --iface=DEVICE Use network DEVICE interface for tests
-c --configfile=FILE Use FILE as configuration file
-l --log=FILE Use FILE for tests log
-f --targetsfile=FILE Use FILE for tests target
--pluginsdir=DIR Search for plugins in DIR
-p --plugin=FILE Use FILE plugin
-u --uid=UID Run program with UID (after dropping root)
-g --gid=GID Run program with GID (after dropping root)
-t --test=[testname] Perform specific test
Where [testname] is a list composed by:
dns DNS test
arp ARP response test
icmp ICMP ping response test
latency ICMP ping latency test
-v --verbose Run in verbose mode
-h, --help Show this help screen and exit
--version Show version info and exit
Defaults:
Interface: "eth0"
Log file: "sniffdet.log"
Config file: "/etc/sniffdet.conf"
Plugins Directory: "/usr/lib/sniffdet/plugins"
Plugin: "stdout.so"
You have to inform at least one test to perform
Vemos un ejemplo resultado de este software:
------------------------------------------------------------
Sniffdet Report
Generated on: xxxxxxxxx 2003
------------------------------------------------------------
Tests Results for target 192.168.2.1
------------------------------------------------------------
Test: ARP Test
Check if target replies a bogus ARP request (with wrong MAC)
Validation: OK
Started on: xxxx
Finished on: Mxxxxx
Bytes Sent: 84
Bytes Received: 60
Packets Sent: 2
Packets Received: 1
------------------------------------------------------------
RESULT: POSITIVE
------------------------------------------------------------
------------------------------------------------------------
Number of tests with positive result: #1
AntiSniff_v1.3
http://www.l0pht.com/antisniff
Esta herramienta, tanto para plataformas linux/Unix como para Win32, es muy sencilla de usar y tan sólo es necesario introducir el rango ede IPs a monitorizar en busca del posible sniffer. Usa las técnicas de ping de latencia, test DNS y test ARP.
Sentinel
http://www.packetfactory.net/Projects/sentinel/
Utiliza los métodos de: test DNS, test ARP, prueba ICMP Etherping, y ping de latencia.
Uso de sentinel:
./sentinel [método] [-t
Métodos:
[ -a test ARP ]
[ -d test DND ]
[ -i ICMP Test ping de latencia]
[ -e ICMP test Etherpingt ]
Opciones:
[ -f
[ -c
[ -n
[ -I
Ejemplos:
./sentinel -a -t 192.168.1.2
Optimizado para usar el test ARP host 192.168.1.2
./sentinel -d -f 1.1.1.1 -t 192.168.1.2
Optimizado para usar el test DNS host 192.168.1.2
192.168.4
Optimizado para escanear una red de clase c (192.168.4) usando el test ARP, DNS y test Etherping
Otras formas de detectar posibles sniffers
* Detectar y controlar los logs que suelen generar los sniffers.
* Detectar y controlar las conexiones al exterior.
* Monitorizados los programas que acceden al dispositivo de red.
* Normalmente una interfase en modo promiscuo, queda reflejada en el fichero de logs:
* $ cat /var/log/messages
Otras técnicas de detección
Sólo por nombrar algunas, son usadas por los programas anti-sniffers. Comentaremos la última:
* Ping de latencia
* Test ARP
* Uso de un IDS. Por ejemplo Snort que contiene un preprocesador (arpspoof) que nos puede servir. Aquí las líneas de snort.conf configurando el preprocesador:
arpspoof
#----------------------------------------
# Experimental ARP detection code from Jeff Nathan, detects ARP
attacks,
# unicast ARP requests, and specific ARP mapping monitoring. To make
use
# of this preprocessor you must specify the IP and hardware address
of hosts on # the same layer 2 segment as you. Specify one host IP
MAC combo per line.
# Also takes a "-unicast" option to turn on unicast ARP request
detection.
# Arpspoof uses Generator ID 112 and uses the following SIDS for
that GID:
# SID Event description
# ----- -------------------
# 1 Unicast ARP request
# 2 Etherframe ARP mismatch (src)
# 3 Etherframe ARP mismatch (dst)
# 4 ARP cache overwrite attack
preprocessor arpspoof
preprocessor arpspoof_detect_host: 192.168.2.1 f0:0f:00:f0:0f:00
Otro IDS para sistemas Linux como Prelude Hybrid IDS (http://www.preludeids.org/rubrique.php3?id_rubrique=13)
Posee un plugin ( ArpSpoof Plugin ) que nos ayuda a detectar incoherencias en mensajes ARP, conflictos con una base de datos ARPwatch (veremos esto más adelante), etc:
Configuración de plugin: /usr/local/etc/prelude-nids/prelude-nids.conf
...
[ArpSpoof]
#
# Search anomaly in ARP request.
#
# The "directed" option will result in a warn each time an ARP
# request is sent to an address other than the broadcast address.
#
# directed;
# arpwatch= ;
...
* Test DNS
Las técnicas de detección. Breve explicación.
El test DNS
En este método, la herramienta de detección en sí misma está en modo promiscuo. Creamos numerosas conexiones TCP falsas en nuestro segmento de red, esperando un sniffer pobremente escrito para atrapar estas conexiones y resolver la dirección IP de los inexistentes hosts. Algunos sniffers realizan búsquedas inversas DNS en los paquetes uqe capturan. Cuando se realiza una búsqueda inversa DNS, un utilidad de detección de sniffers "huele" la petición de las operaciones de búsqueda para ver si el objetivo es aquel que realiza la petición del host inexistente.
El Test del Ping
Este método confía en un problema en el núcleo de la máquina receptora. Podemos construir una petición tipo "ICMP echo" con la dirección IP de la máquina sospechosa de hospedar un sniffer, pero con una dirección MAC deliberadamente errónea. Enviamos un un paquete "ICMP echo" al objetivo con la dirección IP correcta, pero con una dirección de hardware de destino distinta. La mayoría de los sistemas desatenderán este paquete ya que su dirección MAC es incorrecta. Pero en algunos sistemas Linux, NetBSD y NT, puesto que el NIC está en modo promiscuo, el sniffer asirá este paquete de la red como paquete legítimo y responderá por consiguiente. Si el blanco en cuestión responde a nuestra petición, sabremos que está en modo promiscuo. Un atacante avanzado puede poner al día sus sniffers para filtrar tales paquetes para que parezca que el NIC no hubiera estado en modo promiscuo.
El Test ICMP
Ping de Latencia. En éste método, hacemos ping al blanco y anotamos el Round Trip Time (RTT, retardo de ida y vuelta o tiempo de latencia) Creamos centenares de falsas conexiones TCP en nuestro segmento de red en un período de tiempo muy corto. Esperamos que el sniffer esté procesando estos paquetes a razón de que el tiempo de latencia incremente. Entonces hacemos ping otra vez, y comparamos el RTT esta vez con el de la primera vez. Después de una serie de tests y medias, podemos concluir o no si un sniffer está realmente funcionando
en el objetivo o no.
El test ARP
Podemos enviar una petición ARP a nuestro objetivo con toda la información rápida excepto con una dirección hardware de destino errónea. Una máquina que no esté en modo promíscuo nunca verá este paquete, puesto que no era destinado a ellos, por lo tanto no contestará. Si una máquina está en modo promiscuo, la petición ARP sería considerada y el núcleo la procesaría y contestaría. Por la máquina que contesta, la sabemos estamos en modo promiscuo.
El test Etherping
Enviamos un "ping echo" al host a testear con una IP de destino correcta y dirección MAC falseada. Si el host responde, es que su interfaz está en modo promiscuo, es decir, existe un sniffer a la escucha y activo.
Protegerse contra la acción de los sniffers
A grandes rasgos para protegernos de los sniffers y para que éstos no cumplan sus objetivos de olfateo de contraseñas y en general nos "lean datos sensibles" en texto plano -sin cifrado fuerte-, podemos hacer uso de diversas técnicas o utilizar sistemas como:
* Redes conmutadas (no siempre es efectivo)
* PGP
* SSL
* SSH
* VPN
* etc.
Aunque ya veremos más adelante que ni siquiera el uso de SSH, por citar un ejemplo, nos puede proteger efectivamente del uso de ciertos tipos de sniffer como ettercap.
Detección en sistemas Windows
PromiScan
"PromiScan ( http://www.securityfriday.com/) es una utilidad de distribución gratuita diseñada para dar caza a los nodos promiscuos en una LAN rápidamente y sin crear una carga pesada en la red. Hay que tener en cuenta que localizar un nodo promiscuo es una tarea ardua, y que en muchos casos el resultado es incierto; no obstante, PromiScan consigue mostrar cada uno de esos nodos de una manera transparente, claramente visible. Para usar PromiScan es necesario contar con Windows 2000 Professional y haber instalado previamente el controlador WinPcap."
PromiscDetect
http://ntsecurity.nu/downloads/promiscdetect.exe
:\scan>promiscdetect
PromiscDetect 1.0 - (c) 2002, Arne Vidstrom
(arne.vidstrom@ntsecurity.nu)
- http://ntsecurity.nu/toolbox/promiscdetect/
Adapter name:
- NIC PCI 3Com EtherLink XL 10/100 PCI para administraci¾n completa
del equipo
(3C905C-TX)
Active filter for the adapter:
- Directed (capture packets directed to this computer)
- Multicast (capture multicast packets for groups the computer is a
member of)
- Broadcast (capture broadcast packets)
- Promiscuous (capture all packets on the network)
WARNING: Since this adapter is in promiscuous mode there could be a
sniffer
running on this computer!
ProDETECT 0.2 BETA
http://sourceforge.net/projects/prodetect/
Alerta de ProDETECT:
Alerta de ProDETECT
Detección en redes conmutadas
En redes conmutadas o que hagan uso de switches, la técnica de ARP poisoning o envenenamiento arp es la más efectiva. Esta técnica consiste, muy brevemente, en modificar (envenenar) la tabla ARP de los host involucrados en el ataque para que éstos envíen a la red tramas Ethernet con destino la MAC del atacante. Esto significa que el switch entregará los datos de la comunicación a dicho host. Para evitar el refresco de la caché ARP es necesario el envió constante de arp-reply.
Una posible solución o defensa sería el uso de MACs estáticas, con el fin de que no puedan ser modificadas, aunque en algunos sistemas Windows esto no es eficiente al 100 por 100.
En sistemas Linux la herramienta ARPWatch ( http://www-nrg.ee.lbl.gov/) nos puede servir para detectar el uso del envenenamiento ARP en nuestro sistema. Con ARPWatch podemos comprobar la correspondencia entre pares IP-MAC (Ethernet). En caso de que un cambio en un par se produzca (esto es, se escuche en el interfaz de red del sistema), ARPWatch envía un correo de notificación del suceso a la cuenta root o administrador del sistema con un mensaje tipo "FLIP FLOP o Change ethernet address" . También podemos monitorizar la existencia de nuevos host (aparición de una nueva MAC en la red).
# ./arpwatch -?
Version 2.1a11
usage: arpwatch [-dN] [-f datafile] [-i interface] [-n net[/width]]
[-r file]
[-u username] [-e username] [-s username]
# cat /etc/sysconfig/arpwatch
# -u : defines with what user id arpwatch should run
# -e : the where to send the reports
# -s : the -address
OPTIONS=""
Una herramienta similar a ARPwatch pero para sistemas Windows la encontramos en WinARP Watch v1.0 ( http://www.securityfocus.com/data/tools/warpwatch.zip). Esta herramienta no enviará correo alguno a ningún administrador, pero nos tendrá puntualmente informados sobre la caché ARP, las correspondencias IP/MAC, cualquier nuevo par que se añada a la caché, etc.
Una alerta de WinARP Watch:
Una alerta de WinARP Watch
Existe un tipo especial de switches que está preparado para que la tabla ARP no pueda ser modificada.
Hablando de herramientas, una que realiza este trabajo de escucha en redes conmutadas con gran eficacia es Ettercap. Ettercap ( http://ettercap.sourceforge.net ) es capaz de escuchar tanto redes basadas en hubs como en switches. Además puede escuchar conexiones SSH e incluso detectar otros envenenamientos o modificaciones de la tabla ARP.
Detección de envenenamiento ARP con ettercap en un sistema Windows.
C:\...\ettercap>ettercap -Nc
ettercap 0.6.b (c) 2002 ALoR & NaGA
List of available devices :
--> [dev0] - [3Com EtherLink PCI]
Please select one of the above, which one ? [0]:
Your IP: 192.168.4.3 with MAC: 00:04:76:F2:C9:5F on Iface: dev0
Building host list for netmask 255.255.255.0, please wait...
Sending 255 ARP request...
* |==================================================>| 100.00 %
Resolving 14 hostnames...
* |==================================================>| 100.00 %
Checking for poisoners...
MAC of 192.168.4.59 and 192.168.4.235 are identical !
Otra herramienta que detecta cambios en los pares IP/MAC así como ataques tipo arp-spoofing es ACiD (ARP Change intrusion Detection)
C:\scan\ACID>acid
ACiD - 0.0.2 - (c) 2002 Roberto Larcher - robertolarcher@webteca.port5.com
All rights reserved.
Press CTRL+C to stop.
Initializing default adapter. Please wait...
IP: 0.4.168.192 Subnet Mask: 0.255.255.255
Network type: Ethernet
ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9
ACiD: bogon 192.168.5.240 00:06:5b:05:9a:e7
ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9
ACiD: bogon 192.168.2.3 00:a0:24:4d:bc:69
ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6
ACiD: bogon 192.168.2.3 00:a0:24:4d:bc:69
ACiD: bogon 192.168.2.3 00:a0:24:4d:bc:69
ACiD: bogon 192.168.4.3 00:04:76:f2:c9:5f
ACiD: bogon 192.168.4.3 00:04:76:f2:c9:5f
ACiD: bogon 192.168.4.20 00:a0:24:4e:4e:4e
ACiD: bogon 192.168.5.240 00:06:5b:05:9a:e7
ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6
ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9
ACiD: bogon 192.168.4.20 00:a0:24:4e:4e:4e
ACiD: bogon 192.168.4.15 00:01:02:e7:57:cf
ACiD: bogon 192.168.4.8 00:10:4b:4d:15:bb
Ctrl+C detected...
IP <-> MAC table:
192.168.2.3 00:a0:24:4d:bc:69
192.168.4.1 00:04:76:97:b3:a9
192.168.4.10 00:a0:24:4e:51:6b
192.168.4.15 00:01:02:e7:57:cf
192.168.4.20 00:a0:24:4e:4e:4e
192.168.4.3 00:04:76:f2:c9:5f
192.168.4.5 00:04:76:9a:66:a6
192.168.4.8 00:10:4b:4d:15:bb
192.168.5.240 00:06:5b:05:9a:e7
ArpCount table:
192.168.2.3 -3
192.168.4.1 -8
192.168.4.10 1
192.168.4.15 -2
192.168.4.20 3
192.168.4.3 -2
192.168.4.5 -10
192.168.4.8 1
192.168.5.240 -6
En la consola de ACID si existe un error en la paridad IP/MAC nos alertará de esta manera:
ACiD: bogon 192.168.4.5 00:04:76:f2:c9:5f
(00:11:22:33:44:55)
ACiD: ethernet mismatch 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)
ACiD: bogon 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)
ACiD: ethernet mismatch 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)
ACiD: bogon 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)
ACiD: ethernet mismatch 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)
ACiD: bogon 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)
ACiD: ethernet mismatch 192.168.4.5 00:04:76:f2:c9:5f (00:11:22:33:44:55)
ACiD: bogon 192.168.4.1 00:04:76:97:b3:a9
ACiD: bogon 192.168.4.5 00:04:76:9a:66:a6
Possible spoof 192.168.4.5 00:04:76:9a:66:a6 was at 00:04:76:f2:c9:5f
http://www.maestrosdelweb.com/editorial/sniffers/
Detectando Sniffers en nuestra red. Redes conmutadas y no conmutadas.
Publicado por Lagos0809 en 9:49
Ubuntu 6.06 LTS ISP Server Setup with DTC
Ubuntu 6.06 LTS ISP Server Setup with DTC
Install of Ubuntu 6.06 LTS Server with the DTC control panel to provide a secure virtual hosting platform for Email, Webmail Anti-spam and Anti-virus with usage statistics.
This system uses the LAMP install of Ubuntu and Domain Technologies control panel.
Remote access with ssh
Firewall security with Shorelines Shorewall
DNS Sever: Bind9
FTP server: Pureftp
Mail: Postfix, Courier POP(s), IMAP(s)
Web mail with Squirrelmail
Mailing lists management with mlmmj
Anti virus and Spam controls with Spam Assassin, Clam AV,SPF, Amavis
Web statistics with Webalizer and awstats
Security certificates from CaCerts
The control panel also features a package installer for 'one click' application deployment.
For the future, the control panel supports virtualisation with xen.
I can be contacted by email at kdavies at syntosdotltddotuk or from my website www.syntos.ltd.uk.
Enjoy
Kevin
Install the Ubuntu LAMP server.
Reconfigure eth0 for a static ip address.
In this example I used 192.168.1.15 as the server ip.
Now for some configuration changes as root.
sudo -i
vi /etc/network/interfaces
#This file describes the network interfaces available on your system
#and how to activate them. For more information, see interfaces(5).
#The loopback network interface
auto lo
iface lo inet loopback
#The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.15
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
Turn off IPv6
echo "alias net-pf-10 off" > /etc/modprobe.d/bad_list
reload the network settings
/etc/init.d/networking restart
edit the /etc/hosts file to reflect the new ip.
vi /etc/hosts
127.0.0.1 localhost
192.168.1.15 myhostname.home.net myhostname
#The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
A reboot may be desirable at this stage.
Update your system
Check /etc/apt/sources.list to ensure repositories are enabled and remove cdrom from sources.list
vi /etc/apt/sources.list
apt-get update
apt-get upgrade
Remote access with ssh
apt-get install ssh
use ssh to connect to your server.
ssh adminname@192.168.1.15
To log into the admin account on the server without having to enter a password each time, populate the authorized_keys file on the server
ssh-copy-id -i ~/.ssh/id_dsa.pub adminname@192.168.1.15
You can now logon to the server.
ssh adminame@192.168.1.15
Start a root session
sudo -i
Remove some unwanted software
apt-get remove pppoeconf ppp pppconfig
Now to get some software
apt-get install screen defoma fontconfig gawk fileutils unrar-free zip unzip libzzip-0-12 mhonarc fakeroot chrootuid patch ucf openntpd ncftp
apt-get install php5 php5-cli php5-cgi php5-curl php5-gd php5-imap php5-mcrypt php5-mhash php5-pspell php5-recode php5-snmp php5-xmlrpc php5-xsl php-pear php-net-smtp php-net-socket php-xml-parser
When asked about libclient answer no. we want to use maildirs.
apt-get install bind9 bindgraph
apt-get install rrdtool rrdcollect mrtg-rrd librrd2 mrtg libgd-tools mrtg-contrib
Answer no to MRTG user only.
edit mrtg.cfg to reflect your web work directory
vi /etc/mrtg.cfg
apt-get install libmysqlclient12 libdigest-hmac-perl libdigest-sha1-perl libhtml-parser-perl libhtml-tagset-perl libltdl3 liburi-perl libnet-ip-perl libnet-dns-perl libnet-cidr-lite-perl libmail-spf-query-perl
apt-get install libsocket6-perl
needed for mysql authentication
apt-get install libpam-mysql libnss-mysql
apt-get install postfix postfix-mysql courier-base courier-pop courier-imap courier-authdaemon courier-maildrop courier-authmysql courier-ssl courier-imap-ssl courier-pop-ssl sasl2-bin libsasl2 libsasl2-module
rm /var/spool/postfix/var/run/saslauthd/
ln -s /var/run/saslauthd /var/spool/postfix/var/run
Answer yes for web based configuration files.
Chose Internet site
apt-get install spamassassin spamc
apt-get install clamav-base clamav-daemon php5-clamavlib clamav clamav-freshclam
apt-get install phpmyadmin webalizer awstats squirrelmail sqwebmail amavisd-new amavisd-new-milter
Had some problems with ftp-server, this worked.
aptitude -t ftp-server install pure-ftpd pure-ftpd-common pure-ftpd-mysql
pear install Crypt_CBC Auth_SASL
Some setting up
ln -s /usr/share/php/PEAR /usr/share/pear
ln -s /var/log /etc/apache2/logs
touch /etc/apache2/logs/mod_log_sql-preserve
chown nobody:nogroup /etc/apache2/logs/mod_log_sql-preserve
Set up root user password for MySQL
mysqladmin password mysqlrootpassword
PHP settings
Edit php.ini files.
vi /etc/php5/apache2/php.ini
max_execution_time = 300
memory_limit = 32M
upload_max_filesize = 6M
extension=mysql.so
extension=mysqli.so
then copy to the cgi and cli directories
cp /etc/php5/apache2/php.ini /etc/php5/cgi
cp /etc/php5/apache2/php.ini /etc/php5/cli
Apache configuration
copy the cgi-bin alias from default site to apache2.conf
vi /etc/apache2/apache2.conf
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
Restart Apache webserver
apache2ctl restart
Add the dtc repository to /etc/apt/sources.list
echo deb ftp://ftp.gplhost.com/debian stable main /etc/apt/sources.list
Update apt
apt-get update
apt-get install mlmmj sbox-dtc libapache2-mod-log-sql-mysql libapache2-mod-log-sql libapache2-mod-log-sql-ssl
Install DTC control panel
For the standard release:
apt-get dtc
For the latest version from cvs:
apt-get install cvs
cvs -d :pserver:anonymous@gplhost.com:/var/lib/cvs login
Password is anoncvs
cvs -d :pserver:anonymous@gplhost.com:/var/lib/cvs checkout dtc
cvs -d :pserver:anonymous@gplhost.com:/var/lib/cvs logout
Now to make DTC package
cd dtc/bin
./makeDebian
Next install the control panel
dpkg -i dtc_0.21.0-0_all.deb
To remove dtc
dpkg -r dtc
To reconfigure dtc
dpkg-reconfigure dtc
Install some traffic loggers
apt-get install mysqmail-postfix-logger mysqmail-courier-logger mysqmail-pure-ftpd-logger
Firewall configuration with Shorewall
apt-get install shorewall
To get phpmyadmin to work I had to edit /etc/phpmyadmin/blowfish_secret.inc.php and add it to /usr/share/phpmyadmin/config.inc.php
Using the control panel
Browse to http://yourdtcdomain.com/dtcadmin
Log in
Select DTC general configuration
Set Use SSL to yes
Using DTC
Set up mail
Select Users Administration ==>dtcdomain ==>Mailboxes
In the login box enter postmaster
Enter a password
for the postmaster username
In the Catch-all dropdown box select postmaster
Select ok
Continue to add emails.
To change account settings select
Admin editor or
Domain config
Adding a database
Select Client interface ==> database
First create a database username with a password
Select create
Create your database with username ==> create
http://www.howtoforge.com/ubuntu6.06_dtc_isp_server
Publicado por Lagos0809 en 6:56
Bandwidth Monitoring Tools for Ubuntu Users
Bandwidth Monitoring Tools for Ubuntu Users.
Bandwidth in computer networking refers to the data rate supported by a network connection or interface. One most commonly expresses bandwidth in terms of bits per second (bps). The term comes from the field of electrical engineering, where bandwidth represents the total distance or range between the highest and lowest signals on the communication channel (band).
Bandwidth represents the capacity of the connection. The greater the capacity, the more likely that greater performance will follow, though overall performance also depends on other factors, such as latency.
Here is the list of bandwidth monitoring tools for your network bandwidth
bmon
bwbar
bwm
bwm-ng
iftop
iperf
ipfm
speedometer
cbm
ibmonitor
pktstat
mactrack
MRTG
Cacti
Now we will see each tool separately
bmon
bmon is a portable bandwidth monitor and rate estimator running on various operating systems. It supports various input methods for different architectures.
Various output modes exist including an interactive curses interface, lightweight HTML output but also formatable ASCII output
Current Stable Version :- 2.1.0
Install bmon in Ubuntu
sudo apt-get install bmon
This will complete the installation.
If you want to open the application you need to enter the following command
bmon
you should see the following output
If i select the eth0 i should see all the traffic details
If you want to know more available options check man page
bwbar
This program will output a PNG and a text file that can be used in scripts or be included in web pages to show current bandwidth usage. The amount of total bandwidth can be customized. The PNG output appears as a bar graph showing maximum possible usage with the current inbound or outbound usage shown as a differently colored bar.
Current Stable Version :- 1.2.3
Install bwbar in ubuntu
sudo apt-get install bwbar
This will complete the installation
There is a /etc/default/bwbar file to configure before this package will work and here is my config
# Directory to put files into
DIR=/var/www
# Who to run as
RUNAS=www-data
# What are the options (eth0, scale of 1.5mbps)
OPTIONS=”eth0 1.5″
Now you need to chnage the permissions using the following command
sudo chown -R www-data:www-data /var/www/bwbar/
Start the bwbar using the following command
sudo /etc/init.d/bwbar start
You can also launch bwbar using the following command
bwbar eth0 100 -x 200 -y 7 -t 10 -p network.png -f network.txt -d /var/www/bwbar &
Now you need to go to http://serverip/bwbar you should see the bandwidth bar as follows
If you want to know about available option check man page
bwm
BandWidth Monitor This is a very tiny bandwidth monitor (not X11). Can monitor up to 16 interfaces in the in the same time, and shows totals too.
Current Stable Version :- 1.1.0
Install bwm ubuntu
sudo apt-get install bwm
This will complete the installation now
If you want to run the application use the following command
bwm
Output looks like below
If you want more details and available options check man page
bwm-ng
small and simple console-based bandwidth monitor.Bandwidth Monitor NG is a small and simple console-based live bandwidth monitor.
Current Stable Version :- 0.5
features
supports /proc/net/dev, netstat, getifaddr, sysctl, kstat and libstatgrab
unlimited number of interfaces supported
interfaces are added or removed dynamically from list
white-/blacklist of interfaces
output of KB/s, Kb/s, packets, errors, average, max and total sum
output in curses, plain console, CSV or HTML
configfile
Install bwm-ng in ubuntu
sudo apt-get install bwm-ng
This will complete the installation
If you want to run the application you need to use the following command
bwm-ng
Output looks like below
If you want more details and available options check man page
iftop
iftop does for network usage what top does for CPU usage. It listens to network traffic on a named interface and displays a table of current bandwidth usage by pairs of hosts.
Current Stable Version :- 0.17
Install iftop in ubuntu
sudo apt-get install iftop
This will complete the installation
If you want to run the application you need to use the following command
iftop
Output looks like below
If you want more details and available options check man page
ipfm
IP Flow Meter (IPFM) is a bandwidth analysis tool, that measures how much bandwidth specified hosts use on their Internet link.
Current Stable Version :- 0.11.5
Install ipfm in Ubuntu
sudo apt-get install ipfm
This will complete the installation
Now if you want to configure this for your network you need to copy example configuration file from /usr/share/doc/ipfm/examples if you want to check this file click here
once you configure this file you need to start the service using the following command
sudo /etc/init.d/ipfm start
If you want more details and available options check man page
Speedometer
Measure and display the rate of data across a network connection or data being stored in a file.
Current Stable Version :- 2.4
Install speedometer in ubuntu
Check which version of python is the default by running
python -V
Then issue the following commands as root to install speedometer (choose the correct Urwid package for your python version, ie. if python -V reports version 2.3.X then install python2.3-urwid)
apt-get install python2.4-urwid
Download the speedometer.py source file.
As user issue the following commands in the directory that you downloaded the source file
sudo cp speedometer.py /usr/local/bin/speedometer
sudo chown root: /usr/local/bin/speedometer
sudo chmod 755 /usr/local/bin/speedometer
Now you can run the speedometer application using the following
/usr/local/bin/speedometer
Now you should see the following screen output
Speedometer Usage
Usage: speedometer [options] tap [[-c] tap]
Available options
speedometer -h
Usage: speedometer [options] tap [[-c] tap]…
Monitor network traffic or speed/progress of a file transfer. At least one tap must be entered. -c starts a new column, otherwise taps are piled vertically.
Taps:
[-f] filename [size] display download speed [with progress bar]
-f must be used if directly following another
file tap without an expected size specified
-rx network-interface display bytes received on network-interface
-tx network-interface display bytes transmitted on network-interface
Options:
-i interval-in-seconds eg. “5″ or “0.25″ default: “1″
-p use plain-text display (one tap only)
-b use old blocky display instead of smoothed display even when UTF-8 encoding is detected
-z report zero size on files that don’t exist instead of waiting for them to be created
Usage Examples
How long it will take for my 38MB transfer to finish?
speedometer favorite_episode.rm $((38*1024*1024))
How quickly is another transfer going?
speedometer dl/big.avi
How fast is this LAN?
$ cat /dev/zero | nc -l -p 12345
$ nc host-a 12345 > /dev/null
$ speedometer -rx eth0
How fast is the upstream on this ADSL line?
speedometer -tx ppp0
How fast can I write data to my filesystem? (with at least 1GB free)
dd bs=1000000 count=1000 if=/dev/zero of=big_nothing &
speedometer big_nothing
cbm
cbm — the Color Bandwidth Meter — displays the current traffic on all network devices.
Current Stable Version :- 0.1-1
Install cbm in ubuntu
First you need to download the .deb package from here
once you have the .deb package you need to install using the following comamnd
sudo dpkg -i cbm_0.1-1_i386.deb
this will complete the installation now if you want to use the appltcation use the following command
cbm
Output looks like below
pktstat
pktstat listens to the network and shows the bandwidth being consumed by packets of various kinds in realtime. It understands some protocols (including FTP,HTTP, and X11) and adds a descriptive name next to the entry (e.g., ‘RETR cd8.iso’, ‘GET http://slashdot.org/’ or ‘xclock -fg blue’).
Current Stable Version :- 1.8.3
Install pktstat in Ubuntu
First you need to download .rpm package from here once you have the .rpm package you need to convert this .rpm file to .deb file using alien
Install alien
sudo apt-get install alien
Now you need to use the follwoing command to convert .rpm to .deb
sudo alien -k pktstat-1.7.2q-0.i386.rpm
Now you should be having pktstat_1.7.2q-0_i386.deb package
Install pktstat in Ubuntu
sudo dpkg -i pktstat_1.7.2q-0_i386.deb
This will complete the installation now you can open the application using the following command
pktstat
output looks like below
If you want more available options for pktstat check man page
ibmonitor
ibmonitor is an interactive linux console application which shows bandwidth consumed and total data transferred on all interfaces.
Current Stable Version :- 1.4
Its main features are:
Shows received, transmitted and total bandwidth of each interface
Calculates and displays the combined value of all interfaces
Displays total data transferred per interface in KB/MB/GB
Values can be displayed in Kbits/sec(Kbps) and/or KBytes/sec(KBps)
Can show maximum bandwidth consumed on each interface since start of utility
Can show average bandwidth consumption on each interface since start of utility
The output with all features (max, avg and display in Kbps and KBps) easily fits on a 80×24 console or xterm
Can interactively change its output display format depending on key pressed by user.
Install ibmonitor in Ubuntu
First you need to download the latest version from here
wget http://ovh.dl.sourceforge.net/sourceforge/ibmonitor/ibmonitor-1.4.tar.gz
Now you have ibmonitor-1.4.tar.gz
Extract this file using the following commands
tar xvfz ibmonitor-1.4.tar.gz
cd ibmonitor
If you want to run the application use the following command
Once you are in ibmonitor folder use
./ibmonitor
Output looks like the following screen
iperf
While tools to measure network performance, such as ttcp, exist, most are very old and have confusing options. Iperf was developed as a modern alternative for measuring TCP and UDP bandwidth performance.
Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics. Iperf reports bandwidth, delay jitter, datagram loss.
Current Stable Version :- 2.0.2
Install iperf in ubuntu
sudo apt-get install iperf
iperf Syntax
iperf [-s|-c host] [options]
Example
iperf -c server address -F file-name
iperf -c server address -I
The -F option is for file input.
The -I option is for input from stdin.
If you want more details and available options check man page
tcptrack
tcptrack is a sniffer which displays information about TCP connections it sees on a network interface. It passively watches for connections on the network interface, keeps track of their state and displays a list of connections in a manner similar to the unix ‘top’ command. It displays source and destination addresses and ports, connection state, idle time, and bandwidth usage.
Current Stable Version :- 1.1.5
Install tcptrack in Ubuntu
sudo apt-get install tcptrack
this will complete the installation
tcptrack Syntax
tcptrack [-dfhvp] [-r ] -i []
Examples
tcptrack requires only one parameter to run: the -i flag followed by an interface name that you want tcptrack to monitor. This is the most basic way to run tcptrack
tcptrack -i eth0
tcptrack can also take a pcap filter expression as an argument. The format of this filter expression is the same as that of tcpdump and other
libpcap-based sniffers. The following example will only show connections from host 10.45.165.2
tcptrack -i eth0 src or dst 10.45.165.2
The next example will only show web traffic (ie, traffic on port 80)
tcptrack -i eth0 port 80
The following output screen will show you more details
MRTG
The Multi Router Traffic Grapher or just simply MRTG is free software for monitoring the traffic load on network links. It allows the user to see traffic load on a network over time in graphical form.
Current Stable Version :- 2.15.0
Project Homepage
http://oss.oetiker.ch/mrtg/
Cacti
Cacti is a complete network graphing solution designed to harness the power of RRDTool’s data storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box. All of this is wrapped in an intuitive,easy to use interface that makes sense for LAN-sized installations up to complex networks with hundreds of devices.
Current Stable Version :- 0.8.6i
Project Homepage
http://www.cacti.net
Regarding MRTG and Cacti i am going write detailed articles in future
http://www.ubuntugeek.com/bandwidth-monitoring-tools-for-ubuntu-users.html
Publicado por Lagos0809 en 6:44
Bajarse una web entera
Bajarse una web entera
Comandos
Bajarse una web entera con linux es muy sencillo.Simplemente has de abrir una consola y escribir wget -r paginaweb.Por ejemplo para bajarse esta web,seria:
wget -r -k http://tuxhuellas.bitacoras.com/
tb puedes poner a bajar varias web a la vez.Para ello escribe las direcciones en un fichero de texto (xejemplo:websadercargar.txt)y luego ejecuta el comando asi:
wget -r -i webadescargas.txt
Facil,no?pues a probarlo ;)
wget
—-
Gestor de descargas (si pide autorizacion–http-user –http-passwd), s –mirror, -X para excluir las sources, -l solo entra en los links locales, cosa muy util.
Para descargar un fichero indefinido de veces (-t 0),retomando la descarga en la proxima ejecucion si se corta la conexion o se para el programa (-c), identificandose como un navegador web normal para evitar ser detectado por servidores (-U “Mozilla”) y no identificandose como un robot para tener acceso completo
a las paginas (-erobot=off), auque algunas estan protegidas contra descargas abusibas.
wget -t 0 -c -U “Mozilla” http://www.playboy.com/virus.zip
Para descargar completamente una pagina (-r) y convertir los enlaces para verla localmente (-k):
wget -t 0 -c -U “Mozilla” -erobot=off -r -k http://xxx.unizar.es
Para descargar la lista de enlaces de un fichero urls.txt:
wget -i urls.txt
Para aceptar solamente los ficheros JPG y MPG (-A *.jpg,*.mpg):
wget -t 0 -c -U “Mozilla” -erobot=off -r -k -A *.wmv,*.mpg,*.avi,*.mpeg http://www.fotos_y_videos_guarros.es
Bajar el directorio completo:
wget -r -A=.html,.deb -nc -np http://www.debian.org/~jules/gnome-stage-2/dists/
NOTA: Si bajas una serie de archivos html que en su contenido incluyen vinculos a otras paginas html, el WGET cambia las url’s y las adapta a tu maquina local, de manera que puedes navegar en los archivos que bajaste y en sus vinculos sin necesidad de estar conectado a la WEB.
/////////////////////////////////////////////////
Un saludo
http://www.tuxhuellas.com/2006/03/07/bajarse-una-web-entera/
Publicado por Lagos0809 en 6:34
Configurando facilmente redes inalambricas en Linux
Configurando facilmente redes inalambricas en Linux
Leemos literalmente de http://oswax.sourceforge.net/
Hace un tiempo comencé un proyecto de gestor de redes inalámbricas que llamé Oswa... La idea era hacerlo funcionar en consola y comencé haciendo simples echos y cowsays :P.
Sin embargo la funcionalidad del proyecto era buena y seguí trabajando en ello... Ahora tiene soporte para MacChanger, generación de scripts para redes favoritas, escaneado y elección de red con un menú sencillo... Incluso una interfaz de verdad con dialog (el sistema que utiliza la instalación de Debian) compatible con X gracias a Xdialog....(sigue)
El programa, que ahora se llama OswaX (descubrí que me habían pillado el nombre original) está tomando buena forma.
FUNCIONALIDADES
* Escaneado de redes vía iwlist y elección y conexión mediante un sencillo menú.
* Configuración de algunos parámetros
* Petición de IP vía DHCP
* Generación de scripts de conexión a redes favoritas personalizados
* Soporte de Macchanger para cambiar por software la MAC de su tarjeta por una introducida manualmente o por una aleatoria.
* Soporte de encriptación WEP
La web oficial es http://oswax.sourceforge.net/
Publicado por Lagos0809 en 6:31
Conectarse a wifi con wpa2
Conectarse a wifi con wpa2
Empezaba pensar en cambiar mi encriptacion del router por una wep con filtrado de mac. Pero hoy he conseguido la solucion.
Los paquetes qeu debemos instalar son (estan todos en los repositorios de ubuntu):
* network-manager (y network-manager-gnome si usas gnome)
* wpagui
* wpasupplicant
y listo, reiniciamos el pc y veremos un nuevo demonio en la barra de tareas. Pinchamos en el y seleccionamos nuestra red, nos pregunta el tipo de encriptacion y la contraseña. Luego nos pedira que pongamos una contraseña al anillo de redes, esta servira para impedir qeu cualquiera qeu coja nuestro pc, se conecte a nuestra wifi.
(una fotico del programa en si )
A disfrutar!!!!
PD: Para detectar wifis me gusta mucho tb el wifi-radar, pero no me permitia conectarme a una wap2…
http://www.ecualug.org/?q=2005/11/17/forums/como_monitorear_el_trafico_de_internet
Publicado por Lagos0809 en 4:52
Etiquetas
- testing1 (1)