instalación de OpenVPN en OpenBSD
En este documento veremos como configurar openvpn en un servidor corriendo openbsd 5.0 miremos un poco sobre que es openvpn.
OpenVPN, es un producto de software creado por James Yonan en el año 2001 y que ha estado mejorando desde entonces.
Ninguna otra solución ofrece una mezcla semejante de seguridad a nivel empresarial, seguridad, facilidad de uso y riqueza de características.
Es una solución multiplataforma que ha simplificado mucho la configuración de VPN’s dejando atrás los tiempos de otras soluciones difíciles de configurar como Ipsec y haciéndola más accesible para gente inexperta en este tipo de tecnología.
Supongamos que necesitamos comunicar diferentes sucursales de una organización. A continuación veremos algunas soluciones que se han ofrecido como respuesta a este tipo de necesidades.
En el pasado las comunicaciones se realizaban por correo, teléfono o fax. Hoy en día hay factores que hacen necesaria la implementación de soluciones más sofisticadas de conectividad entre las oficinas de las organizaciones a lo largo del mundo.
Dichos factores son:
- La aceleración de los procesos de negocios y su consecuente aumento en la necesidad de intercambio flexible y rápido de información.
- Muchas organizaciones tienen varias sucursales en diferentes ubicaciones así como también tele trabajadores remotos desde sus casas, quienes necesitan intercambiar información sin ninguna demora, como si estuvieran físicamente juntos.
- La necesidad de las redes de computación de cumplir altos estándares de seguridad que aseguren la autenticidad, integridad y disponibilidad.
Lo primero que tenemos que hacer es exportar el repositorio de openbsd
# export PKG_PATH=ftp://ftp.nara.wide.ad.jp/pub/OpenBSD/5.0/packages/i386/
El siguiente paso es descargar el paquetes Openvpn
# pkg_add -v openvpn
openvpn-2.1.4: ok — +openvpn-2.1.4 ——————-
OpenVPN re-creates the tun(4) interface at startup; compatibility
with PF is improved by starting it from hostname.if(5). For example:
# cat << EOF > /etc/hostname.tun0
up
!/usr/local/sbin/openvpn –daemon –config /etc/openvpn/server.conf
EOF
Como nos dice lo el anterior paso creamos un archivo para la interfaz tun0 y colocamos el comando que nos dice el cual sirve para iniciar la interfas tun0 para ser usado por Openvpn
# cat /etc/hostname.tun0 up
!/usr/local/sbin/openvpn –daemon –config /etc/openvpn/server.conf
#
Después de la instalación verificamos que este instalado correctamente.
# pkg_info | grep openvpn
openvpn-2.1.4 easy-to-use, robust, and highly configurable VPN
#
A continuación creamos un 2 directorios para los archivos de configuración de Openvpn
#mkdir -p /etc/openvpn/privado
Lo siguiente que aremos sera copiar los archivos de configuración y los scripts de openvpn a la carpeta “/etc/openvpn/” creada anteriormente.
#cp -Rip /usr/local/share/examples/openvpn/easy-rsa/
/etc/openvpn
Copiamos el archivo principal para la configuración del servidor openvpn.
#cp /usr/local/share/examples/openvpn/sample-config-files/server.conf /etc/openvpn
Le cambiamos los permisos al directorio privado por 700
#chmod 700 privado/
Creando los certificados OpenSSL
Para este paso crearemos los certificados para el servidor y para el cliente lo primero que tenemos que hacer sera modificar el script “vars” y lo dejamos de la siguiente manera.
# cat /etc/openvpn/easy-rsa/2.0/vars
export EASY_RSA=”`pwd`”
export OPENSSL=”openssl”
export PKCS11TOOL=”pkcs11-tool”
export GREP=”grep”
export KEY_CONFIG=”$EASY_RSA/openssl.cnf”
export KEY_DIR=”$EASY_RSA/keys”
echo NOTE: If you run ./clean-all, I will be doing a rm -rf on $KEY_DIR
export PKCS11_MODULE_PATH=”dummy”
export PKCS11_PIN=”dummy”
export KEY_SIZE=1024
export CA_EXPIRE=3650
export KEY_EXPIRE=3650
export KEY_COUNTRY=”co”
export KEY_PROVINCE=”colombia”
export KEY_CITY=”antioquia”
export KEY_ORG=”openbsdcolombia”
export KEY_EMAIL=”shellfity@gmail.com”
#
Una vez creado empezamos la creación de los certificados
#./vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys
#
Como podemos observar nos dice que para empezar a crear los certificados primero tenemos que ejecutar el script “clean-all”.
#./clean-all
Ahora creamos nuestra entidad certificadora, para la creación de este nos pedirá una serie de datos en mi caso ya los había configurado en el archivo script “vars” así que no llenare ninguno.
# ./build-ca
Generating a 1024 bit RSA private key
..++++++
…….++++++
writing new private key to ‘ca.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [co]:
State or Province Name (full name) [colombia]:
Locality Name (eg, city) [antioquia]:
Organization Name (eg, company) [shellfity]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) [shellfity CA]:
Name []:
Email Address [shellfity@gmail.com]:
#
Ahora crearemos los certificados y claves para el servidor luego de llenar los datos nos generara el certificado y la llave para nuestro servidor los cuales quedaran guardados en “/etc/openvpn/easy-rsa/2.0/keys”
“serverbsd.crt ” “serverbsd.key”
# ./build-key-server serverbsd Generating a 1024 bit RSA private key
….++++++
……………………………….++++++
writing new private key to ‘serverbsd.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [co]:
State or Province Name (full name) [colombia]:
Locality Name (eg, city) [antioquia]:
Organization Name (eg, company) [shellfity]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) [serverbsd]:
Name []:
Email Address [shellfity@gmail.com]:
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName
RINTABLE:’co’
stateOrProvinceName
RINTABLE:’colombia’
localityName
RINTABLE:’antioquia’
organizationName
RINTABLE:’shellfity’
commonName
RINTABLE:’serverbsd’
emailAddress :IA5STRING:‘shellfity@gmail.com‘
Certificate is to be certified until Dec 1 23:22:38 2021 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
#
Ya tenemos los certificados de nuestro servidor ya crearemos los de los clientes yo creare uno llamado openbsd para crear mas clientes se repite este paso para crear tantos clientes necesite.
# ./build-key openbsd Generating a 1024 bit RSA private key
……………++++++
……………………………….++++++
writing new private key to ‘openbsd.key’
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [co]:
State or Province Name (full name) [colombia]:
Locality Name (eg, city) [antioquia]:
Organization Name (eg, company) [shellfity]:openbsd
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server’s hostname) [openbsd]:
Name []:
Email Address [shellfity@gmail.com]:
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /etc/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName
RINTABLE:’co’
stateOrProvinceName
RINTABLE:’colombia’
localityName
RINTABLE:’antioquia’
organizationName
RINTABLE:’openbsd’
commonName
RINTABLE:’openbsd’
emailAddress :IA5STRING:‘shellfity@gmail.com‘
Certificate is to be certified until Dec 1 23:27:48 2021 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Ahora generamos los parámetros de Diffie-Hellman.
# ./build-dh Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.+……………………+………………………………..+…+..+………………………………………………..+………..+…+..+…………………………………………………………………+……..+……………………………………………………+………………+…..+.+…………………………………………+………………+…………………………………+……………………………………………+…….+..+……………………………..+……+…………………………+…………………………………………………………………………………………+……………………………………………………………………………………………..+……….+…………………..+……+…+…………………………….+…………………………….+……….+………………+…+…+………………………………….+………………….+………………………………………………………………………………………..+…………………………………………………………+…………………………….+…….+…..+…………………………+…………………+…………………………………………………………..++*++*++*
#
Una vez terminado este proceso tendremos generados los certificados para nuestro servidor “servbsd” y un certificado para un cliente “openbsd”
verificamos que los certificados estén creados
# ls
01.pem ca.crt dh1024.pem index.txt.attr index.txt.old openbsd.csr openvpn-openbsd.ovpn serial.old serverbsd.csr 02.pem ca.key index.txt index.txt.attr.old openbsd.crt openbsd.key serial serverbsd.crt serverbsd.key
#
Ahora copiaremos los certificados del servidor en la carpeta “/etc/openvpn/privado”
# cp -R ca.crt serverbsd.key serverbsd.crt dh1024.pem /etc/openvpn/privado/
Ahora con todo en su lugar lo siguiente sera configurar el archivo openvpn.conf en el cual daremos la ruta de los certificados del servidor y el rango de ip para nuestra vpn dejamos el archivo de la siguiente manera .
#cat server.conf
port 1194 #puerto predeterminado
proto udp #protocolo puede ser udp o tcp
dev tun0 #interface de red tun
ca /etc/openvpn/keys/ca.crt #damos la ruta de nuestros certificados y la llave
cert /etc/openvpn/privado/serverbsd.crt
key /etc/openvpn/privado/serverbsd.key
dh /etc/openvpn/privado/dh1024.pem
server 10.0.2.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push “route 10.0.1.0 255.255.255.0″
client-to-client
keepalive 10 120
comp-lzo
user _openvpn
group _openvpn
persist-key
persist-tun
status openvpn-status.log
verb 3
Ahora iniciamos el servicio de la siguiente manera y si nos nos saca error significa que todo esta bien
# /usr/local/sbin/openvpn –config server.conf –key /etc/openvpn/privado/serverbsd.key
Sun Dec 4 19:22:06 2011 OpenVPN 2.1.4 i386-unknown-openbsd5.0 [SSL] [LZO2] built on Aug 16 2011
Sun Dec 4 19:22:06 2011 NOTE: your local LAN uses the extremely common subnet address 192.168.0.x or 192.168.1.x. Be aware that this might create routing conflicts if you connect to the VPN server from public locations such as internet cafes that use the same subnet.
Sun Dec 4 19:22:06 2011 NOTE: OpenVPN 2.1 requires ‘–script-security 2′ or higher to call user-defined scripts or executables
Sun Dec 4 19:22:06 2011 Diffie-Hellman initialized with 1024 bit key
Sun Dec 4 19:22:06 2011 TLS-Auth MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Sun Dec 4 19:22:06 2011 Socket Buffers: R=[41600->65536] S=[9216->65536]
Sun Dec 4 19:22:06 2011 ROUTE default_gateway=192.168.0.1
Sun Dec 4 19:22:06 2011 /sbin/ifconfig tun0 destroy
Sun Dec 4 19:22:06 2011 /sbin/ifconfig tun0 create
Sun Dec 4 19:22:06 2011 NOTE: Tried to delete pre-existing tun/tap instance — No Problem if failure
Sun Dec 4 19:22:06 2011 /sbin/ifconfig tun0 10.0.2.1 10.0.2.2 mtu 1500 netmask 255.255.255.255 up
Sun Dec 4 19:22:06 2011 TUN/TAP device /dev/tun0 opened
Sun Dec 4 19:22:06 2011 /sbin/route add -net 10.0.2.0 10.0.2.2 -netmask 255.255.255.0
add net 10.0.2.0: gateway 10.0.2.2
Sun Dec 4 19:22:06 2011 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Sun Dec 4 19:22:06 2011 GID set to _openvpn
Sun Dec 4 19:22:06 2011 UID set to _openvpn
Sun Dec 4 19:22:06 2011 UDPv4 link local (bound): [undef]:1194
Sun Dec 4 19:22:06 2011 UDPv4 link remote: [undef]
Sun Dec 4 19:22:06 2011 MULTI: multi_init called, r=256 v=256
Sun Dec 4 19:22:06 2011 IFCONFIG POOL: base=10.0.2.4 size=62
Sun Dec 4 19:22:06 2011 IFCONFIG POOL LIST
Sun Dec 4 19:22:06 2011 Initialization Sequence Completed
Si miramos nuestras interfaces de red nos debe de aparecer una nueva la cual es la tun0 que sera la interfase utilizada para la vpn.
# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33196
priority: 0
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0×3
inet 127.0.0.1 netmask 0xff000000
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:0c:29:cc:ba:08
priority: 0
media: Ethernet autoselect (1000baseT full-duplex,master)
status: active
inet 192.168.0.13 netmask 0xffffff00 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fecc:ba08%em0 prefixlen 64 scopeid 0×1
enc0: flags=0<>
priority: 0
groups: enc
status: active
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
priority: 0
groups: tun
status: active
inet 10.0.2.1 –> 10.0.2.2 netmask 0xffffffff
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33196
priority: 0
groups: pflog
#
Configuración de Packet Filter
Configuramos Packet Filter para que permita la entrada de paquetes que llegan por los puertos de escucha de asterisk tanto udp como tcp. Por defecto el archivo para escribir las reglas de PF es /etc/pf.conf, podría ser cualquier otro, y el binario para interactuar con este sistema es pfctl. El archivo de configuración de reglas en una instalación estándar suele traer algunas lineas de ayuda, sin embargo la mejor referencia para aprender y para conocer a fondo PF es la pagina FAQ oficial del proyecto OpenBSD. En este documento haremos algunas referencias rápidas a la configuración de PF pero recuerde que si quiere conocer todo lo que PF es capaz de hacer debe ir al enlace oficial.
Antes de empezar con la configuración de las reglas de filtrado debemos conocer algunas cosas de como funciona PF
Para habilitar y deshabilitar el sistema PF use:
pfctl -d # para deshabilitar
pfctl -e # para habilitar
Para listar las reglas que estan cargadas:
pftcl -sr #listar las reglas de filtrado
pfctl -sn #listar las reglas NAT
Para cargar las reglas de filtrado y traducción NAT:
pfctl -f /etc/pf.conf #cargar las reglas desde el archivo /etc/pf.conf
Una de las cosas mas importantes antes de empezar con PF es conocer como se aplican las reglas de filtrado. En PF las reglas se evalúan según su orden de entrada, es decir, primero se evalúa la primera regla, después se evalúa la segunda y así hasta terminar con la ultima regla. Miremos un ejemplo:
# cat /etc/pf.conf | grep -v ^#
set skip on lo
pass # to establish keep-state
wan= em0
puerto= 1194
vpn= tun0
block in on ! lo0 proto tcp to port 6000:6010
pass in all
pass out quick log on $wan from !($wan) to any nat-to ($wan)
pass in quick log on $wan proto udp from any to port $puerto
pass in quick log on $vpn proto { tcp, udp } from any to any
pass in quick log on $vpn proto icmp from any to any
pass in quick log on $wan proto tcp from any to port 22
block in all
#
configuración cliente Openvpn
Para configurar el cliente con el cual nos podremos conectar a nuestra vpn utilizare Debien squeeze
lo que tendremos que hacer sera instalar el cliente openvpn que lo aremos de la siguiente manera
#aptitude install network-manager-openvpn
Habilitamos el forwading de paquetes
#echo 1 > /proc/sys/net/ipv4/ip_forward
y por ultimo miramos si tenemos cargado el modulo /dev/net/tun, y si no esta lo creamos
mknod /dev/net/tun c 10 200
una ves echo esto copiamos los certificados del cliente generados anteriormente en el servidor para podernos conectar los certificados son “ca.crt” “openbsd.crt” “openbsd.key” y los copiamos a la carpeta “/etc/openvpn” luego creamos un archivo que contenga lo siguiente
root@shellfity:/etc/openvpn# cat openvpn-openbsd.ovpn
client
dev tun
proto udp #protocolo
remote 192.168.0.13 1194 # ip del servidor mas el puerto
nobind
persist-key
persist-tun
ca ca.crt
cert openbsd.crt
key openbsd.key
ns-cert-type server
comp-lzo
verb 3
Ahora ya nos podremos conectar al servidor y lo aremos de la siguiente manera
root@shellfity:/etc/openvpn# openvpn openvpn-openbsd.ovpn
Mon Dec 5 11:25:38 2011 OpenVPN 2.1.3 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] [MH] [PF_INET6] [eurephia] built on Oct 21 2010
Mon Dec 5 11:25:38 2011 NOTE: OpenVPN 2.1 requires ‘–script-security 2′ or higher to call user-defined scripts or executables
Mon Dec 5 11:25:38 2011 WARNING: file ‘openbsd.key’ is group or others accessible
Mon Dec 5 11:25:38 2011 /usr/bin/openssl-vulnkey -q -b 1024 -m <modulus omitted>
Mon Dec 5 11:25:38 2011 LZO compression initialized
Mon Dec 5 11:25:38 2011 Control Channel MTU parms [ L:1542 D:138 EF:38 EB:0 ET:0 EL:0 ]
Mon Dec 5 11:25:38 2011 Socket Buffers: R=[112640->131072] S=[112640->131072]
Mon Dec 5 11:25:38 2011 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:135 ET:0 EL:0 AF:3/1 ]
Mon Dec 5 11:25:38 2011 Local Options hash (VER=V4): ’41690919′
Mon Dec 5 11:25:38 2011 Expected Remote Options hash (VER=V4): ’530fdded’
Mon Dec 5 11:25:38 2011 UDPv4 link local: [undef]
Mon Dec 5 11:25:38 2011 UDPv4 link remote: [AF_INET]192.168.0.13:1194
Mon Dec 5 11:25:38 2011 TLS: Initial packet from [AF_INET]192.168.0.13:1194, sid=8364bcc1 eb1124bb
Mon Dec 5 11:25:38 2011 VERIFY OK: depth=1, /C=co/ST=colombia/L=antioquia/O=shellfity/CN=shellfity_CA/emailAddress=shellfity@gmail.com
Mon Dec 5 11:25:38 2011 VERIFY OK: nsCertType=SERVER
Mon Dec 5 11:25:38 2011 VERIFY OK: depth=0, /C=co/ST=colombia/L=antioquia/O=shellfity/CN=serverbsd/emailAddress=shellfity@gmail.com
Mon Dec 5 11:25:38 2011 Data Channel Encrypt: Cipher ‘BF-CBC’ initialized with 128 bit key
Mon Dec 5 11:25:38 2011 Data Channel Encrypt: Using 160 bit message hash ‘SHA1′ for HMAC authentication
Mon Dec 5 11:25:38 2011 Data Channel Decrypt: Cipher ‘BF-CBC’ initialized with 128 bit key
Mon Dec 5 11:25:38 2011 Data Channel Decrypt: Using 160 bit message hash ‘SHA1′ for HMAC authentication
Mon Dec 5 11:25:38 2011 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Mon Dec 5 11:25:38 2011 [serverbsd] Peer Connection Initiated with [AF_INET]192.168.0.13:1194
Mon Dec 5 11:25:41 2011 SENT CONTROL [serverbsd]: ‘PUSH_REQUEST’ (status=1)
Mon Dec 5 11:25:41 2011 PUSH: Received control message: ‘PUSH_REPLY,route 10.0.1.0 255.255.255.0,route 10.0.2.0 255.255.255.0,topology net30,ping 10,ping-restart 120,ifconfig 10.0.2.6 10.0.2.5′ Mon Dec 5 11:25:41 2011 OPTIONS IMPORT: timers and/or timeouts modified
Mon Dec 5 11:25:41 2011 OPTIONS IMPORT: –ifconfig/up options modified
Mon Dec 5 11:25:41 2011 OPTIONS IMPORT: route options modified
Mon Dec 5 11:25:41 2011 ROUTE default_gateway=192.168.0.1
Mon Dec 5 11:25:41 2011 TUN/TAP device tun0 opened
Mon Dec 5 11:25:41 2011 TUN/TAP TX queue length set to 100
Mon Dec 5 11:25:41 2011 /sbin/ifconfig tun0 10.0.2.6 pointopoint 10.0.2.5 mtu 1500
Mon Dec 5 11:25:41 2011 /sbin/route add -net 10.0.1.0 netmask 255.255.255.0 gw 10.0.2.5
Mon Dec 5 11:25:41 2011 /sbin/route add -net 10.0.2.0 netmask 255.255.255.0 gw 10.0.2.5
Mon Dec 5 11:25:41 2011 Initialization Sequence Completed
como vemos se a conectado correctamente si miramos nuestras interfaces nos debe aparecer una nueva inferfaz la tun0
root@shellfity:/etc/openvpn# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.0.2.6 P-t-P:10.0.2.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@shellfity:/etc/openvpn#
Comprobamos conectividad con el servidor vpn
root@shellfity:/etc/openvpn# ping -c 3 10.0.2.1
PING 10.0.2.1 (10.0.2.1) 56(84) bytes of data.
64 bytes from 10.0.2.1: icmp_req=1 ttl=255 time=0.703 ms
64 bytes from 10.0.2.1: icmp_req=2 ttl=255 time=0.578 ms
64 bytes from 10.0.2.1: icmp_req=3 ttl=255 time=0.631 ms
— 10.0.2.1 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.578/0.637/0.703/0.055 ms
root@shellfity:/etc/openvpn#
Conclusiones
Las vpns hoy en día son parte fundamental en cualquier arquitectura de red ya que nos permiten conectarnos de forma segura y de esta manera proteger la información
Openvpn es una excelente solución libre para las empresas que no tienen los recursos para comprar dispositivos para estos fines
Openvpn y OpenBSD hacen una excelente dúo para la seguridad de nuestra organización.
Enlaces relacionados
Primer Reto Navideño
Bueno hoy les escribo para invitarlos a participar en el primer reto navideño que lanzara InterCEPTeam el reto estará disponible desde el 22 de diciembre espero que puedan jugar y divertirsen un rato también se dará un premio de un libro de seguridad informática que esta por confirmar, acá les dejo la web del grupo para que la chequen y miren las reglas del juego buena suerte y que puedan salvar la navidad.
http://www.intercepteam.org
instalar asterisk en openbsd
Asterisk fue creada en 1999 por Mark Spencer de la empresa Digium y donada a la comunidad con licencia libre tras lo cual se han recibido muchas colaboraciones y mejoras por parte de muchos desarrolladores libres y empresas sin solicitar nada a cambio.
Poco a poco, esta aplicación se ha convertido en la evolución de las tradicionales centralitas analógicas y digitales permitiendo también integración con la tecnología más actual: VoIP.Asterisk se convierte así en el mejor, más completo, avanzado y económico sistema de comunicaciones existente en la actualidad.
Otro aliciente es su capacidad de ser programada, permitiendo realizar labores que hasta el día de hoy lo llevaban realizando sistemas extremadamente costosos y complicados y, gracias a Asterisk, esta misma labor se realiza de una forma más económica lo que fomenta el uso de sistemas libres como BSD y estándares abiertos como SIP, H323 o IAX.
Una de las ventajas más interesantes es su posibilidad como sistema híbrido, ya que permite gestionar comunicaciones telefónicas tradicionales (analógicas, digitales, móviles, …) como comunicaciones IP mediante el uso de los protocolos estandar de VoIP.
OpenBSD es uno de los sistemas mas confiables en lo que respecta a la seguridad de la información, es por ello que una solución en vo/ip como asterisk fue integrada en el árbol de ports desde la versión 1.0.9 de asterisk
Instalación de Asterisk
Lo primero que tenemos que hacer es exportar el repositorio de openbsd
# export PKG_PATH=ftp://ftp.nara.wide.ad.jp/pub/OpenBSD/4.9/packages/i386/
El siguiente paso es descargar los paquetes necesarios para el funcionamiento de asterisk
los cuales son
# pkg_add -i asterisk
Luego instalamos paquetes necestarios para el funcionamiento de asterisk este paquete contiene todos los temas de liberación de openbsd para ser utilizados, como música en espera.
# pkg_add -v asterisk-openbsd-moh-4.6.tgz
Estos paquetes añaden mejores sonidos adicionales a su PBX.
# pkg_add -v asterisk-native-sounds-1.2p0.tgz
# pkg_add -v asterisk-sounds-1.2.1p3.tgz
Este paquete es necesario para las realizar conferencias en asterisk
# pkg_add -v appkonference-1.2.tgz
Despues de la instalación verificamos que este instalado correctamente.
# pkg_info | grep asterisk
Ejemplo de configuración de asterisk
Lo siguiente que aremos des pues de la instalación de asterisk es la configuración de dos clientes en openbsd al igual que en otros linux los archivos de configuración de asterisk se encuentran en “/etc/asterisk” y los archivos que configuraremos sera el sip.conf en el cual configuraremos los usuarios, para el ejemplo serán 2 usuarios el 100 y el 1001 que son los de ejemplo de configuración, y en el asterisk.conf configuraremos las opciones de marcado.
# cat /etc/asterisk/sip.conf
[general]
port=5060 ;puerto de escucha
bindaddr=0.0.0.0
context=Internal
language=es
disallow=all
allow=ulaw
; Phone #1
[100] ; Definimos el numero de la extension.
type=friend
user=100 ;Nombre del usuario de esa extensión.
secret=123456 ;Password de ingreso del usuario.
nat=no
host=dynamic ;Tipo de cliente.
canreinvite=no ;Definir si ahi nateo entre el servidor y el cliente
qualify=yes
mailbox=100
allow=ulaw
allow=gsm
allow=ulaw
context=Internal
; Phone #2
[101]
type=friend
user=101
secret=654321
nat=no
host=dynamic
canreinvite=no
qualify=yes
mailbox=100
allow=ulaw
allow=gsm
allow=ulaw
context=Internal
#
Luego configuramos al final del archivo asterisk.conf las políticas de marcado
# tail -n 11 extconfig.conf
static=yes
writeprotect=no
[default]
exten=>_.,1,Congestion
[Internal]
exten => 100,1,Dial(SIP/100)
exten => 101,1,Dial(SIP/101)
Configuramos packet filter para que permita la entrada de paquetes que llegan por los puertos de escucha de asterisk tanto udp como tcp
Por defecto el archivo para escribir las reglas de PF es /etc/pf.conf, podría ser cualquier otro, y el binario para interactuar con este sistema es pfctl. El archivo de configuración de reglas en una instalación estándar suele traer algunas lineas de ayuda, sin embargo la mejor referencia para aprender y para conocer a fondo PF es la pagina FAQ oficial del proyecto OpenBSD. En este documento haremos algunas referencias rápidas a la configuración de PF pero recuerde que si quiere conocer todo lo que PF es capaz de hacer debe ir al enlace oficial.
Antes de empezar con la configuración de las reglas de filtrado
algunas cosas de como funciona PF
Para habilitar y deshabilitar el sistema PF use:
pfctl -d # para deshabilitar
pfctl -e # para habilitar
Para listar las reglas que estan cargadas:
pftcl -sr #listar las reglas de filtrado
pfctl -sn #listar las reglas NAT
para cargar las reglas de filtrado y traducción NAT:
pfctl -f /etc/pf.conf #cargar las reglas desde el archivo /etc/pf.conf
Una de las cosas mas importantes antes de empezar con PF es conocer como se aplican las reglas de filtrado. En PF las reglas se evalúan según su orden de entrada, es decir, primero se evalúa la primera regla, después se evalúa la segunda y así hasta terminar con la ultima regla. Miremos un ejemplo:
# cat /etc/pf.conf | grep -v ^# set skip on lo
pass # to establish keep-state
pass in all
ext=em0
voip_tcp= 5060
voip_udp= “{ 5060, 4569, 5036, 9999 ><20001, 2727 }”
pass in quick log on $ext inet proto tcp from any to port $voip_tcp flags S/SA keep state
pass in quick log on $ext inet proto udp from any to port $voip_udp keep state
block in all
#
Hacemos las pruebas con los dos usuarios que acabamos de crear para el ejemplo se instalo un sotphone en Linux y otro en una maquina virtualizada con windows los dos corren con el sofphone Sjphone no mostrare como configurarlos ya que es muy sencillo y no quiero hacer muy largo el documento, acá están las pruebas que realice.
En el pantallazo se muestra el windows haciendo una llamada la exención 100 y en rojo se observamos que la llamada esta entrando satisfactoria mente una vez que le damos aceptar podemos
empezar hablar de forma correcta.
En este pantallazo se observa que la llamada a sido establecida
Lo siguiente que aremos sera configurar el archivo rc.local para que asterisk inicie automáticamente cada vez que se reinicie el sistema, agregamos las siguientes lineas al final del archivo.

