Migration eines Windows Server auf Linux

Migration eines Windows Server auf Linux

Inhaltsverzeichnis

Inhaltsverzeichnis. 1

Aufgabenstellung. 4

Szenario. 4

Hardware. 4

Server installieren. 4

Ubuntu installieren. 4

Vorbereitende Tätigkeiten. 5

Root aktivieren. 5

Netzwerktreiber aktualisieren. 5

SSH installieren. 5

Zertifikat für
Putty Machen
. 5

Ssh zwischen Ubuntu. 6

System aktualisieren. 7

Shell anpassen. 7

Zeitclient installieren. 7

Samba installieren. 7

DHCP Server installieren. 10

Befehle zum Directory. 10

Linux. 10

Windows. 10

Samba Befehle. 11

Datenpartition
bereitstellen
. 11

Volume erstellen. 11

Freigaben machen. 11

Datenfestplatte. 11

WordPress installieren. 12

LAMP installieren. 12

MySQL vorbereiten. 12

Apache vorbereiten. 13

virtuelle Verzeichnisse. 13

Fritz weiterleiten. 14

Dyndns installieren. 14

DNS Eintrag für neue Homepage machen. 14

PHP installieren. 14

Filelimit in PHP ändern. 14

WordPress umziehen. 14

Datenbank machen. 15

PHPExcel 16

WordPress Plugins. 16

Ajax Event Calendar. 16

Category Order and
Taxonomy Terms Order
. 16

NextGEN Gallery. 16

Post Types Order. 16

Simple LDAP Login. 16

Sucuri Security. 17

WP Super Cache. 17

Reste. 17

Festplattenplatz ermitteln. 17

PPTP VPN Server. 18

OpenVPN Server. 18

Ubuntu. 18

Sicherung. 20

MySQL Sicherung. 20

Windows. 20

Systemsicherung. 20

System
sichern
. 21

Daten sichern. 21

Zeug installieren. 21

Truecrypt installieren. 21

WebDAV.. 22

Fehler Abstürze. 23

Mail 23

Sogo ZOG.. 23

Postfix. 26

Outlook Manager. 27

Mail mit Anhang schicken. 28

Outlook. 29

Hosteurope. 30

Spamassessin. 32

Spam Regeln. 32

Spam lernen. 32

Sieve. 33

SSL installieren. 33

Virtualbox installieren. 33

Trojaner/Rootpack entfernen. 34

Backupsystem aufsetzen. 34

Daten synchronisieren. 34

Anlage. 35

Passwörter. 35

Rechner. 35

Dyndns. 35


 

Aufgabenstellung

Es soll der
vorhandene Windows 2008R2 Server „ALTERWINDOWSSERVER
auf ein Ubuntu Linux migriert werden.

Die
Installation erfolgt auf einer XenServer Virtualisierungsplattform, damit die
Reste von „ALTERWINDOWSSERVER“ auf
diesen überführt werden können.

Szenario

Was

Alt

Neu

Server

Windows 2008 R2

Ubuntu 16.4

Active Directory

Windows

Samba

DHCP

Windows

isc-dhcp-server

DNS

Windows

Samba

Dateiserver

Windows

Samba

Grafische Oberfläche

Windows

Keine?

Datenbank

SQL Server

MySQL

Druckserver

Windows

CUPS?

Webserver

IIS

Apache

Applikationsserver

IIS

Apache

Media Server

Plex

Plex

Verschlüsselung

Truecrypt

Truecrypt

Passwörter

Keypass

 

VPN

RRAS

Openvpn

PPTP

Mail

Exchange

?

Fernsteuerung

MSTSC

 

DynDNS

Updater

ddclient

 

Hardware

i3 CPU

16GB RAM

1TB Seagate

Asus Mainboard

2TB aus alten Server

3TB aus alten Server

Server installieren

Ubuntu installieren

Deutsche Sprache

Tastatur nicht erkennen: german -> german

Rechnername: NEUERUBUNTUSERVER

Neuer Benutzer: joe

Passwort: JOEPASSWORT

Ordner nicht verschlüsseln

Zeitzone Berlin bestätigen

Festplatte: geführte Installation LVM

Sicherheitsupdate: automatisch installieren

Softwareauswahl: LAMP
Server

                 Samba File

                 OpenSSH server

MySQL Root
Passwort: ROOTMYSQLPASSWORT

 

Vorbereitende Tätigkeiten

Root aktivieren

sudo bash

passwd

Netzwerktreiber aktualisieren

apt-get install r8168-dkms

Neu starten

SSH installieren

Einstellung
ändern, damit sich root anmelden kann

/etc/ssh/sshd_config

PermitRootLogin
yes

in /etc/ssh/sshd_config
freischalten, damit Keys gehen

PubkeyAuthentication
yes

AuthorizedKeysFile      %h/.ssh/authorized_keys

PasswordAuthentication
no

Zertifikat
für Putty Machen

Für das Zertifikat muss das öffentliche in die
authorized_keys eingetragen werden und die private im Client.

Mit PuttyGen
ein privaten
(privateNEUERUBUNTUSERVER.ppk) öffentlichen Schlüssel erstellen (public_NEUERUBUNTUSERVER).

 

 

Dann den Public key
kopieren und an die
~/.ssh/authorized_keys anhängen

In Putty unter
Connection -> SSH -> Auth die private Schlüsseldatei eintragen.

Die Keys
funktionieren aber nicht mit SSH zwischen zwei Ubuntus.

Ssh zwischen Ubuntu

Es muss ein
Schlüsselpaar erzeugt werden. Der öffentliche Schlüssel muss in die
authorized_keys des Server und der private auf den Client kopiert werden.

ssh-keygen
-b 4096

cat
id_rsa.pub >> authorized_keys

dann die id_rsa unter dem
Namen des Server auf den Client nach
~/.ssh/<client> kopieren

Rechte setzen

chmod 400 <client>

Auf dem Client
dann starten:

ssh -i <client> Servername

Wenn das alles klappt, dann das in die Config Datei
eingetragen werden, dann kann mit dem Config Namen auf die Schnittstelle
zugegriffen werden.

~/.ssh/config

