| Line 1: |
Line 1: |
| − | * Install bridge utils | + | *Install bridge utils |
| | + | |
| | apt install bridge-utils | | apt install bridge-utils |
| − | * sudo nano /etc/network/interfaces | + | |
| − | <nowiki>auto eth0
| + | *sudo nano /etc/network/interfaces<syntaxhighlight lang="text"> |
| − | allow-hotplug eth0 | + | auto eth0 |
| | + | allow-hotplug eth0 |
| | iface eth0 inet manual | | iface eth0 inet manual |
| | | | |
| − | auto br0 | + | auto br0 |
| − | iface br0 inet manual | + | iface br0 inet dhcp |
| − | bridge_ports eth0
| + | bridge_ports eth0 |
| − | wpa-driver wired
| + | wpa-driver wired wpa-conf |
| − | wpa-conf /etc/wpa_supplicant.conf
| + | /etc/wpa_supplicant.conf |
| − | bridge_hw ec:8e:b5:77:3e:e1</nowiki>
| + | bridge_hw ec:8e:b5:77:3e:e1 |
| − | * Edit /etc/wpa_supplicant.conf
| + | dns-nameservers 127.0.0.1 |
| − | <nowiki>ctrl_interface=/var/run/wpa_supplicant
| + | post-up route add -net 20.1.43.0 netmask 255.255.255.0 gw 15.17.160.1 |
| − | ctrl_interface_group=0
| + | up route add -net 22.0.0.0 netmask 255.255.255.0 gw 15.17.160.1 |
| − | eapol_version=2
| + | #gateaway 10.23.0.1 |
| − | ap_scan=0
| + | </syntaxhighlight> |
| − | 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"
| |
| − | }</nowiki>
| |
| − | * Change routes to go through br0
| |
| − | <nowiki>#!/bin/bash
| |
| − | echo "Removing routes"
| |
| − | sudo ip r d default via 15.17.160.1 dev br0
| |
| − | | |
| − | echo "Adding routes"
| |
| − | sudo ip r a 20.1.30.0/24 via 15.17.160.1 dev br0
| |
| − | sudo ip r a 20.1.40.0/24 via 15.17.160.1 dev br0
| |
| − | sudo ip r a 20.1.43.0/24 via 15.17.160.1 dev br0
| |
| − | sudo ip r a 22.0.0.0/16 via 15.17.160.1 dev br0
| |
| − | sudo ip r a 20.1.32.0/24 via 15.17.160.1 dev br0
| |
| − | sudo ip r a 192.168.45.0/24 via 15.17.160.1 dev br0</nowiki>
| |
| | | | |
| − | * Edit /etc/ssl/openssl.cnf
| + | <br /> |
| − | <nowiki>...
| |
| − | nsCertType = client
| |
| − | ...</nowiki>
| |
| | | | |
| − | == Script ==
| + | *Edit /etc/wpa_supplicant.conf |
| − | <source lang=bash>#!/bin/bash
| |
| − | #Made with love, 4u
| |
| − | echo "Configurador cliente NAC para linux Debian based"
| |
| | | | |
| − | pfx=$1
| + | <nowiki>ctrl_interface=/var/run/wpa_supplicant |
| − | iface=$2
| + | ctrl_interface_group=0 |
| − | hostname=$3
| + | eapol_version=2 |
| | + | ap_scan=0 |
| | + | 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" |
| | + | }</nowiki> |
| | | | |
| − | copio_y_cambio_a_local () {
| + | *Change routes to go through br0 |
| | | | |
| − | mkdir /NAC/
| + | <nowiki>#!/bin/bash |
| − | cp $pfx /NAC/
| + | echo "Removing routes" |
| − | cd data
| + | sudo ip r d default via 15.17.160.1 dev br0 |
| − | cp * /NAC/
| + | |
| − | cd /NAC/
| + | echo "Adding routes" |
| − | | + | sudo ip r a 20.1.30.0/24 via 15.17.160.1 dev br0 |
| − | }
| + | sudo ip r a 20.1.40.0/24 via 15.17.160.1 dev br0 |
| − | | + | sudo ip r a 20.1.43.0/24 via 15.17.160.1 dev br0 |
| − | fix_openssl () {
| + | sudo ip r a 22.0.0.0/16 via 15.17.160.1 dev br0 |
| − | | + | sudo ip r a 20.1.32.0/24 via 15.17.160.1 dev br0 |
| − | read -p "Quieres hacer el el cambio en Openssl?" yn
| + | sudo ip r a 192.168.45.0/24 via 15.17.160.1 dev br0</nowiki> |
| − | 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</source>
| |