Linux Server absichern im INet , habe ich an alles gedacht bzw. was muss noch machen

CompuMan

New Member
Hallo liebe Experten. Ich muss einen 1und1 Dedicated Server ins Netz bringen (nicht von 1und1 gemanaged) der mit CentOS 6.4 Final und Plesk Panel Version 11.0.9 Update #56 läuft. Da ich ansonsten eher aus der Windowswelt komme (bin eher nur sporadisch in der Linuxwelt) brauche ich ein paar Ratschläge. Ich habe schon einiges gemacht, aber bei den ganzen Tipps über Google weiss ich nicht ob ich wirklich an das wichtigste bzw. notwendige gedacht habe. Mir ist klar das es nicht die absolute Sicherheit gibt, aber ich möchte so viel wie möglich machen. Ich habe mal die Liste aufgeführt was ich bisher gemacht habe. Als Hintergrund, auf dem Server soll für einen Kunden Magento mit Apache und Wordpress laufen. Es gibt nur diesen einen Nutzer/Besitzer des Servers und es soll auch kein Webspace für andere freigegeben werden.

Alle IP´s (ipv5 und ipv6) sind entweder xxx.xxx.xxx.xxx oder falsch bis auf lokale 127.0.0.1

Das habe ich bisher gemacht:
Code:
Passworte für Plex und root User auf lange mit Zahlen, Grossbuchstaben und Sonderzeichen geändert
Root einloggen per SSH ausgeschaltet
Normaler Benutzer für SSH angelegt
Port für SSH geändert
nmap installiert
mysql auf nur lokal verwenden gestellt
ftp dienst deaktiviert
1und1 Hardwarefirewall eingeschaltet
Firewall über Plesk eingeschaltet (Konfiguration noch fraglich, siehe Listing weiter unten)

nmap -sT ergibt folgendes:
Code:
Not shown: 991 closed ports
PORT     STATE SERVICE
53/tcp   open  domain
80/tcp   open  http
106/tcp  open  pop3pw
110/tcp  open  pop3
143/tcp  open  imap
443/tcp  open  https
993/tcp  open  imaps
995/tcp  open  pop3s
8443/tcp open  https-alt

netstat -nlp ergibt folgendes:
Code:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:10001 0.0.0.0:* LISTEN 26843/sw-cp-serverd
tcp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0:* LISTEN 1842/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1842/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1842/named
tcp 0 0 127.0.0.1:12768 0.0.0.0:* LISTEN 17655/psa-pc-remote
tcp 0 0 0.0.0.0:1978 0.0.0.0:* LISTEN 14204/sshd
tcp 0 0 :::106 :::* LISTEN 25835/xinetd
tcp 0 0 :::110 :::* LISTEN 1489/couriertcpd
tcp 0 0 :::143 :::* LISTEN 1471/couriertcpd
tcp 0 0 :::8880 :::* LISTEN 26843/sw-cp-serverd
tcp 0 0 :::80 :::* LISTEN 16376/httpd
tcp 0 0 :::53 :::* LISTEN 1842/named
tcp 0 0 :::8443 :::* LISTEN 26843/sw-cp-serverd
tcp 0 0 :::443 :::* LISTEN 16376/httpd
tcp 0 0 :::993 :::* LISTEN 1481/couriertcpd
tcp 0 0 :::995 :::* LISTEN 1498/couriertcpd
tcp 0 0 :::1924 :::* LISTEN 14204/sshd
udp 0 0 xxx.xxx.xxx.xxx:123 0.0.0.0:* 1458/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 1458/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 1458/ntpd
udp 0 0 0.0.0.0:783 0.0.0.0:* 1338/portreserve
udp 0 0 xxx.xxx.xxx.xxx:53 0.0.0.0:* 1842/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 1842/named
udp 0 0 0.0.0.0:68 0.0.0.0:* 1236/dhclient
udp 0 0 faaa::259:79af:fab3:c461:173 :::* 1458/ntpd
udp 0 0 ::1:123 :::* 1458/ntpd
udp 0 0 5ab1:4b8:32c:2303::92:d5:173 :::* 1458/ntpd
udp 0 0 :::123 :::* 1458/ntpd
udp 0 0 :::53 :::* 1842/named
Active UNIX domain sockets (only servers)
Proto RefCnt Flags Type State I-Node PID/Program name Path
unix 2 [ ACC ] STREAM LISTENING 54261 19873/mysqld /var/lib/mysql/mysql.sock
unix 2 [ ACC ] STREAM LISTENING 46829 17845/master public/cleanup
unix 2 [ ACC ] STREAM LISTENING 46836 17845/master private/tlsmgr
unix 2 [ ACC ] STREAM LISTENING 46840 17845/master private/rewrite
unix 2 [ ACC ] STREAM LISTENING 46844 17845/master private/bounce
unix 2 [ ACC ] STREAM LISTENING 46848 17845/master private/defer
unix 2 [ ACC ] STREAM LISTENING 46852 17845/master private/trace
unix 2 [ ACC ] STREAM LISTENING 46856 17845/master private/verify
unix 2 [ ACC ] STREAM LISTENING 7002 1/init @/com/ubuntu/upstart
unix 2 [ ACC ] STREAM LISTENING 46860 17845/master public/flush
unix 2 [ ACC ] STREAM LISTENING 46864 17845/master private/proxymap
unix 2 [ ACC ] STREAM LISTENING 46868 17845/master private/proxywrite
unix 2 [ ACC ] STREAM LISTENING 46872 17845/master private/smtp
unix 2 [ ACC ] STREAM LISTENING 46876 17845/master private/relay
unix 2 [ ACC ] STREAM LISTENING 46880 17845/master public/showq
unix 2 [ ACC ] STREAM LISTENING 46884 17845/master private/error
unix 2 [ ACC ] STREAM LISTENING 46888 17845/master private/retry
unix 2 [ ACC ] STREAM LISTENING 46892 17845/master private/discard
unix 2 [ ACC ] STREAM LISTENING 46896 17845/master private/local
unix 2 [ ACC ] STREAM LISTENING 46900 17845/master private/virtual
unix 2 [ ACC ] STREAM LISTENING 46904 17845/master private/lmtp
unix 2 [ ACC ] STREAM LISTENING 46908 17845/master private/anvil
unix 2 [ ACC ] STREAM LISTENING 46912 17845/master private/scache
unix 2 [ ACC ] STREAM LISTENING 46916 17845/master private/plesk_virtual
unix 2 [ ACC ] STREAM LISTENING 46920 17845/master private/mailman
unix 2 [ ACC ] STREAM LISTENING 46924 17845/master private/plesk_saslauthd
unix 2 [ ACC ] STREAM LISTENING 46928 17845/master private/xxx.xxx.xxx.xxx-
unix 2 [ ACC ] STREAM LISTENING 70631 24649/spamd_full.so /tmp/spamd_full.sock

