├── md5sum.txt ├── setting.conf ├── README.md ├── vddos-add.sh ├── cron.sh └── vddos-autoadd.sh /md5sum.txt: -------------------------------------------------------------------------------- 1 | 9b4ddf52a80e710810282972a8ca9419 cron.sh 2 | ca71a8a1d64f20656ed541a167af7da1 md5sum.txt 3 | 3aa3720b01502a4c782395bbbfc7acf0 README.md 4 | ffb72a0cd766f49ce9fa343c427673c9 setting.conf 5 | 735306fbe425af34c0f4c263906f98dc vddos-add.sh 6 | b6f606c88443a05d077bc9cf7fe54003 vddos-autoadd.sh 7 | -------------------------------------------------------------------------------- /setting.conf: -------------------------------------------------------------------------------- 1 | # Default Setting for vddos-add command: 2 | 3 | SSL auto 4 | DNS_sleep 66 5 | DNS_alias_mode no 6 | Cache no 7 | Security no 8 | HTTP_Listen http://0.0.0.0:80 9 | HTTPS_Listen https://0.0.0.0:443 10 | HTTP_Backend http://204.79.197.200:80 11 | HTTPS_Backend https://204.79.197.200:443 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | vDDoS Auto Add 5 | =================== 6 | 7 | 8 | vDDoS Auto Add is a addon support for vDDoS Proxy Protection - Monitor **Domains/Aliasdomains/Subdomains** in Panel Hosting, Web Server, List Domain, Virtual Host... and automatically add them into the **website.conf** file. 9 | 10 | ---------- 11 | 12 | 1/ Install vDDoS Proxy Protection: 13 | ------------- 14 | To install vDDoS Proxy Protection please visit this site: http://vddos.voduy.com 15 | 16 | ---------- 17 | 18 | 19 | 2/ Install vDDoS Auto Add: 20 | ------------- 21 | ``` 22 | curl -L https://github.com/duy13/vDDoS-Auto-Add/archive/master.zip -o vddos-auto-add.zip ; unzip vddos-auto-add.zip ; rm -f vddos-auto-add.zip 23 | mv vDDoS-Auto-Add-master /vddos/auto-add 24 | chmod 700 /vddos/auto-add/cron.sh; chmod 700 /vddos/auto-add/vddos-add.sh 25 | ln -s /vddos/auto-add/vddos-add.sh /usr/bin/vddos-add 26 | ln -s /vddos/auto-add/cron.sh /usr/bin/vddos-autoadd 27 | ``` 28 | Configure Default Setting: 29 | ------------- 30 | ``` 31 | nano /vddos/auto-add/setting.conf 32 | 33 | Default Setting for vddos-add command: 34 | 35 | SSL Auto 36 | Cache no 37 | Security no 38 | HTTP_Listen http://0.0.0.0:80 39 | HTTPS_Listen https://0.0.0.0:443 40 | HTTP_Backend http://127.0.0.1:8080 41 | HTTPS_Backend https://127.0.0.1:8443 42 | 43 | ``` 44 | 45 | ---------- 46 | 47 | 3/ Using vDDoS Auto Add: 48 | ------------- 49 | 50 | */usr/bin/vddos-autoadd* automatically requests an Let's Encrypt SSL Certificate for the domain (if the domain is pointing to the IP address of the server) and adds them to */vddos/conf.d/website.conf*: 51 | 52 | **WARNING: Please remove [...] in all the below commands!** 53 | 54 | Add a domain: 55 | ------------- 56 | Use the default information in *setting.conf*: 57 | ``` 58 | /usr/bin/vddos-autoadd [domain] your-domain.com 59 | 60 | ``` 61 | Or specify custom information: 62 | ``` 63 | /usr/bin/vddos-autoadd [domain] Website="your-domain.com" Cache="no" Security="no" HTTP_Listen="http://0.0.0.0:80" HTTPS_Listen="https://0.0.0.0:443" HTTP_Backend="http://127.0.0.1:8080" HTTPS_Backend="https://127.0.0.1:8443" 64 | 65 | ``` 66 | 67 | Add a list domains: 68 | ------------- 69 | Auto get/add domains from a **list file domains** in Local Disk: 70 | ``` 71 | /usr/bin/vddos-autoadd [list] /etc/listdomains.txt 72 | ``` 73 | 74 | Auto get/add domains from a **list file domains** on **HTTP server public**: 75 | ``` 76 | /usr/bin/vddos-autoadd [http] http://private.domain.com/add-this/listdomains.txt 77 | ``` 78 | 79 | Auto get/add domains from **Local Web Server**: 80 | ``` 81 | /usr/bin/vddos-autoadd [webserver] [apache/nginx] 82 | ``` 83 | 84 | Auto get/add domains from **Local Hosting Panel**: 85 | ``` 86 | /usr/bin/vddos-autoadd [panel] [plesk] [apache/litespeed] 87 | /usr/bin/vddos-autoadd [panel] [cpanel] [apache/litespeed] 88 | /usr/bin/vddos-autoadd [panel] [directadmin] [apache/nginx/litespeed] 89 | /usr/bin/vddos-autoadd [panel] [cwp] [apache/litespeed] 90 | /usr/bin/vddos-autoadd [panel] [vestacp] [apache/nginx] 91 | /usr/bin/vddos-autoadd [panel] [cyberpanel] [openlitespeed] 92 | /usr/bin/vddos-autoadd [panel] [webuzo] [apache/nginx] 93 | /usr/bin/vddos-autoadd [panel] [aapanel] [apache/nginx] 94 | /usr/bin/vddos-autoadd [panel] [virtualmin] [apache/nginx] 95 | /usr/bin/vddos-autoadd [panel] [kloxo-mr] [apache/nginx] 96 | /usr/bin/vddos-autoadd [panel] [sentora] [apache] 97 | 98 | ``` 99 | 100 | 4/ Crontab vDDoS Auto Add: 101 | ------------- 102 | 103 | You can configure vDDoS Auto Add to automatically detect new **Domains/Aliasdomains/Subdomains** added to the server and add it to the *website.conf* file. 104 | 105 | Example in VestaCP: 106 | ``` 107 | echo '*/15 * * * * root /usr/bin/vddos-autoadd panel vestacp apache' >> /etc/crontab 108 | ``` 109 | 110 | Or for example get domains list in Apache: 111 | ``` 112 | echo '*/5 * * * * root /usr/bin/vddos-autoadd webserver apache' >> /etc/crontab 113 | ``` 114 | 115 | 5/ More Config: 116 | --------------- 117 | Document: http://vddos.voduy.com 118 | ``` 119 | Still in beta, use at your own risk! It is provided without any warranty! 120 | ``` -------------------------------------------------------------------------------- /vddos-add.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Command: 3 | # chmod 700 /vddos/auto-add/vddos-add.sh 4 | # ln -s /vddos/auto-add/vddos-add.sh /usr/bin/vddos-add 5 | # vddos-add your-domain.com 6 | # OR 7 | # vddos-add Website="your-domain.com" Cache="no" Security="no" HTTP_Listen="http://0.0.0.0:80" HTTPS_Listen="https://0.0.0.0:443" HTTP_Backend="http://127.0.0.1:8080" HTTPS_Backend="https://127.0.0.1:8443" 8 | 9 | if [ ! -f /usr/bin/vddos-autoadd ] || [ ! -f /usr/bin/vddos-add ]; then 10 | chmod 700 /vddos/auto-add/*.sh >/dev/null 2>&1 11 | ln -s /vddos/auto-add/vddos-autoadd.sh /usr/bin/vddos-autoadd >/dev/null 2>&1 12 | ln -s /vddos/auto-add/vddos-add.sh /usr/bin/vddos-add >/dev/null 2>&1 13 | fi 14 | 15 | 16 | 17 | if [ ! -f /vddos/conf.d/website.conf ]; then 18 | echo 'ERROR! 19 | 20 | /vddos/conf.d/website.conf not found! 21 | Please Install UpShield Firewall!'|tee -a /vddos/auto-add/log.txt 22 | exit 0 23 | fi 24 | if [ ! -d /letsencrypt ] || [ ! -d /vddos/ssl ]; then 25 | mkdir -p /letsencrypt; chmod 700 -R /letsencrypt 26 | mkdir -p /vddos/ssl; chmod 700 -R /vddos/ssl 27 | fi 28 | 29 | Issetting="$2" ; 30 | 31 | if [ "$Issetting" != "" ] && [ "$1" != "" ] && [ "$2" != "" ] && [ "$3" != "" ] && [ "$4" != "" ] && [ "$5" != "" ] && [ "$6" != "" ] && [ "$7" != "" ]; then 32 | eval $1 33 | eval $2 34 | eval $3 35 | eval $4 36 | eval $5 37 | eval $6 38 | eval $7 39 | fi 40 | 41 | if [ "$Issetting" = "" ]; then 42 | Website="$1" ; 43 | Cache=`awk -F: '/^Cache/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 44 | Security=`awk -F: '/^Security/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 45 | HTTP_Listen=`awk -F: '/^HTTP_Listen/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 46 | HTTPS_Listen=`awk -F: '/^HTTPS_Listen/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 47 | HTTP_Backend=`awk -F: '/^HTTP_Backend/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 48 | HTTPS_Backend=`awk -F: '/^HTTPS_Backend/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 49 | fi 50 | SSLmode=`awk -F: '/^SSL/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 51 | DNS_sleep=`awk -F: '/^DNS_sleep/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 52 | DNS_alias_mode=`awk -F: '/^DNS_alias_mode/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 53 | 54 | function showerror() 55 | { 56 | echo 'ERROR! 57 | 58 | Website is ['$Website'] ... 59 | Cache is ['$Cache'] ... 60 | Security is ['$Security'] ... 61 | HTTP_Listen is ['$HTTP_Listen'] ... 62 | HTTPS_Listen is ['$HTTPS_Listen'] ... 63 | HTTP_Backend is ['$HTTP_Backend'] ... 64 | HTTPS_Backend is ['$HTTPS_Backend'] ... 65 | 66 | # Please put a value in the file /vddos/auto-add/setting.conf 67 | # Example: 68 | SSL auto 69 | Cache no 70 | Security no 71 | HTTP_Listen http://0.0.0.0:80 72 | HTTPS_Listen https://0.0.0.0:443 73 | HTTP_Backend http://127.0.0.1:8080 74 | HTTPS_Backend https://127.0.0.1:8443 75 | 76 | # Example Command: 77 | vddos-add your-domain.com 78 | # OR: 79 | vddos-add Website="your-domain.com" Cache="no" Security="no" HTTP_Listen="http://0.0.0.0:80" HTTPS_Listen="https://0.0.0.0:443" HTTP_Backend="http://127.0.0.1:8080" HTTPS_Backend="https://127.0.0.1:8443" 80 | 81 | '|tee -a /vddos/auto-add/log.txt 82 | return 0 83 | } 84 | 85 | if [ "$Website" = "" ] || [ "$HTTPS_Backend" = "" ] || [ "$HTTP_Backend" = "" ] || [ "$HTTPS_Listen" = "" ] || [ "$HTTP_Listen" = "" ] || [ "$Security" = "" ] || [ "$Cache" = "" ]; then 86 | showerror 87 | exit 0 88 | fi 89 | 90 | Websitestringcheck=`echo $Website | grep -P '(?=^.{4,253}$)(^((?!-)[a-zA-Z0-9-]{1,63}(? Skip!'|tee -a /vddos/auto-add/log.txt 93 | exit 0 94 | fi 95 | 96 | 97 | echo " 98 | [[[[[[[ `date` ]]]]]]] 99 | " >> /vddos/auto-add/log.txt 100 | if [ "$SSLmode" = "Auto" ]; then 101 | SSLmode=auto 102 | fi 103 | 104 | if [ "$SSLmode" = "auto" ]; then 105 | 106 | 107 | # Request FOR non-www 108 | 109 | Available=`awk -F: "/^$Website/" /vddos/conf.d/website.conf` 110 | 111 | if [ "$Available" != "" ]; then 112 | echo '- Re-check: '$Website' is already in /vddos/conf.d/website.conf ===> Skip!'|tee -a /vddos/auto-add/log.txt 113 | exit 0 114 | fi 115 | if [ "$Available" = "" ]; then 116 | random=`cat /dev/urandom | tr -cd 'A-Z0-9' | head -c 5` 117 | echo $random > /vddos/letsencrypt/.well-known/acme-challenge/$Website.txt 118 | randomchecknonwww=`curl -s -L http://$Website/.well-known/acme-challenge/$Website.txt` 119 | randomcheckwww=`curl -s -L http://www.$Website/.well-known/acme-challenge/$Website.txt` 120 | rm -f /vddos/letsencrypt/.well-known/acme-challenge/$Website.txt 121 | if [ "$randomchecknonwww" = "$random" ]; then 122 | #mkdir -p /letsencrypt/ 123 | /root/.acme.sh/acme.sh --debug --issue -d $Website -w /vddos/letsencrypt --keylength ec-256 --key-file /letsencrypt/$Website.pri --fullchain-file /letsencrypt/$Website.crt >>/vddos/auto-add/log.txt 2>&1 124 | if [ -f /letsencrypt/"$Website".crt ]; then 125 | ln -s /letsencrypt/$Website.crt /vddos/ssl/$Website.crt 126 | ln -s /letsencrypt/$Website.pri /vddos/ssl/$Website.pri 127 | fi 128 | 129 | if [ ! -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 130 | ln -s /root/.acme.sh/"$Website"_ecc/fullchain.cer /vddos/ssl/$Website.crt 131 | ln -s /root/.acme.sh/"$Website"_ecc/"$Website".key /vddos/ssl/$Website.pri 132 | fi 133 | fi 134 | 135 | if [ "$randomchecknonwww" != "$random" ] || [ ! -f /vddos/ssl/"$Website".crt ]; then 136 | openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /vddos/ssl/$Website.pri -out /vddos/ssl/$Website.crt -subj "/C=US/ST=$Website/L=$Website/O=$Website/OU=vddos/CN=$Website" >>/vddos/auto-add/log.txt 2>&1 137 | chmod -R 750 /vddos/ssl/$Website.* 138 | fi 139 | 140 | echo " 141 | $Website $HTTP_Listen $HTTP_Backend $Cache $Security no no 142 | $Website $HTTPS_Listen $HTTPS_Backend $Cache $Security /vddos/ssl/$Website.pri /vddos/ssl/$Website.crt 143 | " >> /vddos/conf.d/website.conf 144 | 145 | echo '+ New-Success: '$Website' auto add to /vddos/conf.d/website.conf ===> Done!'|tee -a /vddos/auto-add/log.txt 146 | sleep 1 147 | fi 148 | 149 | # Request FOR www 150 | 151 | is2www=`echo "www.$Website"| awk '{print substr($0,1,8)}'` 152 | if [ "$is2www" = "www.www." ]; then 153 | exit 0 154 | fi 155 | Available=`awk -F: "/^www.$Website/" /vddos/conf.d/website.conf` 156 | if [ "$Available" != "" ]; then 157 | echo '- Re-check: 'www.$Website' is already in /vddos/conf.d/website.conf ===> Skip!' |tee -a /vddos/auto-add/log.txt 158 | exit 0 159 | fi 160 | if [ "$Available" = "" ]; then 161 | if [ "$randomcheckwww" = "$random" ]; then 162 | /root/.acme.sh/acme.sh --debug --issue -d www.$Website -w /vddos/letsencrypt --keylength ec-256 --key-file /letsencrypt/www.$Website.pri --fullchain-file /letsencrypt/www.$Website.crt >>/vddos/auto-add/log.txt 2>&1 163 | if [ -f /letsencrypt/www."$Website".crt ]; then 164 | ln -s /letsencrypt/www.$Website.crt /vddos/ssl/www.$Website.crt 165 | ln -s /letsencrypt/www.$Website.pri /vddos/ssl/www.$Website.pri 166 | fi 167 | 168 | if [ ! -f /vddos/ssl/www."$Website".crt ] && [ -f /root/.acme.sh/www."$Website"_ecc/fullchain.cer ]; then 169 | ln -s /root/.acme.sh/www."$Website"_ecc/fullchain.cer /vddos/ssl/www.$Website.crt 170 | ln -s /root/.acme.sh/www."$Website"_ecc/"$Website".key /vddos/ssl/www.$Website.pri 171 | fi 172 | 173 | if [ ! -f /vddos/ssl/www."$Website".crt ]; then 174 | ln -s /vddos/ssl/$Website.crt /vddos/ssl/www.$Website.crt 175 | ln -s /vddos/ssl/$Website.pri /vddos/ssl/www.$Website.pri 176 | fi 177 | 178 | echo " 179 | www.$Website $HTTP_Listen $HTTP_Backend $Cache $Security no no 180 | www.$Website $HTTPS_Listen $HTTPS_Backend $Cache $Security /vddos/ssl/www.$Website.pri /vddos/ssl/www.$Website.crt 181 | " >> /vddos/conf.d/website.conf 182 | 183 | echo '+ New-Success: 'www.$Website' auto add to /vddos/conf.d/website.conf ===> Done!'|tee -a /vddos/auto-add/log.txt 184 | sleep 1 185 | exit 0 186 | fi 187 | fi 188 | 189 | fi 190 | 191 | 192 | 193 | ######## SSL DNS API MODE 194 | 195 | if [ "$SSLmode" != "auto" ] && [ "$DNS_alias_mode" = "no" ]; then 196 | 197 | /root/.acme.sh/acme.sh --debug --dnssleep $DNS_sleep --issue --dns $SSLmode -d $Website -d *.$Website --keylength ec-256 --key-file /letsencrypt/$Website.pri --fullchain-file /letsencrypt/$Website.crt >>/vddos/auto-add/log.txt 2>&1 198 | if [ -f /letsencrypt/"$Website".crt ]; then 199 | ln -s /letsencrypt/$Website.crt /vddos/ssl/$Website.crt 200 | ln -s /letsencrypt/$Website.pri /vddos/ssl/$Website.pri 201 | fi 202 | 203 | if [ ! -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 204 | ln -s /root/.acme.sh/"$Website"_ecc/fullchain.cer /vddos/ssl/$Website.crt 205 | ln -s /root/.acme.sh/"$Website"_ecc/"$Website".key /vddos/ssl/$Website.pri 206 | fi 207 | 208 | if [ ! -f /vddos/ssl/"$Website".crt ]; then 209 | openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /vddos/ssl/$Website.pri -out /vddos/ssl/$Website.crt -subj "/C=US/ST=$Website/L=$Website/O=$Website/OU=vddos/CN=$Website" >>/vddos/auto-add/log.txt 2>&1 210 | chmod -R 750 /vddos/ssl/$Website.* 211 | fi 212 | 213 | 214 | echo " 215 | $Website $HTTP_Listen $HTTP_Backend $Cache $Security no no 216 | $Website $HTTPS_Listen $HTTPS_Backend $Cache $Security /vddos/ssl/$Website.pri /vddos/ssl/$Website.crt 217 | " >> /vddos/conf.d/website.conf 218 | 219 | echo '+ New-Success: '$Website' auto add to /vddos/conf.d/website.conf ===> Done!'|tee -a /vddos/auto-add/log.txt 220 | sleep 1 221 | 222 | fi 223 | 224 | 225 | 226 | 227 | 228 | 229 | ######## SSL DNS API ALIAS MODE 230 | 231 | 232 | 233 | if [ "$SSLmode" != "auto" ] && [ "$DNS_alias_mode" != "no" ]; then 234 | 235 | /root/.acme.sh/acme.sh --debug --dnssleep $DNS_sleep --issue --dns $SSLmode --challenge-alias $DNS_alias_mode -d $Website -d *.$Website --keylength ec-256 --key-file /letsencrypt/$Website.pri --fullchain-file /letsencrypt/$Website.crt >>/vddos/auto-add/log.txt 2>&1 236 | if [ -f /letsencrypt/"$Website".crt ]; then 237 | ln -s /letsencrypt/$Website.crt /vddos/ssl/$Website.crt 238 | ln -s /letsencrypt/$Website.pri /vddos/ssl/$Website.pri 239 | fi 240 | 241 | if [ ! -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 242 | ln -s /root/.acme.sh/"$Website"_ecc/fullchain.cer /vddos/ssl/$Website.crt 243 | ln -s /root/.acme.sh/"$Website"_ecc/"$Website".key /vddos/ssl/$Website.pri 244 | fi 245 | 246 | if [ ! -f /vddos/ssl/"$Website".crt ]; then 247 | openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /vddos/ssl/$Website.pri -out /vddos/ssl/$Website.crt -subj "/C=US/ST=$Website/L=$Website/O=$Website/OU=vddos/CN=$Website" >>/vddos/auto-add/log.txt 2>&1 248 | chmod -R 750 /vddos/ssl/$Website.* 249 | fi 250 | 251 | 252 | echo " 253 | $Website $HTTP_Listen $HTTP_Backend $Cache $Security no no 254 | $Website $HTTPS_Listen $HTTPS_Backend $Cache $Security /vddos/ssl/$Website.pri /vddos/ssl/$Website.crt 255 | " >> /vddos/conf.d/website.conf 256 | 257 | echo '+ New-Success: '$Website' auto add to /vddos/conf.d/website.conf ===> Done!'|tee -a /vddos/auto-add/log.txt 258 | sleep 1 259 | 260 | fi -------------------------------------------------------------------------------- /cron.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Command: 3 | # chmod 700 /vddos/auto-add/cron.sh 4 | # ln -s /vddos/auto-add/cron.sh /usr/bin/vddos-autoadd 5 | # chmod 700 /vddos/auto-add/vddos-add.sh 6 | # ln -s /vddos/auto-add/vddos-add.sh /usr/bin/vddos-add 7 | 8 | # Auto add for a domain: 9 | # vddos-autoadd [domain] your-domain.com 10 | # OR: 11 | # vddos-autoadd [domain] Website="your-domain.com" Cache="no" Security="no" HTTP_Listen="http://0.0.0.0:80" HTTPS_Listen="https://0.0.0.0:443" HTTP_Backend="http://127.0.0.1:8080" HTTPS_Backend="https://127.0.0.1:8443" 12 | 13 | # Auto get/add domains from a list file domains in Local Disk: 14 | # vddos-autoadd [list] /etc/listdomains.txt 15 | 16 | # Auto get/add domains from a list file domains on HTTP server public: 17 | # vddos-autoadd [http] http://private.domain.com/add-this/listdomains.txt 18 | 19 | # Auto get/add domains from Local Web Server: 20 | # vddos-autoadd [webserver] [apache/nginx] 21 | 22 | # Auto get/add domains from Local Hosting Panel: 23 | # vddos-autoadd [panel] [plesk] [apache/litespeed] 24 | # vddos-autoadd [panel] [cpanel] [apache/litespeed] 25 | # vddos-autoadd [panel] [directadmin] [apache/nginx/litespeed] 26 | # vddos-autoadd [panel] [cwp] [apache/litespeed] 27 | # vddos-autoadd [panel] [vestacp] [apache/nginx] 28 | # vddos-autoadd [panel] [cyberpanel] [openlitespeed] 29 | # vddos-autoadd [panel] [webuzo] [apache/nginx] 30 | # vddos-autoadd [panel] [aapanel] [apache/nginx] 31 | # vddos-autoadd [panel] [virtualmin] [apache/nginx] 32 | # vddos-autoadd [panel] [kloxo-mr] [apache/nginx] 33 | # vddos-autoadd [panel] [sentora] [apache] 34 | 35 | # Auto remove a domain: 36 | # vddos-autoadd [remove] your-domain.com 37 | 38 | # Auto recheck/renew ssl again for all domains: 39 | # vddos-autoadd [ssl-again] 40 | 41 | ################################################################################# 42 | 43 | if [ ! -f /usr/bin/vddos-autoadd ] || [ ! -f /usr/bin/vddos-add ]; then 44 | chmod 700 /vddos/auto-add/cron.sh 45 | ln -s /vddos/auto-add/cron.sh /usr/bin/vddos-autoadd 46 | chmod 700 /vddos/auto-add/vddos-add.sh 47 | ln -s /vddos/auto-add/vddos-add.sh /usr/bin/vddos-add 48 | fi 49 | 50 | if [ ! -f /vddos/conf.d/website.conf ] || [ ! -f /usr/bin/vddos ]; then 51 | echo 'ERROR! 52 | 53 | /vddos/conf.d/website.conf not found! 54 | Please Install vDDoS Proxy Protection!'|tee -a /vddos/auto-add/log.txt 55 | exit 0 56 | fi 57 | 58 | Command="$1" 59 | 60 | function showerror() 61 | { 62 | echo ' 63 | ERROR! 64 | 65 | Please enter the correct syntax for the command: ['$Command'] ... 66 | 67 | # Auto add for a domain: 68 | vddos-autoadd [domain] your-domain.com 69 | # OR: 70 | vddos-autoadd [domain] Website="your-domain.com" Cache="no" Security="no" HTTP_Listen="http://0.0.0.0:80" HTTPS_Listen="https://0.0.0.0:443" HTTP_Backend="http://127.0.0.1:8080" HTTPS_Backend="https://127.0.0.1:8443" 71 | 72 | # Auto get/add domains from a list file domains in Local Disk: 73 | vddos-autoadd [list] /etc/listdomains.txt 74 | 75 | # Auto get/add domains from a list file domains on HTTP server public: 76 | vddos-autoadd [http] http://private.domain.com/add-this/listdomains.txt 77 | 78 | # Auto get/add domains from Local Web Server: 79 | vddos-autoadd [webserver] [apache/nginx] 80 | 81 | # Auto get/add domains from Local Hosting Panel: 82 | vddos-autoadd [panel] [plesk] [apache/litespeed] 83 | vddos-autoadd [panel] [cpanel] [apache/litespeed] 84 | vddos-autoadd [panel] [directadmin] [apache/nginx/litespeed] 85 | vddos-autoadd [panel] [cwp] [apache/litespeed] 86 | vddos-autoadd [panel] [vestacp] [apache/nginx] 87 | vddos-autoadd [panel] [cyberpanel] [openlitespeed] 88 | vddos-autoadd [panel] [webuzo] [apache/nginx] 89 | vddos-autoadd [panel] [aapanel] [apache/nginx] 90 | vddos-autoadd [panel] [virtualmin] [apache/nginx] 91 | vddos-autoadd [panel] [kloxo-mr] [apache/nginx] 92 | vddos-autoadd [panel] [sentora] [apache] 93 | 94 | # Auto remove a domain: 95 | vddos-autoadd [remove] your-domain.com 96 | 97 | # Auto recheck/renew ssl again for all domains: 98 | vddos-autoadd [ssl-again] 99 | 100 | '|tee -a /vddos/auto-add/log.txt 101 | return 0 102 | } 103 | function checklog() 104 | { 105 | echo ' 106 | (Check logs at /vddos/auto-add/log.txt) 107 | ' 108 | return 0 109 | } 110 | 111 | 112 | if [ "$1" = "" ]; then 113 | showerror 114 | exit 0 115 | fi 116 | 117 | if [ "$1" != "ssl-again" ] && [ "$2" = "" ]; then 118 | showerror 119 | exit 0 120 | fi 121 | 122 | if [ "$Command" != "domain" ] && [ "$Command" != "list" ] && [ "$Command" != "http" ] && [ "$Command" != "panel" ] && [ "$Command" != "webserver" ] && [ "$Command" != "remove" ] && [ "$Command" != 'ssl-again' ]; then 123 | showerror 124 | exit 0 125 | 126 | fi 127 | 128 | 129 | 130 | ################################################################################# 131 | # Auto add for a domain: 132 | # vddos-autoadd [domain] your-domain.com 133 | # OR: 134 | # vddos-autoadd [domain] Website="your-domain.com" Cache="no" Security="no" HTTP_Listen="http://0.0.0.0:80" HTTPS_Listen="https://0.0.0.0:443" HTTP_Backend="http://127.0.0.1:8080" HTTPS_Backend="https://127.0.0.1:8443" 135 | if [ "$Command" = "domain" ]; then 136 | 137 | md5sum_website_conf_latest=`md5sum /vddos/conf.d/website.conf| awk 'NR==1 {print $1}'` 138 | 139 | Issetting="$3" ; 140 | if [ "$Issetting" != "" ] && [ "$1" != "" ] && [ "$2" != "" ] && [ "$3" != "" ] && [ "$4" != "" ] && [ "$5" != "" ] && [ "$6" != "" ] && [ "$7" != "" ] && [ "$8" != "" ]; then 141 | /usr/bin/vddos-add $2 $3 $4 $5 $6 $7 $8 142 | fi 143 | if [ "$Issetting" = "" ]; then 144 | /usr/bin/vddos-add "$2" 145 | fi 146 | 147 | md5sum_website_conf_new=`md5sum /vddos/conf.d/website.conf| awk 'NR==1 {print $1}'` 148 | if [ "$md5sum_website_conf_latest" != "$md5sum_website_conf_new" ]; then 149 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 150 | fi 151 | fi 152 | 153 | 154 | ################################################################################# 155 | # Auto get/add domains from a list file domains in Local Disk: 156 | # vddos-autoadd [list] /etc/listdomains.txt 157 | if [ "$Command" = "list" ]; then 158 | listdomains_source="$2" 159 | listdomains="/vddos/auto-add/list/listdomains.txt" 160 | if [ ! -f $listdomains_source ]; then 161 | showerror 162 | echo ''$listdomains_source' not found!' 163 | exit 0 164 | fi 165 | 166 | if [ ! -f /vddos/auto-add/list/md5sum-latest.txt ]; then 167 | mkdir -p /vddos/auto-add/list/ 168 | touch /vddos/auto-add/list/md5sum-latest.txt 169 | fi 170 | 171 | md5sum_latest=`cat /vddos/auto-add/list/md5sum-latest.txt | awk 'NR==1 {print $1}'` 172 | md5sum_new=`cat $listdomains_source | md5sum | awk 'NR==1 {print $1}'` 173 | md5sum_website_conf_latest=`cat /vddos/conf.d/website.conf| grep . | awk '!x[$0]++'| md5sum | awk 'NR==1 {print $1}'` 174 | 175 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 176 | 177 | echo $md5sum_new > /vddos/auto-add/list/md5sum-latest.txt 178 | echo " 179 | [[[[[[[ `date` ]]]]]]] 180 | " > /vddos/auto-add/log.txt 181 | echo "`cat $listdomains_source | grep . | awk '!x[$0]++'`" > $listdomains 182 | numberlinelistdomains=`cat $listdomains | grep . | wc -l` 183 | startlinenumber=1 184 | 185 | dong=$startlinenumber 186 | while [ $dong -le $numberlinelistdomains ] 187 | do 188 | Website=$(awk " NR == $dong " $listdomains) 189 | Available=`awk -F: "/^$Website/" /vddos/conf.d/website.conf` 190 | 191 | if [ "$Available" != "" ]; then 192 | echo '- Re-check: '$Website' is already in /vddos/conf.d/website.conf ===> Skip!'|tee -a /vddos/auto-add/log.txt 193 | fi 194 | if [ "$Available" = "" ]; then 195 | echo ' Found '$Website' ['$dong'/'$numberlinelistdomains'] in '$listdomains_source':'|tee -a /vddos/auto-add/log.txt 196 | /usr/bin/vddos-add "$Website" 197 | fi 198 | dong=$((dong + 1)) 199 | done 200 | fi 201 | md5sum_website_conf_new=`cat /vddos/conf.d/website.conf| grep . | awk '!x[$0]++'| md5sum | awk 'NR==1 {print $1}'` 202 | if [ "$md5sum_website_conf_latest" != "$md5sum_website_conf_new" ]; then 203 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 204 | fi 205 | checklog 206 | exit 0 207 | fi 208 | 209 | ################################################################################# 210 | # Auto get/add domains from a list file domains on HTTP server public: 211 | # vddos-autoadd [http] http://private.domain.com/add-this/listdomains.txt 212 | if [ "$Command" = "http" ]; then 213 | httplistdomains="$2" 214 | listdomains="/vddos/auto-add/http/httplistdomains.txt" 215 | if [ ! -f /vddos/auto-add/http/md5sum-latest.txt ]; then 216 | mkdir -p /vddos/auto-add/http/ 217 | touch /vddos/auto-add/http/md5sum-latest.txt 218 | fi 219 | rm -f /vddos/auto-add/http/httplistdomains.txt 220 | curl --silent -L $httplistdomains -o $listdomains 221 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 222 | 223 | md5sum_latest=`cat /vddos/auto-add/http/md5sum-latest.txt | awk 'NR==1 {print $1}'` 224 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 225 | 226 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 227 | echo $md5sum_new > /vddos/auto-add/http/md5sum-latest.txt 228 | /usr/bin/vddos-autoadd list $listdomains 229 | fi 230 | exit 0 231 | fi 232 | 233 | 234 | ################################################################################# 235 | # Auto get/add domains from Local Web Server: 236 | # vddos-autoadd [webserver] [apache/nginx] 237 | if [ "$Command" = "webserver" ]; then 238 | webserver="$2" 239 | 240 | if [ "$webserver" = "apache" ]; then 241 | if [ ! -f /usr/sbin/httpd ]; then 242 | echo 'Unrecognized Web Server: '$webserver' - /usr/sbin/httpd Not Found!' 243 | exit 0 244 | fi 245 | listdomains="/vddos/auto-add/webserver/apache/listdomains.txt" 246 | 247 | if [ ! -f /vddos/auto-add/webserver/apache/md5sum-latest.txt ]; then 248 | mkdir -p /vddos/auto-add/webserver/apache/ 249 | touch /vddos/auto-add/webserver/apache/md5sum-latest.txt 250 | fi 251 | 252 | /usr/sbin/httpd -S| grep namevhost | awk '{print $4}'| sed -e 's/default//g'| sed -e 's/alias//g'| sed -e 's/_//g'| sed -e 's/localhost//g' > $listdomains 253 | /usr/sbin/httpd -S| grep alias | awk '{print $2}'| sed -e 's/default//g'| sed -e 's/alias//g'| sed -e 's/_//g'| sed -e 's/localhost//g' >> $listdomains 254 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 255 | 256 | md5sum_latest=`cat /vddos/auto-add/webserver/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 257 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 258 | 259 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 260 | echo $md5sum_new > /vddos/auto-add/webserver/apache/md5sum-latest.txt 261 | /usr/bin/vddos-autoadd list $listdomains 262 | fi 263 | exit 0 264 | fi 265 | 266 | 267 | if [ "$webserver" = "nginx" ]; then 268 | nginxlocation=`which nginx` 269 | if [ ! -f $nginxlocation ]; then 270 | echo 'Unrecognized Web Server: '$webserver' - '$nginxlocation' Not Found!' 271 | exit 0 272 | fi 273 | listdomains="/vddos/auto-add/webserver/nginx/listdomains.txt" 274 | 275 | if [ ! -f /vddos/auto-add/webserver/nginx/md5sum-latest.txt ]; then 276 | mkdir -p /vddos/auto-add/webserver/nginx/ 277 | touch /vddos/auto-add/webserver/nginx/md5sum-latest.txt 278 | fi 279 | 280 | nginx -T | sed -r -e 's/[ \t]*$//' -e 's/^[ \t]*//' -e 's/^#.*$//' -e 's/[ \t]*#.*$//' -e '/^$/d' | sed -e ':a;N;$!ba;s/\([^;\{\}]\)\n/\1 /g' | grep -P 'server_name[ \t]' | grep -v '\$' | grep '\.' | sed -r -e 's/(\S)[ \t]+(\S)/\1\n\2/g' -e 's/[\t ]//g' -e 's/;//' -e 's/server_name//' | sort | uniq | xargs -L1 > $listdomains 281 | 282 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 283 | 284 | md5sum_latest=`cat /vddos/auto-add/webserver/nginx/md5sum-latest.txt | awk 'NR==1 {print $1}'` 285 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 286 | 287 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 288 | echo $md5sum_new > /vddos/auto-add/webserver/nginx/md5sum-latest.txt 289 | /usr/bin/vddos-autoadd list $listdomains 290 | fi 291 | exit 0 292 | fi 293 | 294 | 295 | fi 296 | 297 | ################################################################################ 298 | # Auto get/add domains from Local Hosting Panel: 299 | 300 | 301 | if [ "$Command" = "panel" ]; then 302 | hostingpanel="$2" 303 | hostingpanel_webserver="$3" 304 | 305 | echo " 306 | [[[[[[[ `date` ]]]]]]] 307 | " >> /vddos/auto-add/log.txt 308 | 309 | 310 | 311 | 312 | if [ "$hostingpanel" != "vestacp" ] && [ "$hostingpanel" != "plesk" ] && [ "$hostingpanel" != "cpanel" ] && [ "$hostingpanel" != "cyberpanel" ] && [ "$hostingpanel" != "directadmin" ] && [ "$hostingpanel" != "cwp" ] && [ "$hostingpanel" != "kloxo-mr" ] && [ "$hostingpanel" != "sentora" ] && [ "$hostingpanel" != "virtualmin" ] && [ "$hostingpanel" != "webuzo" ] && [ "$hostingpanel" != "aapanel" ]; then 313 | showerror 314 | exit 0 315 | fi 316 | if [ "$hostingpanel_webserver" != "" ] && [ "$hostingpanel_webserver" != "apache" ] && [ "$hostingpanel_webserver" != "nginx" ] && [ "$hostingpanel_webserver" != "openlitespeed" ] && [ "$hostingpanel_webserver" != "litespeed" ]; then 317 | showerror 318 | exit 0 319 | fi 320 | 321 | 322 | 323 | 324 | ################################################################################# 325 | # VESTACP 326 | if [ "$hostingpanel" = "vestacp" ]; then 327 | if [ ! -f /usr/local/vesta/conf/vesta.conf ]; then 328 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/vesta/conf/vesta.conf Not Found!' 329 | exit 0 330 | fi 331 | if [ "$hostingpanel_webserver" = "apache" ]; then 332 | 333 | listdomains="/vddos/auto-add/panel/vestacp/apache/listdomains.txt" 334 | 335 | if [ ! -f /vddos/auto-add/panel/vestacp/apache/md5sum-latest.txt ]; then 336 | mkdir -p /vddos/auto-add/panel/vestacp/apache/ 337 | touch /vddos/auto-add/panel/vestacp/apache/md5sum-latest.txt 338 | fi 339 | 340 | 341 | cat /home/*/conf/web/*httpd.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 342 | cat /home/*/conf/web/*httpd.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 343 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 344 | 345 | md5sum_latest=`cat /vddos/auto-add/panel/vestacp/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 346 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 347 | 348 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 349 | echo $md5sum_new > /vddos/auto-add/panel/vestacp/apache/md5sum-latest.txt 350 | /usr/bin/vddos-autoadd list $listdomains 351 | fi 352 | exit 0 353 | fi 354 | 355 | if [ "$hostingpanel_webserver" = "nginx" ]; then 356 | 357 | listdomains="/vddos/auto-add/panel/vestacp/nginx/listdomains.txt" 358 | 359 | if [ ! -f /vddos/auto-add/panel/vestacp/nginx/md5sum-latest.txt ]; then 360 | mkdir -p /vddos/auto-add/panel/vestacp/nginx/ 361 | touch /vddos/auto-add/panel/vestacp/nginx/md5sum-latest.txt 362 | fi 363 | 364 | 365 | cat /home/*/conf/web/*nginx.conf | egrep '^(\s|\t)*server_name'| awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/;//g' > $listdomains 366 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 367 | 368 | md5sum_latest=`cat /vddos/auto-add/panel/vestacp/nginx/md5sum-latest.txt | awk 'NR==1 {print $1}'` 369 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 370 | 371 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 372 | echo $md5sum_new > /vddos/auto-add/panel/vestacp/nginx/md5sum-latest.txt 373 | /usr/bin/vddos-autoadd list $listdomains 374 | fi 375 | exit 0 376 | fi 377 | 378 | 379 | exit 0 380 | fi 381 | 382 | 383 | 384 | ################################################################################# 385 | # CYBERPANEL 386 | if [ "$hostingpanel" = "cyberpanel" ]; then 387 | 388 | if [ ! -f /usr/local/lsws/conf/httpd_config.conf ]; then 389 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/lsws/conf/httpd_config.conf Not Found!' 390 | exit 0 391 | fi 392 | 393 | if [ "$hostingpanel_webserver" = "openlitespeed" ]; then 394 | 395 | listdomains="/vddos/auto-add/panel/cyberpanel/openlitespeed/listdomains.txt" 396 | 397 | if [ ! -f /vddos/auto-add/panel/cyberpanel/openlitespeed/md5sum-latest.txt ]; then 398 | mkdir -p /vddos/auto-add/panel/cyberpanel/openlitespeed/ 399 | touch /vddos/auto-add/panel/cyberpanel/openlitespeed/md5sum-latest.txt 400 | fi 401 | 402 | 403 | cat /usr/local/lsws/conf/httpd_config.conf|grep 'map'| awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/,//g' > $listdomains 404 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 405 | 406 | md5sum_latest=`cat /vddos/auto-add/panel/cyberpanel/openlitespeed/md5sum-latest.txt | awk 'NR==1 {print $1}'` 407 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 408 | 409 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 410 | echo $md5sum_new > /vddos/auto-add/panel/cyberpanel/openlitespeed/md5sum-latest.txt 411 | /usr/bin/vddos-autoadd list $listdomains 412 | fi 413 | exit 0 414 | fi 415 | 416 | 417 | fi 418 | 419 | 420 | 421 | ################################################################################# 422 | # CWP 423 | if [ "$hostingpanel" = "cwp" ]; then 424 | 425 | if [ "$hostingpanel_webserver" = "apache" ]; then 426 | 427 | if [ ! -f /usr/local/apache/conf.d/vhosts.conf ]; then 428 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/apache/conf.d/vhosts.conf Not Found!' 429 | exit 0 430 | fi 431 | 432 | listdomains="/vddos/auto-add/panel/cwp/apache/listdomains.txt" 433 | 434 | if [ ! -f /vddos/auto-add/panel/cwp/apache/md5sum-latest.txt ]; then 435 | mkdir -p /vddos/auto-add/panel/cwp/apache/ 436 | touch /vddos/auto-add/panel/cwp/apache/md5sum-latest.txt 437 | fi 438 | 439 | 440 | cat /usr/local/apache/conf.d/vhosts.conf| egrep '^(\s|\t)*ServerName'| awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 441 | cat /usr/local/apache/conf.d/vhosts.conf| egrep '^(\s|\t)*ServerAlias'| awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 442 | 443 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 444 | 445 | md5sum_latest=`cat /vddos/auto-add/panel/cwp/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 446 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 447 | 448 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 449 | echo $md5sum_new > /vddos/auto-add/panel/cwp/apache/md5sum-latest.txt 450 | /usr/bin/vddos-autoadd list $listdomains 451 | fi 452 | exit 0 453 | fi 454 | 455 | if [ "$hostingpanel_webserver" = "litespeed" ]; then 456 | echo 'This Features will be available soon!' 457 | fi 458 | 459 | fi 460 | 461 | ################################################################################# 462 | # WHM/CPANEL 463 | if [ "$hostingpanel" = "cpanel" ]; then 464 | 465 | if [ ! -f /etc/userdatadomains ]; then 466 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /etc/userdatadomains Not Found!' 467 | exit 0 468 | fi 469 | 470 | if [ "$hostingpanel_webserver" = "apache" ]; then 471 | 472 | listdomains="/vddos/auto-add/panel/cpanel/apache/listdomains.txt" 473 | 474 | if [ ! -f /vddos/auto-add/panel/cpanel/apache/md5sum-latest.txt ]; then 475 | mkdir -p /vddos/auto-add/panel/cpanel/apache/ 476 | touch /vddos/auto-add/panel/cpanel/apache/md5sum-latest.txt 477 | fi 478 | 479 | cat /etc/userdatadomains| awk '{print $1}'| sed -e 's/://g' > $listdomains 480 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 481 | 482 | md5sum_latest=`cat /vddos/auto-add/panel/cpanel/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 483 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 484 | 485 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 486 | echo $md5sum_new > /vddos/auto-add/panel/cpanel/apache/md5sum-latest.txt 487 | /usr/bin/vddos-autoadd list $listdomains 488 | fi 489 | exit 0 490 | fi 491 | 492 | if [ "$hostingpanel_webserver" = "litespeed" ]; then 493 | echo 'This Features will be available soon!' 494 | fi 495 | 496 | 497 | fi 498 | 499 | 500 | ################################################################################# 501 | # PLESK 502 | if [ "$hostingpanel" = "plesk" ]; then 503 | 504 | if [ ! -f /usr/sbin/plesk ]; then 505 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/sbin/plesk Not Found!' 506 | exit 0 507 | fi 508 | 509 | if [ "$hostingpanel_webserver" = "apache" ]; then 510 | 511 | listdomains="/vddos/auto-add/panel/plesk/apache/listdomains.txt" 512 | 513 | if [ ! -f /vddos/auto-add/panel/plesk/apache/md5sum-latest.txt ]; then 514 | mkdir -p /vddos/auto-add/panel/plesk/apache/ 515 | touch /vddos/auto-add/panel/plesk/apache/md5sum-latest.txt 516 | fi 517 | 518 | 519 | cat /var/www/vhosts/system/*/conf/httpd.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/\"//g' | sed -e 's/:80//g'|sed -e 's/:443//g' > $listdomains 520 | cat /var/www/vhosts/system/*/conf/httpd.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/\"//g'| sed -e 's/ipv4/webmail/g' >> $listdomains 521 | 522 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 523 | 524 | md5sum_latest=`cat /vddos/auto-add/panel/plesk/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 525 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 526 | 527 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 528 | echo $md5sum_new > /vddos/auto-add/panel/plesk/apache/md5sum-latest.txt 529 | /usr/bin/vddos-autoadd list $listdomains 530 | fi 531 | exit 0 532 | fi 533 | 534 | if [ "$hostingpanel_webserver" = "litespeed" ]; then 535 | echo 'This Features will be available soon!' 536 | fi 537 | fi 538 | 539 | 540 | ################################################################################# 541 | # DIRECTADMIN 542 | if [ "$hostingpanel" = "directadmin" ]; then 543 | 544 | if [ ! -f /usr/local/directadmin/directadmin ]; then 545 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/directadmin/directadmin Not Found!' 546 | exit 0 547 | fi 548 | 549 | if [ "$hostingpanel_webserver" = "apache" ]; then 550 | 551 | listdomains="/vddos/auto-add/panel/directadmin/apache/listdomains.txt" 552 | 553 | if [ ! -f /vddos/auto-add/panel/directadmin/apache/md5sum-latest.txt ]; then 554 | mkdir -p /vddos/auto-add/panel/directadmin/apache/ 555 | touch /vddos/auto-add/panel/directadmin/apache/md5sum-latest.txt 556 | fi 557 | 558 | 559 | cat /usr/local/directadmin/data/users/*/httpd.conf| egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 560 | cat /usr/local/directadmin/data/users/*/httpd.conf| egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 561 | 562 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 563 | 564 | md5sum_latest=`cat /vddos/auto-add/panel/directadmin/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 565 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 566 | 567 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 568 | echo $md5sum_new > /vddos/auto-add/panel/directadmin/apache/md5sum-latest.txt 569 | /usr/bin/vddos-autoadd list $listdomains 570 | fi 571 | exit 0 572 | fi 573 | 574 | if [ "$hostingpanel_webserver" = "nginx" ]; then 575 | 576 | listdomains="/vddos/auto-add/panel/directadmin/nginx/listdomains.txt" 577 | 578 | if [ ! -f /vddos/auto-add/panel/directadmin/nginx/md5sum-latest.txt ]; then 579 | mkdir -p /vddos/auto-add/panel/directadmin/nginx/ 580 | touch /vddos/auto-add/panel/directadmin/nginx/md5sum-latest.txt 581 | fi 582 | 583 | 584 | cat /usr/local/directadmin/data/users/*/nginx.conf| egrep '^(\s|\t)*server_name' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/;//g' > $listdomains 585 | 586 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 587 | 588 | md5sum_latest=`cat /vddos/auto-add/panel/directadmin/nginx/md5sum-latest.txt | awk 'NR==1 {print $1}'` 589 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 590 | 591 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 592 | echo $md5sum_new > /vddos/auto-add/panel/directadmin/nginx/md5sum-latest.txt 593 | /usr/bin/vddos-autoadd list $listdomains 594 | fi 595 | exit 0 596 | fi 597 | 598 | 599 | if [ "$hostingpanel_webserver" = "litespeed" ]; then 600 | echo 'This Features will be available soon!' 601 | fi 602 | fi 603 | 604 | ################################################################################# 605 | # WEBUZO 606 | if [ "$hostingpanel" = "webuzo" ]; then 607 | 608 | 609 | 610 | if [ "$hostingpanel_webserver" = "apache" ]; then 611 | if [ ! -f /usr/local/apps/apache/etc/conf.d/webuzoVH.conf ]; then 612 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/apps/apache/etc/conf.d/webuzoVH.conf Not Found!' 613 | exit 0 614 | fi 615 | listdomains="/vddos/auto-add/panel/webuzo/apache/listdomains.txt" 616 | 617 | if [ ! -f /vddos/auto-add/panel/webuzo/apache/md5sum-latest.txt ]; then 618 | mkdir -p /vddos/auto-add/panel/webuzo/apache/ 619 | touch /vddos/auto-add/panel/webuzo/apache/md5sum-latest.txt 620 | fi 621 | 622 | 623 | cat /usr/local/apps/apache/etc/conf.d/webuzoVH.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 624 | cat /usr/local/apps/apache/etc/conf.d/webuzoVH.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 625 | 626 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 627 | 628 | md5sum_latest=`cat /vddos/auto-add/panel/webuzo/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 629 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 630 | 631 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 632 | echo $md5sum_new > /vddos/auto-add/panel/webuzo/apache/md5sum-latest.txt 633 | /usr/bin/vddos-autoadd list $listdomains 634 | fi 635 | exit 0 636 | fi 637 | 638 | if [ "$hostingpanel_webserver" = "nginx" ]; then 639 | echo 'This Features will be available soon!' 640 | fi 641 | fi 642 | 643 | # aapanel 644 | if [ "$hostingpanel" = "aapanel" ]; then 645 | 646 | if [ ! -f /www/server/panel/main.pyc ]; then 647 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /www/server/panel/main.pyc Not Found!' 648 | exit 0 649 | fi 650 | 651 | if [ "$hostingpanel_webserver" = "apache" ]; then 652 | 653 | listdomains="/vddos/auto-add/panel/aapanel/apache/listdomains.txt" 654 | 655 | if [ ! -f /vddos/auto-add/panel/aapanel/apache/md5sum-latest.txt ]; then 656 | mkdir -p /vddos/auto-add/panel/aapanel/apache/ 657 | touch /vddos/auto-add/panel/aapanel/apache/md5sum-latest.txt 658 | fi 659 | 660 | 661 | cat /www/server/panel/vhost/apache/*.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 662 | 663 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 664 | 665 | md5sum_latest=`cat /vddos/auto-add/panel/aapanel/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 666 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 667 | 668 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 669 | echo $md5sum_new > /vddos/auto-add/panel/aapanel/apache/md5sum-latest.txt 670 | /usr/bin/vddos-autoadd list $listdomains 671 | fi 672 | exit 0 673 | fi 674 | 675 | if [ "$hostingpanel_webserver" = "nginx" ]; then 676 | 677 | listdomains="/vddos/auto-add/panel/aapanel/nginx/listdomains.txt" 678 | 679 | if [ ! -f /vddos/auto-add/panel/aapanel/nginx/md5sum-latest.txt ]; then 680 | mkdir -p /vddos/auto-add/panel/aapanel/nginx/ 681 | touch /vddos/auto-add/panel/aapanel/nginx/md5sum-latest.txt 682 | fi 683 | 684 | 685 | cat /www/server/panel/vhost/nginx/*.conf | egrep '^(\s|\t)*server_name' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/;//g' > $listdomains 686 | 687 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 688 | 689 | md5sum_latest=`cat /vddos/auto-add/panel/aapanel/nginx/md5sum-latest.txt | awk 'NR==1 {print $1}'` 690 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 691 | 692 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 693 | echo $md5sum_new > /vddos/auto-add/panel/aapanel/nginx/md5sum-latest.txt 694 | /usr/bin/vddos-autoadd list $listdomains 695 | fi 696 | exit 0 697 | fi 698 | fi 699 | 700 | 701 | # VIRTUALMIN 702 | if [ "$hostingpanel" = "virtualmin" ]; then 703 | 704 | if [ ! -f /usr/sbin/virtualmin ]; then 705 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/sbin/virtualmin Not Found!' 706 | exit 0 707 | fi 708 | 709 | if [ "$hostingpanel_webserver" = "apache" ]; then 710 | 711 | listdomains="/vddos/auto-add/panel/virtualmin/apache/listdomains.txt" 712 | 713 | if [ ! -f /vddos/auto-add/panel/virtualmin/apache/md5sum-latest.txt ]; then 714 | mkdir -p /vddos/auto-add/panel/virtualmin/apache/ 715 | touch /vddos/auto-add/panel/virtualmin/apache/md5sum-latest.txt 716 | fi 717 | 718 | 719 | cat /etc/httpd/conf/httpd.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 720 | cat /etc/httpd/conf/httpd.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 721 | 722 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 723 | 724 | md5sum_latest=`cat /vddos/auto-add/panel/virtualmin/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 725 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 726 | 727 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 728 | echo $md5sum_new > /vddos/auto-add/panel/virtualmin/apache/md5sum-latest.txt 729 | /usr/bin/vddos-autoadd list $listdomains 730 | fi 731 | exit 0 732 | fi 733 | 734 | if [ "$hostingpanel_webserver" = "nginx" ]; then 735 | echo 'This Features will be available soon!' 736 | fi 737 | fi 738 | 739 | # SENTORA 740 | if [ "$hostingpanel" = "sentora" ]; then 741 | 742 | if [ ! -f /etc/sentora/configs/apache/httpd-vhosts.conf ]; then 743 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /etc/sentora/configs/apache/httpd-vhosts.conf Not Found!' 744 | exit 0 745 | fi 746 | 747 | if [ "$hostingpanel_webserver" = "apache" ]; then 748 | 749 | listdomains="/vddos/auto-add/panel/sentora/apache/listdomains.txt" 750 | 751 | if [ ! -f /vddos/auto-add/panel/sentora/apache/md5sum-latest.txt ]; then 752 | mkdir -p /vddos/auto-add/panel/sentora/apache/ 753 | touch /vddos/auto-add/panel/sentora/apache/md5sum-latest.txt 754 | fi 755 | 756 | 757 | cat /etc/sentora/configs/apache/httpd-vhosts.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 758 | cat /etc/sentora/configs/apache/httpd-vhosts.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 759 | 760 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 761 | 762 | md5sum_latest=`cat /vddos/auto-add/panel/sentora/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 763 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 764 | 765 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 766 | echo $md5sum_new > /vddos/auto-add/panel/sentora/apache/md5sum-latest.txt 767 | /usr/bin/vddos-autoadd list $listdomains 768 | fi 769 | exit 0 770 | fi 771 | 772 | fi 773 | 774 | # KLOXO-MR 775 | if [ "$hostingpanel" = "kloxo-mr" ]; then 776 | 777 | if [ ! -d /usr/local/lxlabs/kloxo ]; then 778 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/lxlabs/kloxo Not Found!' 779 | exit 0 780 | fi 781 | 782 | if [ "$hostingpanel_webserver" = "apache" ]; then 783 | 784 | listdomains="/vddos/auto-add/panel/kloxo-mr/apache/listdomains.txt" 785 | 786 | if [ ! -f /vddos/auto-add/panel/kloxo-mr/apache/md5sum-latest.txt ]; then 787 | mkdir -p /vddos/auto-add/panel/kloxo-mr/apache/ 788 | touch /vddos/auto-add/panel/kloxo-mr/apache/md5sum-latest.txt 789 | fi 790 | 791 | 792 | cat /opt/configs/apache/conf/domains/*.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/\\//g' > $listdomains 793 | cat /opt/configs/apache/conf/domains/*.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/\\//g' >> $listdomains 794 | 795 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 796 | 797 | md5sum_latest=`cat /vddos/auto-add/panel/kloxo-mr/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 798 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 799 | 800 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 801 | echo $md5sum_new > /vddos/auto-add/panel/kloxo-mr/apache/md5sum-latest.txt 802 | /usr/bin/vddos-autoadd list $listdomains 803 | fi 804 | exit 0 805 | fi 806 | 807 | if [ "$hostingpanel_webserver" = "nginx" ]; then 808 | 809 | listdomains="/vddos/auto-add/panel/kloxo-mr/nginx/listdomains.txt" 810 | 811 | if [ ! -f /vddos/auto-add/panel/kloxo-mr/nginx/md5sum-latest.txt ]; then 812 | mkdir -p /vddos/auto-add/panel/kloxo-mr/nginx/ 813 | touch /vddos/auto-add/panel/kloxo-mr/nginx/md5sum-latest.txt 814 | fi 815 | 816 | 817 | cat /opt/configs/nginx/conf/domains/*.conf | egrep '^(\s|\t)*server_name' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/;//g' > $listdomains 818 | 819 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 820 | 821 | md5sum_latest=`cat /vddos/auto-add/panel/kloxo-mr/nginx/md5sum-latest.txt | awk 'NR==1 {print $1}'` 822 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 823 | 824 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 825 | echo $md5sum_new > /vddos/auto-add/panel/kloxo-mr/nginx/md5sum-latest.txt 826 | /usr/bin/vddos-autoadd list $listdomains 827 | fi 828 | exit 0 829 | fi 830 | 831 | fi 832 | 833 | 834 | 835 | 836 | if [ "$hostingpanel" = "x" ]; then 837 | exit 0 838 | fi 839 | 840 | 841 | fi 842 | 843 | 844 | 845 | 846 | 847 | ################################################################################# 848 | # Auto remove a domain: 849 | # vddos-autoadd [remove] your-domain.com 850 | 851 | if [ "$Command" = "remove" ]; then 852 | 853 | md5sum_website_conf_latest=`md5sum /vddos/conf.d/website.conf| awk 'NR==1 {print $1}'` 854 | 855 | Website="$2" 856 | Available=`awk -F: "/^$Website/" /vddos/conf.d/website.conf` 857 | if [ "$Available" = "" ]; then 858 | echo '- Remove-check: '$Website' is not available in /vddos/conf.d/website.conf ===> Skip!'|tee -a /vddos/auto-add/log.txt 859 | exit 0 860 | fi 861 | if [ "$Available" != "" ]; then 862 | sed -i "/^$Website.*/d" /vddos/conf.d/website.conf 863 | echo '+ Remove-Success: '$Website' auto remove from /vddos/conf.d/website.conf ===> Done!'|tee -a /vddos/auto-add/log.txt 864 | fi 865 | md5sum_website_conf_new=`md5sum /vddos/conf.d/website.conf| awk 'NR==1 {print $1}'` 866 | if [ "$md5sum_website_conf_latest" != "$md5sum_website_conf_new" ]; then 867 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 868 | fi 869 | fi 870 | 871 | 872 | ############################################################################# 873 | # Auto recheck/renew ssl again for all domains: 874 | # vddos-autoadd [ssl-again] 875 | 876 | if [ "$Command" = 'ssl-again' ]; then 877 | listdomains_source="/vddos/conf.d/website.conf" 878 | listdomains="/vddos/auto-add/ssl-again/listdomains.txt" 879 | if [ ! -f $listdomains_source ]; then 880 | showerror 881 | echo ''$listdomains_source' not found!' 882 | exit 0 883 | fi 884 | 885 | if [ ! -d /vddos/auto-add/ssl-again/ ]; then 886 | mkdir -p /vddos/auto-add/ssl-again/ 887 | fi 888 | 889 | md5sum_ssl_conf_latest=`ls -lah /vddos/ssl|md5sum | awk 'NR==1 {print $1}'` 890 | 891 | echo " 892 | [[[[[[[ `date` ]]]]]]] 893 | " > /vddos/auto-add/log.txt 894 | cat /vddos/conf.d/website.conf| grep .| grep "https" |grep "/vddos/ssl" | awk '{print $1}'| awk '!x[$0]++'|grep -v '^#'|grep -v '^*'|grep -v '^default'| awk '!x[$0]++' > $listdomains 895 | numberlinelistdomains=`cat $listdomains | grep . | wc -l` 896 | startlinenumber=1 897 | 898 | dong=$startlinenumber 899 | while [ $dong -le $numberlinelistdomains ] 900 | do 901 | Website=$(awk " NR == $dong " $listdomains); echo $Website 902 | 903 | if [ ! -f /vddos/ssl/"$Website".crt ] || [ ! -f /vddos/ssl/"$Website".pri ]; then 904 | echo '- SSL-check: '$Website' does not use Auto-SSL of vDDoS ===> Skip!'|tee -a /vddos/auto-add/log.txt 905 | fi 906 | 907 | if [ -f /vddos/ssl/"$Website".crt ] && [ -f /vddos/ssl/"$Website".pri ]; then 908 | if [ -f /letsencrypt/$Website.crt ] && [ -f /letsencrypt/$Website.pri ]; then 909 | echo '- SSL-check: '$Website' is already using Auto-SSL Certificates of vDDoS ===> Skip!'|tee -a /vddos/auto-add/log.txt 910 | fi 911 | 912 | if [ ! -f /letsencrypt/$Website.crt ] || [ ! -f /letsencrypt/$Website.pri ]; then 913 | echo '- Found: '$Website' is still using Self-signed Certificates ===> Re-request SSL-again!'|tee -a /vddos/auto-add/log.txt 914 | 915 | random=`cat /dev/urandom | tr -cd 'A-Z0-9' | head -c 5` 916 | echo $random > /vddos/letsencrypt/.well-known/acme-challenge/$Website.txt 917 | randomchecknonwww=`curl -s -L http://$Website/.well-known/acme-challenge/$Website.txt` 918 | 919 | rm -f /vddos/letsencrypt/.well-known/acme-challenge/$Website.txt 920 | if [ "$randomchecknonwww" = "$random" ]; then 921 | mkdir -p /letsencrypt/ 922 | /root/.acme.sh/acme.sh --issue -d $Website -w /vddos/letsencrypt --keylength ec-256 --key-file /letsencrypt/$Website.pri --fullchain-file /letsencrypt/$Website.crt >>/vddos/auto-add/log.txt 2>&1 923 | if [ -f /letsencrypt/"$Website".crt ]; then 924 | rm -rf /vddos/ssl/"$Website".crt 925 | rm -rf /vddos/ssl/"$Website".pri 926 | ln -s /letsencrypt/$Website.crt /vddos/ssl/$Website.crt 927 | ln -s /letsencrypt/$Website.pri /vddos/ssl/$Website.pri 928 | fi 929 | 930 | if [ ! -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 931 | rm -rf /vddos/ssl/"$Website".crt 932 | rm -rf /vddos/ssl/"$Website".pri 933 | ln -s /root/.acme.sh/"$Website"_ecc/fullchain.cer /vddos/ssl/$Website.crt 934 | ln -s /root/.acme.sh/"$Website"_ecc/"$Website".key /vddos/ssl/$Website.pri 935 | fi 936 | fi 937 | 938 | if [ "$randomchecknonwww" != "$random" ] || [ ! -f /vddos/ssl/"$Website".crt ]; then 939 | openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /vddos/ssl/$Website.pri -out /vddos/ssl/$Website.crt -subj "/C=US/ST=$Website/L=$Website/O=$Website/OU=vddos.voduy.com/CN=$Website" >>/vddos/auto-add/log.txt 2>&1 940 | chmod -R 750 /vddos/ssl/$Website.* 941 | echo '+ New-Success: '$Website' is still using self-certificate ===> Unable Re-request SSL-again!'|tee -a /vddos/auto-add/log.txt 942 | fi 943 | 944 | if [ -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 945 | echo '+ New-Success: '$Website' Re-request SSL-again ===> Done!'|tee -a /vddos/auto-add/log.txt 946 | fi 947 | fi 948 | fi 949 | dong=$((dong + 1)) 950 | done 951 | 952 | md5sum_ssl_conf_new=`ls -lah /vddos/ssl|md5sum | awk 'NR==1 {print $1}'` 953 | if [ "$md5sum_ssl_conf_latest" != "$md5sum_ssl_conf_new" ]; then 954 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 955 | fi 956 | checklog 957 | exit 0 958 | fi 959 | 960 | 961 | 962 | 963 | 964 | 965 | 966 | 967 | 968 | -------------------------------------------------------------------------------- /vddos-autoadd.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Command: 3 | # chmod 700 /vddos/auto-add/vddos-autoadd.sh 4 | # ln -s /vddos/auto-add/vddos-autoadd.sh /usr/bin/vddos-autoadd 5 | # chmod 700 /vddos/auto-add/vddos-add.sh 6 | # ln -s /vddos/auto-add/vddos-add.sh /usr/bin/vddos-add 7 | 8 | # Auto add for a domain: 9 | # vddos-autoadd [domain] your-domain.com 10 | # OR: 11 | # vddos-autoadd [domain] Website="your-domain.com" Cache="no" Security="no" HTTP_Listen="http://0.0.0.0:80" HTTPS_Listen="https://0.0.0.0:443" HTTP_Backend="http://127.0.0.1:8080" HTTPS_Backend="https://127.0.0.1:8443" 12 | 13 | # Auto get/add domains from a list file domains in Local Disk: 14 | # vddos-autoadd [list] /etc/listdomains.txt 15 | 16 | # Auto get/add domains from a list file domains on HTTP server public: 17 | # vddos-autoadd [http] http://private.domain.com/add-this/listdomains.txt 18 | 19 | # Auto get/add domains from Local Web Server: 20 | # vddos-autoadd [webserver] [apache/nginx] 21 | 22 | # Auto get/add domains from Local Hosting Panel: 23 | # vddos-autoadd [panel] [plesk] [apache/litespeed] 24 | # vddos-autoadd [panel] [cpanel] [apache/litespeed] 25 | # vddos-autoadd [panel] [directadmin] [apache/nginx/litespeed] 26 | # vddos-autoadd [panel] [cwp] [apache/litespeed] 27 | # vddos-autoadd [panel] [vestacp] [apache/nginx] 28 | # vddos-autoadd [panel] [cyberpanel] [openlitespeed] 29 | # vddos-autoadd [panel] [webuzo] [apache/nginx] 30 | # vddos-autoadd [panel] [aapanel] [apache/nginx] 31 | # vddos-autoadd [panel] [virtualmin] [apache/nginx] 32 | # vddos-autoadd [panel] [kloxo-mr] [apache/nginx] 33 | # vddos-autoadd [panel] [sentora] [apache] 34 | 35 | # Auto remove a domain: 36 | # vddos-autoadd [remove] your-domain.com 37 | 38 | # Auto recheck/renew ssl again for all domains: 39 | # vddos-autoadd [ssl-again] 40 | # Auto recheck/renew ssl again for a domain: 41 | # vddos-autoadd [ssl-again] your-domain.com 42 | 43 | ################################################################################# 44 | 45 | if [ ! -f /usr/bin/vddos-autoadd ] || [ ! -f /usr/bin/vddos-add ]; then 46 | chmod 700 /vddos/auto-add/*.sh >/dev/null 2>&1 47 | ln -s /vddos/auto-add/vddos-autoadd.sh /usr/bin/vddos-autoadd >/dev/null 2>&1 48 | ln -s /vddos/auto-add/vddos-add.sh /usr/bin/vddos-add >/dev/null 2>&1 49 | fi 50 | 51 | if [ ! -f /vddos/conf.d/website.conf ] || [ ! -f /usr/bin/vddos ]; then 52 | echo 'ERROR! 53 | 54 | /vddos/conf.d/website.conf not found! 55 | Please Install vDDoS Proxy Protection!'|tee -a /vddos/auto-add/log.txt 56 | exit 0 57 | fi 58 | 59 | Command="$1" 60 | 61 | function showerror() 62 | { 63 | echo ' 64 | ERROR! 65 | 66 | Please enter the correct syntax for the command: ['$Command'] ... 67 | 68 | # Auto add for a domain: 69 | vddos-autoadd [domain] your-domain.com 70 | # OR: 71 | vddos-autoadd [domain] Website="your-domain.com" Cache="no" Security="no" HTTP_Listen="http://0.0.0.0:80" HTTPS_Listen="https://0.0.0.0:443" HTTP_Backend="http://127.0.0.1:8080" HTTPS_Backend="https://127.0.0.1:8443" 72 | 73 | # Auto get/add domains from a list file domains in Local Disk: 74 | vddos-autoadd [list] /etc/listdomains.txt 75 | 76 | # Auto get/add domains from a list file domains on HTTP server public: 77 | vddos-autoadd [http] http://private.domain.com/add-this/listdomains.txt 78 | 79 | # Auto get/add domains from Local Web Server: 80 | vddos-autoadd [webserver] [apache/nginx] 81 | 82 | # Auto get/add domains from Local Hosting Panel: 83 | vddos-autoadd [panel] [plesk] [apache/litespeed] 84 | vddos-autoadd [panel] [cpanel] [apache/litespeed] 85 | vddos-autoadd [panel] [directadmin] [apache/nginx/litespeed] 86 | vddos-autoadd [panel] [cwp] [apache/litespeed] 87 | vddos-autoadd [panel] [vestacp] [apache/nginx] 88 | vddos-autoadd [panel] [cyberpanel] [openlitespeed] 89 | vddos-autoadd [panel] [webuzo] [apache/nginx] 90 | vddos-autoadd [panel] [aapanel] [apache/nginx] 91 | vddos-autoadd [panel] [virtualmin] [apache/nginx] 92 | vddos-autoadd [panel] [kloxo-mr] [apache/nginx] 93 | vddos-autoadd [panel] [sentora] [apache] 94 | 95 | # Auto remove a domain: 96 | vddos-autoadd [remove] your-domain.com 97 | 98 | # Auto recheck/renew ssl again for all domains: 99 | vddos-autoadd [ssl-again] 100 | # Auto recheck/renew ssl again for a domain: 101 | vddos-autoadd [ssl-again] your-domain.com 102 | 103 | '|tee -a /vddos/auto-add/log.txt 104 | return 0 105 | } 106 | function checklog() 107 | { 108 | echo ' 109 | (Check logs at /vddos/auto-add/log.txt) 110 | ' 111 | return 0 112 | } 113 | 114 | 115 | if [ "$1" = "" ]; then 116 | showerror 117 | exit 0 118 | fi 119 | 120 | if [ "$1" != "ssl-again" ] && [ "$2" = "" ]; then 121 | showerror 122 | exit 0 123 | fi 124 | 125 | if [ "$Command" != "domain" ] && [ "$Command" != "list" ] && [ "$Command" != "http" ] && [ "$Command" != "panel" ] && [ "$Command" != "webserver" ] && [ "$Command" != "remove" ] && [ "$Command" != 'ssl-again' ]; then 126 | showerror 127 | exit 0 128 | 129 | fi 130 | 131 | SSLmode=`awk -F: '/^SSL/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 132 | DNS_sleep=`awk -F: '/^DNS_sleep/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 133 | DNS_alias_mode=`awk -F: '/^DNS_alias_mode/' /vddos/auto-add/setting.conf | awk 'NR==1 {print $2}'` ; 134 | if [ "$SSLmode" = "Auto" ]; then 135 | SSLmode=auto 136 | fi 137 | 138 | ################################################################################# 139 | # Auto add for a domain: 140 | # vddos-autoadd [domain] your-domain.com 141 | # OR: 142 | # vddos-autoadd [domain] Website="your-domain.com" Cache="no" Security="no" HTTP_Listen="http://0.0.0.0:80" HTTPS_Listen="https://0.0.0.0:443" HTTP_Backend="http://127.0.0.1:8080" HTTPS_Backend="https://127.0.0.1:8443" 143 | if [ "$Command" = "domain" ]; then 144 | 145 | md5sum_website_conf_latest=`md5sum /vddos/conf.d/website.conf| awk 'NR==1 {print $1}'` 146 | 147 | Issetting="$3" ; 148 | if [ "$Issetting" != "" ] && [ "$1" != "" ] && [ "$2" != "" ] && [ "$3" != "" ] && [ "$4" != "" ] && [ "$5" != "" ] && [ "$6" != "" ] && [ "$7" != "" ] && [ "$8" != "" ]; then 149 | /usr/bin/vddos-add $2 $3 $4 $5 $6 $7 $8 150 | fi 151 | if [ "$Issetting" = "" ]; then 152 | /usr/bin/vddos-add "$2" 153 | fi 154 | 155 | md5sum_website_conf_new=`md5sum /vddos/conf.d/website.conf| awk 'NR==1 {print $1}'` 156 | if [ "$md5sum_website_conf_latest" != "$md5sum_website_conf_new" ]; then 157 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 158 | fi 159 | fi 160 | 161 | 162 | ################################################################################# 163 | # Auto get/add domains from a list file domains in Local Disk: 164 | # vddos-autoadd [list] /etc/listdomains.txt 165 | if [ "$Command" = "list" ]; then 166 | listdomains_source="$2" 167 | listdomains="/vddos/auto-add/list/listdomains.txt" 168 | if [ ! -f $listdomains_source ]; then 169 | showerror 170 | echo ''$listdomains_source' not found!' 171 | exit 0 172 | fi 173 | 174 | if [ ! -f /vddos/auto-add/list/md5sum-latest.txt ]; then 175 | mkdir -p /vddos/auto-add/list/ 176 | touch /vddos/auto-add/list/md5sum-latest.txt 177 | fi 178 | 179 | md5sum_latest=`cat /vddos/auto-add/list/md5sum-latest.txt | awk 'NR==1 {print $1}'` 180 | md5sum_new=`cat $listdomains_source | md5sum | awk 'NR==1 {print $1}'` 181 | md5sum_website_conf_latest=`cat /vddos/conf.d/website.conf| grep . | awk '!x[$0]++'| md5sum | awk 'NR==1 {print $1}'` 182 | 183 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 184 | 185 | echo $md5sum_new > /vddos/auto-add/list/md5sum-latest.txt 186 | echo " 187 | [[[[[[[ `date` ]]]]]]] 188 | " > /vddos/auto-add/log.txt 189 | 190 | if [ "$SSLmode" != "auto" ]; then 191 | echo "`cat $listdomains_source | grep . | awk '!x[$0]++' | grep -v '^phpmyadmin.'| grep -v '^roundcube.'| grep -v '^mail.'| grep -v '^webmail.'| grep -v '^www.'`" > $listdomains 192 | else 193 | echo "`cat $listdomains_source | grep . | awk '!x[$0]++'`" > $listdomains 194 | fi 195 | numberlinelistdomains=`cat $listdomains | grep . | wc -l` 196 | startlinenumber=1 197 | 198 | dong=$startlinenumber 199 | while [ $dong -le $numberlinelistdomains ] 200 | do 201 | Website=$(awk " NR == $dong " $listdomains) 202 | Available=`awk -F: "/^$Website/" /vddos/conf.d/website.conf` 203 | 204 | if [ "$Available" != "" ]; then 205 | echo '- Re-check: '$Website' is already in /vddos/conf.d/website.conf ===> Skip!'|tee -a /vddos/auto-add/log.txt 206 | fi 207 | if [ "$Available" = "" ]; then 208 | echo ' Found '$Website' ['$dong'/'$numberlinelistdomains'] in '$listdomains_source':'|tee -a /vddos/auto-add/log.txt 209 | /usr/bin/vddos-add "$Website" 210 | fi 211 | dong=$((dong + 1)) 212 | done 213 | fi 214 | md5sum_website_conf_new=`cat /vddos/conf.d/website.conf| grep . | awk '!x[$0]++'| md5sum | awk 'NR==1 {print $1}'` 215 | if [ "$md5sum_website_conf_latest" != "$md5sum_website_conf_new" ]; then 216 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 217 | fi 218 | checklog 219 | exit 0 220 | fi 221 | 222 | ################################################################################# 223 | # Auto get/add domains from a list file domains on HTTP server public: 224 | # vddos-autoadd [http] http://private.domain.com/add-this/listdomains.txt 225 | if [ "$Command" = "http" ]; then 226 | httplistdomains="$2" 227 | listdomains="/vddos/auto-add/http/httplistdomains.txt" 228 | if [ ! -f /vddos/auto-add/http/md5sum-latest.txt ]; then 229 | mkdir -p /vddos/auto-add/http/ 230 | touch /vddos/auto-add/http/md5sum-latest.txt 231 | fi 232 | rm -f /vddos/auto-add/http/httplistdomains.txt 233 | curl --silent -L $httplistdomains -o $listdomains 234 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 235 | 236 | md5sum_latest=`cat /vddos/auto-add/http/md5sum-latest.txt | awk 'NR==1 {print $1}'` 237 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 238 | 239 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 240 | echo $md5sum_new > /vddos/auto-add/http/md5sum-latest.txt 241 | /usr/bin/vddos-autoadd list $listdomains 242 | fi 243 | exit 0 244 | fi 245 | 246 | 247 | ################################################################################# 248 | # Auto get/add domains from Local Web Server: 249 | # vddos-autoadd [webserver] [apache/nginx] 250 | if [ "$Command" = "webserver" ]; then 251 | webserver="$2" 252 | 253 | if [ "$webserver" = "apache" ]; then 254 | if [ ! -f /usr/sbin/httpd ]; then 255 | echo 'Unrecognized Web Server: '$webserver' - /usr/sbin/httpd Not Found!' 256 | exit 0 257 | fi 258 | listdomains="/vddos/auto-add/webserver/apache/listdomains.txt" 259 | 260 | if [ ! -f /vddos/auto-add/webserver/apache/md5sum-latest.txt ]; then 261 | mkdir -p /vddos/auto-add/webserver/apache/ 262 | touch /vddos/auto-add/webserver/apache/md5sum-latest.txt 263 | fi 264 | 265 | /usr/sbin/httpd -S| grep namevhost | awk '{print $4}'| sed -e 's/default//g'| sed -e 's/alias//g'| sed -e 's/_//g'| sed -e 's/localhost//g' > $listdomains 266 | /usr/sbin/httpd -S| grep alias | awk '{print $2}'| sed -e 's/default//g'| sed -e 's/alias//g'| sed -e 's/_//g'| sed -e 's/localhost//g' >> $listdomains 267 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 268 | 269 | md5sum_latest=`cat /vddos/auto-add/webserver/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 270 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 271 | 272 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 273 | echo $md5sum_new > /vddos/auto-add/webserver/apache/md5sum-latest.txt 274 | /usr/bin/vddos-autoadd list $listdomains 275 | fi 276 | exit 0 277 | fi 278 | 279 | 280 | if [ "$webserver" = "nginx" ]; then 281 | nginxlocation=`which nginx` 282 | if [ ! -f $nginxlocation ]; then 283 | echo 'Unrecognized Web Server: '$webserver' - '$nginxlocation' Not Found!' 284 | exit 0 285 | fi 286 | listdomains="/vddos/auto-add/webserver/nginx/listdomains.txt" 287 | 288 | if [ ! -f /vddos/auto-add/webserver/nginx/md5sum-latest.txt ]; then 289 | mkdir -p /vddos/auto-add/webserver/nginx/ 290 | touch /vddos/auto-add/webserver/nginx/md5sum-latest.txt 291 | fi 292 | 293 | nginx -T | sed -r -e 's/[ \t]*$//' -e 's/^[ \t]*//' -e 's/^#.*$//' -e 's/[ \t]*#.*$//' -e '/^$/d' | sed -e ':a;N;$!ba;s/\([^;\{\}]\)\n/\1 /g' | grep -P 'server_name[ \t]' | grep -v '\$' | grep '\.' | sed -r -e 's/(\S)[ \t]+(\S)/\1\n\2/g' -e 's/[\t ]//g' -e 's/;//' -e 's/server_name//' | sort | uniq | xargs -L1 > $listdomains 294 | 295 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 296 | 297 | md5sum_latest=`cat /vddos/auto-add/webserver/nginx/md5sum-latest.txt | awk 'NR==1 {print $1}'` 298 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 299 | 300 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 301 | echo $md5sum_new > /vddos/auto-add/webserver/nginx/md5sum-latest.txt 302 | /usr/bin/vddos-autoadd list $listdomains 303 | fi 304 | exit 0 305 | fi 306 | 307 | 308 | fi 309 | 310 | ################################################################################ 311 | # Auto get/add domains from Local Hosting Panel: 312 | 313 | 314 | if [ "$Command" = "panel" ]; then 315 | hostingpanel="$2" 316 | hostingpanel_webserver="$3" 317 | 318 | echo " 319 | [[[[[[[ `date` ]]]]]]] 320 | " >> /vddos/auto-add/log.txt 321 | 322 | 323 | 324 | 325 | if [ "$hostingpanel" != "vestacp" ] && [ "$hostingpanel" != "plesk" ] && [ "$hostingpanel" != "cpanel" ] && [ "$hostingpanel" != "cyberpanel" ] && [ "$hostingpanel" != "directadmin" ] && [ "$hostingpanel" != "cwp" ] && [ "$hostingpanel" != "kloxo-mr" ] && [ "$hostingpanel" != "sentora" ] && [ "$hostingpanel" != "virtualmin" ] && [ "$hostingpanel" != "webuzo" ] && [ "$hostingpanel" != "aapanel" ]; then 326 | showerror 327 | exit 0 328 | fi 329 | if [ "$hostingpanel_webserver" != "" ] && [ "$hostingpanel_webserver" != "apache" ] && [ "$hostingpanel_webserver" != "nginx" ] && [ "$hostingpanel_webserver" != "openlitespeed" ] && [ "$hostingpanel_webserver" != "litespeed" ]; then 330 | showerror 331 | exit 0 332 | fi 333 | 334 | 335 | 336 | 337 | ################################################################################# 338 | # VESTACP 339 | if [ "$hostingpanel" = "vestacp" ]; then 340 | if [ ! -f /usr/local/vesta/conf/vesta.conf ]; then 341 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/vesta/conf/vesta.conf Not Found!' 342 | exit 0 343 | fi 344 | if [ "$hostingpanel_webserver" = "apache" ]; then 345 | 346 | listdomains="/vddos/auto-add/panel/vestacp/apache/listdomains.txt" 347 | 348 | if [ ! -f /vddos/auto-add/panel/vestacp/apache/md5sum-latest.txt ]; then 349 | mkdir -p /vddos/auto-add/panel/vestacp/apache/ 350 | touch /vddos/auto-add/panel/vestacp/apache/md5sum-latest.txt 351 | fi 352 | 353 | 354 | cat /home/*/conf/web/*httpd.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 355 | cat /home/*/conf/web/*httpd.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 356 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 357 | 358 | md5sum_latest=`cat /vddos/auto-add/panel/vestacp/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 359 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 360 | 361 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 362 | echo $md5sum_new > /vddos/auto-add/panel/vestacp/apache/md5sum-latest.txt 363 | /usr/bin/vddos-autoadd list $listdomains 364 | fi 365 | exit 0 366 | fi 367 | 368 | if [ "$hostingpanel_webserver" = "nginx" ]; then 369 | 370 | listdomains="/vddos/auto-add/panel/vestacp/nginx/listdomains.txt" 371 | 372 | if [ ! -f /vddos/auto-add/panel/vestacp/nginx/md5sum-latest.txt ]; then 373 | mkdir -p /vddos/auto-add/panel/vestacp/nginx/ 374 | touch /vddos/auto-add/panel/vestacp/nginx/md5sum-latest.txt 375 | fi 376 | 377 | 378 | cat /home/*/conf/web/*nginx.conf | egrep '^(\s|\t)*server_name'| awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/;//g' > $listdomains 379 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 380 | 381 | md5sum_latest=`cat /vddos/auto-add/panel/vestacp/nginx/md5sum-latest.txt | awk 'NR==1 {print $1}'` 382 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 383 | 384 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 385 | echo $md5sum_new > /vddos/auto-add/panel/vestacp/nginx/md5sum-latest.txt 386 | /usr/bin/vddos-autoadd list $listdomains 387 | fi 388 | exit 0 389 | fi 390 | 391 | 392 | exit 0 393 | fi 394 | 395 | 396 | 397 | ################################################################################# 398 | # CYBERPANEL 399 | if [ "$hostingpanel" = "cyberpanel" ]; then 400 | 401 | if [ ! -f /usr/local/lsws/conf/httpd_config.conf ]; then 402 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/lsws/conf/httpd_config.conf Not Found!' 403 | exit 0 404 | fi 405 | 406 | if [ "$hostingpanel_webserver" = "openlitespeed" ]; then 407 | 408 | listdomains="/vddos/auto-add/panel/cyberpanel/openlitespeed/listdomains.txt" 409 | 410 | if [ ! -f /vddos/auto-add/panel/cyberpanel/openlitespeed/md5sum-latest.txt ]; then 411 | mkdir -p /vddos/auto-add/panel/cyberpanel/openlitespeed/ 412 | touch /vddos/auto-add/panel/cyberpanel/openlitespeed/md5sum-latest.txt 413 | fi 414 | 415 | 416 | cat /usr/local/lsws/conf/httpd_config.conf|grep 'map'| awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/,//g' > $listdomains 417 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 418 | 419 | md5sum_latest=`cat /vddos/auto-add/panel/cyberpanel/openlitespeed/md5sum-latest.txt | awk 'NR==1 {print $1}'` 420 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 421 | 422 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 423 | echo $md5sum_new > /vddos/auto-add/panel/cyberpanel/openlitespeed/md5sum-latest.txt 424 | /usr/bin/vddos-autoadd list $listdomains 425 | fi 426 | exit 0 427 | fi 428 | 429 | 430 | fi 431 | 432 | 433 | 434 | ################################################################################# 435 | # CWP 436 | if [ "$hostingpanel" = "cwp" ]; then 437 | 438 | if [ "$hostingpanel_webserver" = "apache" ]; then 439 | 440 | if [ ! -f /usr/local/apache/conf.d/vhosts.conf ]; then 441 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/apache/conf.d/vhosts.conf Not Found!' 442 | exit 0 443 | fi 444 | 445 | listdomains="/vddos/auto-add/panel/cwp/apache/listdomains.txt" 446 | 447 | if [ ! -f /vddos/auto-add/panel/cwp/apache/md5sum-latest.txt ]; then 448 | mkdir -p /vddos/auto-add/panel/cwp/apache/ 449 | touch /vddos/auto-add/panel/cwp/apache/md5sum-latest.txt 450 | fi 451 | 452 | 453 | cat /usr/local/apache/conf.d/vhosts.conf| egrep '^(\s|\t)*ServerName'| awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 454 | cat /usr/local/apache/conf.d/vhosts.conf| egrep '^(\s|\t)*ServerAlias'| awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 455 | 456 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 457 | 458 | md5sum_latest=`cat /vddos/auto-add/panel/cwp/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 459 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 460 | 461 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 462 | echo $md5sum_new > /vddos/auto-add/panel/cwp/apache/md5sum-latest.txt 463 | /usr/bin/vddos-autoadd list $listdomains 464 | fi 465 | exit 0 466 | fi 467 | 468 | if [ "$hostingpanel_webserver" = "litespeed" ]; then 469 | echo 'This Features will be available soon!' 470 | fi 471 | 472 | fi 473 | 474 | ################################################################################# 475 | # WHM/CPANEL 476 | if [ "$hostingpanel" = "cpanel" ]; then 477 | 478 | if [ ! -f /etc/userdatadomains ]; then 479 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /etc/userdatadomains Not Found!' 480 | exit 0 481 | fi 482 | 483 | if [ "$hostingpanel_webserver" = "apache" ]; then 484 | 485 | listdomains="/vddos/auto-add/panel/cpanel/apache/listdomains.txt" 486 | 487 | if [ ! -f /vddos/auto-add/panel/cpanel/apache/md5sum-latest.txt ]; then 488 | mkdir -p /vddos/auto-add/panel/cpanel/apache/ 489 | touch /vddos/auto-add/panel/cpanel/apache/md5sum-latest.txt 490 | fi 491 | 492 | cat /etc/userdatadomains| awk '{print $1}'| sed -e 's/://g' > $listdomains 493 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 494 | 495 | md5sum_latest=`cat /vddos/auto-add/panel/cpanel/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 496 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 497 | 498 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 499 | echo $md5sum_new > /vddos/auto-add/panel/cpanel/apache/md5sum-latest.txt 500 | /usr/bin/vddos-autoadd list $listdomains 501 | fi 502 | exit 0 503 | fi 504 | 505 | if [ "$hostingpanel_webserver" = "litespeed" ]; then 506 | echo 'This Features will be available soon!' 507 | fi 508 | 509 | 510 | fi 511 | 512 | 513 | ################################################################################# 514 | # PLESK 515 | if [ "$hostingpanel" = "plesk" ]; then 516 | 517 | if [ ! -f /usr/sbin/plesk ]; then 518 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/sbin/plesk Not Found!' 519 | exit 0 520 | fi 521 | 522 | if [ "$hostingpanel_webserver" = "apache" ]; then 523 | 524 | listdomains="/vddos/auto-add/panel/plesk/apache/listdomains.txt" 525 | 526 | if [ ! -f /vddos/auto-add/panel/plesk/apache/md5sum-latest.txt ]; then 527 | mkdir -p /vddos/auto-add/panel/plesk/apache/ 528 | touch /vddos/auto-add/panel/plesk/apache/md5sum-latest.txt 529 | fi 530 | 531 | 532 | cat /var/www/vhosts/system/*/conf/httpd.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/\"//g' | sed -e 's/:80//g'|sed -e 's/:443//g' > $listdomains 533 | cat /var/www/vhosts/system/*/conf/httpd.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/\"//g'| sed -e 's/ipv4/webmail/g' >> $listdomains 534 | 535 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 536 | 537 | md5sum_latest=`cat /vddos/auto-add/panel/plesk/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 538 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 539 | 540 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 541 | echo $md5sum_new > /vddos/auto-add/panel/plesk/apache/md5sum-latest.txt 542 | /usr/bin/vddos-autoadd list $listdomains 543 | fi 544 | exit 0 545 | fi 546 | 547 | if [ "$hostingpanel_webserver" = "litespeed" ]; then 548 | echo 'This Features will be available soon!' 549 | fi 550 | fi 551 | 552 | 553 | ################################################################################# 554 | # DIRECTADMIN 555 | if [ "$hostingpanel" = "directadmin" ]; then 556 | 557 | if [ ! -f /usr/local/directadmin/directadmin ]; then 558 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/directadmin/directadmin Not Found!' 559 | exit 0 560 | fi 561 | 562 | if [ "$hostingpanel_webserver" = "apache" ]; then 563 | 564 | listdomains="/vddos/auto-add/panel/directadmin/apache/listdomains.txt" 565 | 566 | if [ ! -f /vddos/auto-add/panel/directadmin/apache/md5sum-latest.txt ]; then 567 | mkdir -p /vddos/auto-add/panel/directadmin/apache/ 568 | touch /vddos/auto-add/panel/directadmin/apache/md5sum-latest.txt 569 | fi 570 | 571 | 572 | cat /usr/local/directadmin/data/users/*/httpd.conf| egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 573 | cat /usr/local/directadmin/data/users/*/httpd.conf| egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 574 | 575 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 576 | 577 | md5sum_latest=`cat /vddos/auto-add/panel/directadmin/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 578 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 579 | 580 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 581 | echo $md5sum_new > /vddos/auto-add/panel/directadmin/apache/md5sum-latest.txt 582 | /usr/bin/vddos-autoadd list $listdomains 583 | fi 584 | exit 0 585 | fi 586 | 587 | if [ "$hostingpanel_webserver" = "nginx" ]; then 588 | 589 | listdomains="/vddos/auto-add/panel/directadmin/nginx/listdomains.txt" 590 | 591 | if [ ! -f /vddos/auto-add/panel/directadmin/nginx/md5sum-latest.txt ]; then 592 | mkdir -p /vddos/auto-add/panel/directadmin/nginx/ 593 | touch /vddos/auto-add/panel/directadmin/nginx/md5sum-latest.txt 594 | fi 595 | 596 | 597 | cat /usr/local/directadmin/data/users/*/nginx.conf| egrep '^(\s|\t)*server_name' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/;//g' > $listdomains 598 | 599 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 600 | 601 | md5sum_latest=`cat /vddos/auto-add/panel/directadmin/nginx/md5sum-latest.txt | awk 'NR==1 {print $1}'` 602 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 603 | 604 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 605 | echo $md5sum_new > /vddos/auto-add/panel/directadmin/nginx/md5sum-latest.txt 606 | /usr/bin/vddos-autoadd list $listdomains 607 | fi 608 | exit 0 609 | fi 610 | 611 | 612 | if [ "$hostingpanel_webserver" = "litespeed" ]; then 613 | echo 'This Features will be available soon!' 614 | fi 615 | fi 616 | 617 | ################################################################################# 618 | # WEBUZO 619 | if [ "$hostingpanel" = "webuzo" ]; then 620 | 621 | 622 | 623 | if [ "$hostingpanel_webserver" = "apache" ]; then 624 | if [ ! -f /usr/local/apps/apache/etc/conf.d/webuzoVH.conf ]; then 625 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/apps/apache/etc/conf.d/webuzoVH.conf Not Found!' 626 | exit 0 627 | fi 628 | listdomains="/vddos/auto-add/panel/webuzo/apache/listdomains.txt" 629 | 630 | if [ ! -f /vddos/auto-add/panel/webuzo/apache/md5sum-latest.txt ]; then 631 | mkdir -p /vddos/auto-add/panel/webuzo/apache/ 632 | touch /vddos/auto-add/panel/webuzo/apache/md5sum-latest.txt 633 | fi 634 | 635 | 636 | cat /usr/local/apps/apache/etc/conf.d/webuzoVH.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 637 | cat /usr/local/apps/apache/etc/conf.d/webuzoVH.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 638 | 639 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 640 | 641 | md5sum_latest=`cat /vddos/auto-add/panel/webuzo/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 642 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 643 | 644 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 645 | echo $md5sum_new > /vddos/auto-add/panel/webuzo/apache/md5sum-latest.txt 646 | /usr/bin/vddos-autoadd list $listdomains 647 | fi 648 | exit 0 649 | fi 650 | 651 | if [ "$hostingpanel_webserver" = "nginx" ]; then 652 | echo 'This Features will be available soon!' 653 | fi 654 | fi 655 | 656 | # aapanel 657 | if [ "$hostingpanel" = "aapanel" ]; then 658 | 659 | if [ ! -f /www/server/panel/main.pyc ]; then 660 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /www/server/panel/main.pyc Not Found!' 661 | exit 0 662 | fi 663 | 664 | if [ "$hostingpanel_webserver" = "apache" ]; then 665 | 666 | listdomains="/vddos/auto-add/panel/aapanel/apache/listdomains.txt" 667 | 668 | if [ ! -f /vddos/auto-add/panel/aapanel/apache/md5sum-latest.txt ]; then 669 | mkdir -p /vddos/auto-add/panel/aapanel/apache/ 670 | touch /vddos/auto-add/panel/aapanel/apache/md5sum-latest.txt 671 | fi 672 | 673 | 674 | cat /www/server/panel/vhost/apache/*.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 675 | 676 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 677 | 678 | md5sum_latest=`cat /vddos/auto-add/panel/aapanel/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 679 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 680 | 681 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 682 | echo $md5sum_new > /vddos/auto-add/panel/aapanel/apache/md5sum-latest.txt 683 | /usr/bin/vddos-autoadd list $listdomains 684 | fi 685 | exit 0 686 | fi 687 | 688 | if [ "$hostingpanel_webserver" = "nginx" ]; then 689 | 690 | listdomains="/vddos/auto-add/panel/aapanel/nginx/listdomains.txt" 691 | 692 | if [ ! -f /vddos/auto-add/panel/aapanel/nginx/md5sum-latest.txt ]; then 693 | mkdir -p /vddos/auto-add/panel/aapanel/nginx/ 694 | touch /vddos/auto-add/panel/aapanel/nginx/md5sum-latest.txt 695 | fi 696 | 697 | 698 | cat /www/server/panel/vhost/nginx/*.conf | egrep '^(\s|\t)*server_name' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/;//g' > $listdomains 699 | 700 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 701 | 702 | md5sum_latest=`cat /vddos/auto-add/panel/aapanel/nginx/md5sum-latest.txt | awk 'NR==1 {print $1}'` 703 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 704 | 705 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 706 | echo $md5sum_new > /vddos/auto-add/panel/aapanel/nginx/md5sum-latest.txt 707 | /usr/bin/vddos-autoadd list $listdomains 708 | fi 709 | exit 0 710 | fi 711 | fi 712 | 713 | 714 | # VIRTUALMIN 715 | if [ "$hostingpanel" = "virtualmin" ]; then 716 | 717 | if [ ! -f /usr/sbin/virtualmin ]; then 718 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/sbin/virtualmin Not Found!' 719 | exit 0 720 | fi 721 | 722 | if [ "$hostingpanel_webserver" = "apache" ]; then 723 | 724 | listdomains="/vddos/auto-add/panel/virtualmin/apache/listdomains.txt" 725 | 726 | if [ ! -f /vddos/auto-add/panel/virtualmin/apache/md5sum-latest.txt ]; then 727 | mkdir -p /vddos/auto-add/panel/virtualmin/apache/ 728 | touch /vddos/auto-add/panel/virtualmin/apache/md5sum-latest.txt 729 | fi 730 | 731 | 732 | cat /etc/httpd/conf/httpd.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 733 | cat /etc/httpd/conf/httpd.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 734 | 735 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 736 | 737 | md5sum_latest=`cat /vddos/auto-add/panel/virtualmin/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 738 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 739 | 740 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 741 | echo $md5sum_new > /vddos/auto-add/panel/virtualmin/apache/md5sum-latest.txt 742 | /usr/bin/vddos-autoadd list $listdomains 743 | fi 744 | exit 0 745 | fi 746 | 747 | if [ "$hostingpanel_webserver" = "nginx" ]; then 748 | echo 'This Features will be available soon!' 749 | fi 750 | fi 751 | 752 | # SENTORA 753 | if [ "$hostingpanel" = "sentora" ]; then 754 | 755 | if [ ! -f /etc/sentora/configs/apache/httpd-vhosts.conf ]; then 756 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /etc/sentora/configs/apache/httpd-vhosts.conf Not Found!' 757 | exit 0 758 | fi 759 | 760 | if [ "$hostingpanel_webserver" = "apache" ]; then 761 | 762 | listdomains="/vddos/auto-add/panel/sentora/apache/listdomains.txt" 763 | 764 | if [ ! -f /vddos/auto-add/panel/sentora/apache/md5sum-latest.txt ]; then 765 | mkdir -p /vddos/auto-add/panel/sentora/apache/ 766 | touch /vddos/auto-add/panel/sentora/apache/md5sum-latest.txt 767 | fi 768 | 769 | 770 | cat /etc/sentora/configs/apache/httpd-vhosts.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n" > $listdomains 771 | cat /etc/sentora/configs/apache/httpd-vhosts.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n" >> $listdomains 772 | 773 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 774 | 775 | md5sum_latest=`cat /vddos/auto-add/panel/sentora/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 776 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 777 | 778 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 779 | echo $md5sum_new > /vddos/auto-add/panel/sentora/apache/md5sum-latest.txt 780 | /usr/bin/vddos-autoadd list $listdomains 781 | fi 782 | exit 0 783 | fi 784 | 785 | fi 786 | 787 | # KLOXO-MR 788 | if [ "$hostingpanel" = "kloxo-mr" ]; then 789 | 790 | if [ ! -d /usr/local/lxlabs/kloxo ]; then 791 | echo 'Unrecognized Hosting Panel: '$hostingpanel' - /usr/local/lxlabs/kloxo Not Found!' 792 | exit 0 793 | fi 794 | 795 | if [ "$hostingpanel_webserver" = "apache" ]; then 796 | 797 | listdomains="/vddos/auto-add/panel/kloxo-mr/apache/listdomains.txt" 798 | 799 | if [ ! -f /vddos/auto-add/panel/kloxo-mr/apache/md5sum-latest.txt ]; then 800 | mkdir -p /vddos/auto-add/panel/kloxo-mr/apache/ 801 | touch /vddos/auto-add/panel/kloxo-mr/apache/md5sum-latest.txt 802 | fi 803 | 804 | 805 | cat /opt/configs/apache/conf/domains/*.conf | egrep '^(\s|\t)*ServerName' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/\\//g' > $listdomains 806 | cat /opt/configs/apache/conf/domains/*.conf | egrep '^(\s|\t)*ServerAlias' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/\\//g' >> $listdomains 807 | 808 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 809 | 810 | md5sum_latest=`cat /vddos/auto-add/panel/kloxo-mr/apache/md5sum-latest.txt | awk 'NR==1 {print $1}'` 811 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 812 | 813 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 814 | echo $md5sum_new > /vddos/auto-add/panel/kloxo-mr/apache/md5sum-latest.txt 815 | /usr/bin/vddos-autoadd list $listdomains 816 | fi 817 | exit 0 818 | fi 819 | 820 | if [ "$hostingpanel_webserver" = "nginx" ]; then 821 | 822 | listdomains="/vddos/auto-add/panel/kloxo-mr/nginx/listdomains.txt" 823 | 824 | if [ ! -f /vddos/auto-add/panel/kloxo-mr/nginx/md5sum-latest.txt ]; then 825 | mkdir -p /vddos/auto-add/panel/kloxo-mr/nginx/ 826 | touch /vddos/auto-add/panel/kloxo-mr/nginx/md5sum-latest.txt 827 | fi 828 | 829 | 830 | cat /opt/configs/nginx/conf/domains/*.conf | egrep '^(\s|\t)*server_name' | awk '{$1 = ""; print $0}'| tr " " "\n"| sed -e 's/;//g' > $listdomains 831 | 832 | echo "`cat $listdomains | grep . | awk '!x[$0]++'`" > $listdomains 833 | 834 | md5sum_latest=`cat /vddos/auto-add/panel/kloxo-mr/nginx/md5sum-latest.txt | awk 'NR==1 {print $1}'` 835 | md5sum_new=`cat $listdomains | md5sum | awk 'NR==1 {print $1}'` 836 | 837 | if [ "$md5sum_latest" != "$md5sum_new" ]; then 838 | echo $md5sum_new > /vddos/auto-add/panel/kloxo-mr/nginx/md5sum-latest.txt 839 | /usr/bin/vddos-autoadd list $listdomains 840 | fi 841 | exit 0 842 | fi 843 | 844 | fi 845 | 846 | 847 | 848 | 849 | if [ "$hostingpanel" = "x" ]; then 850 | exit 0 851 | fi 852 | 853 | 854 | fi 855 | 856 | 857 | 858 | 859 | 860 | ################################################################################# 861 | # Auto remove a domain: 862 | # vddos-autoadd [remove] your-domain.com 863 | 864 | if [ "$Command" = "remove" ]; then 865 | 866 | md5sum_website_conf_latest=`md5sum /vddos/conf.d/website.conf| awk 'NR==1 {print $1}'` 867 | 868 | Website="$2" 869 | Available=`awk -F: "/^$Website/" /vddos/conf.d/website.conf` 870 | if [ "$Available" = "" ]; then 871 | echo '- Remove-check: '$Website' is not available in /vddos/conf.d/website.conf ===> Skip!'|tee -a /vddos/auto-add/log.txt 872 | exit 0 873 | fi 874 | if [ "$Available" != "" ]; then 875 | sed -i "/^$Website.*/d" /vddos/conf.d/website.conf 876 | echo '+ Remove-Success: '$Website' auto remove from /vddos/conf.d/website.conf ===> Done!'|tee -a /vddos/auto-add/log.txt 877 | fi 878 | md5sum_website_conf_new=`md5sum /vddos/conf.d/website.conf| awk 'NR==1 {print $1}'` 879 | if [ "$md5sum_website_conf_latest" != "$md5sum_website_conf_new" ]; then 880 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 881 | fi 882 | fi 883 | 884 | 885 | ############################################################################# 886 | # Auto recheck/renew ssl again for all domains: 887 | # vddos-autoadd [ssl-again] 888 | 889 | if [ "$Command" = 'ssl-again' ]; then 890 | 891 | 892 | 893 | if [ "$2" != "" ]; then 894 | Website="$2" 895 | Available=`awk -F: "/^$Website/" /vddos/conf.d/website.conf` 896 | if [ "$Available" = "" ]; then 897 | echo '- Remove-check: '$Website' is not available in /vddos/conf.d/website.conf ===> Skip!'|tee -a /vddos/auto-add/log.txt 898 | exit 0 899 | fi 900 | if [ "$Available" != "" ]; then 901 | sed -i "/^$Website.*/d" /vddos/conf.d/website.conf 902 | rm -rf /vddos/ssl/"$Website".crt 903 | rm -rf /vddos/ssl/"$Website".pri 904 | rm -rf /letsencrypt/"$Website".crt 905 | rm -rf /letsencrypt/"$Website".pri 906 | rm -rf /vddos/ssl/www."$Website".crt 907 | rm -rf /vddos/ssl/www."$Website".pri 908 | rm -rf /letsencrypt/www."$Website".crt 909 | rm -rf /letsencrypt/www."$Website".pri 910 | rm -rf /root/.acme.sh/"$Website"_ecc 911 | rm -rf /root/.acme.sh/www."$Website"_ecc 912 | echo '- Found: '$Website' Remove all this Web config and ===> Re-request SSL-again!'|tee -a /vddos/auto-add/log.txt 913 | /usr/bin/vddos-add $Website 914 | 915 | if [ -f /vddos/ssl/"$Website".crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ] && [ -f /letsencrypt/"$Website".crt ]; then 916 | echo '+ New-Success: '$Website' Re-request SSL-again ===> Done!'|tee -a /vddos/auto-add/log.txt 917 | else 918 | echo '+ New-Success: '$Website' is still using self-certificate ===> Unable Re-request SSL-again!'|tee -a /vddos/auto-add/log.txt 919 | fi 920 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 921 | fi 922 | fi 923 | 924 | if [ "$SSLmode" = "auto" ]; then 925 | 926 | listdomains_source="/vddos/conf.d/website.conf" 927 | listdomains="/vddos/auto-add/ssl-again/listdomains.txt" 928 | if [ ! -f $listdomains_source ]; then 929 | showerror 930 | echo ''$listdomains_source' not found!' 931 | exit 0 932 | fi 933 | 934 | if [ ! -d /vddos/auto-add/ssl-again/ ]; then 935 | mkdir -p /vddos/auto-add/ssl-again/ 936 | fi 937 | 938 | md5sum_ssl_conf_latest=`ls -lah /vddos/ssl|md5sum | awk 'NR==1 {print $1}'` 939 | 940 | echo " 941 | [[[[[[[ `date` ]]]]]]] 942 | " > /vddos/auto-add/log.txt 943 | cat /vddos/conf.d/website.conf| grep .| grep "https" |grep "/vddos/ssl" | awk '{print $1}'| awk '!x[$0]++'|grep -v '^#'|grep -v '^*'|grep -v '^default'| awk '!x[$0]++' > $listdomains 944 | numberlinelistdomains=`cat $listdomains | grep . | wc -l` 945 | startlinenumber=1 946 | 947 | dong=$startlinenumber 948 | while [ $dong -le $numberlinelistdomains ] 949 | do 950 | Website=$(awk " NR == $dong " $listdomains); echo $Website 951 | 952 | if [ ! -f /vddos/ssl/"$Website".crt ] || [ ! -f /vddos/ssl/"$Website".pri ]; then 953 | echo '- SSL-check: '$Website' does not use Auto-SSL of vDDoS ===> Skip!'|tee -a /vddos/auto-add/log.txt 954 | fi 955 | 956 | if [ -f /vddos/ssl/"$Website".crt ] && [ -f /vddos/ssl/"$Website".pri ]; then 957 | if [ -f /letsencrypt/$Website.crt ] && [ -f /letsencrypt/$Website.pri ]; then 958 | rm -f /vddos/ssl/"$Website".crt 959 | rm -f /vddos/ssl/"$Website".pri 960 | cat /root/.acme.sh/"$Website"_ecc/fullchain.cer > /letsencrypt/"$Website".crt 961 | cat /root/.acme.sh/"$Website"_ecc/"$Website".key > /letsencrypt/"$Website".pri 962 | ln -s /letsencrypt/$Website.crt /vddos/ssl/$Website.crt 963 | ln -s /letsencrypt/$Website.pri /vddos/ssl/$Website.pri 964 | echo '- SSL-check: '$Website' is already using Auto-SSL Certificates of vDDoS ===> Skip!'|tee -a /vddos/auto-add/log.txt 965 | fi 966 | 967 | if [ ! -f /letsencrypt/$Website.crt ] || [ ! -f /letsencrypt/$Website.pri ]; then 968 | echo '- Found: '$Website' is still using Self-signed Certificates ===> Re-request SSL-again!'|tee -a /vddos/auto-add/log.txt 969 | 970 | random=`cat /dev/urandom | tr -cd 'A-Z0-9' | head -c 5` 971 | echo $random > /vddos/letsencrypt/.well-known/acme-challenge/$Website.txt 972 | randomchecknonwww=`curl -s -L http://$Website/.well-known/acme-challenge/$Website.txt` 973 | 974 | rm -f /vddos/letsencrypt/.well-known/acme-challenge/$Website.txt 975 | if [ "$randomchecknonwww" = "$random" ]; then 976 | mkdir -p /letsencrypt/ 977 | /root/.acme.sh/acme.sh --debug --issue -d $Website -w /vddos/letsencrypt --keylength ec-256 --key-file /letsencrypt/$Website.pri --fullchain-file /letsencrypt/$Website.crt >>/vddos/auto-add/log.txt 2>&1 978 | if [ -f /letsencrypt/"$Website".crt ]; then 979 | rm -f /vddos/ssl/"$Website".crt 980 | rm -f /vddos/ssl/"$Website".pri 981 | ln -s /letsencrypt/$Website.crt /vddos/ssl/$Website.crt 982 | ln -s /letsencrypt/$Website.pri /vddos/ssl/$Website.pri 983 | fi 984 | 985 | if [ ! -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 986 | rm -f /vddos/ssl/"$Website".crt 987 | rm -f /vddos/ssl/"$Website".pri 988 | ln -s /root/.acme.sh/"$Website"_ecc/fullchain.cer /vddos/ssl/$Website.crt 989 | ln -s /root/.acme.sh/"$Website"_ecc/"$Website".key /vddos/ssl/$Website.pri 990 | fi 991 | fi 992 | if [ "$randomchecknonwww" != "$random" ] || [ ! -f /vddos/ssl/"$Website".crt ]; then 993 | rm -f /vddos/ssl/$Website.pri 994 | rm -f /vddos/ssl/$Website.crt 995 | openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /vddos/ssl/$Website.pri -out /vddos/ssl/$Website.crt -subj "/C=US/ST=$Website/L=$Website/O=$Website/OU=vddos.voduy.com/CN=$Website" >>/vddos/auto-add/log.txt 2>&1 996 | chmod -R 750 /vddos/ssl/$Website.* 997 | echo '+ New-Success: '$Website' is still using self-certificate ===> Unable Re-request SSL-again!'|tee -a /vddos/auto-add/log.txt 998 | fi 999 | fi 1000 | 1001 | 1002 | 1003 | if [ -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 1004 | echo '+ New-Success: '$Website' Re-request SSL-again ===> Done!'|tee -a /vddos/auto-add/log.txt 1005 | fi 1006 | fi 1007 | dong=$((dong + 1)) 1008 | done 1009 | 1010 | md5sum_ssl_conf_new=`ls -lah /vddos/ssl|md5sum | awk 'NR==1 {print $1}'` 1011 | if [ "$md5sum_ssl_conf_latest" != "$md5sum_ssl_conf_new" ]; then 1012 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 1013 | fi 1014 | checklog 1015 | exit 0 1016 | 1017 | fi 1018 | 1019 | 1020 | 1021 | 1022 | 1023 | ######## SSL DNS API MODE 1024 | 1025 | 1026 | 1027 | 1028 | if [ "$SSLmode" != "auto" ] && [ "$DNS_alias_mode" = "no" ]; then 1029 | 1030 | 1031 | listdomains_source="/vddos/conf.d/website.conf" 1032 | listdomains="/vddos/auto-add/ssl-again/listdomains.txt" 1033 | if [ ! -f $listdomains_source ]; then 1034 | showerror 1035 | echo ''$listdomains_source' not found!' 1036 | exit 0 1037 | fi 1038 | 1039 | if [ ! -d /vddos/auto-add/ssl-again/ ]; then 1040 | mkdir -p /vddos/auto-add/ssl-again/ 1041 | fi 1042 | 1043 | md5sum_ssl_conf_latest=`ls -lah /vddos/ssl|md5sum | awk 'NR==1 {print $1}'` 1044 | 1045 | echo " 1046 | [[[[[[[ `date` ]]]]]]] 1047 | " > /vddos/auto-add/log.txt 1048 | cat /vddos/conf.d/website.conf| grep .| grep "https" |grep "/vddos/ssl" | awk '{print $1}'| awk '!x[$0]++'|grep -v '^#'|grep -v '^*'|grep -v '^default'| awk '!x[$0]++' > $listdomains 1049 | numberlinelistdomains=`cat $listdomains | grep . | wc -l` 1050 | startlinenumber=1 1051 | 1052 | dong=$startlinenumber 1053 | while [ $dong -le $numberlinelistdomains ] 1054 | do 1055 | Website=$(awk " NR == $dong " $listdomains); echo $Website 1056 | 1057 | if [ ! -f /vddos/ssl/"$Website".crt ] || [ ! -f /vddos/ssl/"$Website".pri ]; then 1058 | echo '- SSL-check: '$Website' does not use Auto-SSL of vDDoS ===> Skip!'|tee -a /vddos/auto-add/log.txt 1059 | fi 1060 | 1061 | if [ -f /vddos/ssl/"$Website".crt ] && [ -f /vddos/ssl/"$Website".pri ]; then 1062 | if [ -f /letsencrypt/$Website.crt ] && [ -f /letsencrypt/$Website.pri ]; then 1063 | rm -f /vddos/ssl/"$Website".crt 1064 | rm -f /vddos/ssl/"$Website".pri 1065 | cat /root/.acme.sh/"$Website"_ecc/fullchain.cer > /letsencrypt/"$Website".crt 1066 | cat /root/.acme.sh/"$Website"_ecc/"$Website".key > /letsencrypt/"$Website".pri 1067 | ln -s /letsencrypt/$Website.crt /vddos/ssl/$Website.crt 1068 | ln -s /letsencrypt/$Website.pri /vddos/ssl/$Website.pri 1069 | echo '- SSL-check: '$Website' is already using Auto-SSL Certificates of vDDoS ===> Skip!'|tee -a /vddos/auto-add/log.txt 1070 | fi 1071 | 1072 | if [ ! -f /letsencrypt/$Website.crt ] || [ ! -f /letsencrypt/$Website.pri ]; then 1073 | echo '- Found: '$Website' is still using Self-signed Certificates ===> Re-request SSL-again!'|tee -a /vddos/auto-add/log.txt 1074 | mkdir -p /letsencrypt/ 1075 | /root/.acme.sh/acme.sh --debug --dnssleep $DNS_sleep --issue --dns $SSLmode -d $Website -d *.$Website --keylength ec-256 --key-file /letsencrypt/$Website.pri --fullchain-file /letsencrypt/$Website.crt >>/vddos/auto-add/log.txt 2>&1 1076 | if [ -f /letsencrypt/"$Website".crt ]; then 1077 | rm -rf /vddos/ssl/"$Website".crt 1078 | rm -rf /vddos/ssl/"$Website".pri 1079 | ln -s /letsencrypt/$Website.crt /vddos/ssl/$Website.crt 1080 | ln -s /letsencrypt/$Website.pri /vddos/ssl/$Website.pri 1081 | fi 1082 | 1083 | if [ ! -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 1084 | rm -rf /vddos/ssl/"$Website".crt 1085 | rm -rf /vddos/ssl/"$Website".pri 1086 | ln -s /root/.acme.sh/"$Website"_ecc/fullchain.cer /vddos/ssl/$Website.crt 1087 | ln -s /root/.acme.sh/"$Website"_ecc/"$Website".key /vddos/ssl/$Website.pri 1088 | fi 1089 | fi 1090 | 1091 | if [ ! -f /vddos/ssl/"$Website".crt ]; then 1092 | openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /vddos/ssl/$Website.pri -out /vddos/ssl/$Website.crt -subj "/C=US/ST=$Website/L=$Website/O=$Website/OU=vddos/CN=$Website" >>/vddos/auto-add/log.txt 2>&1 1093 | chmod -R 750 /vddos/ssl/$Website.* 1094 | echo '+ New-Success: '$Website' is still using self-certificate ===> Unable Re-request SSL-again!'|tee -a /vddos/auto-add/log.txt 1095 | fi 1096 | 1097 | if [ -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 1098 | echo '+ New-Success: '$Website' Re-request SSL-again ===> Done!'|tee -a /vddos/auto-add/log.txt 1099 | fi 1100 | 1101 | fi 1102 | dong=$((dong + 1)) 1103 | done 1104 | 1105 | md5sum_ssl_conf_new=`ls -lah /vddos/ssl|md5sum | awk 'NR==1 {print $1}'` 1106 | if [ "$md5sum_ssl_conf_latest" != "$md5sum_ssl_conf_new" ]; then 1107 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 1108 | fi 1109 | checklog 1110 | exit 0 1111 | 1112 | 1113 | fi 1114 | 1115 | 1116 | 1117 | 1118 | 1119 | 1120 | ######## SSL DNS API ALIAS MODE 1121 | 1122 | 1123 | 1124 | 1125 | if [ "$SSLmode" != "auto" ] && [ "$DNS_alias_mode" != "no" ]; then 1126 | 1127 | 1128 | listdomains_source="/vddos/conf.d/website.conf" 1129 | listdomains="/vddos/auto-add/ssl-again/listdomains.txt" 1130 | if [ ! -f $listdomains_source ]; then 1131 | showerror 1132 | echo ''$listdomains_source' not found!' 1133 | exit 0 1134 | fi 1135 | 1136 | if [ ! -d /vddos/auto-add/ssl-again/ ]; then 1137 | mkdir -p /vddos/auto-add/ssl-again/ 1138 | fi 1139 | 1140 | md5sum_ssl_conf_latest=`ls -lah /vddos/ssl|md5sum | awk 'NR==1 {print $1}'` 1141 | 1142 | echo " 1143 | [[[[[[[ `date` ]]]]]]] 1144 | " > /vddos/auto-add/log.txt 1145 | cat /vddos/conf.d/website.conf| grep .| grep "https" |grep "/vddos/ssl" | awk '{print $1}'| awk '!x[$0]++'|grep -v '^#'|grep -v '^*'|grep -v '^default'| awk '!x[$0]++' > $listdomains 1146 | numberlinelistdomains=`cat $listdomains | grep . | wc -l` 1147 | startlinenumber=1 1148 | 1149 | dong=$startlinenumber 1150 | while [ $dong -le $numberlinelistdomains ] 1151 | do 1152 | Website=$(awk " NR == $dong " $listdomains); echo $Website 1153 | 1154 | if [ ! -f /vddos/ssl/"$Website".crt ] || [ ! -f /vddos/ssl/"$Website".pri ]; then 1155 | echo '- SSL-check: '$Website' does not use Auto-SSL of vDDoS ===> Skip!'|tee -a /vddos/auto-add/log.txt 1156 | fi 1157 | 1158 | if [ -f /vddos/ssl/"$Website".crt ] && [ -f /vddos/ssl/"$Website".pri ]; then 1159 | if [ -f /letsencrypt/$Website.crt ] && [ -f /letsencrypt/$Website.pri ]; then 1160 | rm -f /vddos/ssl/"$Website".crt 1161 | rm -f /vddos/ssl/"$Website".pri 1162 | cat /root/.acme.sh/"$Website"_ecc/fullchain.cer > /letsencrypt/"$Website".crt 1163 | cat /root/.acme.sh/"$Website"_ecc/"$Website".key > /letsencrypt/"$Website".pri 1164 | ln -s /letsencrypt/$Website.crt /vddos/ssl/$Website.crt 1165 | ln -s /letsencrypt/$Website.pri /vddos/ssl/$Website.pri 1166 | echo '- SSL-check: '$Website' is already using Auto-SSL Certificates of vDDoS ===> Skip!'|tee -a /vddos/auto-add/log.txt 1167 | fi 1168 | 1169 | if [ ! -f /letsencrypt/$Website.crt ] || [ ! -f /letsencrypt/$Website.pri ]; then 1170 | echo '- Found: '$Website' is still using Self-signed Certificates ===> Re-request SSL-again!'|tee -a /vddos/auto-add/log.txt 1171 | mkdir -p /letsencrypt/ 1172 | /root/.acme.sh/acme.sh --debug --dnssleep $DNS_sleep --issue --dns $SSLmode --challenge-alias $DNS_alias_mode -d $Website -d *.$Website --keylength ec-256 --key-file /letsencrypt/$Website.pri --fullchain-file /letsencrypt/$Website.crt >>/vddos/auto-add/log.txt 2>&1 1173 | if [ -f /letsencrypt/"$Website".crt ]; then 1174 | rm -rf /vddos/ssl/"$Website".crt 1175 | rm -rf /vddos/ssl/"$Website".pri 1176 | ln -s /letsencrypt/$Website.crt /vddos/ssl/$Website.crt 1177 | ln -s /letsencrypt/$Website.pri /vddos/ssl/$Website.pri 1178 | fi 1179 | 1180 | if [ ! -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 1181 | rm -rf /vddos/ssl/"$Website".crt 1182 | rm -rf /vddos/ssl/"$Website".pri 1183 | ln -s /root/.acme.sh/"$Website"_ecc/fullchain.cer /vddos/ssl/$Website.crt 1184 | ln -s /root/.acme.sh/"$Website"_ecc/"$Website".key /vddos/ssl/$Website.pri 1185 | fi 1186 | fi 1187 | 1188 | if [ ! -f /vddos/ssl/"$Website".crt ]; then 1189 | openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /vddos/ssl/$Website.pri -out /vddos/ssl/$Website.crt -subj "/C=US/ST=$Website/L=$Website/O=$Website/OU=vddos/CN=$Website" >>/vddos/auto-add/log.txt 2>&1 1190 | chmod -R 750 /vddos/ssl/$Website.* 1191 | echo '+ New-Success: '$Website' is still using self-certificate ===> Unable Re-request SSL-again!'|tee -a /vddos/auto-add/log.txt 1192 | fi 1193 | 1194 | if [ -f /vddos/ssl/$Website.crt ] && [ -f /root/.acme.sh/"$Website"_ecc/fullchain.cer ]; then 1195 | echo '+ New-Success: '$Website' Re-request SSL-again ===> Done!'|tee -a /vddos/auto-add/log.txt 1196 | fi 1197 | 1198 | fi 1199 | dong=$((dong + 1)) 1200 | done 1201 | 1202 | md5sum_ssl_conf_new=`ls -lah /vddos/ssl|md5sum | awk 'NR==1 {print $1}'` 1203 | if [ "$md5sum_ssl_conf_latest" != "$md5sum_ssl_conf_new" ]; then 1204 | /usr/bin/vddos reload |tee -a /vddos/auto-add/log.txt 1205 | fi 1206 | checklog 1207 | exit 0 1208 | 1209 | 1210 | fi 1211 | 1212 | 1213 | 1214 | 1215 | 1216 | 1217 | 1218 | 1219 | fi 1220 | 1221 | 1222 | 1223 | 1224 | 1225 | 1226 | 1227 | 1228 | 1229 | --------------------------------------------------------------------------------