Difference between revisions of "Bridge Interface"

From RHS Wiki
Jump to navigation Jump to search
Line 39: Line 39:
 
sudo ip r a 20.1.32.0/24 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>
 
sudo ip r a 192.168.45.0/24 via 15.17.160.1 dev br0</nowiki>
 
* Edit /etc/ssl/openssl.cnf
 
<nowiki>...
 
nsCertType = client
 
...</nowiki>
 
 
== Script ==
 
<source lang=bash>#!/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</source>
 

Revision as of 12:24, 30 January 2019

  • Install bridge utils
apt install bridge-utils
  • sudo nano /etc/network/interfaces
auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto br0
iface br0 inet manual
  bridge_ports eth0
  wpa-driver wired
  wpa-conf /etc/wpa_supplicant.conf
  bridge_hw ec:8e:b5:77:3e:e1
  • Edit /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
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"
}
  • Change routes to go through br0
#!/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