Debian client login ldap server

otra entrada que es un apunte.

En esta ocasión, vamos a hacer en nuestros servers, que el login vaya centralizado contra nuestro ldap.

Primero de todo, instalamos las dependencias:


root@pbxshared:/etc/asterisk# apt-get install libpam-ldap nscd


aptitude -y install libnss-ldap libpam-ldap ldap-utils

instalamos y nos pide la url del ldap:


LDAP server URI
ldap://mi.serverldap.com


Distinguished name of the search base:
dc=exemple,dc=local


LDAP version to use:
3


Configuring libpam-ldap
his option will allow password utilities that use PAM to change local passwords.
The LDAP admin account password will be stored in a separate file which will be made readable to root only.
If /etc is mounted by NFS, this option should be disabled.
Allow LDAP admin account to behave like local root?

YES


Database requires login
YES


Configuring libpam-ldap
cn=manager,dc=example,dc=net


Configuring libpam-ldap
mipassword

Ahora editamos el fichero /etc/nsswitch.conf y dejamos tal cual:

passwd: ldap compat
group: ldap compat
shadow: ldap compat

gshadow: files

hosts: files dns
networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: nis

Editamos el fichero /etc/pam.d/common-session y añadimos al final:

session required pam_mkhomedir.so skel=/etc/skel umask=0022

reiniciamos el servicio nscd

/etc/init.d/nscd restart

Instalamos sudo si no está..

apt-get install sudo

Y modificamos el visudo


#visudo

añadimos el grupo que podrá hacer sudo su

# User privilege specification
root ALL=(ALL:ALL) ALL
%admin_users ALL=(ALL) ALL

Admin_users es el grupo LDAP donde se encuentren nuestros usuarios.

ahora vamos a reestringir a un grupo de ldap el login al server. Editamos el fichero /etc/pam.d/common-auth y añadimos:

auth required pam_access.so

Editamos el fichero /etc/security/access.conf y añadimos el grupo al cual permitiremos acceso, añadiendo al final:

-:ALL EXCEPT root (admin_users):ALL EXCEPT LOCAL

VoIP jazztel ftth y asterisk pjsip

En esta ocasión, registraremos nuestro servicio de VoIP de fibra Jazztel en nuestro asterisk.

Requisitos:

1º) Capturar el proceso de register del router de jazztel contra sus SBC. Para ello, mediante un hub colocado entre el router y la ONT, colocaremos nuestro pc capturando el paquete deseado.

En las capturas, deberás ver un paquete tal que:


Via: SIP/2.0/UDP x.x.x.x:5060;branch=asdfgsdfgsdfgsdfgsd
To:
From: ;tag=d2derwerqwer19-f45ffrr
Call-ID: xxxxxxxxxxx-xxxxxxxxx@x.x.x.x
CSeq: 46360 REGISTER
Contact:
Authorization: Digest username="misuperusuario007@ims.jazztel.net",realm="ims.jazztel.net",nonce="elsuperNonce",uri="sip:ims.jazztel.net",response="idRespuestaasfasdfasdfwererer",algorithm=MD5,cnonce="sdferelcenoncd",qop=auth,nc=00000001
Expires: 3600
Max-Forwards: 70
Supported: 100rel
User-Agent: ZXHN H218N/V2.0.0_JAZZT7
Content-Length: 0

En vez de las ‘x’, saldrán tus valores xDDD; no preguntes

2º) HTTPBrute, que nos servirá para sacar el password con el paquete SIP.

Pantallazo

Rellena cada casilla con lo que toca…. es bastante clarito todo. Le das a crack y calculate y te esperas unas horas (en mi caso)

3º) Asterisk 12 o 13 con pjSip. Yo en mi caso tengo una 12 con poca ram y cpu.

La versión 12 o 13 tiene su razón bastante obvia…… Para poder hacer una llamada, tienes que tener activada la opción 100rel…. en el chan_sip de asterisk, esta opción no está, pero en pjsip si, así que ya sabéis.

El user-agent, debe ser igual al que os proponga el router.

4º) Configuración del pjsip.conf

[global]
user_agent=ZXHN H298N/V1.1.4_JAZZT15

[endpoint]
100rel=yes --> Importante definir el endpoint con el 100rel=yes
sdp_session=ZXHN H298N/V1.1.4_JAZZT15

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0
local_net=192.168.0.0/16 --> tu red local
local_net=127.0.0.1/32

[Jazztel]
type=registration
transport=transport-udp
outbound_auth=Jazztel
server_uri=sip:212.106.212.22:5060
client_uri=sip:+349xxxxxxxx@ims.jazztel.net --> tu número de teléfono con el +34
retry_interval=60
expiration=3600
support_path=yes

[Jazztel]
type=auth
auth_type=userpass
password=PasswordQueHayasCalculado
username=tuUsuari0DeJazttel@ims.jazztel.net
realm=ims.jazztel.net

[Jazztel]
type=aor
contact=sip:ip.del.sbc.jazztel:5060

