Difference between revisions of "Bridge Interface"

From RHS Wiki
Jump to navigation Jump to search
m
Tag: visualeditor
 
(One intermediate revision by the same user not shown)
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>
 

Latest revision as of 08:40, 31 July 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 dhcp 
        bridge_ports eth0 
        wpa-driver wired wpa-conf 
        /etc/wpa_supplicant.conf 
        bridge_hw ec:8e:b5:77:3e:e1
        dns-nameservers 127.0.0.1
        post-up route add -net 20.1.43.0 netmask 255.255.255.0 gw 15.17.160.1 
        up route add -net 22.0.0.0 netmask 255.255.255.0 gw 15.17.160.1
        #gateaway 10.23.0.1
    


  • 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