chkconfig --list | grep '3: on' ergibt folgendes
Code:
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
blk-availability 0:off 1:on 2:on 3:on 4:on 5:on 6:off
courier-imap 0:off 1:off 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ip6tables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off
mdmonitor 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netfs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
pc-remote 0:off 1:off 2:on 3:on 4:on 5:on 6:off
portreserve 0:off 1:off 2:on 3:on 4:on 5:on 6:off
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
psa 0:off 1:off 2:on 3:on 4:on 5:on 6:off
psa-firewall 0:off 1:off 2:on 3:on 4:on 5:on 6:off
psa-spamassassin 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sw-cp-server 0:off 1:on 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off
xe-linux-distribution 0:off 1:off 2:on 3:on 4:on 5:on 6:off
xinetd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Die Firewall ist über Plesk wie folgt eingestellt
Code:
Parallels Customer & Business Manager payment gateways 	Allow incoming from all
Parallels Single Sign-On 	Allow incoming from all
Parallels Products Installer 	Allow incoming from all
Plesk administrative interface 	Allow incoming from all
WWW server 	Allow incoming from all
FTP server 	Deny incoming from all
SSH (secure shell) server 	Allow incoming from all
SMTP (submission port) server 	Allow incoming from all
SMTP (mail sending) server 	Allow incoming from all
POP3 (mail retrieval) server 	Allow incoming from all
IMAP (mail retrieval) server 	Allow incoming from all
Mail password change service 	Allow incoming from all
MySQL server 	Allow incoming from all
PostgreSQL server 	Deny incoming from all
Tomcat administrative interface 	Deny incoming from all
Samba (file sharing in Windows networks) 	Deny incoming from all
Plesk VPN 	Allow incoming from all
Domain name server 	Allow incoming from all
IPv6 Neighbor Discovery 	Allow incoming from all
Ping service 	Allow incoming from all
System policy for incoming traffic 	Deny all other incoming traffic
System policy for outgoing traffic 	Allow all other outgoing traffic
System policy for forwarding of traffic 	Deny forwarding of all other traffic

1und1 Hardwarefirewalleinstellungen
Code:
1	All	Any	1978	TCP	Allow	Aktiv
2	All	Any	80	TCP	Allow	Aktiv
3	All	Any	443	TCP	Allow	Aktiv
4	All	Any	25	TCP	Allow	Aktiv
5	All	Any	110	TCP	Allow	Aktiv
6	All	Any	143	TCP	Allow	Aktiv
7	All	Any	465	TCP	Allow	Aktiv
8	All	Any	993	TCP	Allow	Aktiv
9	All	Any	995	TCP	Allow	Aktiv
10	All	Any	8443	TCP	Allow	Aktiv
11	All	Any	8447	TCP	Allow	Aktiv
12	All	123	Any	UDP	Allow	Aktiv
13	All	53	Any	UDP	Allow	Aktiv
14	All			ICMP	Allow	Aktiv

Schaut da mal bitte drauf ob ich noch etwas vergessen habe was ich rausnehmen muss bzw. absichern muss. Ich möchte eigentlich noch fail2ban installieren was oft empfohlen wurde (lohnt das/bringt das was ?).
Wie schon oben erwähnt, muss Magento und Wordpress laufen. Die brauchen MySQL, Apache, HTTP, HTTPS, PHP.

