Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- VERSION="127"
- DIALOG=${DIALOG=dialog}
- tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
- trap "rm -f $tempfile" 0 1 2 5 15
- trap ctrl_c INT
- ctrl_c() {
- exit -9
- }
- #### VERSION CHECK - UPDATE #####
- newVersion=$(curl -s https://voonyx.mrhack.cz/hyperscript/check.php)
- if [ $newVersion != $VERSION ];then
- echo -e "K dispozici je aktualizace scriptu. Tvoje verze: $VERSION. Nejnovější verze: $newVersion. Chceš script aktualizovat: [yes/no]\nBud aktualizuj zde nebo si to dej clone z gitu."
- read update
- case $update in
- [Yy][eE][sS]|[yY])
- mv script.sh script.sh_old_$VERSION
- wget https://voonyx.mrhack.cz/hyperscript/versions/$newVersion -O script.sh
- sudo chmod u+x script.sh
- exit
- ;;
- *)
- echo "Doporučuji script aktualizovat. Zastaralá verze může obsahovat chyby (jakože obsahuje) !"
- ;;
- esac
- fi
- $DIALOG --clear --title "L1Tools super turbo hyper skrYpt" \
- --menu "Zdar taško, vyber si co chceš dělat :" 20 70 15 \
- "--------" "---------------------FUNGUJE-------------------------" \
- "csr" "Vygeneruje CSR" \
- "dh" "Vygeneruje DH parametr" \
- "db" "Připraví příkaz pro L2, a vypíše údaje pro zákazníka" \
- "complete" "Nastaví doplňování hostnames do vsh scriptu" \
- "vsh" "Nastaví VSH script pro pripojovani na servery" \
- "space" "Vypíše df -h z červených serverů z BigSisteru" \
- "hpkp" "Vygenerovat HPKP" \
- "imap" "Imapsync " \
- "--------" "--------------------NEFUNGUJE------------------------" 2> $tempfile
- retval=$?
- choice=`cat $tempfile`
- genCsr () {
- dialog --title "CSR Generator GUI 1.0" --clear --yesno "Chceš přesunout klič a CSR na server ?" 10 30
- if [ $? = "0" ]; then
- dialog --title "CSR Generator GUI 1.0" --clear --inputbox "Server without .vshosting.cz:" 10 30 "" 2> $tempfile
- server=$(cat $tempfile)
- fi
- dialog --title "CSR Generator GUI 1.0" --clear --inputbox "Common Name (eg, domena.cz):" 10 30 "" 2> $tempfile
- commonName=$(cat $tempfile)
- dialog --title "CSR Generator GUI 1.0" --clear --inputbox "Country name:" 10 30 "CZ" 2> $tempfile
- country=$(cat $tempfile)
- dialog --title "CSR Generator GUI 1.0" --clear --inputbox "State or Province Name (full name):" 10 30 "Czech Republic" 2> $tempfile
- state=$(cat $tempfile)
- dialog --title "CSR Generator GUI 1.0" --clear --inputbox "Locality Name (eg, city):" 10 30 "Praha" 2> $tempfile
- locality=$(cat $tempfile)
- dialog --title "CSR Generator GUI 1.0" --clear --inputbox "Organization Name (eg, company):" 10 30 "VSHosting s.r.o" 2> $tempfile
- organization=$(cat $tempfile)
- dialog --title "CSR Generator GUI 1.0" --clear --inputbox "Organizational Unit Name (eg, section):" 10 30 "Technicka podpora" 2> $tempfile
- organizationalUnit=$(cat $tempfile)
- dialog --title "CSR Generator GUI 1.0" --clear --inputbox "Email Address:" 10 30 "tech@vshosting.cz" 2> $tempfile
- email=$(cat $tempfile)
- dialog --title "CSR Generator GUI 1.0" --clear --inputbox "Password:" 10 30 "" 2> $tempfile
- password=$(cat $tempfile)
- test -d certs
- if [ "$?" != "0" ];then
- mkdir certs
- fi
- openssl req -out certs/"$commonName".csr -new -newkey rsa:2048 -nodes -keyout certs/"$commonName".key \
- -subj "/C=$country/ST=$state/L=$locality/O=$organization/OU=$organizationalUnit/CN=$commonName/emailAddress=$email" > /dev/null
- echo "------------------------------------------"
- echo "----- Vše potřebné Kamile do ticketu -----"
- echo "------------------------------------------"
- echo
- echo -e "Ahoj,\nposílám CSR pro $commonName\n"
- cat certs/"$commonName".csr
- echo
- echo -e "$server.vshosting.cz:/home/vshfirstlevel/SSL/$commonName.key\n"
- if [ ! -z $server ]; then
- ssh vshfirstlevel@$server.vshosting.cz 'if test -d SSL;then true;else mkdir SSL; fi'
- scp "certs/$commonName".csr "certs/$commonName".key vshfirstlevel@$server.vshosting.cz:/home/vshfirstlevel/SSL
- fi
- }
- genHkpk () {
- dialog --title "HKPK - GUI Generator" --backtitle "HKPK - GUI Generator" --clear --msgbox "\n\nVloz původni certifikat" 10 48
- vim cert.crt
- hash1=`openssl x509 -noout -in cert.crt -pubkey | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | base64`
- openssl genrsa -out backup.key 4096 2> /dev/null
- openssl req -new -key backup.key -sha256 -out backup.csr
- hash2=`openssl req -in backup.csr -pubkey -noout | openssl rsa -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64`
- echo -e "\nNGINX:\nadd_header Public-Key-Pins 'pin-sha256=\"$hash1\"; pin-sha256=\"$hash2\"; max-age=2592000; includeSubDomains';"
- #echo -e "APACHE2:\nHeader set Public-Key-Pins \"pin-sha256=\"$hash1\"; pin-sha256=\"$hash2\"; max-age=2592000; includeSubDomains"
- echo -e "APACHE2:\nHeader always set Public-Key-Pins \"pin-sha256=\"$hash1\"; pin-sha256=\"$hash2\"; max-age=5184000; includeSubDomains\""
- }
- genDh () {
- dialog --title "DH Generator GUI 0.1dev" --clear --inputbox "DH param size:" 10 30 "2048" 2> $tempfile
- dhsize=$(cat $tempfile)
- openssl dhparam -out dhparams.pem $dhsize >> /dev/null
- echo "-------------------------------"
- echo "-----Below is your DHParam-----"
- echo "-------------------------------"
- echo
- cat dhparams.pem
- }
- genDb () {
- dialog --title "DB Generator GUI 1.0" --clear --inputbox "DB name:" 10 30 "" 2> $tempfile
- databaze=$(cat $tempfile)
- dialog --title "DB Generator GUI 1.0" --clear --inputbox "DB user (zkracuje se na 15 znaků) :" 10 30 "" 2> $tempfile
- uzivatel=$(cat $tempfile)
- uzivatel=`echo $uzivatel | cut -c1-15`
- heslo=`pwgen 15`
- echo -e "\n=============== TOTO ZASLAT L2 ADMINOVI ==============="
- echo "CREATE DATABASE $databaze;"
- echo "GRANT ALL PRIVILEGES ON \`$databaze\`.* TO '$uzivatel'@'localhost' IDENTIFIED BY '$heslo';"
- echo "GRANT ALL PRIVILEGES ON \`$databaze\`.* TO '$uzivatel'@'%' IDENTIFIED BY '$heslo';"
- echo "FLUSH PRIVILEGES;"
- echo "=============== TOTO ZASLAT ZAKAZNIKOVI ==============="
- echo "Nazev databaze: $databaze"
- echo "Uzivatel databate: $uzivatel"
- echo "Heslo databaze: $heslo"
- }
- doComplete () {
- echo "Stahuji script na doplnovani"
- sudo wget https://voonyx.mrhack.cz/hyperscript/vsh_complete -O /etc/bash_completion.d/vsh
- echo -e "\nStahuji seznam serveru"
- sudo wget https://voonyx.mrhack.cz/hyperscript/vsh_list -O ~/.ssh/vsh_list
- echo -e "\nRestartuj terminál"
- }
- doVSH () {
- echo "Stahuji vsh script a zapisuji ho do /usr/bin"
- sudo wget https://voonyx.mrhack.cz/hyperscript/vsh -O /usr/bin/vsh
- echo "Nastuvuji právo 777 na VSH script"
- sudo chmod 777 /usr/bin/vsh
- }
- outOfSpace () {
- expect=`which expect`
- pin=123456
- for f in `curl -s https://monitor.vshosting.cz/top.html|grep 'disk.html"><IMG ALIGN="middle" SRC="skins/static_lamps/red.gif"'|awk -F'.disk.html' '{print $1}'|awk -F'>' '{print $2}'|awk -F'<' '{print $1}'`;
- do
- if [[ $f != *shoptet* ]]; then
- $expect -c '
- set timeout 22
- spawn ssh -o PasswordAuthentication=no -o StrictHostKeyChecking=no vshfirstlevel@'$f'.vshosting.cz df -h
- expect "Enter PIN"
- send "'$pin'\r"
- interact'
- #ssh -o PasswordAuthentication=no -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no vshfirstlevel@$f.vshosting.cz df -h
- echo -e "\e[91m$f\e[39m\n\n"
- else
- echo -e "\e[91m$f\e[39m\n!! STOPTET !!\n"
- fi
- done
- }
- doImap () {
- # 0 user;pass
- # 2 domain;user;pass
- # 4 user;pass;user2;pass2
- # 6 domain;user;pass;user2;pass2
- # liché + SSL
- err_count=0
- variant=0
- dialog --title "IMAPSYNC - GUI" --clear --inputbox "Původní server:" 10 30 "" 2> $tempfile
- sourceServer=$(cat $tempfile)
- dialog --title "IMAPSYNC - GUI" --clear --inputbox "Nový server:" 10 30 "" 2> $tempfile
- newServer=$(cat $tempfile)
- dialog --title "IMAPSYNC - GUI" --clear --inputbox "Doména (nech prázdný pokud je jich víc) :" 10 30 "" 2> $tempfile
- domain=$(cat $tempfile)
- if [ -z $domain ]; then let variant+=2; fi
- dialog --title "IMAPSYNC - GUI" --clear --yesno "\n\nJe uživatel a heslo na starém i novém serveru stejné ?" 10 30
- if [ $? = "1" ] ; then variant=`expr $variant + 4` ;fi
- dialog --title "IMAPSYNC - GUI" --clear --yesno "\n\nPoužít SSL/TLS ? :" 10 30
- if [ $? = "0" ] ; then variant=`expr $variant + 1` ;fi
- if [ $((variant%2)) -eq 0 ]; then
- echo sudy
- ssl1=""
- ssl2="";
- else
- ssl1="--tls1"
- ssl2="--tls2"
- variant=`expr $variant - 1`
- echo $variant;
- fi
- syntaxe="uzivatel;heslo\nuzivatel2;heslo\nuzivatel3;heslo\n\n..."
- case $variant in
- "2") syntaxe="domena;uzivatel;heslo\nseznam.cz;petr;Polivka123\ngmail.com;david;p0kl1ce\n\n..";;
- "4") syntaxe="staryUzivatel;stareHeslo;novyUzivatel;noveHeslo\nstaryUzivatel2;stareHeslo2;novyUzivatel2;noveHeslo2\n\n...";;
- "6") syntaxe="domena;staryUzivatel;stareHeslo;novyUzivatel;noveHeslo\ndomena;staryUzivatel2;stareHeslo2;novyUzivatel2;noveHeslo2\n\n...";;
- esac
- dialog --title "IMAPSYNC - GUI" --backtitle "IMAPSYNC - GUI" --clear --msgbox "\n\nVloz do souboru udaje v nasledující syntaxi:\n\n$syntaxe" 14 70
- vim imapsync-accounts.txt
- clear
- { while IFS=';' read -r -a array; do
- case $variant in
- "0") u1=${array[0]} p1=${array[1]} u2=$u1 p2=$p1 ;;
- "2") domain=${array[0]} u1=${array[1]} p1=${array[2]} u2=$u1 p2=$p1;;
- "4") u1=${array[0]} p1=${array[1]} u2=${array[2]} p2=${array[3]} ;;
- "6") domain=${array[0]} u1=${array[1]} p1=${array[2]} u2=${array[3]} p2=${array[4]} ;;
- esac
- u1="$u1@$domain"
- u2="$u2@$domain"
- echo "Syncing user: $u1 to $u2"
- imapsync --host1 $sourceServer --user1 "$u1" --password1 "$p1" $ssl1 --host2 $newServer --user2 "$u2" --password2 "$p2" $ssl2 --nofoldersizes --skipsize &> /dev/null
- echo -e "Checking for errors in log file...\n...."
- dobre="`cat LOG_imapsync/$(ls LOG_imapsync/ -Art | tail -n 1)|grep "Detected 0 errors"`"
- if [ -z "$dobre" ] ; then
- echo -e "\e[7mERROR !\e[27m"
- let err_count+=1
- err_users+="$u1 to $u2\n";
- else
- echo "User $u1 to $u2 done";
- fi
- echo "* * * *"
- done; } < imapsync-accounts.txt
- if [ $err_count = "0" ] ; then err_users="All users has been transferred succesfull" ;fi
- echo "Done with $err_count errors."
- echo -e "Unfinished users:\n$err_users\n"
- }
- case $choice in
- "csr")
- clear;
- genCsr;;
- "hpkp")
- clear
- genHkpk;;
- "dh")
- clear
- genDh;;
- "db")
- clear
- genDb;;
- "complete")
- clear
- doComplete;;
- "vsh")
- clear
- doVSH;;
- "space")
- clear
- outOfSpace;;
- "imap")
- clear
- doImap;;
- esac
- case $retval in
- 0)
- echo -e "\n------ Pokud jsi našel nějakou chybu, tak to máš blbý. Formulář na hlášen chyb ještě nemám.\n------ Takže mi to maximálně můžeš říct když zrovna budu v práci nebo když to bude fakt díra tak na pracovní mail.\n------ A jestli nevíš jak se jmenuju. Tak to máš dvakrát blbý. :)"
- ;;
- 1)
- clear;;
- 255)
- clear;;
- esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement