| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- #!/bin/bash
- info(){
- clear
- nodata(){
- msg -bar
- print_center -ama "SIN INFORMACION SLOWDNS!!!"
- enter
- }
- if [[ -e ${ADM_slow}/domain_ns ]]; then
- ns=$(cat ${ADM_slow}/domain_ns)
- if [[ -z "$ns" ]]; then
- nodata
- return
- fi
- else
- nodata
- return
- fi
- if [[ -e ${ADM_slow}/server.pub ]]; then
- key=$(cat ${ADM_slow}/server.pub)
- if [[ -z "$key" ]]; then
- nodata
- return
- fi
- else
- nodata
- return
- fi
- msg -bar
- print_center -ama "DATOS DE SU CONECCION SLOWDNS"
- msg -bar
- msg -ama "Su NS (Nameserver): $(cat ${ADM_slow}/domain_ns)"
- msg -bar3
- msg -ama "Su Llave: $(cat ${ADM_slow}/server.pub)"
- enter
- return
- }
- drop_port(){
- local portasVAR=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
- local NOREPEAT
- local reQ
- local Port
- unset DPB
- while read port; do
- reQ=$(echo ${port}|awk '{print $1}')
- Port=$(echo {$port} | awk '{print $9}' | awk -F ":" '{print $2}')
- [[ $(echo -e $NOREPEAT|grep -w "$Port") ]] && continue
- NOREPEAT+="$Port\n"
- case ${reQ} in
- sshd|dropbear|stunnel4|stunnel|python|python3)DPB+=" $reQ:$Port";;
- *)continue;;
- esac
- done <<< "${portasVAR}"
- }
- ini_slow(){
- title "INSTALADOR SLOWDNS By @Rufu99"
- drop_port
- n=1
- for i in $DPB; do
- proto=$(echo $i|awk -F ":" '{print $1}')
- proto2=$(printf '%-12s' "$proto")
- port=$(echo $i|awk -F ":" '{print $2}')
- echo -e " $(msg -verd "[$n]") $(msg -verm2 ">") $(msg -ama "$proto2")$(msg -azu "$port")"
- drop[$n]=$port
- num_opc="$n"
- let n++
- done
- msg -bar
- opc=$(selection_fun $num_opc)
- echo "${drop[$opc]}" > ${ADM_slow}/puerto
- PORT=$(cat ${ADM_slow}/puerto)
- title "INSTALADOR SLOWDNS By @Rufu99"
- echo -e " $(msg -ama "Puerto de coneccion atraves de SlowDNS:") $(msg -verd "$PORT")"
- msg -bar3
- unset NS
- while [[ -z $NS ]]; do
- msg -nama " Tu dominio NS: "
- read NS
- tput cuu1 && tput dl1
- done
- echo "$NS" > ${ADM_slow}/domain_ns
- echo -e " $(msg -ama "Tu dominio NS:") $(msg -verd "$NS")"
- msg -bar3
- if [[ ! -e ${ADM_inst}/dns-server ]]; then
- msg -nama " Descargando binario...."
- if wget -O ${ADM_inst}/dns-server https://github.com/rudi9999/ADMRufu/raw/main/Utils/SlowDNS/dns-server &>/dev/null ; then
- chmod +x ${ADM_inst}/dns-server
- msg -verd "[OK]"
- else
- msg -verm2 "[fail]"
- msg -bar
- print_center -ama "No se pudo descargar el binario"
- print_center -verm2 "Instalacion canselada"
- enter
- return
- fi
- msg -bar3
- fi
- [[ -e "${ADM_slow}/server.pub" ]] && pub=$(cat ${ADM_slow}/server.pub)
- if [[ ! -z "$pub" ]]; then
- msg -nama " Usar clave existente [S/N]: "
- read ex_key
- case $ex_key in
- s|S|y|Y) tput cuu1 && tput dl1
- echo -e " $(msg -ama "Tu clave:") $(msg -verd "$(cat ${ADM_slow}/server.pub)")";;
- n|N) tput cuu1 && tput dl1
- rm -rf ${ADM_slow}/server.key
- rm -rf ${ADM_slow}/server.pub
- ${ADM_inst}/dns-server -gen-key -privkey-file ${ADM_slow}/server.key -pubkey-file ${ADM_slow}/server.pub &>/dev/null
- echo -e " $(msg -ama "Tu clave:") $(msg -verd "$(cat ${ADM_slow}/server.pub)")";;
- *);;
- esac
- else
- rm -rf ${ADM_slow}/server.key
- rm -rf ${ADM_slow}/server.pub
- ${ADM_inst}/dns-server -gen-key -privkey-file ${ADM_slow}/server.key -pubkey-file ${ADM_slow}/server.pub &>/dev/null
- echo -e " $(msg -ama "Tu clave:") $(msg -verd "$(cat ${ADM_slow}/server.pub)")"
- fi
- msg -bar
- msg -nama " Iniciando SlowDNS...."
- iptables -I INPUT -p udp --dport 5300 -j ACCEPT
- iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300
- if screen -dmS slowdns ${ADM_inst}/dns-server -udp :5300 -privkey-file ${ADM_slow}/server.key $NS 127.0.0.1:$PORT ; then
- msg -verd "Con exito!!!"
- else
- msg -verm2 "Con fallo!!!"
- fi
- enter
- }
- reset_slow(){
- clear
- msg -bar
- msg -nama " Reiniciando SlowDNS...."
- screen -ls | grep slowdns | cut -d. -f1 | awk '{print $1}' | xargs kill
- NS=$(cat ${ADM_slow}/domain_ns)
- PORT=$(cat ${ADM_slow}/puerto)
- if screen -dmS slowdns /etc/slowdns/dns-server -udp :5300 -privkey-file /root/server.key $NS 127.0.0.1:$PORT ;then
- msg -verd "Con exito!!!"
- else
- msg -verm2 "Con fallo!!!"
- fi
- enter
- }
- stop_slow(){
- clear
- msg -bar
- msg -nama " Deteniendo SlowDNS...."
- if screen -ls | grep slowdns | cut -d. -f1 | awk '{print $1}' | xargs kill ; then
- msg -verd "Con exito!!!"
- else
- msg -verm2 "Con fallo!!!"
- fi
- enter
- }
- while :
- do
- clear
- msg -bar
- print_center -ama "INSTALADOR SLOWDNS By @Rufu99"
- msg -bar
- menu_func "Ver Informacion\n$(msg -bar3)" "$(msg -verd "Iniciar SlowDNS")" "$(msg -ama "Reiniciar SlowDNS")" "$(msg -verm2 "Parar SlowDNS")"
- back
- opcion=$(selection_fun 5)
- case $opcion in
- 1)info;;
- 2)ini_slow;;
- 3)reset_slow;;
- 4)stop_slow;;
- 0)break;;
- esac
- done
- return 1
|