Sicheres Root-Server Hosting mit Linux

Post on 06-Jul-2015

2.757 views 3 download

description

In diesem Workshop zeige ich Euch, wie ihr einen eigenen und sichereren Root-Server für Eure Websites betreibt. Dabei gehe ich auf verschiedenste Konfigurationsparameter der nötigen Dienste (Apache, MySQL, PHP) und auf die Server-Sicherheit (Firewall, IP-Autoblocking, Ports, Updates, Backups) ein.

Transcript of Sicheres Root-Server Hosting mit Linux

© Markus Markert, CHECK24 2013

Sicheres Root-Server HostingLinux, Firewall, Apache, MySQL, PHP and more

© Markus Markert, CHECK24 2013

Agenda – Sicheres Root-Server Hosting

1. VORWORT

2. INFRASTRUKTUR

3. LINUX SERVER

4. FIREWALL

5. DIENSTE / PROGRAMME

6. UPDATES / BACKUP

7. CHECKS

8. SCHLUSSWORT

© Markus Markert, CHECK24 2013

Agenda – Sicheres Root-Server Hosting

1. VORWORT

2. INFRASTRUKTUR

3. LINUX SERVER

4. FIREWALL

5. DIENSTE / PROGRAMME

6. UPDATES / BACKUP

7. CHECKS

8. SCHLUSSWORT

© Markus Markert, CHECK24 2013

Vorwort

Linux Kenntnisse erforderlich

Zugriff auf den Server per SSH

Standard Einstellungen ändern

Fingerprints suchen und abstellen

100%igen Schutz gibt es nicht

Vielfältige Maßnahmen

© Markus Markert, CHECK24 2013

Agenda – Sicheres Root-Server Hosting

1. VORWORT

2. INFRASTRUKTUR

3. LINUX SERVER

4. FIREWALL

5. DIENSTE / PROGRAMME

6. UPDATES / BACKUP

7. CHECKS

8. SCHLUSSWORT

© Markus Markert, CHECK24 2013

Infrastruktur

Webserver (Apache, MySQL) + Firewall (IP-Tables)

Backupserver

Externer Mailserver

3 IP-Adressen

2 IPs Hosting

1 IP Management

© Markus Markert, CHECK24 2013

Infrastruktur

Webserver

Mailserver Backupserver

IP1

IP2

IP3

Domain 1

IP4

DNS Server

Update Server

IP6

IP7

IP8

Internet

ADMIN

BESUCHER

LegendeHTTP / HTTPS

SSH / FTPS / DNS…

SSH / FTPSIP5

© Markus Markert, CHECK24 2013

Agenda – Sicheres Root-Server Hosting

1. VORWORT

2. INFRASTRUKTUR

3. LINUX SERVER

4. FIREWALL

5. DIENSTE / PROGRAMME

6. UPDATES / BACKUP

7. CHECKS

8. SCHLUSSWORT

© Markus Markert, CHECK24 2013

Linux Server

Warum Linux Freiheit (Open Source)

Riesige Softwareauswahl

Gratis

Sicherheit

Stabilität

Vielseitig

Immer auf dem neuesten Stand

Wer braucht eine Grafische Oberfläche bei einem Server?

Abenteuer / Neues Entdecken

© Markus Markert, CHECK24 2013

Linux Server

Linux Server finden

Strato, Hetzner, Server4you, … -> Plain Images Ubuntu LTS (Long Term Support)

Connect auf Server mit Putty / Konsole

© Markus Markert, CHECK24 2013

Linux Server

Linux Befehle Man [Programm], cd [Verzeichnis], mv [Datei1] [Datei2], mkdir,

rmdir, ls, vim, apt-get, netstat –lpn, ps –aux

http://www.pc-erfahrung.de/linux/linux-befehle.html

Linux Dateirechte

© Markus Markert, CHECK24 2013

Linux Server

Linux updaten# apt-get update && apt-get upgrade

Installation von Tasksel# apt-get install tasksel

Tasksel starten# tasksel

LAMP & OpenSSH(Passwörter aufschreiben! ;)

© Markus Markert, CHECK24 2013

Agenda – Sicheres Root-Server Hosting

1. VORWORT