Da der Server bei 1und1 steht würde ich auch den Emailverkehr lieber über den Dienst von 1und1 laufen lassen und nicht über meinen Server. Also könnte ich doch auch die imap und pop Ports dichtmachen, oder ? Ich denke auch einige Dienste könnten noch beendet werden wie z.B. portreserve (wofür ist der eigentlich ? Drucken ?).

Hinweis: Die iptables werden ja über die Plesk Firewall verwaltet deshalb steht da nichts zusätzlich drin was nicht auch in der Plesk Firewall steht.

Wäre supernett wenn Ihr mir mal über die Schulter schauen könntet und ein paar Tipps geben könnt. Ich bin extrem lernfähig auch wenn ich aus der Windowswelt komme :)

Liebe Grüsse
 
Last edited by a moderator:
Ohne ausreichende Kenntnisse des OS für einen Kunden ein kommerzielles Projekt zu betreiben, halte ich schlichtweg für fahrlässig. Schon beim nutzlosen herumbasteln an den Firewalleinstellungen kommt einen das Gruseln. die größten Einfallstore, die hier noch gar nicht betrachtet wurden:

- Plesk: bei einem Kunden und nur Webserver-Dienste => unnötig und ineffizient
- SSH: PublicKey-Auth only?
- Webserver (Apache- und PHP-Konfiguration)
- Wordpress und Addons
- Shopsystem Magento

Empfehlung: Das Hosting des Projektes bitte an einen Anbieter übertragen, der sich damit auskennt oder managed Services in Anspruch nehmen.
 
Hallo und danke für die ersten Antworten.

Ihr habt wohl soweit Recht das ein optimierter Webspace für Magento reichen würde. Dazu habe ich ihm auch geraten, aber er möchte bei 1und1 bleiben und unbedingt einen Root Server haben um später flexibler zu sein (1und1 hat leider keinen Webspace wo man die wichtigen PHP Cache Werte und numproc für Magento selber setzen kann). Hat er ja auch Recht nur ich sitz jetzt damit und muss mich einarbeiten. Dies ist auch nur ein Entgegenkommen von uns an ihn. Er bezahlt für andere IT Dienste und möchte diese neue Anforderung nur durch uns umgesetzt bekommen (ist schon 20 Jahre IT Kunde in unserer Firma).

Mir ist klar das das nun ein Dauerprojekt wird mit Einarbeitung und ständig dran arbeiten.

Aber beginnen muss ich nun halt und versuchen so viel wie möglich zu berücksichtigen und zu lernen.

In dem Thread die-abschottung-wie-geht-es-nun-weiter.html steht ja auch schon viel was ich berücksichtigt habe, aber auch neues. Das muss ich abarbeiten.

Ist es denn wirklich so Schlimm und sind die Server denn wirklich so offen das man ständig Gefahr läuft das der Server gehackt wird. Es muss doch möglich sein die grössten Lücken dicht halten zu können wenn man nicht dauernd fremde Scripte installiert oder andere systemfremde Installationen durchführt.

Habt Ihr denn nicht eine 'ToDo Liste' damit Ihr wenn Ihr einen neuen Server aufstellt nichts vergesst ?

@TerraX
Könntest Du mir bitte erklären was Du mit nutzlosen Firewalleinstellungen meinst. Ist eine Firewall überflüssig ?

Grüsse
 
Mir ist klar das das nun ein Dauerprojekt wird mit Einarbeitung und ständig dran arbeiten.

Aber beginnen muss ich nun halt und versuchen so viel wie möglich zu berücksichtigen und zu lernen..
Ist das überhaupt wirtschaftlich vom Arbeitsaufwand her (und bitte nicht mit "Eh-da-Kosten" argumentieren ;) )? Weil nicht nur Du musst das Know-How aufbauen und aktuell halten sondern mind. auch eine Vertretung für den Urlaubsfall. Wie gesagt managed Services wären eine Alternative. Da müsstet ihr Euch nur noch um die Scripte kümmern.

Ist es denn wirklich so Schlimm und sind die Server denn wirklich so offen das man ständig Gefahr läuft das der Server gehackt wird. Es muss doch möglich sein die grössten Lücken dicht halten zu können wenn man nicht dauernd fremde Scripte installiert oder andere systemfremde Installationen durchführt...
IT-Sicherheit ist kein Status sondern ein ständiger Prozess. Dein Problem ist offensichtlich, dass Du die Handlungsfelder schlecht greifen kannst mangels Know-How. (siehe weiter unten)

