Video fra jan-2018.
Video fra jan-2018.
Filnavn: /etc/systemd/system/run_backup.service
——
[Unit]
Description=run /root/run_backup.sh
Before=shutdown.target reboot.target
[Service]
ExecStart=/bin/true
ExecStop=/root/run_backup.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
——
Filnavn: /root/run_backup.sh
——
#!/usr/bin/bash
/usr/bin/duplicity \
–volsize 100 \
–no-encryption \
–include ‘/etc’ \
–include ‘/root/notater’ \
–exclude ‘**’ / \
-v5 \
file:///z/backup >>/root/.run_backup_history.log
——
For å aktivere, kjør “chmod +x /root/run_backup.sh” og “systemctl enable run_backup.service”
Restart maskin for å teste, merk at første kjøring så kan ta litt tid avhengig av hvor mye som skal kjøres backup av, deretter hjelper duplicity deg med incremental(lagre endringer) som går raskt. Og jo, har du ikke duplicity installert så apt install duplicity. Modifiser skript etter behov og ønske.
Problem/scenario:
Jottacloud har automatisk exclude på et par mapper og filer. Kan lese mer om dette på https://docs.jottacloud.com/en/articles/1292896-which-filetypes-are-excluded-from-backup-and-sync-by-default
Løsning:
Manuelt velge å fjerne exclude på nettopp de mapper/filer du ønsker at den skal ta med seg likevel.
Kommentar:
Merk at det filene som er under din profil, ikke program files, som man må kjøre backup av.
// Skrevet 6. sep. 2019.
Forslag på hvordan man får Docker til å prate på samme nettverket, bruke IPer på vanlige nettverket/LAN, og ha forbindelse internt i tillegg som er kjent for å være noe spesielt.
Opprette eget docker-nettverk som kobles opp mot nettverket, sett gjerne en begrensning på hvilke IPer som skal tillates som i eks her “/27″(10.0.0.128-158).
docker network create -d macvlan \ --subnet=10.0.0.0/24 \ --gateway=10.0.0.1 \ --ip-range=10.0.0.128/27 \ --aux-address 'host=10.0.0.128' \ -o parent=ens32 \ mynet
For at lokale docker prosesser, inkl maskin dette kjører på, skal få lov å “prate sammen” så må man sette opp en link.
ip link add mynet-shim link ens32 type macvlan mode bridge ip addr add 10.0.0.128/32 dev mynet-shim ip link set mynet-shim up ip route add 10.0.0.128/27 dev mynet-shim
Merk at docker-nettverket vil lagres, “set and forget”. Mens linkingene av nettverkene må gjøres for hver gang maskin booter, anbefaler at skrives inn i noe startup-skript.
Etter dette så er det å ta det i bruk, spesifiser gjerne IP for å være nøye;
docker run --name mysql -e MYSQL_ROOT_PASSWORD='Hemmlig2019' --network=mynet --ip=10.0.0.129 -d mariadb
Om du er noe usikker på hva som skjedd, så docker network inspect mynet, docker inspect mysql eller hva du kjører, så finner du fort ut av det : )
Borg brukes gjerne for å lagre kopier/backup av mapper og gjerne mer, men den brukes lokalt.
Så hvordan kjører man da denne “fra en boks for å hente fra annen boks” ? Og uten å åpne i brannmur ? Man kan selvsagt bruke sshfs for å mount ekstern filsystem på lokal boks.
Men la oss se på en litt mer fornuftig taktikk, bruk av tunnel startet fra lokale boksen over på eksterne og kjøre kommandoen der for å så bruke tunnelen tilbake(unngå å åpne i brannmur) mht selve lagringen.
root@backup:~# cat borg_eksternlinux.sh
ssh -R 2022:127.0.0.1:22 eksternlinux.noe -C \
‘borg create ssh://root@127.0.0.1:2022/stor/borg/linux::eksternlinux.noe_{now:%Y%m%d%H%M%S} / –exclude-from /root/.borgexclude –stats ‘
Anbefaler selvsagt å bruke ssh-nøkler for å unngå bruk av passord. Samt bruk av “vanlig bruker”, ikke root.
På serveren det gjelder du ønsker å kjøre dette, “b1.sh” som kaller denne selv.
#!/bin/sh ###### # bruk av tar for incremental backup, # ./b1.sh arkiv /pathtobackup ##### if [ -z $2 ]; then echo "./b1.sh arkiv mappe" ;exit ;fi fil="$1" sti="$2" if [ -f $1\.snar ] ;then dato=$(date +%Y%m%d%H%M%S) ; echo $dato tar --create \ --file=$fil\_$dato.tgz \ --listed-incremental=$fil\.snar \ --gzip \ --verbose \ $sti >$fil\_$dato.log else tar --create \ --verbose \ --file=$fil\_main.tgz \ --listed-incremental=$fil\.snar \ --gzip \ $sti >$fil\_main.log fi
root@localhost:/var/minmappe/bkup# cat cron_b1 #!/bin/sh cd /var/minmappe/bkup/ echo etc ;./b1.sh b1/etc /etc echo www ;./b1.sh b1/www /var/www echo log ;./b1.sh b1/log /var/log echo vmail ;./b1.sh b1/vmail /var/vmail echo mysql ;./b1.sh b1/mysql /var/lib/mysql echo root ;./b1.sh b1/root /root echo DONE
nas:/DataVolume/shares/b1# cat laosshentedataene.no.sh rsync -arv -e ssh root@server.mittdomene.no:/var/minmappe/bkup/b1/* /DataVolume/shares/b1/minmappe.no/
Noen ganger ønsker man å kunne ta trafikk inn på en server som skal til en annen port, basert på domenenavn. Dette gjelder feks om har en spesiell løsning som krever dette. I dette eksemplet så sender da trafikken, inkl avsnitt for ssl, til port 801 uavhengig, så lenge domenenavnet stemmer.
<VirtualHost *:80> ServerAdmin kenneth@ivarsson.me ServerName domeneendetgjelder.no ServerAlias domeneendetgjelder.no RewriteEngine On RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE] ProxyRequests Off #ProxyPass / http://localhost:8080/ <Location /> ProxyPreserveHost On ProxyPass http://127.0.0.1:801/ ProxyPassReverse http://127.0.0.1:801/ </Location> </VirtualHost> <VirtualHost *:443> ServerAdmin kenneth@ivarsson.me ServerName domenedetgjelder.no ServerAlias domenedetgjelder.no ProxyRequests Off #ProxyPass / http://localhost:8080/ <Location /> ProxyPreserveHost On ProxyPass http://127.0.0.1:801/ ProxyPassReverse http://127.0.0.1:801/ </Location> SSLEngine on SSLCertificateFile "/etc/letsencrypt/live/domenedetgjelder.no/cert.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/domenedetgjelder.no/privkey.pem" </VirtualHost>
apt-get update && apt upgrade -y apt-get install -y sudo apt-transport-https ca-certificates curl gnupg2 software-properties-common curl -fsSL https://download.docker.com/linux/debian/gpg |apt-key add - apt-key fingerprint 0EBFCD88 add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" apt-get update apt-get install -y docker-ce apt-cache madison docker-ce
echo domenedetgjelder.no mailq|awk ' /^[0-9A-F][0-9A-F]*.*domenedetgjelder.no$/ {print $1}'|tr -d '*'| xargs -rn1 postsuper -d echo MAILER-DAEMON mailq|awk ' /^[0-9A-F][0-9A-F]*.*MAILER-DAEMON$/ {print $1}'|tr -d '*'| xargs -rn1 postsuper -d
Hensikten er å ha en oppdatert kopi av ekstern server lokalt for raskt å kunne kjøre “restore” av alt fra enkeltfiler til større mengder data, men da med “snapshots” som gir muligheten for versjonskontroll.
For å kjøre dette trenger man å installere zfs og rsync(server og klient), fordel å ha opprettet en “authorized_keys” fra backupserveren på klientserveren for å unngå bruk av passord. Samt opprette en “nøkkel”(hva som helst av data) som brukes mht kryptering (vi vil ikke at om noen får tak i eksterne kopien, at de også får tak i dataene!).
root@bkup:~# zfs list NAME USED AVAIL REFER MOUNTPOINT z 42.9G 51.1G 256K /z z/servernavn.no 2.32G 51.1G 2.32G /servernavn.no
/z /dev /proc /tmp /nfs /sys /run /var/lib/amavis/virusmails /var/backup /var/spool/squid /var/www/clients/client2/web2/tmp /var/www/clients/client2/web2/web/var/cache *.bak *.rar *.zip *.exe swap.dsk disk*.zfs
NAVN=servernavn.no rsync=/usr/bin/rsync zfs=/sbin/zfs if [ "`cat /root/.bkup_state`" == "1" ] then echo "BACKUP IS RUNNING FROM BEFORE !" ; exit 1; fi echo "1" >/root/.bkup_state $rsync \ --progress --stats --compress --recursive --times --perms --links --delete \ --checksum --exclude-from '/root/bkup.exclude' \ $NAVN:/* /z/$NAVN/ \ |grep -v "skipping non-regular" echo ""; dato=$(date +%Y%m%d%H%M%S) ;echo -n z/$NAVN@$dato $zfs snapshot z/$NAVN@$dato ;echo " - snap done" echo ""; echo "0" >/root/.bkup_state
root@bkup:~# cat zfs_send_nas clear echo echo echo -n "Sleeping for 1sec "; for i in $(seq 1 9); do echo -n "."; sleep 0.1; done ;echo "done!" echo dato=$(date +%Y%m%d%H%M%S) if [ "$1" == "" ] ;then echo "Hay, you gotta search for something.." ;exit ;fi echo echo "Searching for: $1" echo "Found the following:"; for NAVN in $(ls /z |grep -v old |grep $1 |head -1 ); do echo $NAVN; done echo "Mounting /nas" ;mount /nas echo "Now starting...... date of snapshot: $dato"; echo for NAVN in $(ls /z |grep -v backup |grep -v old |grep $1 |head -1 ); do zfs snapshot z/$NAVN@$dato ;echo Snapshot of $NAVN done, now starting snap to gzip at /nas/.. mkdir /nas/$NAVN@$dato zfs send z/$NAVN@$dato |gzip |openssl enc -aes-256-cbc -salt -pass file:/root/key.bin |split -a 5 -d -b 100m - /nas/$NAVN@$dato/$NAVN@$dato.enc done echo echo "Unmounting /nas" ;umount /nas echo "......DONE:)" echo root@bkup:~# cat zfs_send_nas_restore clear echo echo echo "-----------------------------------------------------" echo "RESTORE FROM BACKUP/NAS BACK TO BKUP -SERVER !" echo "---------------------------------------" echo echo #echo -n "Sleeping for 1sec "; for i in $(seq 1 9); do echo -n "."; sleep 0.1; done ;echo "done!" echo echo "Mounting /nas" ;mount /nas ;echo ls -lh /nas/ |grep \@ ;echo echo -n "Select backup to restore: "; read torestore ;echo if [ "$torestore" == "" ] ;then echo "exiting.." ;umount /nas ;exit ;fi torestorename="`echo $torestore |tr \@ \_`" echo "Restoring to: z/$torestorename" time cat /nas/$torestore/*enc* |openssl aes-256-cbc -d -kfile /root/key.bin |gunzip |zfs recv z/$torestorename echo echo "Unmounting /nas" ;umount /nas echo "......DONE:)"
clear echo echo echo "-----------------------------------------------------" echo "RESTORE FROM BACKUP/NAS BACK TO BKUP -SERVER !" echo "---------------------------------------" echo echo #echo -n "Sleeping for 1sec "; for i in $(seq 1 9); do echo -n "."; sleep 0.1; done ;echo "done!" echo echo "Mounting /nas" ;mount /nas ;echo ls -lh /nas/ |grep \@ ;echo echo -n "Select backup to restore: "; read torestore ;echo if [ "$torestore" == "" ] ;then echo "exiting.." ;umount /nas ;exit ;fi torestorename="`echo $torestore |tr \@ \_`" echo "Restoring to: z/$torestorename" time cat /nas/$torestore/*enc* |openssl aes-256-cbc -d -kfile /root/key.bin |gunzip |zfs recv z/$torestorename echo echo "Unmounting /nas" ;umount /nas echo "......DONE:)"
if [ "$1" == "" ] ;then echo no input ;exit ;fi for f in $(zfs list -t snapshot -o name |grep $1 ) ;do echo $f ;zfs destroy $f ;done
/etc/systemd/system/rc-local.service
[Unit] Description=/etc/rc.local ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target
/etc/rc.local
#!/bin/sh -e # # rc.local # # Your commands here, without the # : ) # # exit 0 --
chmod +x /etc/rc.local
systemctl start rc-local.service
systemctl status rc-local.service
Noen ganger kan det være til sin fordel å endre sitt passord på facebook, feks om man skulle være uheldig og trykke på noe “virus” e.l. der.
Direktelink: https://www.facebook.com/settings?tab=security (åpnes i nytt vindu).
Passord
For å bytte passord på facebook så går man inn på “Settings”(Innstillinger på norsk) og velger “Security and Login”, her vil man kunne endre passord.
Two-factor authentication
Ved innlogging fra annen/ukjent pc så vil man måtte bekrefte, i tillegg til passord, at du er deg med å taste inn feks kode man får på mobil/sms. Dette er en utmerket måte, et ekstra nivå, å øke sikkerheten.
Vedlagt par bilder som viser hvordan dette ser ut;
En vakker høstdag i 2017 så tenkte tanken av å ta “oppgraderingen” av eksisterende MCSA mht Windows 2012 server til Windows 2016, så..
934 av 1000 (700 for å bestå) poeng. Greit nok, men seriøst må erkjenne at det var en del formuleringer av spørsmål der som jeg må si hadde vært lettere i praksis enn måten de var presentert på. Upgrade/3-i-1-exam.
root@srv:/tmp# cat b1.sh #!/bin/sh ###### # bruk av tar for incremental backup, # ./b1.sh arkiv /pathtobackup ##### if [ -z $2 ]; then echo "./b1.sh arkiv mappe" ;exit ;fi fil="$1" sti="$2" if [ -f $1\_main.tgz ] ;then dato=$(date +%Y%m%d%H%M%S) ; echo $dato tar --create \ --file=$fil\_$dato.tgz \ --listed-incremental=$fil\.snar \ --gzip \ --verbose \ $sti >$fil\_$dato.log else tar --create \ --verbose \ --file=$fil\_main.tgz \ --listed-incremental=$fil\.snar \ --gzip \ $sti >$fil\_main.log fi
Problem med å koble til nettverksdisk med en PC som kjører Windows 10?
Enkle løsningen – klikk høyre musknapp og last ned følgende fil, så kjør den (ja noen varsler, men er ok). AllowInsecureGuestAuth.reg
Manuelle måten å gjøre dette på er å gå inn på regedit, da under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters og legge til “AllowInsecureGuestAuth” som dword32 med verdi “1”.
Noen ganger er det av interesse å få tatt en liten nedlasting av feks kontakter, epost, videoer, osv. — Og skulle man ønske å rense litt, så er fordel å ha en kopi av dette, en backup/sikkerhetskopi – før man renser : )
Google https://takeout.google.com/settings/takeout
(gmail, søkehistorikk, youtube mm.)
Facebook https://www.facebook.com/settings?tab=your_facebook_information
(Trykk på Download a copy of your Facebook data.)
LinkedIn https://www.linkedin.com/psettings/member-data
Fleste tjenester på nettet har slike muligheter.
Når kommer til epost så anb. uten tvil MailStore.
http://metrolive.telenor.no/kapaks-application-web/kapaksweb
bruker/pass: skapaksprovider / prov
Adgangsfiler på mappenivå
/var/www/domenenavn/web/.htaccess
Inneholder (i tillegg til det som er fra før)
# Stop Apache from serving .ht* files
<Files ~ “^\.ht”>
Order allow,deny
Deny from all
</Files># Protect wp-login
<Files wp-login.php>
AuthUserFile /var/www/domenenavn/private/htpasswd
AuthName “Private access”
AuthType Basic
require user brukernavn
</Files>Passordfilen
/var/www/domenenavn/private/htpasswd (feks)
Inneholder
brukernavn:2027d58d3695a2f8979cb0e48c9df9cd
(google md5 text hash verktøy på web for å konventere tekst til passord)
GPG (Gnu Privacy Guard) som stammer fra PGP, en utmerket måte å kryptere på, benytter du dette og ønsker å sende meg noe som du er sikker på at kun jeg kan lese? Er du litt ukjent med GPG, så ta titt på GPG4Win.
Continue reading “GPG -min nøkkel”
MailStore er et særdeles godt program for arkivering/sikkerhetskopi av epost.
Programmet er gratis for hjemme/privat-bruk, lett å installere og kan lastes ned på
http://www.mailstore.com/en/mailstore-home-email-archiving.aspx
Laget et litet galleri/bilde-serie for å vise et eks. på hvordan man kan ta det i bruk:
Vedlegget gir en grei forklaring på hvordan man kan benytte ssh-nøkler i putty
Eksempel på oppsett av DNS med SPF !
(Når gjelder domeneshop; velg domenet, gå inn på dns-pekere, så velg avansert)