2. INFRASTRUKTUR

3. LINUX SERVER

4. FIREWALL

5. DIENSTE / PROGRAMME

6. UPDATES / BACKUP

7. CHECKS

8. SCHLUSSWORT

© Markus Markert, CHECK24 2013

Firewall

© Markus Markert, CHECK24 2013

Angriffsfläche für Hacker verringern

Nichtbenötigte Verbindungen sperren

FW von Hand mit IP-Tables erstellen (Harte Kost)

Firewall

Mit dem Firewall Builder unter Linux ist es kein Hexenwerk mehr.

Technisches Verständnis natürlich vorausgesetzt ;)

Von möglichen 65.535 Ports werden wir ca. 99,9% schließen

Von quasi möglichen Verbindungen werden wir auf ein Minimum reduzieren

© Markus Markert, CHECK24 2013

Firewall

Ports der Dienste

SSH – 11222DNS – 53HTTP – 80FTP – 21SMTP - 25

SSH – 11222DNS – 53HTTP – 80FTP – 21SMTP - 25

HTTP – 80HTTPS - 443

HTTP – 80HTTPS - 443 DNS - 53DNS - 53

HTTP – 80FTP - 21

HTTP – 80FTP - 21

SSH - 11222SSH - 11222SMTP - 25SMTP - 25

SSH - 11222SSH - 11222

© Markus Markert, CHECK24 2013

Firewall

Sammeln für die Firewall:# ifconfig (IPs - inet Adresse und Maske rausschreiben)

# cat /etc/resolv.conf (Nameserver IPs rausschreiben)

© Markus Markert, CHECK24 2013

Firewall

Sammeln für die Firewall:# vim /etc/apt/sources.list (Domains Updateserver)

de.archive.ubuntu.comsecurity.ubuntu.com…

# host domain.de (Ips herausfinden)

© Markus Markert, CHECK24 2013

Firewall

Wir sollten folgende IPs gesammelt haben!WAS IP NETZMASKE

Webserver IP1 (Hosting) 1.2.3.4 255.255.225.0

Webserver IP2 (Hosting) 1.2.3.5 255.255.225.0

Webserver IP3 (Management) 1.2.3.6 255.255.225.0

Backupserver IP4 (Backup) 1.2.3.7 255.255.225.0

Admin IP5 (Remote Zugriff) Ip oder Domain -

Mailserver IP6 (Mailversand) 1.2.3.6 255.255.225.0

Update Server IP7(oder mehrere) 1.2.3.7 255.255.225.0

DNS Server IP8 (oder mehrere) 1.2.3.8 255.255.225.0

© Markus Markert, CHECK24 2013

Firewall

1. Download & Installation Virtual Box2. Ubuntu LTS ISO herunterladen3. Virtuelle Linux Maschine erzeugen4. Linux ISO als Laufwerk einbinden5. Ubuntu installieren

Virtual Box (PC Emulator)

© Markus Markert, CHECK24 2013

Der Firewall Builder

Firewall

# apt-get install fwbuilder# fwbuilder

© Markus Markert, CHECK24 2013

Firewall – Firewall Builder

9 Regeln um den Server sicherer zu machen!

Regeln des Firewall Builders

© Markus Markert, CHECK24 2013

Firewall

Firewall-Skript hochladen /root/

Dateirechte ändern!# chown root:root firewall.sh# chmod 700 firewall.sh

© Markus Markert, CHECK24 2013

Firewall

Firewall-Rettungsanker (vor dem aussperren ;-)

# crontab –e

#M S T M W User Befehl

*/5 * * * * root /root/flush-firewall.sh

Firewall ausführen# ./firewall.sh

/root/flush-firewall.sh

Test der Dienste, Ausgesperrt? 5 Min warten Firewall ändern.

© Markus Markert, CHECK24 2013

Agenda – Sicheres Root-Server Hosting

1. VORWORT

2. INFRASTRUKTUR

3. LINUX SERVER

4. FIREWALL

5. DIENSTE / PROGRAMME

6. UPDATES / BACKUP

7. CHECKS

8. SCHLUSSWORT

© Markus Markert, CHECK24 2013

Dienste / Programme