Habt Ihr denn nicht eine 'ToDo Liste' damit Ihr wenn Ihr einen neuen Server aufstellt nichts vergesst ?
Ja haben wir - also ich zumindest - nennt sich Serverdokumentation/-handbuch. Und da steht wirklich drin, was wie und warum installiert, konfiguriert ist und im laufenden Betrieb wie gehandelt wird. Das ist abgeleitet aus unzählichen How-Tos, persönlichen Erfahrungen und spezifischen Anforderungen sowie Vorstellungen. Nutzt Dir aber wenig, da z.B. unseres auf Archlinux basiert und vor allem b) wir ganz andere Anforderungen haben, die vom Betrieb eines eCommerce-Shops erheblich abweichen dürften. Falls allgemeines Interesse besteht, kann ich das gerne mal zur Diskussion vorstellen.

@TerraX
Könntest Du mir bitte erklären was Du mit nutzlosen Firewalleinstellungen meinst. Ist eine Firewall überflüssig ?
Welchen konkreten Schutz bietet Dir die Firewall in Deinem Szenario? Dienste, die Du nicht installiert hast, kann man auch nicht angreifen. D.h. alles deinstallieren, was man nicht benötigt, ist besser als ein Pflaster draufzukleben.

Die primäre Gefahr geht aber von den Dingen aus, die Du zulassen musst: nämlich SSHd und dem Webserver (Apache/PHP) mit den beiden Webanwendungen. Hier nutzt Dir die Firewall nix.

Im übrigen ist es einfacher einen Server, d.h. OS, Serverdienste sowie darauf aufbauende Anwendungen abzusichern, wenn man mit einer Minimalinstallation beginnt und nur das installiert, was man benötigt. Eine "Full-Service"-Pleskinstallation abzudichten, ist IMHO dagegen erheblich aufwendiger und risikoreicher, weil man auch noch gegen diverse Automatismen kämpfen muss.
 
Ist das überhaupt wirtschaftlich vom Arbeitsaufwand her
Er bezahlt unserer Firma pauschal (nicht stundenabhängig) schon eine ziemlich grosse Summe. Das ist dann damit drin. Mit der Zeit wird der Aufwand dann ja auch immer kleiner wenn ich dazugelernt habe.

Möglichst wenig Dienste gestartet ist natürlich ein Schlüssel zum Erfolg. Das habe ich schon versucht umzusetzen. Plesk ist schon am Anfang für mich hilfreich da viele Sachen darüber gemanged werden können. Das kann ich ja vielleicht später abstellen.

Leider haben die blöden 1und1 Leute in den manged Paketen keinen Root Zugriff auf Datenbanken. Und den brauchen wir für einige Sachen (verbinden von Magento und Wordpress) ansonsten müssen wir immer umständlich direkt in den Datenbanken rumfummeln. Der Anwender kann sonst selber über die Magentoadminoberfläche alleine nicht alles machen. Sonst hätte ich sofort einen managed Server genommen. Aber er will ja bei 1und1 bleiben. Bisher habe ich ihn mit keinem Alternativanbieter überzeugen können.

Hast Du noch einen Hinweis was Du mit Pleskautomatismen meinst die Sicherheitsprobleme bereiten ? Die alte Version <10.4 hatte ja gravierende Sicherheitslöcher, aber bei der 11er ist ja noch nichts bekannt.

Siehst Du noch Dienste die ich abstellen kann (ausser Plesk) ?

Grüsse
 
Er bezahlt unserer Firma pauschal (nicht stundenabhängig) schon eine ziemlich grosse Summe. Das ist dann damit drin. Mit der Zeit wird der Aufwand dann ja auch immer kleiner wenn ich dazugelernt habe.
Die Größe der Summe ist weitestgehend irrelevant, die Differenz aus Umsatz und Aufwand ist bedeutsam. Nicht nur Du musst lernen, sondern auch Deine Vertretung. Wartungsarbeiten, Störungsbeseitigungen etc. pp. müssen auch während Deines Urlaubes und ggf. im Krankheitsfall gewährleistet sein.

...Plesk ist schon am Anfang für mich hilfreich da viele Sachen darüber gemanged werden können. Das kann ich ja vielleicht später abstellen.

...

Hast Du noch einen Hinweis was Du mit Pleskautomatismen meinst die Sicherheitsprobleme bereiten ?

...

Siehst Du noch Dienste die ich abstellen kann (ausser Plesk)?
So spontan sehe ich da noch einen aktiven Nameservice sowie POP3 und IMAP durch courier.

Zu Plesk: Die "Vereinfachung" des Servermanagement ist trügerisch gerade für Anfänger/Einsteiger. Unter der Haube liegt aber eine hochkomplexe Software, die Konfigurationsdateien verwaltet, ändert, generiert und vieles mehr im System beeinflusst. Dazu haben es derartige Installationen an sich, dass sie oft viel Ballast mitbringen, der zu dem noch standardmäßig aktiviert ist.

Kommt hier einmal Sand ins Getriebe z.B. durch ein fehlgeschlagenes Update u.ä. (und das passiert öfters), kommt alles zum Stillstand. Dann steht der Anfänger/Einsteiger hilflos vor einem unbekannten Wesen und das Unheil nimmt seinen Lauf.