[Jazztel]
type=endpoint
transport=transport-udp
context=Tu_Contexto_De_Llamadas_Entrantes
disallow=all
allow=alaw
allow=ulaw
allow=gsm
allow=g729
outbound_auth=Jazztel
aors=Jazztel
from_user=+349xxxxxxxx --> tu número de teléfono de jazztel
from_domain=ims.jazztel.net
aors=Jazztel
direct_media=no

[Jazztel]
type=identify
endpoint=Jazztel
match=ip.del.sbc.de.jazztel

Y a partir de aquí…. enjoy your VoIP FTTH Service 😉

TeamViewer en debian jessie

Otra entrada que es un apunte.

Recientemente, he migrado mi portatil, de debian 8 y necesitaba el teamviewer para dar soporte a los clientes…. una vez instalado, hay que hacer lo siguiente:


cd /opt/teamviewer/tv_bin/script
cp -r /opt/teamviewer/tv_bin/script/teamviewerd.service /lib/systemd/system/
cd /lib/systemd/system
root@shenron:/lib/systemd/system# service teamviewerd start
root@shenron:/lib/systemd/system# systemctl enable teamviewerd.service
Created symlink from /etc/systemd/system/graphical.target.wants/teamviewerd.service to /lib/systemd/system/teamviewerd.service.

y ahora, lanzamos el teamviewer para ver si funciona :


root@shenron:/lib/systemd/system# teamviewer

Init...
Checking setup...
Launching TeamViewer ...

Y ya lo tenemos listo 😉

Netflow: nfsen + nfdump en Debian (3) + cacti + pmacct

Ahora vamos a añadir una capa más…. pmacct.

Pmacct será el enlace entre cacti y los flows de los dispositivos… usaremos nfsen para controlar tráfico y ataques.

Descargamos y descomprimimos pmacct:


# cd /usr/src
# wget -c http://www.pmacct.net/pmacct-1.5.0.tar.gz
# tar -zxvf pmacct-1.5.0.tar.gz

Creamos el directorio de instalación:

# mkdir /etc/pmacct

Y instalamos

Una vez instalado, vamos a configurar lo que nos interesa de pmacct, que más tarde, enlazaremos con cacti.


# nano /etc/pmacct.conf

debug: true
daemonize: true
nfacctd_port: 9996
pidfile: /var/run/nfacctd.pid
plugin_buffer_size: 80524
plugin_pipe_size: 18052324
networks_file: /etc/pmacct/nfacctd.hosts

plugins: memory[in], memory[out]
aggregate[in]: dst_host
aggregate[out]: src_host
imt_path[in]: /tmp/in.pipe
imt_path[out]: /tmp/out.pipe

En el fichero nfacctd.hosts, añadimos las ip’s / rangos que nos interese tener en detalle…


# nano /etc/pmacct/nfacctd.hosts

1.1.1.1/32
1.1.1.2/32
..
...

Lanzamos pmacct….


root@testflow:/etc/pmacct/sbin# ./nfacctd -D -f /etc/pmacct/pmacct.conf

Para comprobar que estamos escuchando correctamente:

root@testflow:/etc/pmacct/bin# netstat -putan | grep 9996
udp 0 0 0.0.0.0:9996 0.0.0.0:* 17799/nfacctd: Core

y que recogemos flows:

root@testflow:/etc/pmacct/bin# ./pmacct -s -p /tmp/out.pipe
root@testflow:/etc/pmacct/bin# ./pmacct -s -p /tmp/in.pipe

Y ahora comprobamos si hace accounting de las ip’s en concreto:


root@testflow:/etc/pmacct/bin# ./pmacct -c dst_net -N 1.1.1.1 -p /tmp/in.pipe
7254628
root@testflow:/etc/pmacct/bin#

Y vemos cómo ya nos muestra tráfico en bytes 🙂

Captura de pantalla 2014-11-16 a las 14.42.32

Cisco ASA 8.2 to 9.x :: migrando :: parte 2

En esta ocasión, me toca migrar tema NAT.

Supongamos que tenemos nuestra red local 192.168.2.0/24 y un rango de ip’s públicas, por ejemplo 1.1.1.0/29.

Lo más lógico, es NATear 1:1, es decir, una ip privada de la red, contra una ip pública y permitir / denegar tráfico mediante ACL….. por defecto, está todo cerrado excepto, lo que nosotros permitimos…

configuración en asa 8.2.5… ip privada 192.168.2.2, nateada contra la pública 1.1.1.2 y permitimos 25 y 443 tcp.


static (inside,outside) 1.1.1.2 192.168.2.2 netmask 255.255.255.255

access-list outside_in permit tcp any host 1.1.1.2 eq 25
access-list outside_in permit tcp any host 1.1.1.2 eq 443

access-group outside_in in interface outside

Ahora toca migrar la config a versión 9.x:

object network poseidon
host 192.168.2.2
nat (inside,outside) static 172.26.2.2

access-list outside_in extended permit tcp any object poseidon eq 443
access-list outside_in extended permit tcp any object poseidon eq 25
access-group outside_in in interface outside

Primero toca definir el objeto, aplicamos la regla al object y finalmente, el grupo de reglas al interface que toca.