Unnötige Dienste entfernen# netstat -lpn

# apt-get remove cups

ACHTUNG: Aufpassen was ihr deinstalliert ;-)

© Markus Markert, CHECK24 2013

Dienste / Programme

Aufgeräumte Dienste

Je weniger Dienste laufen oder installiert sind,umso weniger Fehler / Bugs können auftreten!

# netstat -lpn

© Markus Markert, CHECK24 2013

Dienste / Programme

SSH

Standard Port ändern, Protokol auf Version 2 zurren, Root-Logins abschalten, auf die Management-IP zurren

# /etc/init.d/ssh restart

/etc/ssh/sshd_config

ACHTUNG: Ab jetzt funktionieren Logins nicht mehr auf dem Port 22!Neue Verbindung erst testen bevor bestehende geschlossen wird.

vorher

nachher

© Markus Markert, CHECK24 2013

Dienste / Programme

Apache Konfiguration

Aua!

/etc/apache2/conf.d/security

besser

© Markus Markert, CHECK24 2013

Dienste / Programme

Apache Konfiguration/etc/apache2/apache2.conf

© Markus Markert, CHECK24 2013

Dienste / Programme

Apache Sicherheitsmodule

Mod_security & Mod_evasive

(Application-Level-Firewall – HTTP analysieren)

Mod_geoip (Komplette Länder sperren -> Fein :)

Mod_spamhaus (Spammer / Server sperren)

© Markus Markert, CHECK24 2013

Dienste / Programme

PHP

Works, but…..

© Markus Markert, CHECK24 2013

Dienste / Programme

PHP

Uuuuh

/etc/php5/apache2/php.ini

Schön

© Markus Markert, CHECK24 2013

Dienste / Programme

PHP/etc/php5/apache2/php.ini

Max_execution_time = 10Max_input_time = 10Memory_limit = 128MDisplay_errors = offLog_errors = OnFile_uploads = OffAllow_url_open = OffAllow_url_include = OffPost_max_size = 1k+

© Markus Markert, CHECK24 2013

Dienste / Programme

PHP Modul Suhosin# apt-get install php5-suhosin

# cd /etc/php5/conf.d/

# ln –s ../mods-available/suhosin.ini .

# vim suhosin.ini

# /etc/init.d/apache restart

© Markus Markert, CHECK24 2013

Dienste / Programme

MySQL

Nur lokal, nicht extern

Einlesen von Dateien verbieten

Root Benutzer umbenennen

Ausgelaufene Accounts löschen

Userrechte verwalten

skip-networkingbind-address=127.0.0.1set-variable=local-infile=0

/etc/mysql/my.cnf

© Markus Markert, CHECK24 2013

Dienste / Programme

Webserver

Log-Dateien

Überwachungtool

ApacheApache

SSHSSH

Log-Dateien

Apache Sicherheitsmodule

fail2banfail2ban

Erweiterter Schutz mit fail2ban

Firewall

Schreibt dynamisch IP-Table Block Listen

HTTP(S), SSHHTTP(S), SSH

© Markus Markert, CHECK24 2013

Dienste / Programme

SSHSSH

Log-Dateien

Erweiterter Schutz mit fail2ban

Log-Datei/var/log/auth.log

Konfigurationsdatei/etc/fail2ban/jail.conffail2banfail2ban

© Markus Markert, CHECK24 2013

Dienste / Programme

ApacheApache

Log-Dateien

Erweiterter Schutz mit fail2ban

Log-Dateien/var/vhosts/*/logs/error.log&/var/log/apache*/*.error.log

Konfigurationsdatei/etc/fail2ban/jail.conffail2banfail2ban

© Markus Markert, CHECK24 2013

Dienste / Programme

ClamAV (Antivirus)# apt-get install clamav clamav-freshclam

ClamAV updaten

# freshclam

ClamAV Skript

# crontab –e

#M S T M W U Befehl

15 0 * * * root /root/clamscan.sh 2>&1

#!/bin/bashclamscan -ri --exclude-dir=^/sys\|^/proc\|^/dev / | mail -s "ClamAV Scan Results for `date +%D`" xxx@xxx.de

/root/clamscan.sh