Host BACKUPSERVER

        User root

        Hostname BACKUPSERVER.dyndns.org

        IdentityFile ~/.ssh/BACKUPSERVER.private

 

Dan kann mit

ssh BACKUPSERVER

scp test BACKUPSERVER://tmp

gearbeitet werden.

 

 

System
aktualisieren

apt-get
update

apt-get
upgrade

apt-get
dist-upgrade

Dienst neu
starten

service ssh restart

Ab jetzt kann über Putty auf den Server zugegriffen werden
und von dort installiert werden.

Shell
anpassen

Damit die
Größenangaben in Mega und Gigabyte angezeigt werden, muss die bashrc angepasst
werden.

~/.bashrc

 

alias df=’df -h‘

alias du=’du -h‘

alias free=’free
-h‘

alias
dmesg=’dmesg -T‘

alias ll=’ls
-alFh‘

alias la=’ls
-Ah‘

alias l=’ls
-CFh‘

Zeitclient installieren

apt-get
install ntp

Samba installieren

Samba Vorbereitungen machen

rm /etc/network/interfaces

Interfaces mit der statischen IP des Servers besetzen

/etc/network/interfaces

auto lo

iface lo
inet loopback

 

# The
primary network interface

auto eth0

iface eth0
inet static

address 172.10.10.6

netmask
255.255.255.0

network 172.10.10.0

gateway 172.10.10.5

dns-nameservers
172.10.10.1 8.8.8.8

dns-search DOMÄNE.LAND

Dann in die hosts eintragen, damit er sich selber findet

/etc/hosts

127.0.0.1       localhost localhost.DOMÄNE.LAND

172.10.10.6     NEUERUBUNTUSERVER.DOMÄNE.LAND NEUERUBUNTUSERVER

 

# The
following lines are desirable for IPv6 capable hosts

::1     localhost ip6-localhost ip6-loopback

ff02::1
ip6-allnodes

ff02::2 ip6-allrouters

Neustarten, damit die Netzkonfiguration wirksam wird

reboot

Linux
aktuell Machen

apt-get
update

apt-get
upgrade

apt-get
dist-upgrade

Samba
installieren

apt-get
install -y samba krb5-user winbind libnss-winbind libpam-winbind ldb-tools

In DOMÄNE aufnehmen

rm
/etc/samba/smb.conf

samba-tool
domain join
DOMÄNE.LAND DC -Uadministrator –realm=DOMÄNE.LAND

samba-tool
dns add 172.10.10.1
DOMÄNE.LAND NEUERUBUNTUSERVER
a 172.10.10.6 -Uadministrator

nun testen, ob die IP’s stimmen

host -t A NEUERUBUNTUSERVER.DOMÄNE.LAND

dig NEUERUBUNTUSERVER.DOMÄNE.LAND
@172.10.10.1

Jetzt muss noch die GUIID des Servers ins DNS aufgenommen
werden. Mit dem ldbsearch Befehl wird die Nummer des Servers gesucht und dann
mit samba-tool ins DNS geschrieben

ldbsearch
-H /var/lib/samba/private/sam.ldb ‚(invocationid=*)‘ –cross-ncs objectguid

samba-tool
dns add 172.10.10.1 _msdcs.
DOMÄNE.LAND cee04628-a406-474f-8aee-6a5a104788eb CNAME NEUERUBUNTUSERVER.DOMÄNE.LAND -Uadministrator

/etc/nsswitch.conf

passwd:         compat winbind

group:          compat
winbind

Die smb.conf ist um diese Einstellungen zu erweitern, dazu
folgendes ans Ende einfügen

/etc/samba/smb.conf

# Global
parameters

[global]

   workgroup = DOMÄNE

   realm = DOMÄNE.LAND

   netbios name = NEUERUBUNTUSERVER

   server role = active directory domain
controller

 

 

   interfaces=172.10.10.6

   bind interfaces only=yes

 

   registry shares = yes

   server string = Samba Server Version %v

   socket options = TCP_NODELAY IPTOS_LOWDELAY
SO_RCVBUF=131072 SO_SNDBUF=1310$

   use sendfile = true

   idmap config * : backend = tdb

   idmap config * : range = 100000-299999

   idmap config DOMÄNE : backend = rid

   idmap config DOMÄNE : range = 10000-99999

   winbind enum users = yes

   winbind enum groups = yes

   winbind use default domain = yes

   winbind refresh tickets = yes

   restrict anonymous = 2

   log file = /var/log/samba/log.%m

   max log size = 50

   template shell = /bin/bash

   template homedir = /daten/home/%u

   dns forwarder = 8.8.8.8

 

   admin users = WINDOWSUSER

   ldap server require strong auth = no

   client ldap sasl wrapping = plain

 

 

[netlogon]

        path = /var/lib/samba/sysvol/DOMÄNE.LAND/scripts

        read only = No

 

[sysvol]

        path = /var/lib/samba/sysvol

        read only = No

Die Kerberos Datei ist zu löschen und dann mit dem folgenden
Inhalt zu füllen.

/etc/krb5.conf

[logging]

    default = FILE:/var/log/krb5libs.log

    kdc = FILE:/var/log/krb5kdc.log

    admin_server = FILE:/var/log/kadmind.log

 

[libdefaults]

    default_realm = DOMÄNE.LAND

    ticket_lifetime = 24h

    forwardable = yes

    dns_lookup_realm = true

    dns_lookup_kdc = true

Rechner neustarten

reboot

DHCP Server installieren

apt-get install isc-dhcp-server

Konfigurationsdatei kopieren

/etc/dhcp/dhcpd.conf

# option
definitions common to all supported networks…

option
domain-name
DOMÄNE.LAND;

option domain-name-servers ALTERWINDOWSSERVER.DOMÄNE.LAND, NEUERUBUNTUSERVER.DOMÄNE.LAND, WEITERUBUNTUSERVER.DOMÄNE.LAND;

 

subnet 172.10.10.0 netmask 255.255.255.0 {

  range 172.10.10.60
172.10.10.80;

  option routers 172.10.10.5;

  option domain-name DOMÄNE.LAND;

  option domain-name-servers 172.10.10.6, 172.10.10.1;

  option broadcast-address 172.10.10.255;

  default-lease-time 28800;

  max-lease-time 43200;

  authoritative;

}

