The aim of this Project is to create a deamon for a server, wich update live systems.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

252 lines
9.5 KiB

#!/bin/bash
#remaster lib
[ -d "<LIBDIR>" ] || { echo "LIBDIR not exist"; exit 1; }
#desinfect.17
# . -Y ubuntu.16.04 -> ubuntu -> debian
source <LIBDIR>/proj/ubuntu.16.04
project_relation="desinfect.17 $project_relation"
#sourcelist_desinfect_set_nomal2017 [chroot_dir]
function sourcelist_desinfect_set_nomal2017() {
echo -n "build normal source.list ... "
#$1 = chroot directory
sourcelist="$1/etc/apt/sources.list"
echo "#### Desinfe't 2017 ####" > "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://www.heise.de/ct/projekte/desinfect/ubuntu 2017 main" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "# #### Ubuntu 16.04 LTS (Xenial) ####" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://security.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://security.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# ## This software is not part of Ubuntu, but is offered by third-party" >> "$sourcelist"
echo "# ## developers who want to ship their latest software." >> "$sourcelist"
echo "# deb http://extras.ubuntu.com/ubuntu xenial main" >> "$sourcelist"
echo "done"
}
#sourcelist_desinfect_set_extendet2017 [chroot_dir]
function sourcelist_desinfect_set_extendet2017() {
echo -n "build extendet source.list ... "
sourcelist="$1/etc/apt/sources.list"
echo "#### Desinfe't 2017 ####" > "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://www.heise.de/ct/projekte/desinfect/ubuntu 2017 main" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "#### Ubuntu 16.04 LTS (Xenial) ####" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://security.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://security.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted universe multiverse" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "## This software is not part of Ubuntu, but is offered by third-party" >> "$sourcelist"
echo "## developers who want to ship their latest software." >> "$sourcelist"
echo "deb http://extras.ubuntu.com/ubuntu xenial main" >> "$sourcelist"
echo "done"
}
#os_update-desinfect.17 [chroot_dir]
function os_update-desinfect.17() {
#$1 = chroot directory
chroot_dir="$1"
#call main os_update from debian
os_update-debian "$chroot_dir"
echo "update virus definitions ... "
#Avast Avira
{
echo "Avira ..."
#chroot "$chroot_dir" /bin/bash --login -c ". /tmp/env.sh; /AntiVirUpdate/avupdate" | grep -v " -> "
chroot_sh "$chroot_dir" "/AntiVirUpdate/avupdate" | grep -v " -> "
echo "Avira done"
}
#Clam AV
{
echo "ClamAV..."
#chroot "$chroot_dir" /bin/bash --login -c ". /tmp/env.sh; freshclam" > /dev/null
chroot_sh "$chroot_dir" "freshclam" > /dev/null
rm -f "$chroot_dir/var/lib/clamav/daily.cld"
echo "ClamAV done"
}
#Eset AV
{
echo "Eset AV ..."
tmp_file_23421="`mktemp`"
cat "$chroot_dir/etc/opt/eset/esets/esets.cfg" | grep -v "av_update_username" | grep -v "av_update_password" > "$tmp_file_23421"
cat "$tmp_file_23421" > "$chroot_dir/etc/opt/eset/esets/esets.cfg"
chroot "$chroot_dir" /bin/bash -c "/usr/bin/esetrand" >> "$chroot_dir/etc/opt/eset/esets/esets.cfg"
av_eaet_timeout=300
echo "set timeout: $((av_eaet_timeout/60))min"
tmp_var_3092="`chroot "$chroot_dir" /bin/bash -c "/opt/desinfect/conky_info.sh eset"`"
#eig. update routine
#chroot "$chroot_dir" /bin/bash -c "/etc/init.d/esets restart"
chroot_sh "$chroot_dir" "/etc/init.d/esets restart"
sleep 2
#chroot "$chroot_dir" /bin/bash --login -c "/opt/eset/esets/sbin/esets_daemon --update"
chroot_sh "$chroot_dir" "/opt/eset/esets/sbin/esets_daemon --update"
#warten auf daemon update ...
echo "wait $((av_eaet_timeout/60))min for Eset AV update"
while [ "`chroot "$chroot_dir" /bin/bash -c "/opt/desinfect/conky_info.sh eset"`" == "$tmp_var_3092" ]; do
sleep 10
av_eaet_timeout=$((av_eaet_timeout-10))
[ $av_eaet_timeout -gt 0 ] || tmp_var_3092=
done
sleep 4
#chroot "$chroot_dir" /bin/bash -c "/etc/init.d/esets stop"
chroot_sh "$chroot_dir" "/etc/init.d/esets stop"
cat "$tmp_file_23421" > "$chroot_dir/etc/opt/eset/esets/esets.cfg"
rm "$tmp_file_23421"
tmp_file_23421=
tmp_var_3092=
echo "Eset AV done"
}
#Sophos
{
echo "Sophos..."
#chroot "$chroot_dir" /bin/bash --login -c "/opt/sophos-av/bin/savupdate -v3"
chroot_sh "$chroot_dir" "/opt/sophos-av/bin/savupdate -v3"
chroot_sh "$chroot_dir" "/opt/sophos-av/bin/savdstatus --version"
#chroot "$chroot_dir" /bin/bash -c "/opt/sophos-av/bin/savupdate -v3 -a"
echo "Sophos done"
}
#F-Secure
{
echo "F-Secure..."
chroot_sh "$chroot_dir" "/etc/init.d/fsaua start"
chroot_sh "$chroot_dir" "/etc/init.d/fsupdate stop"
( sleep 1m; chroot_sh "$chroot_dir" "/etc/init.d/fsaua start" ) &
chroot_sh "$chroot_dir" "/opt/f-secure/fssp/bin/dbupdate_lite" && echo "Update Success"
sleep 1m
chroot_sh "$chroot_dir" "/etc/init.d/fsaua stop"
chroot_sh "$chroot_dir" "/etc/init.d/fsupdate stop"
echo "F-Secure done"
}
echo "update virus definitions done"
}
function os_update() { os_update-desinfect.17 $@; }
#proxy_enable-desinfect.17 [chroot_dir] [proxy_host] [proxy_port]
function proxy_enable-desinfect.17() {
proxy_enable-debian $1 $2 $3
echo "enable proxy for desinfect's av ... "
chroot_dir="$1"
proxy_host="$2"
proxy_port="$3"
tmp_file_344532="`mktemp`"
#Avast AntiVirus
if [ -f "$chroot_dir/AntiVirUpdate/avupdate" ]; then
echo "Avast AntiVirus: Found"
sed -i "s/--skip-master-file/--skip-master-file --proxy-host=$proxy_host --proxy-port=$proxy_port/g" "$chroot_dir/AntiVirUpdate/avupdate"
sed -i "s/--proxy-host=$proxy_host --proxy-port=$proxy_port --proxy-host=$proxy_host --proxy-port=$proxy_port/--proxy-host=$proxy_host --proxy-port=$proxy_port/g" "$chroot_dir/AntiVirUpdate/avupdate"
else
eco "Avast AntiVirus: NOT Found"
fi
#Eset AV
if [ -f "$chroot_dir/etc/opt/eset/esets/esets.cfg" ]; then
echo "Eset AV: Found"
cat "$chroot_dir/etc/opt/eset/esets/esets.cfg" | grep -v "proxy_addr" | grep -v "proxy_port" > "$tmp_file_344532"
rm "$chroot_dir/etc/opt/eset/esets/esets.cfg"
cp "$tmp_file_344532" "$chroot_dir/etc/opt/eset/esets/esets.cfg"
echo "proxy_addr = \"$proxy_host\"" >> "$chroot_dir/etc/opt/eset/esets/esets.cfg"
echo "proxy_port = $proxy_port" >> "$chroot_dir/etc/opt/eset/esets/esets.cfg"
else
eco "Eset AV: NOT Found"
fi
#ClamAV
if [ -f "$chroot_dir/etc/clamav/freshclam.conf" ]; then
echo "ClamAV: Found"
cat "$chroot_dir/etc/clamav/freshclam.conf" | grep -v "HTTPProxyServer" | grep -v "HTTPProxyPort" > "$tmp_file_344532"
rm "$chroot_dir/etc/clamav/freshclam.conf"
cp "$tmp_file_344532" "$chroot_dir/etc/clamav/freshclam.conf"
echo "HTTPProxyServer $proxy_host" >> "$chroot_dir/etc/clamav/freshclam.conf"
echo "HTTPProxyPort $proxy_port" >> "$chroot_dir/etc/clamav/freshclam.conf"
else
eco "ClamAV: NOT Found"
fi
#Sophos
if [ -f ""$chroot_dir/opt/sophos-av/etc/savd.cfg"" ]; then
echo "Sophos: Found"
echo "<Source>sophos:</Source><Proxy><Address>http://$proxy_host:$proxy_port</Proxy></Address>" >> "$chroot_dir/opt/sophos-av/etc/savd.cfg"
else
eco "Sophos: NOT Found"
fi
#F-Secure
if [ -f "$chroot_dir/opt/f-secure/fsaua/fsaua_config.template" ]; then
echo "F-Secure: Found"
echo "enable_fsma=no" >> "$chroot_dir/opt/f-secure/fsaua/fsaua_config.template"
echo "update_servers=http://fsbwserver-direct.f-secure.com" >> "$chroot_dir/opt/f-secure/fsaua/fsaua_config.template"
echo "update_proxies=http://$proxy_host:$proxy_port" >> "$chroot_dir/opt/f-secure/fsaua/fsaua_config.template"
echo "http_proxies=http://$proxy_host:$proxy_port" >> "$chroot_dir/opt/f-secure/fsaua/fsaua_config.template"
cat "$chroot_dir/opt/f-secure/fsaua/fsaua_config.template" > "$chroot_dir/etc/opt/f-secure/fsaua/fsaua_config"
else
eco "F-Secure: NOT Found"
fi
rm "$tmp_file_344532"
tmp_file_344532=
echo "done"
}
function proxy_enable() { proxy_enable-desinfect.17 $@; }
#tools_add-desinfect.17 [chroot_dir] [tools_list]
function tools_add-desinfect.17() {
#$1 = chroot directory
chroot_dir="$1"
tools_list="$2"
sourcelist_desinfect_set_extendet2017 "$chroot_dir"
tools_add-debian "$chroot_dir" "$tools_list"
sourcelist_desinfect_set_nomal2017 "$chroot_dir"
}
function tools_add() { tools_add-desinfect.17 $@; }