Gerade Dein Szenario ist prädestiniert für eine Minimalumgebung. Nur SSH, mySQL, Apache und PHP und nur die Module, die auch wirklich benötigt werden. Vorteile, Du weißt, was wo steht und es kann weniger schiefgehen.
 
Last edited by a moderator:
Eventuell einen Externen beauftragen bzw. ins Boot holen. Gibt genug Freelancer, die ihr Können in den Jobbörsen feilbieten.

Ich habe schlechte Erfahrungen mit Plesk gemacht, da dort nicht immer sofort die neuste Version eines Programms produktiv eingesetzt werden kann. Dies ist zwar nun schon einige Jahre her, aber damals konnte ich beispielsweise nicht auf MySQL 5 updaten (als es Stable war), weil der Plesksupport dafür noch nicht fertig war (kam wohl so 6 Monate verzögert raus).

- SSH: PublicKey-Auth only?
!!!!!!

Leider haben die blöden 1und1 Leute in den manged Paketen keinen Root Zugriff auf Datenbanken. Und den brauchen wir für einige Sachen (verbinden von Magento und Wordpress) ansonsten müssen wir immer umständlich direkt in den Datenbanken rumfummeln.
Kann mir jetzt kein Szenario vorstellen, wo nicht auch ein Nutzer der auf beiden Datenbanken Zugriff hat, entsprechende Verbindungen herstellen kann.

OT: Zur dedServer-Kiste:
Erkläre ihm doch, dass er zum Beispiel mit einen ideal zugeschnittenen System, weniger Kosten hätte und trotzdem flexibel reagieren kann. Ich meine damit, tausche Apache gegen Nginx und du kannst auf einen vServer (einen guten) umziehen, sparst dir zwischen 30 und 40 Prozent. Oft kann man das Geld dann für andere sinnvolle Zwecke investieren.

Edit: Was auch helfen kann, einen Server inkl. Scripte etwas sicherer zu machen: Deaktiviere Zeug wie expose_php oder die Apache Signatur.
 
Last edited by a moderator:
!!!!!!
Kann mir jetzt kein Szenario vorstellen, wo nicht auch ein Nutzer der auf beiden Datenbanken Zugriff hat, entsprechende Verbindungen herstellen kann.
Ja, da hatte ich auch blöd geguckt. Stichwort Magento+Fishpig Wordpress Extension (In Blogartikeln Produkte und in Produkten Blockartikel verknüpfen über die jeweiligen Adminoberflächen). Klappt nur mit root Rechten auf den Datenbanken. Ansonsten muss man alles von Hand in die Tabellen eintragen.

Ist zwar viel Einarbeitung in einen Linuxserver wenn man sonst eher sporadisch sich mit Linux durchgeboxt hat (z.B. Zabbix Logserver als VM für internes Netzwerk), aber eigentlich wollte ich sowieso mal richtig mit Linux loslegen. So wird es mir quasi auch noch bezahlt ;) da ich ja Angestellter bin.

OT: Was ich jetzt nach mehreren Tagen als 'Linix Praktikant' nicht ganz verstehe ist dieses Thema Sicherheit. Ohne Zweifel mit das wichtigste. Man bekommt aber den Eindruck das ein Windows Server im Inet sicherer ist als eine Linuxkiste wenn man sich durch Google bezüglich des Themas durchwühlt. Alle schreiben wie gefährlich Linux, Plesk, Apache usw. ist. Eigentlich dachte ich Linux wäre sicherer wie Windows. Ich aus der Windowswelt würde jedenfalls nicht behaupten einen total sicheren Windowsserver ins Inet stellen zu können. Lücken gibt es immer. Ist es denn nicht eher so wie in allen IT Bereichen (mache das seit >25 Jahren da aber eher Konzeptplanung, Hardware, Windows, Netzwerke, VM, Programmanpassungen und Webseiten programmieren usw.) egal ob internes Netz, HomePC oder Linux im Netz das es darauf ankommt an das wesentliche zu denken ?

Also lange sichere Passwörter, möglichst Standardvorgaben wie Usernamen und Ports auf willkürliche ändern bzw. löschen, möglichst nur 'sichere' Scripte und Programme installieren aus 'sicheren' Quellen die auch wirklich gebraucht werden, alles abstellen was nicht benötigt wird, Zugriffe verhindern auf alles was nicht zum Programmbetrieb nötig ist und vor allen Dingen nicht sofort alles installieren nur weil es neu ist (es sei denn es gibt ein gravierendes Sicherheitsproblem, never change a running System).

Ich war drauf und drann alles hinzuschmeissen bei den ganzen Horrormeldungen die im Google zu finden sind obwohl ich Anfangs dachte, das wird interessant und bringt Dich weiter. Leute, Ihr sterbt aus wenn sich Keiner mehr als Anfänger an die Sache traut ;). Plesk mag ja eventuell mal problematisch sein und Fehler haben, aber es nutzen doch auch abertausende User weltweit. Ebenso Apache und Linux. Windows hat wöchentlich einen ganzen Packen mit Löchern die (oft auch angeblich) zu stopfen sind und in Programmen wird wild herumprogrammiert ohne an Sicherheiten zu denken. Aber ich habe selten gelesen das Jemand von einem Windowsserver im Inet abgeraten hat.