DHCP-Server auf Windows Server auf Startart Manuell setzen

Hier kann man die Leases rausfinden:

dhcp-lease-list
–lease /var/lib/dhcp/dhcpd.leases

Befehle zum Directory

Linux

kinit WINDOWSUSER
-> AN DOMÄNE
ANMELDEN

klist -> ÜBERPRÜFEN

getent passwd -> USER, HIER MÜSSEN DIE DOMÄENN USER
STHEEN

id WINDOWSUSER

Windows

DCDIAG /Fix

Samba
Befehle

samba-tool
drs showrepl

samba-tool
drs replicate BACKUPSERVER  NEUERUBUNTUSERVER
dc=DOMÄNE,dc=de

samba_dnsupdate –verbose

Datenpartition
bereitstellen

Volume
erstellen

fdisk /dev/xvdb

mkfs -t ext4 /dev/xvdb1

mkdir /daten

in
fstab einbinden

/etc/fstab

/dev/xvdb1
/daten  ext4    defaults        0
2

Freigaben
machen

Partition
als unsichtbare Freigabe freigeben

net conf
addshare C$ / writeable=y guest_ok=n System

Home Directory Machen

chmod 700 /daten/home -R

wenn
Verzeichnis schon existiert, ist doch besser, damit die anderen nicht drauf
zugreifen können?

 

mkdir –m
775 /daten/home

net conf
addshare home /daten/home writeable=yes guest_ok=no Home
Verzeichnisse

net conf
setparm home browsable no

net conf
setparm home create mask 700

net conf
setparm home directory mask 700 

Profile Verzeichnis machen

mkdir -m 1770 /daten/profile

chgrp ‚DOMÄNE-benutzer‘ /daten/profile

net conf addshare profile /daten/profile writeable=y
guest_ok=n Benutzer Profile

net conf setparm profile browsable
no

net conf
setparm profile profile acls yes

Datenfestplatte

Die Partitionen können nur 2TB groß sein. Daher sollen die
extra Festplatten für die TC Archive als ein RAID 0 bereitgestellt werden.

Als erstes wurden die beiden Festplatte 3TB und 2TB in den
Server eingebaut.

Laufwerke auflisten:

fdisk –l

 

Partition in GPT umwandeln

fdisk /dev/sdc

g

w

Partitionieren mit RAID

fdisk /dev/sdc

n

1

T

28

w

Raid
erstellen

mdadm
–create /dev/md0 –auto md –level=0 –raid-devices=2 /dev/sdb1 /dev/sdc1

mkfs.ext4 -b 4096 -E stride=128,stripe-width=384 /dev/md0

uuid herausfinden

mdadm –detail –scan

eintragen, damit device nicht als md127 aufgeführt wird

/etc/mdadm/mdadm.conf

ARRAY
/dev/md0 UUID=f5bfac4f-2ca3-475f-ac21-137801c42022

Dann folgendes Kommando:

update-initramfs -u

eintragen in

/etc/fstab

/dev/md0 /daten/tc        ext4     defaults 0        2        nofail

WordPress installieren

LAMP installieren

ist ja schon
installiert

apt-get
install apache2 mysql-server php7.0-mysql libapache2-mod-php7.0

MySQL vorbereiten

in my.cnf UTF8
als Standard wählen

/etc/mysql/my.cnf

[client]

default-character-set=utf8

 

[mysql]

default-character-set=utf8

 

[mysqld]

collation-server
= utf8_unicode_ci

init-connect=’SET
NAMES utf8′

character-set-server
= utf8

dann noch
Zugriff von root von allen Rechnern erlauben

/etc/mysql/my.cnf

bind-address
= 0.0.0.0

neu starten

service mysql restart

Apache vorbereiten

Pfad anlegen :

Mkdir /daten/webs

Apache Pfad erlauben

/etc/apache2/apache2.conf

<Directory
/daten/webs/>

        Options Indexes FollowSymLinks

        AllowOverride All

        Require all granted

</Directory>

Server sicherer machen

/etc/apache2/conf-enabled/security.conf

ServerSignature Off

ServerTokens Prod

virtuelle Verzeichnisse

Die bei
ServerAlias eingetragen Internetadressen müssen bei Dyndns registriert und mit
dem Server verbunden sein. In der Fritz.box muss Port 80 an den NEUERUBUNTUSERVER Server weitergeleitet
werden.

/etc/apache2/sites-available/homepage.conf

<VirtualHost
*:80>

        ServerName homepage.DOMÄNE.LAND

         ServerAlias  HOMEPAGE.blogdns.com

        ServerAdmin WINDOWSUSER@DOMÄNE.LAND

        DocumentRoot /daten/webs/homepage

        <Directory /daten/webs/homepage/>

                Options -Indexes +FollowSymLinks
+MultiViews

                AllowOverride All

                Order allow,deny

                allow from all

        </Directory>

        ErrorLog /var/log/apache2/error.log

        LogLevel warn

        CustomLog /var/log/apache2/access.log
combined

        ServerSignature On

</VirtualHost>

 

mkdir
/daten/webs

mkdir
/daten/webs/homepage

touch
/daten/webs/homepage/.htaccess

chmod 664
/daten/webs/homepage/.htaccess

chown
www-data:www-data /daten/webs –R

a2enmod
rewrite

a2ensite
homepage.conf

a2enmod
headers

service apache2 restart

Fritz weiterleiten

In der Fritzbox http-Server auf NEUERUBUNTUSERVER weiterleiten

Dyndns installieren

apt-get install ddclient

www.dyndns.com auswählen
und Username und Passwort eingeben

 

DNS Eintrag für neue Homepage machen

als Alias (CNAME) mit
grafischen DNS Tool einrichten

Dyndns Eintrag machen,
der auf Eintrag in .conf ServerAlias verweist

PHP installieren

apt-get install php7.0

apt install php7.0-gd

apt-get install php7.0-ldap

Filelimit in PHP ändern

Die Einträge
existieren schon und müssen entsprechend geändert werden.

/etc/php/7.0/apache2/php.ini

upload_max_filesize
= 64M