© Markus Markert, CHECK24 2013

Dienste / Programme

RootKit-Hunters# apt-get install rkhunter

# rkhunter --propupd --update

# rkhunter –c

Cronjob einrichten

# crontab –e

#M S T M W U Befehl

15 0 * * * root /usr/bin/rkhunter –cronjob 2>&1

# apt-get install chkrootkit

# chkrootkit

Cronjob einrichten

# crontab –e

#M S T M W U Befehl

30 0 * * * root /usr/sbin/chkrootkit 2>&1 | mail -s "chkrootkit output" xxx@xxx.xxx)

/etc/rkhunter.conf

© Markus Markert, CHECK24 2013

Agenda – Sicheres Root-Server Hosting

1. VORWORT

2. INFRASTRUKTUR

3. LINUX SERVER

4. FIREWALL

5. DIENSTE / PROGRAMME

6. UPDATES / BACKUP

7. CHECKS

8. SCHLUSSWORT

© Markus Markert, CHECK24 2013

Updates

Mit apticron BESCHEID wissen# apt-get install apticron && dpkg-reconfigure apticron

(E-Mail Adresse wird Abfrage), manuell einmal starten zum testen

# apticron

Erfolgreich? -> Cronjob einrichten

# crontab –e

#M S T M W Befehl

0 0 * * * /usr/sbin/apticron

Updates durchführen# apt-get update && apt-get upgrade

© Markus Markert, CHECK24 2013

Backup

1 paar Zeilen Code für ruhigeres schlafenPublic Key Authentifizierung - https://help.ubuntu.com/community/SSH/OpenSSH/Keys

/root/backup.sh

#!/bin/bashcd /root/backup# Mysql Backup erstellenMysqldump –u nur_lese_benutzer –p yoursecret –all-databases –result-file=backup.sqltar cfz backup_mysql_`date +%Y%m%d`.tar.gz rootbackup.sql

#Vhosts Backup erstellenTar cfz backup_vhosts _`date +%Y%m%d`.tar.gz /var/www/

#Kopieren der Backups auf den Backupserverscp -P 11222 backup_* backupuser@backupserver.de:~

#Verschieben der Backups in das Archivmv backup_* archive/

Dateirechte setzen + Crontab Eintrag

© Markus Markert, CHECK24 2013

Agenda – Sicheres Root-Server Hosting

1. VORWORT

2. INFRASTRUKTUR

3. LINUX SERVER

4. FIREWALL

5. DIENSTE / PROGRAMME

6. UPDATES / BACKUP

7. CHECKS

8. SCHLUSSWORT

© Markus Markert, CHECK24 2013

Checks

Backbox Linux

http://www.backbox.org/

-> ISO Image, Virtual Box

WPScan

NUR DIE SICHERHEIT DER EIGENEN SYSTEME PRÜFEN!!!

© Markus Markert, CHECK24 2013

Checks# wpscan –url www.xxx.de

WordPress Version 3.5.1

NUR DIE SICHERHEIT DER EIGENEN SYSTEME PRÜFEN!!!

Danke für die Infos

© Markus Markert, CHECK24 2013

Checks# wpscan –url www.xxx.de

Verbesserungswürdig, sonst Top

NUR DIE SICHERHEIT DER EIGENEN SYSTEME PRÜFEN!!!

© Markus Markert, CHECK24 2013

Checks

NMAP# nmap domain.de –sS –p1-1024

Zuviele Ports offen (FTP really bad)

Gut (SMTP schließen wäre Top)

© Markus Markert, CHECK24 2013

8. SCHLUSSWORT

Agenda – Sicheres Root-Server Hosting

1. VORWORT

2. INFRASTRUKTUR

3. LINUX SERVER

4. FIREWALL

5. DIENSTE / PROGRAMME

6. UPDATES / BACKUP

7. CHECKS

© Markus Markert, CHECK24 2013

Schlusswort

© Markus Markert, CHECK24 2013

Kontakt

Markus MarkertOnline Marketing Manager

CHECK24 Media GmbHErika-Mann-Str. 66 Tel. +49 89 2000 47 125580636 München Fax +49 89 2000 47 1011www.check24.de markus.markert@check24.de