Ich meine das nicht böse, aber Ihr seit täglich in den Linuxbereichen unterwegs und es fällt Euch vielleicht nicht so auf, aber für Anfänger klingt das alles abschreckend (egal ob Linux Zuhause oder als Server).

Ich dachte ich versuche es so mit dem Server für unseren Kunden für die Zukunft mit folgender Vorgehensweise:

So wie bereits oben geschrieben
Code:
Passworte für Plex und root User auf lange mit Zahlen, Grossbuchstaben und Sonderzeichen geändert
Root einloggen per SSH ausgeschaltet
Normaler Benutzer für SSH angelegt
Port für SSH geändert
Einloggen mit PublicKey-Auth only (Danke @dobse hatte ich schon wieder vergessen)
mysql auf nur lokal verwenden gestellt
ftp, pop, dns und smtp deaktiviert (Emailverkehr über die 1und1 Dienste)
1und1 Hardwarefirewall eingeschaltet alle Ports blocken die nicht gebraucht werden
Firewall über Plesk eingeschalten (alle Ports blocken die nicht gebraucht werden)
fail2ban installieren

dann:
immer aktuelle Foren/Meldungen über Wordpress, CentOS, Plesk, Magento, Apache und allgemein Linux nach wichtigen Meldungen beobachten

dann:
ab und zu
Code:
yum update
(macht das Sinn dies auch ohne Meldungen aus Foren zu machen oder doch besser never change a running System ?)

dann:
regelmässig Logdateien nach Unregelmässigkeiten einsehen

und dann:
Linux lernen, lernen, lernen

So müsste ich doch halbwegs sicher langfristig auf einen grünen Zweig kommen, oder ? Es nützt ja nichts, irgendwann muss ich bestimmt für einen anderen Kunden mich intensiv mit Linux befassen, deshalb kann ich besser die Zeit zu verstehen und lernen mit diesem Projekt nutzen.

Schön das es dieses Forum gibt wo man Hilfe bekommt als Anfänger. Ich hoffe ich kann auch in Zukunft auf Euch zählen und Ihr gebt mir nochmal einen Rat ob meine Vorgehensweise so klappen könnte. Ich geb dann auch mal einen aus :D

Grüsse
 
Ja, da hatte ich auch blöd geguckt. Stichwort Magento+Fishpig Wordpress Extension (In Blogartikeln Produkte und in Produkten Blockartikel verknüpfen über die jeweiligen Adminoberflächen). Klappt nur mit root Rechten auf den Datenbanken. Ansonsten muss man alles von Hand in die Tabellen eintragen.
Das zeigt für mich eher ein gefährliches Nichtwissen über die Benutzer- und Rechteverwaltung von mySQL. Einer Webanwendung root-Zugriff auf die Datenbanken zu gewähren ist ein absolutes No-Go, IMHO.

Deine langatmige ... pardon ... ausführliche Rechtfertigung, das Produkt (in diesem Falle Dienstleistung) beim Kunden reifen zu lassen, stößt nach wie vor bei mir nicht auf Verständnis. Das Know-How kann man vorerst einkaufen und daneben zeitlich eigenes aufbauen. Das wäre dem Kunden gegenüber verantwortungsvoll.

Du vermeidest es auch darauf einzugehen, dass mind. einer Deiner Kollegen ebenso Know-How aufbauen muss. Aber vermutlich wird auch dort gespart.

Man macht nicht mal ab und zu ein Update. Im kommerziellen Umfeld prüft man täglich auf Updates, testet diese in einer Testumgebung und rollt sie anschließend aus - soweit erforderlich. Alles andere ist nicht professionell sondern Turnschuh-EDV.

So vom Meta-Thema zurück zum eigentlichen Kern:

Eine Backupstrategie gehört ebenso zur "Absicherung" eines Servers. Und je nach SLA mit dem Kunden (Verfügbarkeit) evtl. auch Überlegungen zu Fail-Over.

Der Sinn wozu 2 Firewalls betrieben werden erschließt sich mir nicht. Der kritische Punkt in Deinem Szenario ist die Webserver-Konfig allgemein (Apache/PHP) und die Webanwendungen mit allen Addons. Sicherlich bringt Plesk einen gewissen Standard mit, bei einem Webshop oder ähnlichen unternehmenskritischen Anwendungen würde ich mich persönlich nicht darauf verlassen.
 
@TerraX
Ich habe mich etwas falsch ausgedrückt. Der WP User muss Vollzugriff auf die Magento DB haben oder beide DB´s müssen zusammengefasst werden (was wir nicht wollen). Ich brauche root Zugriff auf die Datenbanken/MySQL, weil ich bei 1und1 manged Paketen keine Userrechte der DB User ändern kann. Also kann ich auch nicht dem WP User Rechte der Magento DB geben. Bei manged 1und1 kann man nicht mal die Namen der DB´s oder User selbst festlegen, werden einfach zufällig erzeugt.

