Compare commits

..

13 Commits

Author SHA1 Message Date
2ffe939f5c Merge branch 'develop' into feature-lxc
lxc version aktuall.
2018-06-02 22:16:16 +02:00
268e327351 mod proj template 2018-05-22 02:12:28 +02:00
f5a2ddb0c4 apply changes to main script too 2018-05-22 02:10:45 +02:00
27b9155cd9 apply all new changes 2018-05-22 02:07:01 +02:00
6543
226c2567d9
Merge pull request #23 from 6543/develop
update feature branch
2018-05-20 23:51:20 +02:00
6543
fb524720f4
Merge pull request #19 from 6543/develop
update feature-fxc branch
2018-05-17 01:13:02 +02:00
6543
adc9f4f7b5 Merge branch 'fix-standalone_executable' into feature-lxc
fix-standalone_executable
2018-05-11 00:06:48 +02:00
6543
edfeec5868 Merge branch 'hotfix-1.9.3' into feature-lxc
hotfix-1.9.3
2018-05-10 22:48:08 +02:00
6543
a5de57abb7 Merge branch 'bugfix-1.9.2' into feature-lxc
docu
2018-05-10 18:52:04 +02:00
6543
127d682cfb bugfix-1.9.2++ 2018-05-10 17:27:36 +02:00
6543
d4b7654769 Merge branch 'bugfix-1.9.2' into feature-lxc
finished bugfix-1.9.2
2018-05-10 17:15:04 +02:00
6543
a45c267641 use lxc 2018-05-10 15:12:36 +02:00
6543
76fc7b342f merge diff 2018-05-10 15:12:06 +02:00
21 changed files with 643 additions and 154 deletions

View File

@ -1,6 +1,6 @@
Package: remaster
Source: remaster
Version: 2.1.0
Version: 2.0.4
Architecture: all
Maintainer: 6543 <6543@obermui.de>
Installed-Size: <SIZE>

View File

