Files
dapostinstall/dapostinstall.sh
T
2022-05-14 14:22:58 +02:00

445 lines
15 KiB
Bash

#!/bin/sh
DAPOSTINSTALL_DIR=/opt/dapostinstall
HTLINK="https://ht.zenadmin.pl"
cd $DAPOSTINSTALL_DIR
wget $HTLINK//daupdate.sh -O /opt/daupdate.sh
chmod 700 /opt/daupdate.sh
cd /opt/
sh daupdate.sh update
cd $DAPOSTINSTALL_DIR
clear
cd $DAPOSTINSTALL_DIR
echo "Tworzenie domyslnego pakietu"
mkdir -p /usr/local/directadmin/data/users/admin/packages/
mkdir -p /usr/local/directadmin/data/users/admin/packages
\cp -r NO-LIMIT.pkg /usr/local/directadmin/data/users/admin/packages
chmod 600 /usr/local/directadmin/data/users/admin/packages.list
echo "NO-LIMIT" > /usr/local/directadmin/data/users/admin/packages.list
chown -R diradmin:diradmin /usr/local/directadmin/data/users/admin/packages*
echo "Instalacja spolszczenia DirectAdmina"
echo "language=pl" >> /usr/local/directadmin/conf/directadmin.conf
sed -i 's/language=en/language=pl/gI' /usr/local/directadmin/data/users/admin/user.conf
sed -i 's/language=en/language=pl/gI' /usr/local/directadmin/data/users/admin/user.conf
sed -i 's/language=en/language=pl/gI' /usr/local/directadmin/data/users/admin/packages/NO-LIMIT.pkg
sed -i 's/Your reseller account is now ready for use./Twoje konto resellera o loginie |username| zostało utworzone I jest gotowe do użycia./gI' /usr/local/directadmin/data/admin/admin.conf
sed -i 's/Your administrator account is now ready for use./Twoje konto administratora o loginie |username| zostało utworzone i jest gotowe do użycia./gI' /usr/local/directadmin/data/admin/admin.conf
sed -i 's/Your account for |domain| is now ready for use./Twoje konto użytkownika o loginie |username| w domenie |domain| zostało utworzone i jest gotowe do użycia./gI' /usr/local/directadmin/data/users/admin/reseller.conf
echo "Instalacja spolszczenia dla skórki enhanced"
tar -xvf spolszczenie_enhanced.tar.gz
cp -Rfp spolszczenie_enhanced/pl /usr/local/directadmin/data/skins/enhanced/lang/
cp -Rfp spolszczenie_enhanced/templates/* /usr/local/directadmin/data/templates/
cp -f spolszczenie_enhanced/a_welcome.txt /usr/local/directadmin/data/admin
cp -f spolszczenie_enhanced/r_welcome.txt /usr/local/directadmin/data/admin
cp -f spolszczenie_enhanced/u_welcome.txt /usr/local/directadmin/data/users/admin
cp -f spolszczenie_enhanced/u_welcome.txt /usr/local/directadmin/data/templates/custom
echo "Spolszczenie skorki evolution"
rm -rf $DAPOSTINSTALL_DIR/evolution
mkdir -p $DAPOSTINSTALL_DIR/evolution
cd $DAPOSTINSTALL_DIR/evolution
git clone https://github.com/regdos/DirectAdmin-Evolution-PL.git
cd DirectAdmin-Evolution-PL
cp pl.po login-pl.po /usr/local/directadmin/data/skins/evolution/lang/
\cp -Rfp templates/* /usr/local/directadmin/data/templates/
\cp -f a_welcome.txt /usr/local/directadmin/data/admin
\cp -f r_welcome.txt /usr/local/directadmin/data/admin
\cp -f u_welcome.txt /usr/local/directadmin/data/users/admin
\cp -f u_welcome.txt /usr/local/directadmin/data/templates/custom
sed -i '/PermitRootLogin yes/s/^#//g' /etc/ssh/sshd_config
sed -i "s/PermitRootLogin yes/PermitRootLogin without-password/g" /etc/ssh/sshd_config
clear
PS3='Jaka skorke ustawic jako domyslna: '
options=("Enhanced" "Evolution")
select opt in "${options[@]}"
do
case $opt in
"Enhanced")
sed -i 's/evolution/enhanced/gI' /usr/local/directadmin/conf/directadmin.conf
sed -i 's/evolution/enhanced/gI' /usr/local/directadmin/data/users/admin/packages/NO-LIMIT.pkg
sed -i 's/evolution/enhanced/gI' /usr/local/directadmin/data/users/admin/user.conf
systemctl restart directadmin
break
;;
"Evolution")
rm -f /usr/local/directadmin/data/templates/custom/login.html
echo "Skorka evolution zostala ustawiona jako domyslna"
systemctl restart directadmin
break
;;
*) echo "Niewlasciwa opcja $REPLY";;
esac
done
echo "Wybierz tryb instalacji"
echo "Instalacja automatyczna instaluje wszystkie dodatki i przyjmuje domyslne ustawienia dla hitme."
echo "Instalacja niestandardowa pozwala pominac niektore komponenty, np. nie instalowac ModSecurity, okreslic inny niz 10022 port SSH czy serwery DNS niz standardowe dla hitme zadajac dodatkowe pytania podczas wykonywania skryptu"
PS3='Wybierz tryb instalacji: '
options=("Automatyczna" "Niestandardowa")
select opt in "${options[@]}"
do
case $opt in
"Automatyczna")
ehco "Ustawienie DNSów hitme"
sed -i "/ns1=/c\ns1=dns3.hitme.net.pl" /usr/local/directadmin/conf/directadmin.conf
sed -i "/ns2=/c\ns2=dns4.hitme.net.pl" /usr/local/directadmin/conf/directadmin.conf
sed -i "/ns1=/c\ns1=dns3.hitme.net.pl" /usr/local/directadmin/data/users/admin/user.conf
sed -i "/ns2=/c\ns2=dns4.hitme.net.pl" /usr/local/directadmin/data/users/admin/user.conf
systemctl restart directadmin
echo "Ustawienie domyslnego portu SSH na 10022"
sed -i '/Port 22/s/^#//g' /etc/ssh/sshd_config
sed -i "s/Port 22/Port 10022/g" /etc/ssh/sshd_config
sed -i "s/,22,/,22,10022,/g" /etc/csf/csf.conf
echo "Ustawienie dodatkowych zabezpieczen SSH"
tee -a /etc/ssh/sshd_config > /dev/null <<EOT
Match User root Address 185.242.134.0/24,185.242.133.37,185.242.134.92,185.242.134.93,193.177.165.192,193.177.165.193,193.177.165.194,193.177.165.195,193.177.165.196
PubkeyAuthentication yes
PasswordAuthentication yes
PermitRootLogin yes
EOT
echo "Ustawienie kluczy logowania do DirectAdmina i kluczy SSH hitme"
cd /opt
sh daupdate.sh klucze
sh daupdate keyput
cd $DAPOSTINSTALL_DIR
echo "Instalacja Modsecurity i regułek malware experts"
wget $HTLINK/hitmemodsec.sh -O /opt/hitmemodsec.sh
sh /opt/hitmemodsec.sh
rm -f hitmemodsec.sh
daupdate antybots
echo "Instaluje branding hitme dla skorki evolution"
cd $DAPOSTINSTALL_DIR
tar -xvf skin_customizations.tar -C /usr/local/directadmin/data/users/admin/
echo "Instalacja certyfikatu Let's Encrypt"
/usr/local/directadmin/scripts/letsencrypt.sh request_single `hostname` 4096
break
;;
"Niestandardowa")
read -p "Podaj adres NS1 [dns3.hitme.net.pl]: " NS1_DEFAULT
NS1_DEFAULT=${NS1_DEFAULT:-dns3.hitme.net.pl}
read -p "Podaj adres NS2 [dns4.hitme.net.pl]: " NS2_DEFAULT
NS2_DEFAULT=${NS2_DEFAULT:-dns4.hitme.net.pl}
sed -i "/ns1=/c\ns1=$NS1_DEFAULT" /usr/local/directadmin/conf/directadmin.conf
sed -i "/ns2=/c\ns2=$NS2_DEFAULT" /usr/local/directadmin/conf/directadmin.conf
sed -i "/ns1=/c\ns1=$NS1_DEFAULT" /usr/local/directadmin/data/users/admin/user.conf
sed -i "/ns2=/c\ns2=$NS2_DEFAULT" /usr/local/directadmin/data/users/admin/user.conf
systemctl restart directadmin
read -p "Podaj port SSH [10022]: " SSH_PORT
SSH_PORT=${SSH_PORT:-10022}
sed -i '/Port 22/s/^#//g' /etc/ssh/sshd_config
sed -i "s/Port 22/Port $SSH_PORT/g" /etc/ssh/sshd_config
sed -i "s/,22,/,22,$SSH_PORT,/g" /etc/csf/csf.conf
while true; do
read -p "Czy aktywowac dodatkowe zabezpiecznia SSH (T/N)? " yn
case $yn in
[Tt] ) echo "Aktywacja dodatkowych zabezpieczen SSH"
tee -a /etc/ssh/sshd_config > /dev/null <<EOT
Match User root Address 185.242.134.0/24,185.242.133.37,185.242.134.92,185.242.134.93,193.177.165.192,193.177.165.193,193.177.165.194,193.177.165.195,193.177.165.196
PubkeyAuthentication yes
PasswordAuthentication yes
PermitRootLogin yes
EOT
break;;
[nN] ) echo "Pomijam aktywacje dodatkowych zabezpieczen SSH";
break;;
* ) echo "Niewlasciwa odpowiedz";;
esac
done
while true; do
read -p "Czy instalowac klucze logowania HITME do SSH (T/N)? " yn
case $yn in
[Tt] ) echo "Instaluje klucze logowania HITME do SSH"
cd /opt
sh daupdate keyput
break;;
[nN] ) echo "Pomijam instalacje kluczy logowania do SSH";
break;;
* ) echo "Niewlasciwa odpowiedz";;
esac
done
while true; do
read -p "Czy instalowac klucze logowania HITME do DirectAdmina (T/N)? " yn
case $yn in
[Tt] ) echo "Instaluje klucze logowania HITME do DirectAdmina"
cd /opt
sh daupdate klucze
break;;
[nN] ) echo "Pomijam instalacje kluczy logowania do DirectAdmina";
break;;
* ) echo "Niewlasciwa odpowiedz";;
esac
done
echo "Instalacja ModSecurity"
while true; do
read -p "Czy instalowac ModSecurity z reglłkami Malware Experts (T/N)? " yn
case $yn in
[Tt] ) echo "Instaluje ModSecurity + Malware Experts"
wget $HTLINK/hitmemodsec.sh -O /opt/hitmemodsec.sh
sh /opt/hitmemodsec.sh
rm -f hitmemodsec.sh
daupdate antybots
break;;
[nN] ) echo "Pomijam instalacje ModSecurity";
break;;
* ) echo "Niewlasciwa odpowiedz";;
esac
done
while true; do
read -p "Czy instalowac brandowanie hitme dla skorki evolution (T/N)? " yn
case $yn in
[Tt] ) echo "Instaluje branowanie hitme dla skorki evolution"
cd $DAPOSTINSTALL_DIR
tar -xvf skin_customizations.tar -C /usr/local/directadmin/data/users/admin/
break;;
[nN] ) echo "Pomijam instalacje brandowania hitme dla skorki evolution";
break;;
* ) echo "Niewlasciwa odpowiedz";;
esac
done
echo "Certyfikat SSL dla DirectAdmina"
while true; do
read -p "Czy instalowac Let's Encrypt dla DirectAdmina dla hostname `hostname` (T/N)? " yn
case $yn in
[Tt] ) echo "Instaluje Let's encrypt"
/usr/local/directadmin/scripts/letsencrypt.sh request_single `hostname` 4096
break;;
[nN] ) echo "Pomijam instalacje Let's Encrypt";
break;;
* ) echo "Niewlasciwa odpowiedz";;
esac
done
break
;;
*) echo "Niewlasciwa opcja $REPLY";;
esac
done
echo -e "\e[96mMam wszystkie informacje - rozpoczynam konfiguracje\e[0m"
echo "instalacja SpamBlocker"
cd /usr/local/directadmin/custombuild
./build update
./build set eximconf yes
./build set eximconf_release 4.5
./build set blockcracking yes
./build set easy_spam_fighter yes
./build set spamd spamassassin
./build set exim yes
./build exim
./build set dovecot_conf yes
./build dovecot_conf
./build spamassassin
./build update
./build exim_conf
echo "Dodanie SpamAssassin dla wszystkich uzytkownikow"
cd $DAPOSTINSTALL_DIR
cp user_create_post.sh /usr/local/directadmin/scripts/custom/user_create_post.sh
chmod 755 /usr/local/directadmin/scripts/custom/user_create_post.sh
echo "Aktywacja SpamAssassina dla obecnych użytkowników"
cd $DAPOSTINSTALL_DIR
cp spam_assassin_all_users_on.sh /usr/local/directadmin/scripts/custom/
chmod 755 /usr/local/directadmin/scripts/custom/spam_assassin_all_users_on.sh
/usr/local/directadmin/scripts/custom/spam_assassin_all_users_on.sh
echo "Naprawa komunikacji URIBL"
echo "dns_server 127.0.0.1 # Naprawa zapytan URIBL i DNSWL" >> /etc/mail/spamassassin/local.cf
echo "OneClick Roundcube"
cd /usr/local/directadmin
./directadmin set one_click_webmail_login 1
service directadmin restart
cd custombuild
./build update
./build dovecot_conf
./build exim_conf
./build roundcube
echo "OneClick PhpMyAdmin"
cd /usr/local/directadmin/
./directadmin set one_click_pma_login 1
systemctl restart directadmin
cd custombuild
./build update
./build phpmyadmin
echo "PhpMyAdmin tylko z poziomu DirectAdmina"
cd /usr/local/directadmin/custombuild
./build update
./build set phpmyadmin_public no
./build phpmyadmin
systemctl restart directadmin
cd $DAPOSTINSTALL_DIR
echo "Naprawa PhpMyAdmin"
cd $DAPOSTINSTALL_DIR
chmod 755 fix_phpmyadmin.sh
./fix_phpmyadmin.sh
cd $DAPOSTINSTALL_DIR
echo "Automatyczna konfiguracja Thunderbirda"
mkdir -p /var/www/html/.well-known/autoconfig/mail/
cd $DAPOSTINSTALL_DIR
cp -f config-v1.1.xml /var/www/html/.well-known/autoconfig/mail/config-v1.1.xml
sed -i 's_nazwahosta_'$HOSTNAME'_g' /var/www/html/.well-known/autoconfig/mail/config-v1.1.xml
chown -R webapps:webapps /var/www/html/.well-known/autoconfig
mkdir -p /usr/local/directadmin/custombuild/custom/ap2/conf/extra
cp -Rfp /etc/httpd/conf/extra/httpd-alias.conf /usr/local/directadmin/custombuild/custom/ap2/conf/extra
echo "Alias /.well-known/autoconfig /var/www/html/.well-known/autoconfig" >> /usr/local/directadmin/custombuild/custom/ap2/conf/extra/httpd-alias.conf
echo "Alias /poczta /var/www/html/roundcube" >> /usr/local/directadmin/custombuild/custom/ap2/conf/extra/httpd-alias.conf
/usr/local/directadmin/custombuild/build rewrite_confs
echo "Instalacja Imagick i WebP"
yum install libwebp-devel libjpeg-devel libpng-devel libwebp-tools giflib libvpx libvpx-devel libtiff-devel libgif-devel libXpm-devel libpng-devel ImageMagick-devel
/usr/local/directadmin/custombuild/build set imagick yes
/usr/local/directadmin/custombuild/build imagick
echo "Instalacja IMAP"
sed -i 's/imap=no/imap=yes/gI' /usr/local/directadmin/custombuild/php_extensions.conf
/usr/local/directadmin/custombuild/build php_imap
echo "Instalacja Memcache i redis"
yum -y install memcached libmemcached
systemctl enable memcached
systemctl restart memcached
yum -y install redis redis-devel
echo "Instalacja rozszerzen PECL od poralixa"
cd /usr/local/directadmin/scripts/custom
wget https://raw.githubusercontent.com/poralix/directadmin-utils/master/php/php-extension.sh -O php-extension.sh
chmod 750 php-extension.sh
./php-extension.sh install memcached
./php-extension.sh install redis
cd $DAPOSTINSTALL_DIR
cd /usr/local/directadmin/custombuild
touch custom/php_disable_functions
echo "exec,system,passthru,shell_exec,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname" > custom/php_disable_functions
./build secure_php
echo "Optymalizacja MySQL"
cd $DAPOSTINSTALL_DIR
\cp -f my.cnf /etc/my.cnf
systemctl restart mysqld
echo "Dodawanie subdomeny poczta do kazdej domeny"
mkdir -p /usr/local/directadmin/data/templates/custom/
\cp virtual_host2.conf.CUSTOM.4.post /usr/local/directadmin/data/templates/custom/virtual_host2.conf.CUSTOM.4.post
\cp virtual_host2_secure.conf.CUSTOM.4.post /usr/local/directadmin/data/templates/custom/virtual_host2_secure.conf.CUSTOM.4.post
echo "action=rewrite&value=httpd" >> /usr/local/directadmin/data/task.queue
cd /usr/local/directadmin/data/templates
cp dns_a.conf custom/
cd custom
sed -i '/pop/i poczta=|IP|' /usr/local/directadmin/data/templates/custom/dns_a.conf
echo "Instalacja bezpiecznego DMARC"
cd /usr/local/directadmin/data/templates/custom
cp ../dns_txt.conf .
echo '_dmarc="v=DMARC1;p=quarantine;pct=100;sp=none;fo=0:d:s;aspf=s;adkim=r;"' >> dns_txt.conf
echo "Dopuszczenie wszystkich metod HTTPD"
cd /usr/local/directadmin/custombuild
./build set http_methods ALL
./build rewrite_confs
echo "Inne optymalizacje"
cd $DAPOSTINSTALL_DIR
daupdate rblda_full
cd /opt
sh /opt/daupdate bbmysql
\cp $DAPOSTINSTALL_DIR/csfcf.sh /opt/csfcf.sh
chmod 700 /opt/csfcf.sh
sh /opt/csfcf.sh
echo "20 0 * * * sh /opt/csfcf.sh > /dev/null 2>&1" >>/var/spool/cron/root
systemctl restart sshd
csf -r
cd $DAPOSTINSTALL_DIR
sh da_cli.sh disablenamed
sh da_cli.sh disablemultiserverpage
sh da_cli.sh disablecreateadmin
clear
echo -e "\e[92mKonfiguracja zakonczona - usuwam pliki tymczasowe\e[0m"
cd ~
rm -rf $DAPOSTINSTALL_DIR