Ich will mich auch nicht rechtfertigen oder so und auch keine Grundsatzdiskussion lostreten. Weiterhin bin ich angestellt und muss mich oft genug noch mit Rechnern und Software rumplagen die eigentlich ins Museum gehören. Ich habe es oft genug angesprochen das vieles nicht richtig ist und erneuert werden muss und auch eine versierte Vertretung da sein sollte. Aber ich kann es nicht ändern. Die Firma will nicht und ich kann sie nicht zwingen. Aber soll ich deswegen kündigen und arbeitslos werden ?

Zum Thema Sicherheit, ich möchte nur verstehen warum so negativ über Linux und nicht ebenso über Windwos berichtet wird.

Als Backupstrategie hatte ich tägliche Sicherungen der DB´s per Cronjob mit anschließenden Download auf unser Netzwerk vorgesehen. Muss mal sehen ob der Download von unserem Netz aus gestartet wird oder vom Webserver automatisch gemacht wird. Eventuell auch kopieren auf einen anderen Webspace. Weiterhin einmal wöchentlich den Webspace ebenso sichern bzw. bei Bedarf (da ändert sich nur etwas wenn man es selber auslöst, also weiss man wann man sichern muss). Weiterhin ist der aktuelle Webspace auch immer in einer lokalen Entwicklungsumgebung mit Xampp immer aktuell, weil dort Änderungen und Programmierungen ausprobiert werden. Muss mal sehen was es da für Sicherungstools gibt bzw. wie ich das lösen kann. Plesk und 1und1 haben da ja auch was.

Mit der Firewall hast Du Recht, aber ich hatte als erstes die Hardwarefirewall von 1und1 eingeschaltet und dann die über Plesk/iptables. Ich neige eigentlich eher dazu nur die 1und1 Firewall zu nehmen und die Plesk/iptables zu leeren. Da wird auf der Linuxkiste dann nichts mehr geändert.

Als Failover würden dann die Backups wieder eingespielt werden. Bei 1und1 kann man ja eine komplette Formartierung des Servers mit aufspielen von verschiedenen OS aus der Adminoberfläche machen. Dann wäre alles jungfräulich und man spielt die Linuxänderungen ein und DB´s und den Webspace.

Grüsse
 
Last edited by a moderator:
Zum Thema: Entwicklungsumgebung

Die Testumgebung sollte sich so nah wie möglich an der Produktivumgebung orientieren. Linux und Plesk produktiv aber XAMPP als Testumgebung, würde ich als IT-Prüfer (der ich nunmal beruflich bin) als netten Versuch bewerten und dringenden Handlungsbedarf feststellen.

Wie willst du damit OS-/Plesk-Updates vorab testen? Jedes auch noch so unscheinbare Update hat das latente Potential, Dir ordentlich die Petersilie zu verhageln, das Risiko möchtest Du im kommerziellen Umfeld mit Sicherheit minimieren.

Zum Thema: Backup

Den Wiederherstellungsprozess nach einem Totalausfall (worst-case) solltest Du so zeitnah wie möglich testen und dokumentieren. Oftmals sind es Kleinigkeiten, die man dann unter Zeitdruck im Ernstfall übersieht und die Ausfallzeit verlängern, zum Ärger des Kunden. Nur so erfährst Du auch eine realistische Zeit (zzgl. Zeit von 1&1) - wichtig für die SLA.

Versuche Plesk perspektivisch loszuwerden, es ist nur eine weitere Komponente, welche die Komplexität des Systems unnötig erhöht sowie die Angriffsfläche vergrößert. Außerdem verbraucht es in Deinem Falle nutzlos Ressourcen.

Hast Du über ein Monitoring-System nachgedacht? Es ist besser vor dem Kunden zu wissen, wenn es Probleme gibt.

Last but not least, die Backupstrategie sollte mit dem Kunden abgestimmt werden. Ist er denn bereit zu akzeptieren, dass im worst case die Datensätze eines kompletten Tages verloren sind? Wir reden hier immerhin von einem Webshop und Deinen Angaben zu Folge ist das ja kein kleiner Kunde.

Kleines Gedankenspiel aka Risikoanalyse: Die Shop-Kunden haben tagsüber/abends/nachts bestellt und bereits bezahlt (Paypal, KK usw.). Jetzt sind die Bestell-/Lieferdaten weg. Was nun? Euer Kunde würde in eine rechtlich sehr unangenehme Situation geraten. Gibt es bereits Maßnahmen, die das verhindern, z.B. dass jede Transaktion in Echtzeit mit allen notwendigen Daten per Mail dokumentiert ist?

Zum Thema: Sicherheit

Weder ist Windows sicherer als Linux noch umgekehrt. Für beide gibt es Konstellationen mit EAL4-Zertifizierungen. M.E. sind auf Grund der Lizenzkosten, Windows Server Versionen eher im professionellen Umfeld zu finden, wo entsprechendes Know-How da ist. Linux ist aus meiner Sicht auf vielen privaten Servern im Internet zu finden, die eben u.a. auch von Leuten betrieben werden, die denken, das Plesk-klicken-können ausreicht für einen angemessen sicheren Betrieb. Dadurch mag es nominal mehr schlecht gewartete Linux- als Windowsserver geben. Wie gesagt, mein Bauchgefühl.
 