@ -1,10 +1,6 @@
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Release](https://img.shields.io/badge/dynamic/json.svg?label=release&url=https://code.obermui.de/api/v1/repos/6543/remaster/releases&query=$[0].tag_name)](https://code.obermui.de/6543/remaster/releases)
[![PGP Sig](https://img.shields.io/keybase/pgp/6543)](https://mh.obermui.de/publickey.gpg)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2F6543%2Fremaster.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2F6543%2Fremaster?ref=badge_shield)

# remaster


## Description

The aim of this Project is to create a daemon for a server, witch update live systems. You should only have to install the modules for different OS/Live-Projects. It also set the right network settings (Proxy, DNS, ...) and will be extendible wit PXE menu. additional: Web Interface (Create/Change/Delete Jobs; Download Latest ISO; Start/Stop PXE Server)

View File

@ -30,13 +30,3 @@
* restructure code
* use proj templates
* some help scripts

2019-09-20 - 2.1.0
* fixes
- filesystem_extract: filesystem_get_type
- update dev scripts
- work without arguments
* check_update: acuret message
* restruct sample config
* add "Help & Info" menue/section (#24) (#20)
* --config | custom config (#25)

View File

@ -1,13 +1,13 @@
Erorrs:
Erorr Liste:

ID: Description
----------------------------------------------------
1 general error
2 no paramters / wrong parameters
3 wrong settings
4 programm missing
1 Allgemeiner Fehler
2 No Paramters / wrong parameters
3 Wrong Settings!
4 Programm missing

10 need root permission
10 no root
11 file no found
12 dir not found
13 cant create/delete file/dir

BIN
doc/Server Bedienung.odt Normal file

Binary file not shown.

BIN
doc/Server Bedienung.pdf Normal file

Binary file not shown.

View File

@ -1,38 +1,40 @@
## 1.1 Load base functions [-> #functions]
# 1. Starte "remaster"

## 1.2 Check ...
* for updates
* for rights
## 1.1 Lade Grundfunctionen [-> #functions]

## 1.3 Load settings [-> #config]
* lade /etc/remaster/<Conf>
* verify config (Proj Exist; Mods Exist; ...)
## 1.2 Überprüfe ...
* auf Updates
* auf Rechte

## 1.4 Load Proj-Func [-> #projects]
* overload based on dependencys
## 1.3 Lade Richtige Einstellungen [-> #config]
* Lade /etc/remaster/<Conf>
* Überprüfe Conf. (Proj Exist; Mods Exist; ...)

## 1.4 Lade Proj-Func [-> #projects]
* Überlade nach Abhängigkeit
* (z.B. ubuntu.16.04 -> ubuntu -> debian)
* verify config (Proj Conform)
* Prüfe Conf. (Proj Conform)

## 1.5 Load $n Mods (optional) [-> #mods]
* check
* save in MOD_LST
## 1.5 Lade $n Mods (optional) [-> #mods]
* Überprüfen
* Spechern in MOD_LST

# 2. Init Chroot

## 2.1 Extrackt Files
## 2.1 Dateien Entpacken
* ISO
* Squashfs

## 2.2 Config for Chroot (chroot_initial)
## 2.2 Config für Chroot (chroot_initial)
* (lxc-conf / tmpdir)
* network
* Netzwerk

## 2.3 Start Chroot
## 2.3 Starte Chroot
* (lxc-start / mount ...)

# 3. Modivikationen

## 3.1 Network
## 3.1 Netzwerk

## 3.2 Proj-Spez.
* (z.B. Desinfect: conky_info)
@ -42,22 +44,22 @@
* Install
* Delete

## 3.4 Next in $MOD_LST
## 3.4 Weitere in $MOD_LST
* z.B. xrdp
* z.B. default pw

# 4. Finish

## 4.1 Clean-Up Live-System
## 4.1 Aufreumen Live-Sys
* tmpfiles
* Packet Mgr

## 4.2 Stop chroot
* Umount

## 4.3. Generate ISO/PXE
## 4.3. Gen ISO/PXE

## 4.4. Delete Chroot
## 4.4. Del Chroot

# 5. Send Log

19
doc/draft_mod-pronects Normal file
View File

@ -0,0 +1,19 @@
maddl@NB-Maddl:~$ function a() { echo null; }
maddl@NB-Maddl:~$ a
null
maddl@NB-Maddl:~$ function a_desinfect() { echo desinfect; }
maddl@NB-Maddl:~$ a_desinfect
desinfect
maddl@NB-Maddl:~$ alias a=a_desinfect
maddl@NB-Maddl:~$ a
desinfect
maddl@NB-Maddl:~$ alias --help
bash: alias: --: Ungültige Option
alias: Gebrauch: alias [-p] [Name[=Wert] ... ]
maddl@NB-Maddl:~$ man alias
Kein Handbucheintrag für alias vorhanden
maddl@NB-Maddl:~$ alias a=a
maddl@NB-Maddl:~$ a
null
maddl@NB-Maddl:~$

2
doc/notes Normal file
View File

@ -0,0 +1,2 @@
initrd:
https://help.ubuntu.com/community/LiveCDCustomization#Removing_the_.28Casper.29_Autologina

View File

@ -9,17 +9,16 @@ date=`date +%Y-%m-%d`

#nummer
sed -i "/#@version\ /c\#@version\ $version_sed" src/remaster.sh
sed -i "/echo\ Remaster\ /c\ \ \ \ \ \ \ \ \ \ echo\ Remaster\ $version_sed" src/remaster.sh

#datum
sed -i "/#@date\ /c\#@date\ $date" src/remaster.sh
}

[ -e "Changelog.md" ] && {
[ -e "changes/remaster.md" ] && {

echo >> Changelog.md
echo $date - $version >> Changelog.md
$EDITOR Changelog.md
echo >> changes/remaster.md
echo $date - $version >> changes/remaster.md
editor changes/remaster.md
}

[ -f "DEBIAN/control" ] && {

View File

@ -1,39 +1,36 @@
#cfg

#########################################################
## sample-config rename it to config.cfg after changes ##
#########################################################

## Quelle der Project CD/DVD
iso_source="/data/local/Desinfect_Remaster/tmp/desinfect-2017.iso"

## Pfad zum gepakten Live System
## (kann anstat einer ISO auch als Quelle dienen, dann aber auch zwingend als Ziel)
# squashfs_path="/data/local/Desinfect_Remaster/tmp/filesystem.squashfs"

## Ziel, Lable der zu erstellenden CD/DVD
iso_aim="/data/local/Desinfect_Remaster/tmp/custom_desinfect_`date '+%Y-%m-%d'`.iso"
#CD/DVD
#entweder iso_source oder squashfs_path alls quelle
# -> bei iso gen erforderlich!
iso_source="/data/remaster/desinfect-2017.iso"
#destination optinal
iso_aim="/data/remaster/result/custom_desinfect_`date '+%Y-%m-%d'`.iso"
iso_lable="DESINFECT_`date '+%Y-%m-%d'`"

#Filesystem (for pxe)
#entweder iso_source oder squashfs_path alls quelle
squashfs_path="/data/remaster/result/filesystem.squashfs"

## Netzwerk Sinstellungen
## Proxy:
# proxy_host="10.40.8.108"
# proxy_port="8080"
domain="fritz.box"
nameserver="10.40.255.254"
#Network
proxy_host="proxy.local"
proxy_port="8080"
domain="local"
nameserver="10.x.x.2,10.x.x.1"

## Project / Distro
## Aktuell unterstützt: debian; ubuntu; ubuntu.14.04; ubuntu.16.04; desinfect.17
#remaster_script
project="desinfect.17"

## LOG Einstellungen
## log_file ist optionall
log_file="/data/local/Desinfect_Remaster/tmp/logs/`date '+%Y-%m-%d'`.log"
## Senden mit sendmail einen Report
# log_mail_source="desinfect@email.clocal"
# log_mail_smtp="smtp.mail.local:25"
# log_mail_aim="6543@email.clocal"
# log_mail_subject="Desinfect_Remaster"
#LOG
log_file="/data/remaster/logs/`date '+%Y-%m-%d'`.log"
log_mail_source="desinfect@email.clocal"
log_mail_smtp="smtp.mail.local:25"
log_mail_aim="6543@email.clocal"
log_mail_subject="Desinfect_Remaster"

#Sonstiges
tools_list="xrdp clamav nano htop nmon iftop tmux dsniff nmap openssh-server tightvncserver rsync e2fsprogs foremost gddrescue recoverjpeg safecopy sleuthkit testdisk arp-scan"

View File

@ -5,7 +5,7 @@
#check_dependency
# -> 0 | -> 16
function check_dependency() {
for packet in squashfs-tools xorriso wget sed sendemail; do
for packet in squashfs-tools xorriso lxc wget sed sendemail; do
[ "`dpkg -l $packet 2>&1`" == "dpkg-query: Kein Paket gefunden, das auf $packet passt" ] && {
echo "### ERROR ### Packet $packet not installed"
return 16

32
src/func/chroot Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
#remaster lib
[ -d "<LIBDIR>" ] || { echo "LIBDIR not exist"; exit 1; }

## overload chroot with lxc
function chroot() {
lxc-attach -n _remaster_ -- "$2" "$3" "$4" "$5" "$6" "$7"
}

## create lxc config

#chroot_config [chroot_dir]
function chroot_config() {

chroot_dir="$1"

# Container specific configuration
echo "lxc.rootfs = $chroot_dir"
echo "lxc.rootfs.backend = dir"
echo "lxc.utsname = _remaster_"

# Network configuration
echo "lxc.network.type = veth"
echo "lxc.network.link = lxcbr0"
echo "lxc.network.flags = up"
echo "lxc.network.hwaddr = 00:16:3e:5a:ba:1e"
}

[ -n "$1" ] && {
echo param
$1
}

View File

@ -13,11 +13,13 @@ function chroot_initial() {
return 12
}

#mount virus definitions
mount -t tmpfs tmpfs "$chroot_dir/tmp"
mount -t tmpfs tmpfs "$chroot_dir/root"
mount --bind /dev "$chroot_dir/dev"
mount --bind /proc "$chroot_dir/proc"
[ -d "/var/lib/lxc/_remaster_/" ] && {
echo "### Warning ### chroot_initial: lxc container exists"
[ -f "/var/lib/lxc/_remaster_/config" ] && {
mv -f "/var/lib/lxc/_remaster_/config" "/var/lib/lxc/_remaster_/config.old"
}
}
mkdir -p "/var/lib/lxc/_remaster_/"

rm "$chroot_dir/etc/resolv.conf"
cp "/etc/resolv.conf" "$chroot_dir/etc/resolv.conf"

View File

@ -7,12 +7,15 @@
function chroot_is_mounted() {
#$1 = chroot directory

if [ "`mount | grep "$1"`" != "" ] ; then
#ther is smething mounted
echo "true"
else
#nothing mounted
#get state of _remaster from lxc
STATE=`lxc-ls _remaster_ -f -F STATE | tail -n 1 | sed 's/ //g'`

if [ "#$STATE#" == "#STOPPED#" ] ; then
#nothing running
echo "false"
else
#container is running
echo "true"
fi
}


View File

@ -1,35 +0,0 @@
#!/bin/bash
#remaster lib
[ -d "<LIBDIR>" ] || { echo "LIBDIR not exist"; exit 1; }

#check_config
function clear_config() {

## Source & Aim options
iso_source=
squashfs_path=
iso_aim=
iso_lable=

## network
proxy_host=
proxy_port=
domain=
nameserver=

## Project / Distro
project=

## LOG Settings
log_file=
log_mail_source=
log_mail_smtp=
log_mail_aim=
log_mail_subject=

}

#this func is standalone executable
[ -n "$1" ] && {
clear_config $@
}

View File

@ -10,6 +10,9 @@ function workspace_erase() {
[ -d "$dir" ] && rm -r -f "$dir"
done

#lxc
[ -d /var/lib/lxc/_remaster_/ ] && rm -R /var/lib/lxc/_remaster_/

echo "done"
}


227
src/proj/desinfect.15 Executable file
View File

@ -0,0 +1,227 @@
#!/bin/bash
#remaster lib
[ -d "<LIBDIR>" ] || { echo "LIBDIR not exist"; exit 1; }

#desinfect.15
# . -Y ubuntu.14.04 -> ubuntu -> debian
source <LIBDIR>/proj/ubuntu.14.04
project_relation="desinfect.15 $project_relation"



#iso_create-desinfect.15 [chroot_path] [iso_extr_dir] [iso_aim] [iso_lable]
function iso_create-desinfect.15() {
echo "prepere iso folder ... "

chroot_path="$1"
iso_extr_dir="$2"
iso_aim="$3"
iso_lable="$4"

#desinfect
rm "$iso_extr_dir/casper/initrd.lz"
wget http://www.heise.de/ct/projekte/desinfect/des15/initrd.lz -O "$iso_extr_dir/casper/initrd.lz"

echo "done"

iso_create-debian "$chroot_path" "$iso_extr_dir" "$iso_aim" "$iso_lable"
}
function iso_create() { iso_create-desinfect.15 $@; }

#chroot_initial-desinfect.15 [chroot_dir]
function chroot_initial-desinfect.15() {
#$1 = chroot dir

chroot_initial-debian "$1"

echo -n "initial desinfect on chroot ... "

#check chroot dir
chroot_dir="$1"
[ -d "$chroot_dir" ] || {
echo "### ERROR ### chroot_initial_desinfect: chroot directory not exist!"
return 12
}

#mount virus definitions
#bitdefender
mount --bind $chroot_dir/opt/BitDefender-scanner/var/lib/scan{.orig,}
mount --bind $chroot_dir/var/kl/bases_rd{.orig,}

echo "done"
}
function iso_create() { iso_create-desinfect.15 $@; }

#chroot_umount-desinfect.15 [chroot_dir]
function chroot_umount-desinfect.15() {
#call main mount
chroot_umount-debian "$1"

echo -n "unmount desinfect on chroot ... "
#check chroot dir
chroot_dir="$1"
[ -d "$chroot_dir" ] || {
echo "### ERROR ### chroot_umount_desinfect: chroot directory not exist!"
return 12
}

for d in "$chroot_dir/opt/BitDefender-scanner/var/lib/scan" "$chroot_dir/var/kl/bases_rd" ; do
umount $d
retval=$?
[ "$retval" -gt 0 ] && {
echo "### ERROR ### chroot_umount_desinfect: can't umount \"$d\"!"
return 21
}
done

echo "done"
}
function chroot_umount() { chroot_umount-desinfect.15 $@; }

#proxy_enable-desinfect.15 [chroot_dir] [proxy_host] [proxy_port]
function proxy_enable-desinfect.15() {

proxy_enable-debian $1 $2 $3

echo -n "enable proxy for desinfect's av ... "

chroot_dir="$1"
proxy_host="$2"
proxy_port="$3"

#Avast AntiVirus
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"

#BitDefender
echo "ProxyEnable = Yes" >> "$chroot_dir/etc/BitDefender-scanner/bdscan.conf"
echo "ProxyHost = $proxy_host:$proxy_port" >> "$chroot_dir/etc/BitDefender-scanner/bdscan.conf"

#Clam AV
echo "HTTPProxyServer $proxy_host" >> "$chroot_dir/etc/clamav/freshclam.conf"
echo "HTTPProxyPort $proxy_port" >> "$chroot_dir/etc/clamav/freshclam.conf"

#Kaspersky
sed -i "s/<tDWORD name=\"UseProxy\">0<\/tDWORD>/<tDWORD name=\"UseProxy\">1<\/tDWORD>/g" "$chroot_dir/etc/kl/config.xml"
sed -i "s/<tSTRING name=\"ProxyHost\"><\/tSTRING>/<tSTRING name=\"ProxyHost\">$proxy_host<\/tSTRING>/g" "$chroot_dir/etc/kl/config.xml"
sed -i "s/<tDWORD name=\"ProxyPort\"><\/tDWORD>/<tDWORD name=\"ProxyPort\">$proxy_port<\/tDWORD>/g" "$chroot_dir/etc/kl/config.xml"

echo "done"
}
function proxy_enable() { proxy_enable-desinfect.15 $@; }

#sourcelist_desinfect_set_nomal2015 [chroot_dir]
function sourcelist_desinfect_set_nomal2015() {
echo -n "build normal source.list ... "
#$1 = chroot directory

sourcelist="$1/etc/apt/sources.list"


echo "#### Desinfe't 2015 ####" > "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://www.heise.de/ct/projekte/desinfect/ubuntu 2015 main" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "# #### Ubuntu 14.04 (trusty) ####" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://de.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://de.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://de.archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://de.archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://de.archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://de.archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://de.archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://de.archive.ubuntu.com/ubuntu trusty-backports 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 trusty main" >> "$sourcelist"

echo "done"
}

#sourcelist_desinfect_set_extendet2015 [chroot_dir]
function sourcelist_desinfect_set_extendet2015() {
echo -n "build extendet source.list ... "

sourcelist="$1/etc/apt/sources.list"


echo "#### Desinfe't 2015 ####" > "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://www.heise.de/ct/projekte/desinfect/ubuntu 2015 main" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "#### Ubuntu 14.04 (trusty) ####" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://de.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://de.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://de.archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://de.archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://de.archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://de.archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://de.archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://de.archive.ubuntu.com/ubuntu trusty-backports 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 trusty main" >> "$sourcelist"

echo "done"
}

#os_update-desinfect.15 [chroot_dir]
function os_update-desinfect.15() {
#$1 = chroot directory

chroot_dir="$1"

#call main os_update
os_update-debian "$chroot_dir"

echo "update virus definitions ... "

#BitDefender
chroot "$chroot_dir" /bin/bash -c "bdscan --update" | grep -v "... updated"

#Avast Avira
chroot "$chroot_dir" /bin/bash -c "/AntiVirUpdate/avupdate" | grep -v " -> "

#Clam AV
chroot "$chroot_dir" /bin/bash -c "freshclam" > /dev/null
rm -f "$chroot_dir/var/lib/clamav/daily.cld"

#Karspersky
echo '#!/bin/bash' > "$chroot_dir/tmp/up_kasp"
echo 'PATH=/usr/lib/kl:$PATH' >> "$chroot_dir/tmp/up_kasp"
echo 'LD_LIBRARY_PATH=/usr/lib/kl:$LD_LIBRARY_PATH' >> "$chroot_dir/tmp/up_kasp"
echo 'KL_PLUGINS_PATH=/usr/lib/kl' >> "$chroot_dir/tmp/up_kasp"
echo 'export PATH LD_LIBRARY_PATH KL_PLUGINS_PATH' >> "$chroot_dir/tmp/up_kasp"
echo '/usr/lib/kl/kav update' >> "$chroot_dir/tmp/up_kasp"
chmod +x "$chroot_dir/tmp/up_kasp"
chroot "$chroot_dir" /bin/bash -c "/tmp/up_kasp" | grep -v ".kdc" | grep -v "File downloaded"
rm "$chroot_dir/tmp/up_kasp"


echo "done"
}
function os_update() { os_update-desinfect.15 $@; }

#tools_add-desinfect.15 [chroot_dir] [tools_list]
function tools_add-desinfect.15() {
#$1 = chroot directory
chroot_dir="$1"
tools_list="$2"

sourcelist_desinfect_set_extendet2015 "$chroot_dir"
tools_add-debian "$chroot_dir" "$tools_list"
sourcelist_desinfect_set_nomal2015 "$chroot_dir"
}
function tools_add() { tools_add-desinfect.15 $@; }

262
src/proj/desinfect.16 Executable file
View File

@ -0,0 +1,262 @@
#!/bin/bash
#remaster lib
[ -d "<LIBDIR>" ] || { echo "LIBDIR not exist"; exit 1; }

#desinfect.16
# . -Y ubuntu.14.04 -> ubuntu -> debian
source <LIBDIR>/proj/ubuntu.14.04
project_relation="desinfect.16 $project_relation"


#chroot_initial-desinfect.16 [chroot_dir]
function chroot_initial-desinfect.16() {
#$1 = chroot dir

chroot_initial-debian "$1"

echo -n "initial desinfect on chroot ... "

#check chroot dir
chroot_dir="$1"
[ -d "$chroot_dir" ] || {
echo "### ERROR ### chroot_initial_desinfect: chroot directory not exist!"
return 12
}

#mount virus definitions
mount --bind $chroot_dir/var/kl/bases_rd{.orig,}

echo "done"
}
function chroot_initial() { chroot_initial-desinfect.16 $@; }

#chroot_umount-desinfect.16 [chroot_dir]
function chroot_umount-desinfect.16() {
#call main mount
chroot_umount-debian "$1"

echo -n "unmount desinfect on chroot ... "
#check chroot dir
chroot_dir="$1"
[ -d "$chroot_dir" ] || {
echo "### ERROR ### chroot_umount_desinfect: chroot directory not exist!"
return 12
}

umount "$chroot_dir/var/kl/bases_rd"
[ "$?" -gt 0 ] && {
echo "### ERROR ### chroot_umount_desinfect: can't umount \"$chroot_dir/var/kl/bases_rd\"!"
#return 21
}

echo "done"
}
function chroot_umount() { chroot_umount-desinfect.16 $@; }

#proxy_enable-desinfect.16 [chroot_dir] [proxy_host] [proxy_port]
function proxy_enable-desinfect.16() {

proxy_enable-debian $1 $2 $3

echo -n "enable proxy for desinfect's av ... "

chroot_dir="$1"
proxy_host="$2"
proxy_port="$3"
tmp_file_344532="`mktemp`"

#Avast AntiVirus
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"

#Clam AV
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"

#Eset AV
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"

#Kaspersky
sed -i "s/<tDWORD name=\"UseProxy\">0<\/tDWORD>/<tDWORD name=\"UseProxy\">1<\/tDWORD>/g" "$chroot_dir/etc/kl/config.xml"
sed -i "s/<tSTRING name=\"ProxyHost\"><\/tSTRING>/<tSTRING name=\"ProxyHost\">$proxy_host<\/tSTRING>/g" "$chroot_dir/etc/kl/config.xml"
sed -i "s/<tDWORD name=\"ProxyPort\"><\/tDWORD>/<tDWORD name=\"ProxyPort\">$proxy_port<\/tDWORD>/g" "$chroot_dir/etc/kl/config.xml"

rm "$tmp_file_344532"
tmp_file_344532=

echo "done"
}
function proxy_enable() { proxy_enable-desinfect.16 $@; }

#sourcelist_desinfect_set_nomal2016 [chroot_dir]
function sourcelist_desinfect_set_nomal2016() {
echo -n "build normal source.list ... "
#$1 = chroot directory

sourcelist="$1/etc/apt/sources.list"


echo "#### Desinfe't 2016 ####" > "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://www.heise.de/ct/projekte/desinfect/ubuntu 2016 main" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "# #### Ubuntu 14.04 (trusty) ####" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://de.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://de.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://de.archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://de.archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://de.archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://de.archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse" >> "$sourcelist"
echo "#" >> "$sourcelist"
echo "# deb http://de.archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse" >> "$sourcelist"
echo "# deb-src http://de.archive.ubuntu.com/ubuntu trusty-backports 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 trusty main" >> "$sourcelist"

echo "done"
}

#sourcelist_desinfect_set_extendet2016 [chroot_dir]
function sourcelist_desinfect_set_extendet2016() {
echo -n "build extendet source.list ... "

sourcelist="$1/etc/apt/sources.list"


echo "#### Desinfe't 2016 ####" > "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://www.heise.de/ct/projekte/desinfect/ubuntu 2016 main" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "#### Ubuntu 14.04 (trusty) ####" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://de.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://de.archive.ubuntu.com/ubuntu trusty main restricted universe multiverse" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://de.archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://de.archive.ubuntu.com/ubuntu trusty-updates main restricted universe multiverse" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://de.archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://de.archive.ubuntu.com/ubuntu trusty-security main restricted universe multiverse" >> "$sourcelist"
echo "" >> "$sourcelist"
echo "deb http://de.archive.ubuntu.com/ubuntu trusty-backports main restricted universe multiverse" >> "$sourcelist"
echo "deb-src http://de.archive.ubuntu.com/ubuntu trusty-backports 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 trusty main" >> "$sourcelist"

echo "done"
}

#os_update-desinfect.16 [chroot_dir]
function os_update-desinfect.16() {
#$1 = chroot directory

chroot_dir="$1"

#call main os_update
os_update-debian "$chroot_dir"

echo "update virus definitions ... "

#Avast Avira
{
echo "Avira ..."
chroot "$chroot_dir" /bin/bash -c "/AntiVirUpdate/avupdate" | grep -v " -> "
echo "Avira done"
}

#Clam AV
{
echo "ClamAV..."
chroot "$chroot_dir" /bin/bash -c "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"

echo "set timeout: 2min"
av_eaet_timeout=1200
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"
sleep 2
chroot "$chroot_dir" /bin/bash -c "/opt/eset/esets/sbin/esets_daemon --update"

#warten auf daemon update ...
sleep 10m
echo "wait 10min for Eset AV update"
while [ "`chroot "$chroot_dir" /bin/bash -c "/opt/desinfect/conky_info.sh eset"`" == "$tmp_var_3092" ]; do
sleep 1
av_eaet_timeout=$((av_eaet_timeout-1))
[ $av_eaet_timeout -gt 0 ] || tmp_var_3092=
done

sleep 4

chroot "$chroot_dir" /bin/bash -c "/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"
}

#Karspersky
{
echo "Karspersky ..."
#gen update-scrypt
echo '#!/bin/bash' > "$chroot_dir/tmp/up_kasp"
echo 'PATH=/usr/lib/kl:$PATH' >> "$chroot_dir/tmp/up_kasp"
echo 'LD_LIBRARY_PATH=/usr/lib/kl:$LD_LIBRARY_PATH' >> "$chroot_dir/tmp/up_kasp"
echo 'KL_PLUGINS_PATH=/usr/lib/kl' >> "$chroot_dir/tmp/up_kasp"
echo 'export PATH LD_LIBRARY_PATH KL_PLUGINS_PATH' >> "$chroot_dir/tmp/up_kasp"
echo '/usr/lib/kl/kav update' >> "$chroot_dir/tmp/up_kasp"
chmod +x "$chroot_dir/tmp/up_kasp"

chroot "$chroot_dir" /bin/bash -c "/tmp/up_kasp" | grep -v ".kdc" | grep -v "File downloaded"
rm "$chroot_dir/tmp/up_kasp"
echo "Karspersky done"
}

echo "update virus definitions done"
}
function os_update() { os_update-desinfect.16 $@; }

#tools_add-desinfect.16 [chroot_dir] [tools_list]
function tools_add-desinfect.16() {
#$1 = chroot directory
chroot_dir="$1"
tools_list="$2"

sourcelist_desinfect_set_extendet2016 "$chroot_dir"
tools_add-debian "$chroot_dir" "$tools_list"
sourcelist_desinfect_set_nomal2016 "$chroot_dir"
}
function tools_add() { tools_add-desinfect.16 $@; }

View File

@ -261,3 +261,22 @@ function project_mods-desinfect.17() {
}
}
function project_mods() { project_mods-desinfect.17 $@; }

function chroot_initial-desinfect2017() {
#$1 = chroot dir

<LIBDIR>/func/chroot_initial "$1"

#LXC Start
config="/var/lib/lxc/_remaster_/config"

#special conf for distros:
echo "lxc.include = /usr/share/lxc/config/nesting.conf" > $config
echo "lxc.include = /usr/share/lxc/config/ubuntu.common.conf" >> $config
echo "lxc.arch = x86_64" >> $config

#normal config
chroot_config "$chroot_dir" >> $config
#LXC End
}
function chroot_initial() { chroot_initial-desinfect.17 $@; }

View File

@ -1,7 +1,7 @@
#!/bin/bash
#@version 2.1.0
#@version 2.0.4
#@autor 6543@obermui.de
#@date 2019-09-20
#@date 2018-05-22
#@licence GNUv3

#####################################################################################
@ -43,38 +43,6 @@ fi
fi
}

#####################################################################################
################## H e l p & I n f o ##############################################
#####################################################################################


case $(echo $1 | tr -d '-') in
'') ;;
version|V)
echo Remaster 2.1.0
exit 0
;;
config|c)
if [ -f "$2" ]; then
source <LIBDIR>/func/clear_config
source "$2"
else
echo "ERROR Config \"$2\" not found"
exit 1
fi
else
;;
*)
echo 'Remaster update Live Systems'
echo ' more information at: https://github.com/6543/remaster/'
echo ''
echo ' --version|-V show current version'
echo ' --config|-c <config> run remaster with custom config'
exit 0
;;
esac


#####################################################################################
################## F u n c t i o n s ################################################
#####################################################################################
@ -128,6 +96,9 @@ source <LIBDIR>/func/iso_create

### chroot ###

## overload chroot with lxc
source <LIBDIR>/func/chroot

#chroot_initial [chroot_dir]
source <LIBDIR>/func/chroot_initial