© Markus Markert, CHECK24 2013 Sicheres Root-Server Hosting Linux, Firewall, Apache, MySQL, PHP and more
Jul 06, 2015
© 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`" [email protected]
/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" [email protected])
/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_* [email protected]:~
#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 [email protected]