From edf80e5c0b7374843f0d401f9fab7997414ac433 Mon Sep 17 00:00:00 2001 From: Eduard Toloza Date: Mon, 1 Jul 2019 23:23:28 -0500 Subject: [PATCH] Added script --- system-bin/conectar | 160 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100755 system-bin/conectar diff --git a/system-bin/conectar b/system-bin/conectar new file mode 100755 index 0000000..931bc5b --- /dev/null +++ b/system-bin/conectar @@ -0,0 +1,160 @@ +#!/usr/bin/env bash +#Usted es libre de editar y/o distribuir este programa bajo los terminos de la licencia GPL v3 o posterior. + +printf "\nEste script está diseñado para que te conectes a internet sin necesidad de un gestor gráfico de red + haciendo uso de software como wpa_supplicant, dhcpcd/dhclient e iptools desde la línea de comandos. + Programador: Eduard Eliecer Tolosa Toloza + XMPP/Email: tolosaeduard@disroot.org + Contacto y sala de chat: https://discord.gg/6hm7m8S + Security Hack Labs Team. @SecHackLabs + Blog: https://securityhacklabs.net\n +" + + +if [ "$UID" -ne 0 ]; then + echo -e "\n Usted necesita privilegios root o sudo." + exit +fi + +function choose(){ + echo -e "Elige el tipo de red que deseas usar:\na) Sin autenticación \nb) Con contraseña\nc) Red cableada (Ethernet)\n" + read -p "Tipo: " iskey +} + +if [ -f /usr/bin/wpa_supplicant ] || [ -f /sbin/wpa_supplicant ] ; then + echo -e "\nwpa_supplicant está instalado." +else + if [ -f /etc/pacman.conf ] ; then + pacman -S wpa_supplicant + elif [ -f /etc/apt/sources.list ] ; then + apt install wpasupplicant + fi +fi + +if [ -f /usr/bin/dhcpcd ] || [ -f /sbin/dhcpcd ] ; then + echo -e "dhcpcd está instalado.\n" +else + if [ -f /etc/pacman.conf ] ; then + pacman -S dhcpcd + elif [ -f /etc/apt/sources.list ] ; then + apt install dhcpcd5 + fi +fi + +function connect(){ + iface=$(ip -o link show | awk -F': ' '{print $2}' |grep -v "lo") + echo -e "\nEscribe el nombre de la interfaz de red a usar:\n" + for ifacename in $iface; do echo -e "- $ifacename"; done + echo "" + read -p "Interface: " iface + choose + wpafile="/etc/wpa_supplicant/wpa_supplicant-$iface.conf" + if [ $iskey == "a" ]; then + if [ -f $wpafile ] ; then + rfkill unblock all + dhcpcd -k $iface + killall dhcpcd + killall dhclient + killall wpa_supplicant + ip link set dev $iface up + wpa_supplicant -B -i $iface -c $wpafile + dhcpcd -4 --noarp $iface + else + echo -e "\nNecesitas configurar tu archivo de conexión, por favor ingrese los datos cuando sean solicitados.\n" + read -p "Introduce tu nombre de red: " nombre + echo -e "network={\n\tssid=\"$nombre\"\n\tkey_mgmt=NONE\n\tpriority=100\n}" > $wpafile + rfkill unblock all + dhcpcd -k $iface + killall dhcpcd + killall dhclient + killall wpa_supplicant + ip link set dev $iface up + wpa_supplicant -B -i $iface -c $wpafile + dhcpcd -4 --noarp $iface + if [ $? -eq 0 ] ; then + echo -e "\nConexión establecida." + else + echo -e "\nHa ocurrido un error." + fi + fi + + elif [ $iskey == "b" ] ; then + if [ -f $wpafile ] ; then + rfkill unblock all + dhcpcd -k $iface + killall dhcpcd + killall dhclient + killall wpa_supplicant + ip link set dev $iface up + wpa_supplicant -B -i $iface -c $wpafile + dhcpcd -4 --noarp $iface + else + echo -e "\nNecesitas configurar tu archivo de conexión, por favor ingrese los datos cuando sean solicitados.\n" + read -p "Introduce tu nombre de red: " nombre + read -p "Introduce tu contraseña: " password + wpa_passphrase "$nombre" "$password" > $wpafile + rfkill unblock all + dhcpcd -k $iface + killall dhcpcd + killall dhclient + killall wpa_supplicant + ip link set dev $iface up + wpa_supplicant -B -i $iface -c $wpafile + dhcpcd -4 --noarp $iface + if [ $? -eq 0 ] ; then + echo -e "\nConexión establecida." + else + echo -e "\nHa ocurrido un error." + fi + fi + elif [ $iskey == "c" ] ; then + if [ -f ~/.conectarc ] ; then + echo -e "\nUsted ya tiene habilitado DHCPCD, si no tiene internet, revisa tu modém o cable\n" + exit + elif [ -f ~/.nosystemd ] ; then + echo -e "\nEstableciendo una conexión.\n" + rfkill unblock all + dhcpcd -k $iface + killall dhcpcd + killall dhclient + killall wpa_supplicant + ip link set dev $iface up + dhcpcd -4 --noarp $iface + if [ $? -eq 0 ] ; then + echo -e "\nConexión establecida." + exit + else + echo -e "\nHa ocurrido un error.\n" + fi + else + echo -e "\nEstableciendo una conexión.\n" + rfkill unblock all + dhcpcd -k $iface + killall dhcpcd + killall dhclient + killall wpa_supplicant + ip link set dev $iface up + dhcpcd -4 --noarp $iface + if [ "$?" -eq 0 ] ; then + read -p "¿Está usted usando SystemD? (s/n)" systemd + if [ "$systemd" == "s" ] ; then + echo -e "\nHabilitando DHCPCD mediante systemctl.\n" + systemctl enable dhcpcd + if [ "$?" -eq 0 ] ; then + echo "Archivo para comprobar que DHCPCD está habilitando en el inicio del systema, creado por el script 'conectar'" > ~/.conectarc + echo -e "\nConexión establecida." + exit + fi + else + echo -e "\nUsted no usa SystemD, puede habilitar DHCPCD usando tu gestor init." + echo "Archivo para comprobar que no usas Systemd." > ~/.nosystemd + echo -e "\nConexión establecida." + fi + else + echo -e "\nHa ocurrido un error.\n" + fi + fi + fi +} + +connect