213 lines
6.1 KiB
Bash
213 lines
6.1 KiB
Bash
#!/bin/bash
|
|
clear
|
|
SCPdir="/etc/adm-lite"
|
|
SCPfrm="${SCPdir}"
|
|
SCPinst="${SCPdir}"&& [[ ! -d ${SCPinst} ]] && exit
|
|
|
|
fun_trans(){
|
|
echo -e "\e[1;97m$@"
|
|
}
|
|
|
|
declare -A cor=( [0]="\033[1;37m" [1]="\033[1;34m" [2]="\033[1;31m" [3]="\033[1;33m" [4]="\033[1;32m" )
|
|
mportas () {
|
|
unset portas
|
|
portas_var=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN")
|
|
while read port; do
|
|
var1=$(echo $port | awk '{print $1}') && var2=$(echo $port | awk '{print $9}' | awk -F ":" '{print $2}')
|
|
[[ "$(echo -e $portas|grep "$var1 $var2")" ]] || portas+="$var1 $var2\n"
|
|
done <<< "$portas_var"
|
|
i=1
|
|
echo -e "$portas"
|
|
}
|
|
fun_ip () {
|
|
if [[ -e /etc/VPS-MX/MEUIPvps ]]; then
|
|
IP="$(cat /etc/VPS-MX/MEUIPvps)"
|
|
else
|
|
MEU_IP=$(ip addr | grep 'inet' | grep -v inet6 | grep -vE '127\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | grep -o -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | head -1)
|
|
MEU_IP2=$(wget -qO- ipv4.icanhazip.com)
|
|
[[ "$MEU_IP" != "$MEU_IP" ]] && IP="$MEU_IP2" || IP="$MEU_IP"
|
|
echo "$MEU_IP" > /etc/VPS-MX/MEUIPvps
|
|
fi
|
|
}
|
|
fun_eth () {
|
|
eth=$(ifconfig | grep -v inet6 | grep -v lo | grep -v 127.0.0.1 | grep "encap:Ethernet" | awk '{print $1}')
|
|
[[ $eth != "" ]] && {
|
|
msg -bar
|
|
echo -e "${cor[3]} $(fun_trans "Aplicar Mejoras Para Mejorar Paquetes SSH?")"
|
|
echo -e "${cor[3]} $(fun_trans "Opcion Para Usuarios Avanzados")"
|
|
msg -bar
|
|
read -p " [S/N]: " -e -i n sshsn
|
|
[[ "$sshsn" = @(s|S|y|Y) ]] && {
|
|
echo -e "${cor[1]} $(fun_trans "Correccion de problemas de paquetes en SSH...")"
|
|
echo -e " $(fun_trans "Cual es la tasa RX")"
|
|
echo -ne "[ 1 - 999999999 ]: "; read rx
|
|
[[ "$rx" = "" ]] && rx="999999999"
|
|
echo -e " $(fun_trans "Cual es la tasa TX")"
|
|
echo -ne "[ 1 - 999999999 ]: "; read tx
|
|
[[ "$tx" = "" ]] && tx="999999999"
|
|
apt-get install ethtool -y > /dev/null 2>&1
|
|
ethtool -G $eth rx $rx tx $tx > /dev/null 2>&1
|
|
}
|
|
msg -bar
|
|
}
|
|
}
|
|
|
|
fun_bar () {
|
|
comando="$1"
|
|
_=$(
|
|
$comando > /dev/null 2>&1
|
|
) & > /dev/null
|
|
pid=$!
|
|
while [[ -d /proc/$pid ]]; do
|
|
echo -ne " \033[1;33m["
|
|
for((i=0; i<20; i++)); do
|
|
echo -ne "\033[1;31m##"
|
|
sleep 0.8
|
|
done
|
|
echo -ne "\033[1;33m]"
|
|
sleep 1s
|
|
echo
|
|
tput cuu1 && tput dl1
|
|
done
|
|
echo -ne " \033[1;33m[\033[1;31m########################################\033[1;33m] - \033[1;32m100%\033[0m\n"
|
|
sleep 1s
|
|
}
|
|
fun_dropbear () {
|
|
[[ -e /etc/default/dropbear ]] && {
|
|
msg -bar
|
|
echo -e "\033[1;32m $(fun_trans ${id} "REMOVIENDO DROPBEAR")"
|
|
msg -bar
|
|
service dropbear stop & >/dev/null 2>&1
|
|
fun_bar "apt-get remove dropbear -y"
|
|
msg -bar
|
|
echo -e "\033[1;32m $(fun_trans "Dropbear Removido")"
|
|
msg -bar
|
|
[[ -e /etc/default/dropbear ]] && rm /etc/default/dropbear
|
|
return 0
|
|
}
|
|
msg -bar
|
|
msg -tit
|
|
echo -e "\033[1;32m $(fun_trans " INSTALADOR DROPBEAR")"
|
|
msg -bar
|
|
echo -e "\033[1;31m $(fun_trans "Seleccione Puertos Validados en orden secuencial:\n")\033[1;32m 22 80 81 82 85 90\033[1;37m"
|
|
msg -bar
|
|
echo -ne "\033[1;31m $(fun_trans "Digite Puertos"): \033[1;37m" && read DPORT
|
|
tput cuu1 && tput dl1
|
|
TTOTAL=($DPORT)
|
|
for((i=0; i<${#TTOTAL[@]}; i++)); do
|
|
[[ $(mportas|grep "${TTOTAL[$i]}") = "" ]] && {
|
|
echo -e "\033[1;33m $(fun_trans "Puerto Elegido:")\033[1;32m ${TTOTAL[$i]} OK"
|
|
PORT="$PORT ${TTOTAL[$i]}"
|
|
} || {
|
|
echo -e "\033[1;33m $(fun_trans "Puerto Elegido:")\033[1;31m ${TTOTAL[$i]} FAIL"
|
|
}
|
|
done
|
|
[[ -z $PORT ]] && {
|
|
echo -e "\033[1;31m $(fun_trans "Ningun Puerto Valida Fue Elegido")\033[0m"
|
|
return 1
|
|
}
|
|
sysvar=$(cat -n /etc/issue |grep 1 |cut -d' ' -f6,7,8 |sed 's/1//' |sed 's/ //' | grep -o Ubuntu)
|
|
[[ ! $(cat /etc/shells|grep "/bin/false") ]] && echo -e "/bin/false" >> /etc/shells
|
|
[[ "$sysvar" != "" ]] && {
|
|
echo -e "Port 22
|
|
Protocol 2
|
|
KeyRegenerationInterval 3600
|
|
ServerKeyBits 1024
|
|
SyslogFacility AUTH
|
|
LogLevel INFO
|
|
LoginGraceTime 120
|
|
PermitRootLogin yes
|
|
StrictModes yes
|
|
RSAAuthentication yes
|
|
PubkeyAuthentication yes
|
|
IgnoreRhosts yes
|
|
RhostsRSAAuthentication no
|
|
HostbasedAuthentication no
|
|
PermitEmptyPasswords no
|
|
ChallengeResponseAuthentication no
|
|
PasswordAuthentication yes
|
|
X11Forwarding yes
|
|
X11DisplayOffset 10
|
|
PrintMotd no
|
|
PrintLastLog yes
|
|
TCPKeepAlive yes
|
|
#UseLogin no
|
|
AcceptEnv LANG LC_*
|
|
Subsystem sftp /usr/lib/openssh/sftp-server
|
|
UsePAM yes" > /etc/ssh/sshd_config
|
|
msg -bar
|
|
echo -e "${cor[2]} $(fun_trans ${id} "Instalando dropbear")"
|
|
msg -bar
|
|
fun_bar "apt-get install dropbear -y"
|
|
apt-get install dropbear -y > /dev/null 2>&1
|
|
msg -bar
|
|
touch /etc/dropbear/banner
|
|
msg -bar
|
|
echo -e "${cor[2]} $(fun_trans ${id} "Configurando dropbear")"
|
|
cat <<EOF > /etc/default/dropbear
|
|
NO_START=0
|
|
DROPBEAR_EXTRA_ARGS="VAR"
|
|
DROPBEAR_BANNER="/etc/dropbear/banner"
|
|
DROPBEAR_RECEIVE_WINDOW=65536
|
|
EOF
|
|
for dpts in $(echo $PORT); do
|
|
sed -i "s/VAR/-p $dpts VAR/g" /etc/default/dropbear
|
|
done
|
|
sed -i "s/VAR//g" /etc/default/dropbear
|
|
} || {
|
|
echo -e "Port 22
|
|
Protocol 2
|
|
KeyRegenerationInterval 3600
|
|
ServerKeyBits 1024
|
|
SyslogFacility AUTH
|
|
LogLevel INFO
|
|
LoginGraceTime 120
|
|
PermitRootLogin yes
|
|
StrictModes yes
|
|
RSAAuthentication yes
|
|
PubkeyAuthentication yes
|
|
IgnoreRhosts yes
|
|
RhostsRSAAuthentication no
|
|
HostbasedAuthentication no
|
|
PermitEmptyPasswords no
|
|
ChallengeResponseAuthentication no
|
|
PasswordAuthentication yes
|
|
X11Forwarding yes
|
|
X11DisplayOffset 10
|
|
PrintMotd no
|
|
PrintLastLog yes
|
|
TCPKeepAlive yes
|
|
#UseLogin no
|
|
AcceptEnv LANG LC_*
|
|
Subsystem sftp /usr/lib/openssh/sftp-server
|
|
UsePAM yes" > /etc/ssh/sshd_config
|
|
echo -e "${cor[2]} $(fun_trans "Instalando dropbear")"
|
|
msg -bar
|
|
fun_bar "apt-get install dropbear -y"
|
|
touch /etc/dropbear/banner
|
|
msg -bar
|
|
echo -e "${cor[2]} $(fun_trans "Configurando dropbear")"
|
|
msg -bar
|
|
cat <<EOF > /etc/default/dropbear
|
|
NO_START=0
|
|
DROPBEAR_EXTRA_ARGS="VAR"
|
|
DROPBEAR_BANNER="/etc/dropbear/banner"
|
|
DROPBEAR_RECEIVE_WINDOW=65536
|
|
EOF
|
|
for dpts in $(echo $PORT); do
|
|
sed -i "s/VAR/-p $dpts VAR/g" /etc/default/dropbear
|
|
done
|
|
sed -i "s/VAR//g" /etc/default/dropbear
|
|
}
|
|
fun_eth &>/dev/null
|
|
service ssh restart > /dev/null 2>&1
|
|
service dropbear restart > /dev/null 2>&1
|
|
echo -e "${cor[3]} $(fun_trans "Su dropbear ha sido configurado con EXITO")"
|
|
msg -bar
|
|
#UFW
|
|
for ufww in $(mportas|awk '{print $2}'); do
|
|
ufw allow $ufww > /dev/null 2>&1
|
|
done
|
|
}
|
|
fun_dropbear
|