Difference between revisions of "Network Interface Authentication (wpa-suplicant)"
Jump to navigation
Jump to search
Rafahsolis (talk | contribs) Tag: visualeditor |
Rafahsolis (talk | contribs) Tag: visualeditor |
||
| Line 27: | Line 27: | ||
<nowiki>... | <nowiki>... | ||
| − | + | nsCertType = client | |
| − | + | ...</nowiki> | |
| Line 252: | Line 252: | ||
echo "Claves creadas!! Acuerdate de la pass!!!" | echo "Claves creadas!! Acuerdate de la pass!!!" | ||
| − | ls *.pem | + | ls ${HOSTNAME}/*.pem |
} | } | ||
Latest revision as of 11:58, 18 November 2019
/etc/network/interfaces auto eth0
iface eth0 inet dhcp wpa-iface eth0 wpa-driver wired wpa-conf /etc/wpa_supplicant.conf
/etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=2
ap_scan=0
#fast_reauth=1
network={
ssid="BBVA"
key_mgmt=IEEE8021X
eap=TLS
identity="host/WF0006D3.ad.bbva.com"
ca_cert="/NAC/cacert.pem"
client_cert="/NAC/cert.pem"
private_key="/NAC/key.pem"
private_key_passwd="1234567890"
}
Deploy certificates[edit]
- Edit /etc/ssl/openssl.cnf
... nsCertType = client ...
If wpa supplicant does not start try to start it manualy[edit]
Check by listening with wireshar & filter by: eapol
/sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.eth0.pid -i eth0 -D wired -c /etc/wpa_supplicant.conf
Script[edit]
#!/bin/bash
#Made with love, 4u
echo "Configurador cliente NAC para linux Debian based"
pfx=$1
iface=$2
hostname=$3
copio_y_cambio_a_local () {
mkdir /NAC/
cp $pfx /NAC/
cd data
cp * /NAC/
cd /NAC/
}
fix_openssl () {
read -p "Quieres hacer el el cambio en Openssl?" yn
case $yn in
[YySs]* )
if [ "$(cat /etc/ssl/openssl.cnf | grep -v "#" | grep "nsCertType = client" | wc -l )" -ne 1 ]; then
sed -i '0,/# nsCertType = client, email/{s/# nsCertType = client, email/nsCertType = client/}' /etc/ssl/openssl.cnf
fi
;;
[Nn]* )
echo "Pos vale!!"
;;
* )
echo "Contesta!!! yes or no?"
echo "No lo hare entonces"
;;
esac
echo ""
}
replace_interfaces () {
echo "Solo se va a dejar la interfaz que se usa para la autenticacion 802.1x"
cat interfaces | sed 's/eth0/'$iface'/g' > /etc/network/interfaces
echo ""
}
replace_wpa () {
echo "Vamos a leer el mondongo y va ha salir porn pantalla (vamos,la clave del pem) "
read mondongo
cat wpa_supplicant.conf | sed 's/replacehostname/'$hostname'/g' | sed 's/aquivalachicha/'$mondongo'/g' > /etc/wpa_supplicant.conf
echo ""
}
reinicia_servicios () {
echo "Vamos a reiniciar los servicios, reza si crees y sino tomate una cocacola"
echo "Parando networking"
service networking stop
echo "Levantando networking"
service networking start
echo ""
}
crea_claves () {
echo ""
echo "Exportando la CA"
openssl pkcs12 -in $pfx -out cacert.pem -cacerts -nokeys
echo ""
echo "Exportando el certificado de cliente"
openssl pkcs12 -in $pfx -out cert.pem -clcerts -nokeys
echo ""
echo "Exportando la clave privada (necesita contraseña)"
openssl pkcs12 -in $pfx -out key.pem -nocerts
echo "Claves creadas!! Acuerdate de la pass!!!"
ls *.pem
}
comprueba_conexion () {
#Ole illo que cutrez ,xD
echo "Se elimina el "/var/run/wpa_supplicant/" del interfaz"
rm /var/run/wpa_supplicant/$iface
read -p "Quieres reiniciar los servicios antes?" yn
case $yn in
[YySs]* )
echo "Reiniciando servicios"
reinicia_servicios
;;
[Nn]* )
echo "Pos vale!!"
;;
* )
echo "Contesta!!! yes or no?"
echo "No lo hare entonces"
;;
esac
echo "Lanza el comando de negociacion de wpa_supplicant a parte"
wpa_supplicant -Dwired -i$iface -c/etc/wpa_supplicant.conf -ddd 2>&1 >> wpa_supplicant_eap.log &
echo "Pide IP"
dhclient $iface
echo ""
}
desabilta_network_manager () {
read -p "¿Quieres deshabilitar el Network Manager?(default N) Ss/Nn Reinicio? R/r" yn
case $yn in
[YySs]* )
echo "Parando network manager"
service network-manager stop
echo "ATENCION!: Se va a deshabilitar Network-Manager en inicio!"
systemctl disable NetworkManager.service
;;
[Nn]* )
#Andrew no se fiaba de reinicialo aqui!!
echo "Pos vale!!"
;;
[Rr]* )
echo "Venga lo reinicio"
service network-manager stop
service network-manager start
;;
* )
echo "Pos vale!!"
echo "No lo hare entonces"
;;
esac
echo ""
}
comprueba_root () {
if [ "$EUID" -ne 0 ]; then
echo "Lanzalo como root!!! y si no te atreves lee lo que hace!! xD"
exit -1
fi
}
install () {
copio_y_cambio_a_local
crea_claves
fix_openssl
replace_interfaces
replace_wpa
desabilta_network_manager
reinicia_servicios
}
comprueba_root
case $pfx in
retest)
if [ $# -ne 2 ]; then
echo "Necesita parametros!! melon!!"
echo "Parametro 1: retest"
echo "Parametro 2: nombre de la interfaz cableada que se va a reconfigurar"
exit -1
fi
comprueba_conexion
;;
*)
if [ $# -ne 3 ]; then
echo "Necesita parametros!! melon!!"
echo "Parametro 1: Pfx que contiene CA, Clave de cliente, y privada"
echo "Parametro 2: nombre de la interfaz cableada que se va a configurar"
echo "Parametro 3: hostname del equipo NOMBRE.dominio"
echo "<script> <absolute path pfx> <interfaz> <hostname completo>"
echo "Otras opciones: retest <interfaz> - No realiza configuracion, reintenta al autenticacion EAP"
exit -1
fi
install
;;
esac
Certs From .pfx[edit]
HOSTNAME=$1
pfx=$1.pfx
crea_claves () {
echo ""
echo "Exportando la CA"
openssl pkcs12 -in ${pfx} -out ${HOSTNAME}/${HOSTNAME}_cacert.pem -cacerts -nokeys
echo ""
echo "Exportando el certificado de cliente"
openssl pkcs12 -in ${pfx} -out ${HOSTNAME}/${HOSTNAME}_cert.pem -clcerts -nokeys
echo ""
echo "Exportando la clave privada (necesita contraseña)"
openssl pkcs12 -in ${pfx} -out ${HOSTNAME}/${HOSTNAME}_key.pem -nocerts
echo "Claves creadas!! Acuerdate de la pass!!!"
ls ${HOSTNAME}/*.pem
}
mkdir ${HOSTNAME}
crea_claves