post_max_size
= 64M

max_execution_time
= 300

WordPress umziehen

Ordner von Windows
nach Linux kopieren (dabei ist der Linux mit „task blocked for more than 120
seconds“ abgeschmiert)

In
wp-config.php Anpassungen machen

damit upload
ohne FTP und Filelimit erhöht wird,
DB_HOST und URL’s auf neue Adresse

/daten/webs/homepage/wp-config.php

define(‘DB_HOST‘, ‚‘172.10.10.6‘);

 

define(‘WP_SITEURL‘,‘http://HOMEPAGE.blogdns.com‘);

define(‘WP_HOME‘,‘http://HOMEPAGE.blogdns.com‘);

/** Ermöglicht ein Update ohne FTP Account. */

define(‚FS_METHOD‘,’direct‘);

define(‚WP_MEMORY_LIMIT‘,
’64M‘);

 

Datenbank machen

auf Console mit

mysql -u root -p

anmelden

root erlauben
von überall anzumelden

use mysql;

update user
set host=’%‘ where user=’root‘;

update db
set host=’%‘ where user=’root‘;

Datenbank anlegen

CREATE
DATABASE wp_ball;

CREATE USER
wp_balluser IDENTIFIED BY ‚password‘;

GRANT ALL
PRIVILEGES ON wp_ball.* TO wp_balluser;

FLUSH
PRIVILEGES;

exit

Datenbank vom
Windows Server mit MySQL Workbench sichern

Datei mit
Editor bearbeiten und alle Pfade per suchen und ersetzen auf neuen Server
ändern

in neue
Datenbank einlesen

permalinks
einmal in wordpress aktualisieren

Webseite testen

Wenn noch
falsche Pfade sind, ober SQL ändern:

Hier ein
Grundgerüst zum Suchen und ersetzen.

alt und neu mit
den Suchbegriffen ausfüllen und dann auf die Spalten der betroffenen Tabellen
laufen lassen

SET
SQL_SAFE_UPDATES=0;

set @alt=‘GEHOSTETEWEBSITE2.dyndns.org/GEHOSTETEWEBSITE2‚;

set @neu=‘GEHOSTETEWEBSITE2.blogdns.com‘;

UPDATE
wp_posts SET post_content =

replace(post_content,

        @alt,

        @neu);

 

UPDATE
wp_comments SET comment_content =

replace(comment_content,       

        @alt,

        @neu);

       

UPDATE
wp_comments SET comment_author_email =

replace(comment_author_email,

                 @alt,

        @neu);

 

UPDATE
wp_options SET option_value =

replace(option_value,

                 @alt,

        @neu);

 

UPDATE
wp_postmeta SET meta_value =

replace(meta_value,

                 @alt,

        @neu);

       

SET SQL_SAFE_UPDATES=1;

PHPExcel

Um
aus PHP Excel Dateien zu erstellen, ist das Paket PHPExcel zu installieren.

In
Funtions.php muss Zeile 581 auskommentiert werden.

Dann
müssen noch Module nachinstalliert werden:

pecl install zip

apt-install php-pear

apt
install php7.0-dev

2
mal

Die
PHP Dateien müssen in UTF-8 ohne BOM erstellt werden.

ZipArchive
aufnehmen

php.ini

extension=zip.so

WordPress Plugins

Ajax Event Calendar

Stellt einen Kalender bereit

Category
Order and Taxonomy Terms Order

Damit können Kategorien sortiert werden

NextGEN Gallery

Anzeigen von Bildern in Gallerien und Alben

Post Types Order

Artikel in der Reihenfolge sortieren

Simple
LDAP Login

Anmelden an LDAP / AD

Einstellungen unter Einstellungen -> Simple LADP
Login Settings:
Account Suffix: @msd4u.de
Base DN: ou=LOKATION,dc=DOMÄNE,dc=de
Domain Controller: NEUERUBUNTUSERVER

Sucuri Security

Sicherheit, Überwachen

WP Super Cache

Soll Seiten schneller laden lassen.

Reste

Festplattenplatz ermitteln

du * -hs 2>/tmp/x

 

 

PPTP
VPN Server

apt-get
install pptpd

/etc/pptpd.conf

localip 172.10.10.1

remoteip 172.10.10.234-238,172.10.10.245

/etc/ppp/pptpd-options

ms-dns 172.10.10.6

ms-dns 8.8.8.8

/etc/ppp/chap-secrets

#
client        server  secret                  IP addresses

VPN     *
asdf    *

Fritz.Box Port weiterleiten 1723

Route einrichten, damit von NEUERUBUNTUSERVER der Rechner hinter VPN gefunden werden kann (muss
auf client gesetzt sein):

ip route add 172.10.10.8
dev ppp0

 

ip_forward muss aktiviert sein.

 

Route zu NEUERUBUNTUSERVER
setzen, da default über Fritzbox

route add
-net 192.168.10.0 netmask 255.255.255.0 gw 172.10.10.6

Auf Windows Rechner routen setzen:

route add
192.168.10.1 172.10.10.6

route add
192.168.10.2 172.10.10.6

 

OpenVPN
Server

Ubuntu

installieren

apt-get
install openvpn easy-rsa

cp
/usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/

gunzip
/etc/openvpn/server.conf.gz

cp -r
/usr/share/easy-rsa /etc/openvpn/easy-rsa2

/etc/openvpn/easy-rsa2/vars

export
KEY_COUNTRY=DE

export
KEY_PROVINCE=Berlin

export
KEY_CITY=Berlin

export KEY_ORG=FIRMA

export KEY_EMAIL=info@webmaster

export KEY_EMAIL=info@webmaster

export KEY_CN=WEITERUBUNTUSERVER

export
KEY_NAME=WEITERUBUNTUSERVER

export
KEY_OU=IT

export
PKCS11_MODULE_PATH=hallo

export
PKCS11_PIN=1234

export
KEY_ALTNAMES=Irgendwas

 

cd
/etc/openvpn/easy-rsa2

cp
openssl-x.x.x.cnf openssl.cnf

 

source
./vars

sudo -E
./clean-all

sudo -E ./build-ca

Fragen beantworten

dann den Serverschlüssel bauen:

sudo -E ./build-key-server server

und wieder fragen beantworten

damit einen Client key bauen

sudo -E ./build-key ersterclient

damit einen Client key bauen

vergrößern

sudo -E ./build-key ersterclient

 

sudo -E
./build-dh

Client key
packen

cd
/etc/openvpn/easy-rsa2/keys

tar -cf
client1.tar client1.key client1.crt ca.crt

/etc/openvpn/server.conf

ca
./easy-rsa2/keys/ca.crt

cert
./easy-rsa2/keys/server.crt

key ./easy-rsa2/keys/server.key    # Diese Datei geheim halten.

dh
./easy-rsa2/keys/dh2048.pem     #
Diffie-Hellman-Parameter

 

Sicherung

MySQL Sicherung

apt-get install automysqlbackup

mkdir
/daten/backup

/etc/default/automysqlbackup

USERNAME auskommentieren

PASSWORD auskommentieren

BACKUPDIR=”/daten/backup/automysqlbackup”

 

crontab –e

Am Ende einfügen

10       1        *        *        *        /usr/sbin/automysqlbackup

Windows

 

Systemsicherung

Die wichtigen Systemordner können mit DUPLICITY gesichert
werden.

apt-get install duplicity

sicherung in crontab eintragen

crontab –e

Sonntag eine Vollsicherung, den Rest der Woche differenzen

15       1        *        *        0        rm /daten/backup/etc/*

16       1        *        *        0        /usr/bin/duplicity full –-no-encryption
/etc
file:///daten/backup/duplicity/etc

15       1        *        *        1-6      /usr/bin/duplicity –-no-encryption /etc file:///daten/backup/duplicity/etc

 

Wichtige Befehle:

Sicherung auflisten

duplicity –-list-current-files file:///daten/backup/duplicity/etc
|grep „gesuchte Datei“

Datei
zurückholen

duplicity
–file-to-restore „DATEI“
file:///daten/backup/duplicity/etc ZIELNAME

Alle zurückholen:

duplicity file:///daten/backup/etc
ZIELORDNER

mit –t kann einer älteren Version hergestellt werden.

Die Passphrase kann immer irgendwas sein, da ja nicht
verschlüsselt.

 

System
sichern

Zum
Wiederherstellen des System muss nicht die Platte gesichert werden, es reicht
die Installierten Paket und das /etc Verzeichnis zu sichern.

https://wiki.ubuntuusers.de/Paketverwaltung/Tipps/#Paketliste-zur-Wiederherstellung-erzeugen

Hier
ein Script zum Sichern und wiederherstellen der Pakete.

/daten/skripte/systembackup.sh

#
Hiermit wird die installierte Basis gesichert.

dpkg –get-selections | awk
‚!/deinstall|purge|hold/ {print $1}‘ >
/daten/backup/system/packages.list.save

apt-mark showauto   >
/daten/backup/system/package-states-auto

apt-mark showmanual >
/daten/backup/system/package-states-manual

find /etc/apt/sources.list* -type f -name
‚*.list‘ -exec bash -c ‚echo -e \n## $1 ;grep
^[[:space:]]*[^#[:space:]] ${1}‘ _ {} \; >
/daten/backup/system/sources.list.save

 

#
Hier die Befehle zum Wiederherstellen

#xargs
-a packages.list.save sudo apt-get install

#xargs -a package-states-auto sudo
apt-mark auto

#xargs -a package-states-manual sudo
apt-mark manual

 

#Hier
zum Runterladen vom anderen Rechner

#apt-get -q -y –print-uris install PAKETNAME |
grep ^\‘ | awk ‚{print $1}‘ | tr -d ‚ > wget.list

#wget
-i wget.list

 

Daten
sichern

Festplatte von Windows mounten

mount -t cifs //pc34/e /mnt -o username=WINDOWSUSER,password=PASSWORT

 

Zeug
installieren

Truecrypt installieren

cd /tmp

wget https://www.truecrypt71a.com/dl/truecrypt-7.1a-linux-console-x64.tar.gz

tar xvfz truecrypt-7.1a-linux-console-x64.tar.gz

./truecrypt-7.1a-setup-console-x64

 

 

 

WebDAV

installieren:

a2enmod dav

a2enmod dav_fs

Für LDAP Anmeldung:

a2enmod ldap

a2enmod
authnz_ldap

/etc/apache2/sites-availible/WEBDAVADRESSE.conf

<VirtualHost
*:80>

        ServerName WEBDAVADRESSE.DOMÄNE.LAND

         ServerAlias WEBDAVADRESSE.simple-url.com

        ServerAdmin WINDOWSUSER@DOMÄNE.LAND

        DocumentRoot /daten

        <Directory /daten/>

                DAV on

                DirectoryIndex disabled

                Options Indexes FollowSymLinks

                 AllowOverride
None

                AuthName AD
Anmeldung

                AuthBasicProvider ldap

                AuthType Basic

                AuthLDAPGroupAttribute member

                AuthLDAPGroupAttributeIsDN On

                AuthLDAPURL ldap://ALTERWINDOWSSERVER.DOMÄNE.LAND:389/ou=LOKATION,dc=DOMÄNE,dc=de?sAMAccountName?sub?(objectClass=*)

                AuthLDAPBindDN
cn=apache,cn=users,DC=
DOMÄNE,DC=de

                AuthLDAPBindPassword APACHEPASSWORT

                require valid-user

        </Directory>

        ErrorLog /var/log/apache2/error.log

        LogLevel debug

        CustomLog /var/log/apache2/access.log
combined

        ServerSignature On

</VirtualHost>

User apache
in AD anlegen

dann aktivieren :

a2ensite WEBDAVADRESSE.conf

 

 

Proxy Konfiguration rausfinden

Fehler
Abstürze

apt
install sysstat

https://www.blackmoreops.com/2014/09/22/linux-kernel-panic-issue-fix-hung_task_timeout_secs-blocked-120-seconds-problem/

Mail

Sogo ZOG

http://developer.couchbase.com/documentation/server/current/security/security-saslauthd-new.html

/etc/saslauthd.conf

ldap_servers: ldap://NEUERUBUNTUSERVER.DOMÄNE.LAND:389

       ldap_search_base: OU=LOKATION,DC=DOMÄNE,DC=de

       ldap_filter: sAMAccountName=%u

       ldap_bind_dn:
cn=sogo,cn=Users,DC=DOMÄNE,DC=de

       ldap_password:
asdfsdöhew34ersadlfjksdflösaf

/etc/dovecot/dovecot-ldap-ZEG.conf.ext

 

hosts = NEUERUBUNTUSERVER.DOMÄNE.LAND:389

dn = cn=sogo,cn=Users,DC=DOMÄNE,DC=de

dnpass =
asdfsdöhew34ersadlfjksdflösaf

base = OU=LOKATION,DC=DOMÄNE,DC=de

auth_bind =
yes

scope =
subtree

user_attrs
= sAMAccountName=home=/home/mailboxes/%$,=uid=501,=gid=501

pass_attrs
= sAMAccountName=user

user_filter
= (&(objectclass=person)(|(sAMAccountName=%n)(mail=%n@DOMÄNE.LAND)(otherMailbox=%n@DOMÄNE.LAND)))

pass_filter
= (&(objectclass=person)(|(sAMAccountName=%n)(mail=%n@DOMÄNE.LAND)(othermailbox=%n@DOMÄNE.LAND)))

 

 

default_pass_scheme
= plain

ldap_version
= 3

/etc/dovecot/dovecot.conf

# Enable installed protocols

!include_try /usr/share/dovecot/protocols.d/*.protocol

 

postmaster_address=WINDOWSUSER@DOMÄNE.LAND

 

# AUTH

disable_plaintext_auth
= no

#no
damit auch unverschlüsselte zugänge gehen

auth_master_user_separator = *

auth_mechanisms = plain

 

# master users

passdb {


driver = passwd-file


master = yes


args = /etc/dovecot/master-users

 


# Unless you’re using PAM, you probably still want the destination user
to


# be looked up from passdb that it really exists. pass=yes does that.


#pass = yes

}

 

# ldap users

passdb {


driver = ldap


args = /etc/dovecot/dovecot-ldap-ZEG.conf.ext

}

userdb {


driver = ldap


args = /etc/dovecot/dovecot-ldap-ZEG.conf.ext

}

 

# trust on 127.0.0.1

passdb {

 driver = static

 args = nopassword=y allow_nets=127.0.0.1/32

}

 

 

# LOGGING

auth_verbose = yes

mail_debug = no

plugin {


# Events to log. Also available: flag_change append


#mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename


# Available fields: uid, box, msgid, from, subject, size, vsize, flags


# size and vsize are available only for expunge and copy events.


#mail_log_fields = uid box msgid size

}

 

# MAIL and NAMESPACES

#mail_location = maildir:~/maildir

 

mail_home = /home/mailboxes/home/

# HOMEPAGE 161017: hier den Usernamen (%n)
eintragen, damit ein Home Ordner angelegt wird

mail_location =
maildir:/home/mailboxes/%n/

mail_uid = vmail

mail_gid = vmail

mail_plugins = acl quota

 

namespace {


type = private


separator = /


prefix =


inbox = yes

 


mailbox INBOX {


auto = create


}

}

namespace {


type = shared


separator = /


prefix = shared/%%u/


location = maildir:%%h/maildir:INDEX=~/maildir/shared/%%u


subscriptions = no


list = children

}

 

 

# MASTER

service imap-login {


inet_listener imap {


#port = 143


}


inet_listener imaps {


#port = 993


#ssl = yes


}


# this is suboptimal since imap and imaps will also accept nopass


inet_listener imap-nopass {


port = 144


}

}

service pop3-login {


inet_listener pop3 {


#port = 110


}


inet_listener pop3s {


#port = 995


#ssl = yes


}

}

service lmtp {


unix_listener lmtp {


#mode = 0666


}


# Create inet listener only if you can’t use the above UNIX socket


inet_listener lmtp {


# Avoid making LMTP visible for the entire internet


address = 127.0.0.1


port = 24


}

}

service imap {


executable = imap postlogin

}

service auth {


# auth_socket_path points to this userdb socket by default. It’s
typically


# used by dovecot-lda, doveadm, possibly imap process, etc. Its default


# permissions make it readable only by root, but you may need to relax
these


# permissions. Users that have access to this socket are able to get a
list


unix_listener auth-userdb {


mode = 0660


user = root


group = vmail


}

}

service postlogin {


executable = script-login -d rawlog


unix_listener postlogin {


}

}

 

# SSL/TLS support: yes, no,
required. <doc/wiki/SSL.txt>

ssl = no

#ssl_cert =
</etc/ssl/certs/dovecot.pem

#ssl_key =
</etc/ssl/private/dovecot.pem

 

# LDA

quota_full_tempfail = yes

protocol lda {


# Space separated list of plugins to load (default is global
mail_plugins).


#mail_plugins = $mail_plugins sieve

}

 

# PROTOCOLS

protocol imap {


mail_plugins = $mail_plugins autocreate imap_acl imap_quota

}

protocol lmtp {


mail_plugins = $mail_plugins sieve

}

 

service managesieve-login {


inet_listener sieve {


port = 4190


address = 127.0.0.1


}

}

service managesieve {

}

protocol sieve {

}

 

plugin {


acl = vfile


acl_shared_dict = file:/var/spool/dovecot/shared-mailboxes.db

 


quota_rule = *:storage=5G


quota_rule2 = Trash:storage=+100M


quota = dict:::file:%h/dovecot-quota

 


sieve = /etc/dovecot/sieve/default.sieve


sieve_dir = /etc/dovecot/sieve

 


autocreate = Trash


autosubscribe = Trash


autocreate2 = Drafts


autosubscribe2 = Drafts


autocreate3 = Sent

}

 

mkdir
/home/mailboxes

chmod a+rwx
/home/mailboxes

Postfix

apt-get install postfix libsasl2-modules bsd-mailx

schon
drauf

Um
die Konfiguration zu starten:

dpkg-reconfigure
postfix

Internet
Smarthost

Rechner
akzeptieren

HOSTPOSTAUSGANG.webpack.hosteurope.de

rest
in default

Anmeldung
am Smarthost machen

Hier
die wichtigen Einträge in die Konfigurationsdatei von Postfix:

/etc/postfix/main.cf

myhostname =
postamt.DOMÄNE.LAND

mydomain = DOMÄNE.LAND

relay_domains = $mydomain

relayhost = HOSTPOSTAUSGANG.webpack.hosteurope.de

smtp_sasl_auth_enable = yes

# noplaintext
weglassen, wenn Passwörter im Klartext übertragen werden müssen:

# (nicht
empfohlen, nur wenn’s anders nicht funktioniert)

smtp_sasl_security_options = noanonymous

smtp_sasl_password_maps =
hash:/etc/postfix/sasl_password

 

# nächste
zeile damit mail von den clients geschickt warden kann

mynetworks = 172.10.10.0/24

/etc/postfix/sasl_password

HOSTPOSTAUSGANG.webpack.hosteurope.de
HOSTEUROPEUSER:HOSTEUROPEPASSWORT

Datei schützen

chmod 600 /etc/postfix/sasl_password

postmap
hash:/etc/postfix/sasl_password

service
postfix restart

Outlook Manager

/etc/ocsmanager/ocsmanager.ini

/etc/samba/smb.conf

# Global
parameters

[global]

  server role = active directory domain
controller

  workgroup = DOMÄNE

  realm = DOMÄNE.LAND

  netbios name = postamt

  passdb backend = samba4

  dns forwarder = 172.10.10.6

 

  ### Configuration required by OpenChange
server ###

  dsdb:schema update allowed = true

  dcerpc endpoint servers = epmapper,
mapiproxy, dnsserver

  dcerpc_mapiproxy:server = true

  dcerpc_mapiproxy:interfaces =
exchange_emsmdb, exchange_nsp, exchange_ds_rfr

 

  mapistore:namedproperties = mysql

  namedproperties:mysql_user = openchange-user

  namedproperties:mysql_pass = openchange123

  namedproperties:mysql_host = localhost

  namedproperties:mysql_db = openchange

 

  mapistore:indexing_backend =
mysql://openchange-user:openchange123@localhost/$

  mapiproxy:openchangedb =
mysql://openchange-user:openchange123@localhost/open$

  ### Configuration required by OpenChange
server ###

 

[netlogon]

  path =
/var/lib/samba/sysvol/example.com/scripts

  read only = No

 

[sysvol]

  path = /var/lib/samba/sysvol

  read only = No

Befehle ausführen

samba-tool
domain join DOMÄNE.LAND DC -UDOMÄNE\administrator

samba-tool dns add NEUERUBUNTUSERVER DOMÄNE.LAND
postamt A 172.10.10.7
-Uadministrator

 

smb.conf von NEUERUBUNTUSERVER kopieren und nur die
Servernamen ändern

Das ist falsch:

samba-tool
domain provision –realm=DOMÄNE.LAND
\

          –domain=DOMÄNE \

          –adminpass=‘ letmein!23456′ \

          –server-role=’domain controller‘

 

samba-tool
user setexpiry administrator –noexpiry

 

Mail mit
Anhang schicken

echo Nachricht | mutt -s Betreff
empfaenger@domain.tld -a datei.jpeg

Links:

https://sogo.nu/files/docs/SOGo%20Native%20Microsoft%20Outlook%20Configuration.pdf

Da Postfix Probleme mit groß und kleinschreibung hat, müssen
für die Mailordner symbolische Links angelegt werden.

Im Ordner /home/mailboxes liegen die Mails.

cd
/home/mailboxes

mv WINDOWSUSER WINDOWSUSER.alt

ln -s WINDOWSUSER WINDOWSUSER

chown
501:501 WINDOWSUSER

Spamassessin

apt-get
install spamassassin spamc

groupadd
spamd

useradd -g spamd -s /bin/false -d
/var/log/spamassassin spamd

mkdir /var/log/spamassassin

chown spamd:spamd /var/log/spamassassin

 

/etc/default/sapmassassin

ENABLED=1

CRON=1

 

SAHOME=/var/log/spamassassin/

OPTIONS=–create-prefs
–max-children 2 –username spamd \

-H ${SAHOME}
-s ${SAHOME}spamd.log

service
spamassassin start

/etc/postfix/master.cf

smtp      inet
n             
              smtpd

-o
content_filter=spamassassin

 

 

spamassassin unix –
n       n –  pipe user=spamd argv=/usr/bin/spamc -f -e  /usr/sbin/sendmail -oi -f ${sender}
${recipient}

/etc/spamassassin/local.cf

Spam Einstellungen machen

Spam Regeln

#https://wiki.apache.org/spamassassin/WritingRules

body
LOCAL_DEMONSTRATION_RULE   /Krankenkasse/

score
LOCAL_DEMONSTRATION_RULE 10

describe
LOCAL_DEMONSTRATION_RULE       This is a
simple test rule

 

body LOCAL_DEMONSTRATION_RULE   /hat nach Dir eine Bildnachricht gesendet/

score
LOCAL_DEMONSTRATION_RULE 10

describe
LOCAL_DEMONSTRATION_RULE       This is a
simple test rule

 

 

body LOCAL_DEMONSTRATION_RULE   /hat nach Dir eine Bildnachricht gesendet/

score
LOCAL_DEMONSTRATION_RULE 10

describe
LOCAL_DEMONSTRATION_RULE       This is a
simple test rule

Spam
lernen

sa-learn
–spam  /home/mailboxes/HOMEPAGEV/.INBOX.0\ spam/

sa-learn
–spam  /home/mailboxes/WINDOWSUSER/.Junk-E-Mail/

Sieve

Damit können Mails automatisch verschoben oder
beantwortet werden.

Eintragungen in die /etc/dovecot/dovecot.conf
notwendig, siehe oben

mkdir
/etc/dovecot/sieve

nano  /etc/dovecot/sieve/default.sieve

SSL
installieren

openssl
genrsa -out /etc/ssl/private/apache.key 2048

openssl req
-new -x509 -key /etc/ssl/private/apache.key -days 365 -sha256 -out
/etc/ssl/certs/apache.crt

-> Fragen beantworten

Country Name (2 letter code) [AU]:DE

State or
Province Name (full name) [Some-State]:Berlin

Locality
Name (eg, city) []:Berlin

Organization
Name (eg, company) [Internet Widgits Pty Ltd]:FIRMA

Organizational
Unit Name (eg, section) []:

Common Name
(e.g. server FQDN or YOUR name) []:postamt.DOMÄNE.LAND

Email
Address []:WINDOWSUSER@DOMÄNE.LAND

 

/etc/apache2/ports.conf 

<IfModule
mod_ssl.c>

    Listen 443

</IfModule>

 

 

Virtualbox
installieren

apt-get
install virtualbox

modprobe vboxnetflt

Virtuelle Maschine
erstellen

VBoxManage internalcommands sethduuid ALTERWINDOWSSERVER.DOMÄNE.LAND.vmdk

VBoxManage
createvm –name ALTERWINDOWSSERVER
–register

VBoxManage
modifyvm ALTERWINDOWSSERVER –memory
8000 –acpi on –nic1 bridged –bridgeadapter1 enp3s0

VBoxManage
storagectl ALTERWINDOWSSERVER –add
sata –controller IntelAHCI –name SATA

VBoxManage
modifyvm  ALTERWINDOWSSERVER –sataport1 ALTERWINDOWSSERVER.DOMÄNE.LAND.vmdk

 

VBoxManage showvminfo ALTERWINDOWSSERVER

301f4e70-e8ce-4410-8ec6-ab521c517276

VBoxManage startvm ALTERWINDOWSSERVER
–type headless

Trojaner/Rootpack entfernen

Wenn unter „top“ ein
Prozess mit zufälligem Namen läuft handelt es sich um einen Trojaner. Wenn der
Prozess gekillt wird, startet gleich ein neuer mit einem anderen zufälligen
Namen.

Der Trojaner kommt
wahrscheinlich über einen SSH Verbindung im Internet und per Brute Force auf
den root Account

Entfernen

Prozess killen, ohne
dass er einen neuen starten kann

kill -STOP <PID>

Der Trojaner
hinterlässt in /etc/rc* seine Startscripte, diese sind zu löschen.

Neue Scripte finden:

cd /etc

find . -mtime -1

Die Anzahl der Tage kann höher gesetzt werden, wenn der
Trojaner schon eine Weile läuft. Die Scripte fangen mit S an und haben einen
zufälligen Namen.

Wenn keine echten Scripte dabei sind, können einfach alle
Dateien gelöscht werden.

find . -mtime -1 -delete

ansonsten geziehlt die Dateien löschen

find . -mtime -5 -name S0* -delete

dann noch das Startscript in der Crontab finden und die
ausführbare Datei löschen (unterscheidet sich nach Trojaner)

cd cron.hourly/

ll

cat ZUFÄLLIGER NAME.sh

die da enthaltete Datei löschen

rm PFAD und ZUFÄLLIGER NAME.sh

 

\\ALTERWINDOWSSERVER\c$\windows\system32\netdom
resetpwd /server:ALTERWINDOWSSERVER /userd:DOMÄNE\ADMINISTRATOR /passwordD:

Backupsystem aufsetzen

Ubuntu wie oben
beschrieben installieren.

Daten
synchronisieren

Ssh Verbindung
aufsetzen

Job zum
Synchronisieren der Datenverzeichnisse

rsync -avz -e ssh /daten/webs/ BACKUPSERVER:/daten/webs/ –exclude=wp-config.php

Langversion für Crontab

rsync -avze
ssh -i /root/.ssh/BACKUPSERVER.private
/daten/webs/ root@BACKUPSERVER.dyndns.org:/daten/webs/
–exclude=wp-config.php

 

Anlage

Passwörter

User

Passwort

Verwendet als

joe

JOEPASSWORT

Ubuntu User
beim Installieren

root

ROOTMYSQLPASSWORT

MySQL root user

root

fdfadfgdfg

Root auf allen
Unix Maschinen (nicht mehr!)

HOSTEUROPEUSER

HOSTEUROPEPASSWORT

Mail Konto bei Hosteurope

apache

afddfagdfg

Technischer
User für LDAP Abfragen

vmuser

agdf

User für Virtualbox

Rechner

Name

IP

Verwendet  als

ALTERWINDOWSSERVER

172.10.10.1

Windows
Server

fritz.box

172.10.10.5

Router

Postamt

172.10.10.7

Mail
Server

NEUERUBUNTUSERVER

172.10.10.6

Linux Server

BACKUPSERVER

172.10.10.8

Backup
Server

Dyndns

DNS
Name

Verwaltet
von

Notwendig
für

FIRMA.webhop.org

Fritz.Box

Noteinwahl über Fritzbox

HOMEPAGE.blogdns.com

NEUERUBUNTUSERVER

Homepage

GEHOSTETEWEBSITE2.blogdns.com

NEUERUBUNTUSERVER

Kolonie GEHOSTEWEBKURZ2

GEHOSTETEWEBSITE1.dyndns.org

ALTERWINDOWSSERVER

Alter Einwahlpunkt

GEHOSTETEWEBSITE3.dyndns.org

NEUERUBUNTUSERVER

GEHOSTETEWEBSITE3

GEHOSTETEWEBSITE3w.dyndns.org

NEUERUBUNTUSERVER

GEHOSTETEWEBSITE3 WebDAV

WLANFREMD.dyndns.org

BACKUPSERVER.dyndns.org

BACKUPSERVER

Zugriff auf Server

 

 

 

Links

Exchange Postfach
Backup:

http://www.codetwo.de/blog/exchange-20132010-postfach-back-up-per-pst-export-powershell/5074

https://www.frankysweb.de/exchange-2010-sp1-export-und-import-von-postfachern/

nun

https://www.unixmen.com/setup-samba-domain-controller-with-openldap-backend-in-ubuntu-13-04/

https://www.debinux.de/2014/11/dovecot-postfix-mit-ldap-zum-active-directory/

https://lists.inverse.ca/sogo/arc/users/2010-10/msg00018/LDAP_Config_for_SOGo.pdf

http://www.openchange.org/cookbook/backends/sogo/