Migration eines Windows Server auf Linux
Migration eines Windows Server auf Linux
Inhaltsverzeichnis
Netzwerktreiber aktualisieren. 5
Zertifikat für
Putty Machen. 5
Datenpartition
bereitstellen. 11
DNS Eintrag für neue Homepage machen. 14
Category Order and
Taxonomy Terms Order. 16
Festplattenplatz ermitteln. 17
Trojaner/Rootpack entfernen. 34
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 |
|
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
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
Hilfe:
https://www.linode.com/docs/email/postfix/postfix-smtp-debian7
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 |
root |
ROOTMYSQLPASSWORT |
MySQL root user |
root |
fdfadfgdfg |
Root auf allen |
HOSTEUROPEUSER |
HOSTEUROPEPASSWORT |
Mail Konto bei Hosteurope |
apache |
afddfagdfg |
Technischer |
vmuser |
agdf |
User für Virtualbox |
Rechner
Name |
IP |
Verwendet als |
ALTERWINDOWSSERVER |
172.10.10.1 |
Windows |
fritz.box |
172.10.10.5 |
Router |
Postamt |
172.10.10.7 |
Mail |
NEUERUBUNTUSERVER |
172.10.10.6 |
Linux Server |
BACKUPSERVER |
172.10.10.8 |
Backup |
Dyndns
DNS |
Verwaltet |
Notwendig |
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/