Last edited by a moderator:
@TerraX
Danke für Deine ausführlichen Erklärungen.

Entwicklungsumgebung:
Ich meinte das in der Xampp Umgebung nur Programmierungen von Magento und WP erstellt und getestet werden bevor sie Online eingesetzt werden. Keine OS oder Plesk Sachen.

Die Überlegung von Dir ist aber garnicht schlecht und hat mich auf den Gedanken gebracht einen identischen/nahezu identischen lokalen Webserver der nur im internen Netz läuft aufzusetzen und an dem auch zu testen.

Monitoring:
Da wir intern schon Zabbix einsetzen für die internen Geräte wäre es naheliegend dies auch dafür einzusetzen. Muss mal schauen wie das gehen könnte.

Backup:
KK Abwicklung läuft aufgrund der Gesetze das man nur als vollzertifizierter Payment Anbieter KK Daten wie Nummern usw. selber vorhalten darf und dies teuer ist und der Test auch umfangreich ist, über 1und1 Ipayment ab. Dort werden alle Bestelldaten permanent gespeichert und können eingesehen werden. Ebenso dann bei den KK Gesellschaften. Sämtliche Bestellungen werden automatisch sofort nach der Bestellung des Kunden zusätzlich an den Mailserver des Kunden gesendet und zusätzlich an ein weiteres externes Konto des Kunden und sind somit auch immer noch vorhanden inkl. Lieferadresse, Bemerkungen usw. Lediglich die Bestellung die in dem Moment wenn der Server abschmiert gerade in der ms unterwegs ist wäre weg. Aber da kann man dann eben nichts machen.

Sicherheit:
Da könntest Du Recht haben. Eine Windowslizenz kaufen nur User die wirklich etwas 'vorhaben'. Linux ist ja quasi umsonst und daher sind vielleicht dort wirklich eher 'Bastler' die nicht viel nachdenken unterwegs.

Grüsse
 
So, nach dem wir uns bisher mehr mit dem Rahmen des ganzen beschäftigt haben, betrachten wir nun mal den Kern nämlich Webserver und die beiden PHP-Anwendungen.

Hier mal eine Reihe von Anhaltspunkten, über die man nachdenken könnte:

http://www.cyberciti.biz/tips/php-security-best-practices-tutorial.html

Wie gesagt, rezipieren und bewusst entscheiden, ob sinnvoll oder nicht und in jedem Falle weiter recherchieren. Du wirst u.a. dabei merken, dass Dir Plesk hie und da gern ins Handwerk pfuscht.

Im Hinblick auf den Webshop und das Wordpress sei das Apache-Modul mod_security nochmal hervorgehoben. Gut geeignet für eine Vorwärtsverteidigung und zum Zupflastern von 0-day-exploits. Aber Vorsicht, die Handhabung ist nicht ohne - das übernehmen irgendwelcher Rulesets bringt oft mehr Probleme als es löst. Daher lieber Stück für Stück sein eigenes minimales und individuelles Ruleset aufbauen.

Eine andere Alternative könnte sein, Nginx als Reverse Proxy vor den Apache zu setzen (letzterer ist dann nur noch lokal ansprechbar). Man munkelt, dass diese Kombi noch mehr Performance bringen kann und Nginx in Front robuster als Apache ist. Auch hier wird Dir Plesk vermutlich wieder im Wege stehen. Es gibt viele Dokuementationen zu diesem Duo, bedien' Dich der Suchmaschine Deines Vertrauens.
 
@TerraX
:) Klasse Link, danke das werde ich durcharbeiten. Wird zwar etwas dauern, da irre viel :eek:, aber nützt ja nichts da muss ich durch.

Man munkelt, dass diese Kombi noch mehr Performance bringen kann und Nginx in Front robuster als Apache ist. Auch hier wird Dir Plesk vermutlich wieder im Wege stehen.
Hatte schon über Nginx in Verbindung mit Magento und APC Cache mich schlau gemacht, aber nur der Performance wegen nicht der Sicherheit. Aber ein Proxy ist nie schlecht als erste Massnahme, da hast Du Recht, so habe ich noch nicht gedacht. Nginx ist schon installiert. Da hatte mir Plesk super geholfen. Ist total einfach direkt über das Panel installierbar gewesen und auch im Handbuch wird die kombi Nginx+Apache ausführlich beschrieben und behandelt. Läuft auch spürbar 'geschmeidiger' nun mit der Testumgebung.

Mit mod_security mache ich mich auch noch schlau.

Grüsse
 
Hmm, wusste ich noch nicht, dass diese Kombi nun von Plesk unterstützt wird. However, nicht vergessen irgendwann auch ohne die Schwimmhilfe Plesk klarzukommen. ;)
 
Back
Top