# tail -n 5 /etc/rc.local
#inicio asterisk
if [ -x /usr/local/sbin/asterisk ]; then
echo -n “asterisk”; /usr/local/sbin/asterisk
fi
Seguridad en los archivos de asterisk
Esta configuración es opcional, OpenBSD ofrece la posibilidad de bloquear los permisos de ciertos archivos y evitar que estos sean modificados incluso por el usuario root estos cambios son buenos ya que si un intruso logra vulnerar nuestro sistema y quiere infectarnos con un back-door o un spyware o modificar los logs no seria capas.

#cat /etc/rc.securelevel
# Append mode on Asterisk log files
chflags sappnd /var/log/asterisk/cdr-csv/Master.csv
chflags sappnd /var/log/asterisk/messages
chflags sappnd /var/log/asterisk/event_log
chflags sappnd /var/log/asterisk/queue_log
# Block changes to the Asterisk main executable file
chflags schg /usr/local/sbin/asterisk
# Block changes to Asterisk configuration files, voice prompts and it’s modules
chflags -R schg /etc/asterisk
chflags -R schg /usr/local/share/asterisk
chflags -R schg /usr/local/lib/asterisk/modules
Conclusiones
Asterisk es uno de los servicios voip mas utilizados actualmente en el mundo y openbsd uno de los sistemas mas confiables asi que si queremos una central telefónica segura y es uno de los aspectos a evaluar a la otra de instalar estos servicios ya que openbsd desalienta a muchos atacantes.
bloquear puertos msn en pfsese
Como todos sabemos, a la hora de los empleados trabajar mientras menos distracciones posibles mejor trabajaran ya que muchos por estar chateando en el msn no hacen sus labores y el jefe se pone molesto y le dice al administrador del sistema necesito que no puedan entrar al msn, aunque es algo muy sencillo pero son cosas que se pasan por alto hoy les traigo un pequeño tutoría de como bloquear los clientes de msn y el y los clientes web para que de este modo los empleados trabajen mejor y tengamos al jefe tranquilo XD.
Lo primero que aremos sera redireccionar los dominios de MSN a dominios no validos de esta forma no podrán ingresar y lo aremos de la siguiente manera
“Services”, “DNS Forwarder”
Lo siguiente es agregar los dominios que deseamos redireccionar y hacia que ip lo queremos hacer para esto le damos clic en el simbolo de “+” como se muestra en la imagen resaltado con azul y colocamos el dominio y lo redireccionamos a localhost.
Con el paso anterior nos libramos de los MSN webs lo siguiente es cerrar los puertos por los cuales se comunican los clientes de MSN lo primero que vamos a realizar es una lista de puertos a bloquear o alias y lo hacemos de la siguiente forma.
Como en el paso del dns vamos a dale en el símbolo ”+” como se muestra en la imagen subrayado con azul y después de esto ingresamos los puertos y rangos que deseamos bloquea
Con el paso anterior ya tenemos una lista de puertos a bloquear, lo siguiente es ir al firewall y bloquearlos de forma que el trafico TCP/UDP que venga desde nuestra red con dirección a Internet y por esos puertos no los deje pasar de esta forma los clientes que utilizan estos puertos no van a poder comunicarze con el servidor de esta forma nunca logran realizar una conexion, lo siguiente es ir a “FIREWALL” “RULES”
Lo siguiente es ir a LAN ya que bloquearemos lo que sale de nuestra red y le damos en el símbolo de “+” para agregar otra regla
El ultimo paso es crear la regla en “acction” colocamos ”block” en la interfaz colocamos “LAN” y en “destination port range” copiamos los alias creados en el paso cuatro es si no copiar el nombre que le dimos de descripción y el no lo auto completara.
Y listo con estos sencillos pasos tendremos a nuestro jefe feliz y a los empleados aburridos, por que no podrán chatear mas en horas laborales XD espero que les sirva de ayuda o referencia.
LulzSec y Anonymous lanzan “Operation Anti-Security”
Tras las noticias que nos llegaban la semana pasada sobre un posible ataque de Lulz a 4chan luego desmentido, uno de los espacios donde el colectivo Anonymous se mostraba más activo, parecía que ambos grupos se habían declarado la guerra. Nada más lejos de la realidad. Desde hace una horas se ha anunciado la unión de ambos con la denominada Operación Anti-security, una “cruzada” contra cualquier gobierno, agencia o corporación del mundo que trate de coartar “la libertad y el progreso” con todo tipo de ataques y filtraciones en la red. No sólo eso, anuncian a WikiLeaks como medio de soporte.
Como se anuncia en la carta publicada desde hace unas horas, el movimiento no sólo se trata de la unión de estos colectivos que han sido el azote de las grandes corporaciones en los últimos meses, es un mensaje con el que se espera que se unan todos los pueblos del mundo, que se difunda el mensaje y que no se quede en ataquesDDoS, sino en la fuga de todo tipo de documentos secretos al estilo de WikiLeaks (en la misma carta finalizan nombrando a WikiLeaks como uno de los “grandes soportes” de la operación). No hay nombres concretos en la operación, aunque muy posiblemente, la mayoría de las “grandes” podrían pensar desde hoy que están bajo una nueva amenaza aún más peligrosa con esta nueva unión entre ambos colectivos. Os dejo con la transcripción de la carta anunciada a través del Twitter de Lulzsec:
Somos conscientes de que el gobierno y los terroristas de la “seguridad” en todo el mundo siguen dominando y manteniendo el control de nuestra Internet. Un botín lleno de corruptos que piensan que esto es aceptable a condición de esclavizarnos a todos. Lulzsec y su flota de combate declara la guerra inmediata y constante al robo de estos “moderadores” de la libertad de este 2011.
Bienvenidos a la operación contra la Seguridad (#AntiSec). Animamos a cualquier barco, grande o pequeño, para abrir fuego contra cualquier gobierno o agencia que se cruza en su camino. Estamos totalmente de acuerdo con la proclama de la palabra “AntiSec” en cualquier sitio web de cualquier gobierno. Les animamos a difundir la palabra de AntiSec a lo largo y ancho, ya que será recordada. Para aumentar los esfuerzos, ahora estamos haciendo equipo con el colectivo Anonymous y todos sus barcos de guerra afiliados.
Ya sea porque estas navegando con nosotros o contra nosotros, ya sea porque guardes rencor del pasado o un ardiente deseo de hundir el barco en solitario, les invitamos a unirse a la rebelión. Juntos podemos defendernos de manera que nuestra privacidad no esté invadida por glotones hambrientos de ganancias. Su sombrero puede ser blanco, gris o negro, la piel y la raza no son importantes. Si usted es consciente de la corrupción, únase a AntiSec.
La prioridad máxima es robar y lanzar cualquier fuga de información clasificada del gobierno, incluyendo carretes de correos electrónicos y documentación. Nuestros objetivos principales son los bancos y demás establecimientos de alto rango. Si ellos tratan de censurar nuestro progreso, nosotros vamos a borrar el censor con sangre de lagarto.
Es ahora o nunca. Súbete a bordo, les estamos esperando …
La historia comienza hoy.
Lulz de Seguridad,
fuente: http://alt1040.com/2011/06/lulzsec-anonymous-operation-anti-security
EL CAMPO DE BATALLA ES INTERNET
Son dos lógicas. Dos formas de pensar que se están enfrentando y el campo de batalla es Internet.
Estamos hablando de dos generaciones que tienen dos lógicas distintas. La una, la antigua, piensa en átomos, y la nueva, que piensa en bits. Para la vieja generación los recursos son limitados, puesto que algo material basado en átomos no puede duplicarse fácilmente, hay un alto costo en ésta operación.Para la nueva generación entre más se comparta, más riqueza se crea; por que los bits son baratos y fáciles de copiar.
La lógica de la vieja generación es la de la escasez. Como los recursos son limitados éstos deben ser controlados, no cualquiera puede tener acceso a ellos. Por ello, se da la apropiación. Las cosas te deben pertenecer para tener control sobre ellas. Por eso, desde ésta lógica, es lícito el uso de la fuerza para proteger esos recursos.
Esta vieja generación está intentando entender Internet y lo que ven es anarquía. Entonces tratan de adaptarla a su forma de pensar. Por ello, Internet y todo lo que pasa en ella debe ser regulado. Deben apropiarse de Internet para que se comporte según su lógica de escasez. Quieren convertir a Internet en una televisión, en donde la transmisión sea desde unas muy pocas fuentes que están bajo su control.
La naturaleza misma de internet es la copia. El sólo hecho de abrir una página en un navegador es un proceso de copia. Por ello, es absurdo cuando se pone en una página de Internet “todos los derechos reservados, esta página no puede ser copiada por ningún medio”. Y para ver tal letrero hay que sacar una copia de ese letrero. ¿Cómo regular la copia en una tecnología que se basa en ella?
En cambio, la lógica de la nueva generación es la de abundancia. Entre más se comparta un conocimiento este se enriquece, no sólo por que más personas lo apropian, lo usan, sino que en este usar el conocimiento es modificado, transformado; evolucionado.
La cultura también se crea, recrea y cocrea mediante la copia. De hecho la ciencia es parte de la cultura y esta evolucionó mediante el compartir. Sectores como la moda y la culinaria han existido y evolucionado por siglos sin ninguna protección a la copia, más bien, diría que gracias a esto. En la nueva forma de pensar no se apropia para controlar, sino para poder compartir y reconocer quién fue el de la idea. El uso de la fuerza y la violencia no es necesario, por que cuando se copia no se está privando a alguien de un bien, al contrario, se está duplicando, hay más de lo mismo.
Se crea riqueza no quitándole a los otros, sino compartiendo. Actualmente, los investigadores se enfrentan aun laberinto de patentes que retrasa o impide la investigación. Pensando desde la abundancia, estas investigaciones se compartirían tempranamente y por la fuerza del número, una gran cantidad de personas usándolas y modificándolas, evolucionarían rápidamente en soluciones rentables y prácticas. Casos como el Software Libre apoyan esta idea.
En las lógicas de la abundancia no se está diciendo que no se protejan las creaciones, al contrario, se deben proteger más, pero se debe hacer adecuadamente, sin limitar la creatividad y la evolución de la ciencia y la cultura.
Tampoco se está hablando en contra del capitalismo, se está hablando de que el capitalismo evolucionó. Ya no se basa en las lógicas de la escasez, sino en las de la abundancia. Incluso hay que crear un nuevo tipo de teoría económica que tenga esto en cuenta. El Equilibrio de Nash es una de las muchas teorías matemáticas y económicas que apunta en este sentido.
Es básicamente un cambio de paradigma, un cambio de la forma en como se ve el mundo. Por eso, a las viajas generaciones, que piensan en lógicas de la escasez, les cuenta tanto ver el nuevo estado de las cosas. Entonces, surge resistencia, en forma de leyes o incluso oposición violenta.
Internet basa su funcionamiento en las lógicas de la abundancia. El futuro dependerá de que las lógicas de la escasez tomen el control de la red o que Internet siga siendo el medio mediante el cual la abundancia se distribuya a todo el mundo. El campo de batalla es Internet.
El Campo de Batalla es Internet by Luis Alejandro Bernal Romero, Aztlek is licensed under aCreative Commons Attribution-ShareAlike 3.0 Unported License.
fuente:http://aztlek.org/2011/06/13/el-campo-de-batalla-es-internet/
instalar firefox 4 en debian y ubuntu
Las novedades que trae Firefox 4, entre otras, es el soporte de HTML 5, Firefox Sync parasincronizar marcadores y contraseñas (como en Chrome), nuevo motor javascript para ganar en rapidez y aceleración de hardware vía XRender en Linux.
En la lucha de los navegadores Firefox ha perdido algo de terreno este último tiempo, pero ahora con la versión 4 planea recuperarlo frente a Google Chrome.
Bueno hoy me dio por probar firefox 4 aca dejo un pequeña guia de su instalación que es relativamente muy censilla de hacer.
1.Lo primero es dirigirnos a la pagina de firefox y descargar firefox 4
2.Una vez descargado abrimos una consola “aplicaciones>accesorios>terminal” nos dirigimos a las descargas con el comando “cd Donwnload” si esta en español “cd Escritorio” y descomprimimos el archivo descargado con el siguiente comando ” tar xvf firefox-4.0.1.tar.bz2″
2.Despues de descargado el archivo lo movemos a la siguiente ruta con el comando “mv firefox /opt/”
3.Lo siguiente es crear un enlace simbolico a si “/usr/bin” y lo hacemos de la siguiente forma entramos a bin ”cd /usr/bin/” y copiamos lo siguiente “ln -sf /opt/firefox/firefox/” o tambien podemos hacerlo de esta forma “ln -sf /opt/firefox/firefox/ /usr/bin/” .
4. Ya no queda si no colocar el menu esto lo hacemos de la siguiente manera damos clic derecho ensima de aplicaciones luego le damos en editar menu.
5. Damos clic en internet, luego le damos en añadir un nuevo menú, se nos abre una ventada donde copiamos el nombre a mostrar en en este caso “firefox 4″ luego colocamos la ruta hacia el ejecutable copiamos esto “/opt/firefox/firefox/”
Damos clic en el logito y se nos abrira una ventana donde navegaremos hasta la carpeta que se encuentra firefox damos clic en “file sisten” luego buscamos la carpeta “opt” ingresamos a la carpeta “firefox” luego e la carpeta “iconos” y seleccionamos el icono que mas nos guste y le damos y damos en open.
6.Luego de hacer eso vamos a “aplicaciones>internet>firefox4″
7.Y listo ya podemos disfrutar la ultima version de firefox.
Como lo dige son es algo muy sencillo de hacer espero que les sirva
Operacion tormenta del sur
Anonymous – Operación Goya
Anonymous – Operación Goya
Como era de esperar, el grupo Anonymous esta de nuevo actuando, pase hoy por Sol y estaban repartiendo panfletos con las mascaras de Guy Fawkes (en honor a él, reflejado en la película V de Vendetta).

En los panfletos decía lo siguiente:
El domingo 13 de Febrero por la noche se celebran LOS GOYA en el Teatro Real de Madrid.
Anonymous irá de excursión hasta las vallas de la alfombra roja para hacer ruido contra la LEY SINDE y contra aquellos que nos llaman ladrones.
Si quieres estar allí tienes hasta el día 3 de Febrero para enviar un mail a la dirección que se corresponda con tu zona.
Entrar aquí: http://operaciongoya.blogspot.com/ y mandar al email que os corresponda, ahora mismo van 183 asistentes, apuntarse!!
También se puede ir por libre claro jeje, tenemos que movernos, o siempre harán con nosotros lo que quieran, ahora es la Ley Sinde, pero mas adelante será la subida del CANON.
Para ATAQUE DDOS (Ataque de Denegación de Servicio) el 13 de Febrero a las 16:00
- Server: IRC.ANNONOPS.RU
- Channel: #HISPANO
Objetivos: http://www.academiadecine.com
fuente://http://sangoddess87.blogspot.com/2011/01/anonymous-operacion-goya.html#comments


















comentarios