Massachusetts Institute of Technology. Vorlesung # 6.858. "Sicherheit von Computersystemen." Nikolai Zeldovich, James Mickens. 2014 Jahr
Computer Systems Security ist ein Kurs zur Entwicklung und Implementierung sicherer Computersysteme. Die Vorträge behandeln Bedrohungsmodelle, Angriffe, die die Sicherheit gefährden, und Sicherheitstechniken, die auf jüngsten wissenschaftlichen Arbeiten basieren. Zu den Themen gehören Betriebssystemsicherheit, Funktionen, Informationsflussmanagement, Sprachsicherheit, Netzwerkprotokolle, Hardwaresicherheit und Sicherheit von Webanwendungen.
Vorlesung 1: „Einführung: Bedrohungsmodelle“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 2: „Kontrolle von Hackerangriffen“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 3: „Pufferüberläufe: Exploits und Schutz“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 4: „Trennung von Privilegien“
Teil 1 /
Teil 2 /
Teil 3 Unsere Zeichnung zeigt also ein „Kunstwerk“, das seine Schöpfer vor Bedrohungen schützen wollten. In ihrem Fall waren sie meiner Meinung nach sehr besorgt, weil sie mit der Erstellung der Dating-
Website okcupid.com wirklich sicherstellen wollten, dass der Ruf der Benutzer der Website nicht durch die Offenlegung personenbezogener Daten beeinträchtigt wird. Aus einem Gespräch mit einem der Entwickler der Website, der den Artikel darüber geschrieben hat, ist bekannt, dass sie nicht wirklich kompromittiert wurden. Zumindest trat kein Datenverlust aufgrund der Verwendung der
OKWS- Architektur und teilweise aufgrund der Überwachung böswilliger Aktivitäten auf.
Der Grund, warum Benutzer ihre Anwendungen nicht in kleinere Komponenten aufteilen, liegt darin, dass dieser Prozess einige Anstrengungen erfordert. Es ist notwendig, alle Teile des Codes auszuwählen, klare Schnittstellen zwischen ihnen zu definieren und zu entscheiden, auf welche Daten jede Komponente Zugriff haben soll. Wenn Sie eine neue Funktion implementieren möchten, müssen Sie die Daten ändern, auf die jede Komponente des Programms Zugriff hat, um ihr neue Berechtigungen zu erteilen oder einige auszuwählen, und so weiter. Dies ist also ein ziemlich zeitaufwändiger Prozess.

Versuchen wir zu verstehen, wie der Webserver aufgebaut ist. Eine Möglichkeit, dies zu tun, besteht darin, zu verfolgen, wie die http-Anforderung vom
OKWS- Server verarbeitet wird. Ähnlich wie in der vorherigen Abbildung haben wir einen Webbrowser, der zu
okcupid.com gehen
möchte . Die Entwickler des Site-Projekts stellten sich vor, dass sie eine Reihe von Maschinen haben würden, aber wir werden uns nur die Oberfläche der Site ansehen, auf der
OKWS arbeiten wird, und eine andere Maschine im Hintergrund, auf der die Datenbank gespeichert wird. Diese zweite Maschine verwendet
MySQL, da sie für viele Aufgaben eine gute Software ist. Sie möchten diese Daten wirklich schützen, da es sehr schwierig ist, auf eine
unformatierte Festplatte oder Datenbank mit rohen Rohdatagrammen zuzugreifen.
Wie funktioniert die Anfrage, wie wird die Anfrage vom
OKWS- Server verarbeitet? Zuerst kommt es an und wird von einem Prozess namens
okd für den
OKWS- Dispatcher verarbeitet. Er prüft, ob er nach dieser Anfrage fragt, und erledigt dann einige Dinge. Da Sie diese Anforderung möglicherweise zuerst registrieren müssen, wird sie an eine Komponente namens
oklogd umgeleitet.
Anschließend müssen Sie einige Vorlagen erstellen, und es kann erforderlich sein, sie noch vor dem Eintreffen der Anforderung zu erstellen. Und es macht eine andere Komponente namens
pubd .

Und schließlich gibt es einen bestimmten Dienst, an den diese Anforderung gesendet wird. In
okd gibt es also eine Tabelle der unterstützten Dienste. Vermutlich kommt diese Anfrage zu einem dieser Dienste. Nach dem Überprüfen von
okd wird diese Anforderung an einen bestimmten
SVC- Dienstprozess weitergeleitet. Dieser Dienst wird genau das tun, was die Anforderung erfordert, z. B. den Benutzer für den Newsletter abonnieren oder es ermöglichen, das Verzeichnis der Benutzer von
ocupid mithilfe der Datenbank usw.
anzuzeigen .
Und dafür benötigen Sie wahrscheinlich den Dienst, um die Anwendungsinformationen im
oklogd- Komponentenprotokoll zu
belassen . Und am Ende des Tages sollte er mit der Datenbank "sprechen". Die Ersteller der Site haben diesen Prozess der "Kommunikation" etwas anders implementiert als normalerweise in
Apache , wo Sie einfach mit der Datenbank kommunizieren und beliebige
SQL- Abfragen ausgeben. Sie entwickelten das Konzept eines Datenbank-Proxys,
dbproxy , der sich vor der
MySQL-Datenbank befindet und Anforderungen des
SVC- Dienstes zur Ausführung akzeptiert. Ich denke, diese Abbildung zeigt im Grunde, wie
OKWS funktioniert.

Es gibt eine andere Komponente, die all dies initiiert. Sie heißt
okld und ist für das Starten aller Prozesse in der Schnittstelle dieses Webservers verantwortlich. Ich hoffe, einige dieser Dinge kommen Ihnen bekannt vor, denn genau diese Architektur wurde im Labor berücksichtigt. Es sieht so aus, als wäre es ein gutes Design. Sie hatten nicht
pubd ,
logd und
dbproxy in LR , aber Sie hatten
okd und
svc . Haben Sie Fragen zu
OKWS ?
Zielgruppe: Haben wir richtig verstanden, dass
dbproxy keine SQL-Abfragen akzeptiert, sondern eine andere Art von Abfrage?
Professor: Ja, richtig! Wie sieht diese Schnittstelle aus? Sie beschreiben dies nicht sehr detailliert, aber eine Sache, die Sie mit diesem
Datenbankproxy tun
könnten, ist, viele Argumente für
SQL- Abfragevorlagen aufzubewahren . Beispielsweise könnte es sich um eine Suchanfragevorlage für Ihre Freunde handeln, bei der diese nach
ID ausgewählt werden .

Angenommen, es gibt eine Vorlage wie "Wählen Sie
^ ID aus Ihrer Freundesliste aus, wobei
^ ID ="% S " . Angenommen, Sie möchten
Alice unter Ihren Freunden finden und eine
S- Anfrage senden, in der das Argument
„Alice“ lautet.
Teilen Sie unserer in der Benutzeroberfläche verfügbaren Anwendung mit, dass
dbproxy bereit ist, drei Arten von Anforderungen in seinem Namen auszuführen. Wenn Sie die Abfrage Nr. 1 ausführen möchten und das Argument
"Alice" lautet, erhalten Sie Zugriff auf die Datenbank.
Zielgruppe: Kann ein externer Benutzer auf der Ebene eines Webbrowsers eine solche Anfrage an die Datenbank senden oder gilt dies nur für interne Benutzer des Netzwerks?
Professor: Ja, vielleicht. Wie funktioniert es? In der Tat ist es seltsam, dass sich diese Datenbank auf einem separaten Computer befindet, weil Sie einfach eine Verbindung zur
OKWS- Datenbank oder zum
MySQL- Server herstellen können. Was hält das auf?
Zielgruppe: Firewall?
Professor: Ja, wahrscheinlich auf einer bestimmten Ebene. Die Entwickler beschreiben dies nicht zu ausführlich, aber auf dem zweiten Computer befindet sich wahrscheinlich ein internes Netzwerk, und es gibt einen Wechsel zwischen der Schnittstelle und der Datenbank, der von außen nicht erreichbar ist. Tatsächlich befinden sich beide Computer im selben Netzwerk, aber es gibt eine
Fw- Firewall mit bestimmten Regeln. Möglicherweise können Sie nur über Port 80 eine Verbindung zu diesem Schnittstellencomputer herstellen, nicht jedoch direkt zum internen Server. Dies ist eine der Schutzoptionen.

Ein weiterer
Grund ist wahrscheinlich, dass Sie beim
Herstellen einer Verbindung zu diesem
Datenbankproxy- Datenbankproxy ein 20-Byte-Kryptografietoken oder einen Schlüssel bereitstellen müssen. Wenn Sie diesen nicht bereitstellen,
lehnt dbproxy Ihre Verbindung ab. Die Regel ist also, dass Sie eine TCP-Verbindung öffnen, Ihre 20 Bytes senden und wenn sie falsch sind, wird die Verbindung geschlossen. Ich denke, das ist die Bedeutung eines solchen Systemdesigns.
Versuchen wir also herauszufinden, wie diese verschiedenen Prozesse hier isoliert sind. Wie können Sie sicherstellen, dass sich alle diese Komponenten nicht gegenseitig überfordern?
Zielgruppe: Unterschiedliche Root-Rechte und unterschiedliche Benutzer-IDs?
Professor: Ja, fast jede dieser Komponenten arbeitet als eine andere
UID. Daher gibt es hier in der Beschreibung des Systems eine ganze Tabelle, die für jede Komponente beschreibt, wo sie funktioniert und mit welcher
UID . Wir können also schreiben, dass
okd eine eigene
UID hat ,
pubd eine eigene
UID und
oklogd auch eine eigene
UID .
Okld arbeitet als
Root , was eher erfolglos ist, aber vielleicht ist das keine große Sache. Dann gibt es eine ganze Reihe von dynamisch zugewiesenen Benutzer-IDs für jeden Dienst, zum Beispiel ID 51001 usw.

Auf diese Weise wird sichergestellt, dass nicht jeder Dienst die Prozesse anderer Dienste stören kann.
Chroot wird auch hier häufig verwendet, sodass einige dieser Komponenten
Chroot- Rechte in separaten Verzeichnissen haben. Zum Beispiel sind
okd und
svc in einigen Verzeichnissen mit gemeinsamen
Chroot- Rechten ausgestattet. Warum haben diese beiden Komponenten Ihrer Meinung nach eine separate und nicht mit anderen
Chroot- Komponenten gemeinsame?
Zielgruppe: Weil
okd keine Root-Rechte hat.
Professor: Ja, aber warum setzen sie nicht
pubd ,
oklogd und alle anderen in die gleiche
Chroot ?
Zielgruppe: Ist es möglich, dass Dienste, die viele Daten gemeinsam nutzen müssen, voneinander isoliert werden sollten?
Professor: vielleicht. Ich denke, dass sie einige Daten teilen sollten, aber diese Daten sind nicht in den Dateien, sie werden über Sockets von
okd zu Diensten übertragen. Tatsächlich speichert jedoch keine dieser Komponenten etwas Interessantes im Dateisystem.
Daher gibt es im
chroot- Verzeichnis nichts Interessantes, und ich denke, dass die Leute von
OKWS einfach beschlossen haben, die unproduktiven Kosten für
chroot zu reduzieren, beispielsweise die Notwendigkeit, eine Kopie des Verzeichnisses zu erstellen. Vielleicht wollten sie auch den Verwaltungsaufwand für jeden
Chroot- Befehl loswerden. Da es hier aber keine echten Dateien gibt, ist alles in Ordnung.
Der Grund, warum diese Leute den Umgebungskomponenten unterschiedliche
Chroot zugewiesen haben, sind einige interessante Dinge. Möglicherweise gibt es Vorlagen, aber hier gibt es möglicherweise eine Protokolldatei, sodass die Protokolldatei nicht versehentlich gelesen werden soll, und dergleichen.
Zielgruppe: Verfügen diese Dienste beispielsweise über Dateien wie
aspx ?
Professor: Wie im Artikel beschrieben, handelt es sich bei dem Dienst um eine einzelne kompilierte
C ++ - Binärdatei, sodass tatsächlich keine zusätzlichen Dateien vorhanden sind.
Es gibt Vorlagen, aber sie werden wirklich über diesen seltsamen Mechanismus übertragen:
pubd hat Vorlagen in seinem Verzeichnis, zeigt sie in einem
Vorcomputer an , Home-Form in
okd , und
okd stellt bereits Vorlagen für alle Dienste über
RPC- Aufrufe bereit. Sie befinden sich also im Speicher, sind jedoch direkt über das Dateisystem nicht zugänglich. Dies ist ein etwas paranoides Design, wenn ich die Vorlagen nicht einmal lesen kann.
Was bringt es also, all diese Komponenten zu trennen? Warum brauchen wir ein separates
oklogd ?
Zielgruppe: Um die Möglichkeit des Überschreibens oder Zuschneidens des Journals auszuschließen?
Professor: Ja, also wollen wir wirklich sicherstellen, dass das Tagebuch zumindest nicht beschädigt wird, wenn etwas schief geht. Daher gibt es eine separate Protokolldatei, die von dieser
UID geschrieben werden kann , und alle Protokollnachrichten werden als
RPC für diesen Protokolldienst gesendet. Und selbst wenn alles andere ruiniert ist,
bleibt das Magazin mit Ausnahme von
okld unversehrt.
Teilnehmerin: Was ist, wenn Sie versehentlich einen Weg gefunden haben, das Magazin zu lesen und nicht sehen, was die anderen damit gemacht haben?
Professor: Nein, ich denke, wenn Sie einen Dienst, eine
Kneipe oder etwas anderes „gehackt“ haben, können Sie alles in das Tagebuch schreiben. Daher ist es
sinnvoll , einen separaten
oklogd-Eintrag zu erstellen . Tatsächlich ist
oklogd ein separater Prozess und wird nicht nur durch Anhängen von Dateien als
Nur-Anhängen-Datei aktualisiert. Daher kann
oklogd nicht jedem Protokolleintrag zusätzliche Informationen hinzufügen. Wenn das Betriebssystem die
Nur-Anhängen- Datei unterstützt, wissen Sie in diesem
Fall nicht, dass jemand in die Datei geschrieben hat. Während
oklogd für jede Nachricht einen Zeitstempel setzt und Sie herausfinden können, welcher Dienst die Aufnahme gemacht hat oder von
okd stammt . Daher erhalten Sie in dieser Protokolldatei tatsächlich zusätzliche Informationen, da es sich um einen separaten Dienst handelt.
Und was bedeutet
okld Separation und warum sollte es mit Root-Rechten funktionieren? Ich denke, dafür gibt es mehrere Gründe.
Zielgruppe: Wenn Sie möchten, dass niemand anderes mit Root-Rechten handelt, müssen Sie die
okld- Benutzerauthentifizierungsfunktion delegieren.
Professor: Ja. Jemand muss diese ganze Sache
uid chroot konfigurieren, und Sie benötigen
root für dieses
Unix , also bietet
okld dies an. Dies ist einer der Gründe. Noch etwas?
Zielgruppe: 80 Port Definition?
Professor: Ja natürlich! Sie müssen das Abhören von Port 80 binden, der
okkld ist und noch etwas bietet?
Zielgruppe: Das Öffnen der
oklogd- Protokolldatei wird abgeschlossen, da
oklogd nicht geöffnet
bleiben soll , um den Zugriff auf die Protokolldatei zu verhindern.
Professor: vielleicht. Aber ich weiß nicht, ob die Entwickler es wirklich getan haben, weil sie ihren Quellcode nicht angesehen haben. Denken Sie, dass
okld die Protokolldatei öffnet und
oklogd übergibt ? Möglicherweise.
Zielgruppe: Andernfalls könnte ein Angreifer, der
oklogd kompromittiert
hat, das gesamte Protokoll löschen.
Professor: Ja, das ist richtig. Vielleicht möchten Sie es im
Anhänge- Modus öffnen und dann
oklogd übergeben , dann haben Sie mehr Sicherheitsgarantien für das Protokoll. Dies ist etwas, was Sie ohne Root-Rechte nicht tun können.
Wir hatten also eine Frage zu den Hausaufgaben, was passieren wird, wenn dieses 20-Byte-Token für den Zugriff auf die Datenbank "durchgesickert" ist. Welchen Schaden kann dies verursachen? Sollten wir uns darüber Sorgen machen?
Zielgruppe: In diesem Fall kann ein Angreifer die Kontrolle über einen bestimmten Dienst übernehmen.
Professor: Ja, richtig, denn jetzt können Sie alle Abfragevorlagen verbinden und abrufen. Es scheint eigentlich ziemlich einfach. Sie müssen wahrscheinlich eine dieser Komponenten kompromittieren, um zuerst eine Verbindung zur Serverdatenbank herstellen zu können. Ich denke also, wenn Sie dieses Token haben und eine dieser in der Abbildung gezeigten Komponenten kompromittieren können, könnten Sie alle diese Abfragen verwenden.
Nun wollen wir sehen, wie dieses
OKWS- Design verbessert werden kann. Beispielsweise wäre es möglich, jedem Benutzer eine separate
UID- Einheit
zuzuweisen und zusätzlich jedem Dienst eine separate
UID zuzuweisen . Hier hat jeder Dienst, z. B. Nachrichten, die Suche nach Freunden oder das Erstellen eines Kontos, eine separate
Benutzer-ID , aber jeder
OKWS- Benutzer
wird nicht als
Unix-UID dargestellt . Eigentlich gibt es hier keine
Benutzer-ID, hier sind nur Service-
IDs vorhanden. Denken Sie, dass
Sie für jeden
OKWS- Client eine andere
UID benötigen ?
Zielgruppe: In diesem Fall stellt sich heraus, dass ein Benutzer, der einen Dienst „hackt“, auf alle Daten anderer Benutzer dieses Servers zugreifen kann.
Professor: Ja, das stimmt!
Zielgruppe: Wenn Sie jedoch tatsächlich einen separaten Dienst und einen separaten
Datenbankproxy für jeden Benutzer hätten, wäre es unmöglich, auf die Daten anderer Personen zuzugreifen.
Professor: Ja, aber könnte dies ein stärkeres Modell sein? Ich denke, dass
OKWS- Entwickler aus zwei Gründen keinen solchen Schritt unternehmen. Das erste ist die Leistung. Wenn Sie ein paar Millionen Benutzer der
okcupid- Site, mehrere Millionen laufende Prozesse und ein paar Millionen
dbproxie haben , sind Leistungs-Overheads möglich.
Dadurch kann nicht die gleiche Leistung
erzielt werden , die die vorhandene
OKWS- Architektur
bietet .
Zielgruppe: Die OKWS- Beschreibung besagt, dass die Leistung dieses Systems besser ist als bei anderen Systemen. Wie wurde dies erreicht?
Professor: Ich denke, das liegt zum Teil daran, dass sie ihr Design auf eine bestimmte Arbeitslast abgestimmt haben. Außerdem haben sie dies alles in
C ++ geschrieben . Eine Alternative besteht darin, einige Dinge in
PHP zu schreiben, dann werden Sie wahrscheinlich Vorteile in dieser Hinsicht erzielen.
Darüber hinaus verfügen sie nicht über viele der Funktionen, die
Apache bietet. Es hat ein universelles Design, hat also viele Arbeitsprozesse und lädt sie von Zeit zu Zeit neu. Es gibt viele
TTP- Verbindungen, die die Dauer des Verbindungsprozesses sicherstellen und ihre Aktivität beibehalten. Es erhöht auch die Anzahl der auf dem System ausgeführten Prozesse.
Apache wurde universeller gestaltet und kann alles tun, was Sie vom Internet-Server
erwarten. Die Mitarbeiter von
OKWS konzentrieren
sich mehr auf die Lösung spezifischer Probleme.
Aber ich denke, es gibt
heutzutage andere Webserver, die wahrscheinlich mit der
OKWS- Leistung
mithalten können. Zum Beispiel ist
Nginx ein sehr optimierter Webserver, den Sie heutzutage ausführen können. Wenn Sie Hochleistungsanwendungen auf der Serverseite wünschen, möchten Sie wahrscheinlich, dass der lange Prozess dem
OKWS- Service sehr ähnlich ist. Und damit es einen Mechanismus für eine schnelle gemeinsame
CGI- Gateway-Schnittstelle zum Verbinden eines externen Programms mit einem Webserver oder eine Art Protokoll gibt, das auf der Serverseite verwendet werden könnte, um dies sogar in
Apache oder
Nginx zu implementieren. Daher denke ich, dass viele dieser Ideen nicht nur
OKWS vorbehalten sind , sondern auch auf anderen Webservern implementiert werden können. Sie zeigen lediglich, dass die Verbesserung der Sicherheit die Verwendung dieser "Tricks" nicht ausschließt. Ich denke, sie haben mit einem ähnlichen Schema wie
Apache begonnen , aber sie dachten, es wäre nicht sicher genug.
Daher denke ich, dass einer der Gründe, warum die
Entwickler von
OKWS keine separaten Berechtigungen für Benutzer einführen wollten, eine mögliche Leistungsverschlechterung war.

Ein weiterer Grund ist, dass sich das vollständige Anwendungsmodell um einen Dienst dreht, der versucht, auf die Daten jedes Benutzers zuzugreifen, z. B. die Suche nach Freunden auf
okcupid oder nach jemandem, den Sie zu einem Datum einladen können. Infolgedessen ist dieses Modell der Benutzerisolation nicht sehr sinnvoll, da es letztendlich einen Dienst geben sollte, für den Sie eine Anfrage senden, und der alle anderen Daten überprüft, um eine Übereinstimmung für Ihre Anfrage zu finden. Selbst wenn Sie über Benutzer-IDs oder einen Mechanismus zum Isolieren verfügen, müssen Sie dennoch für jeden Benutzer den Zugriff auf den Dienst öffnen.
Bei anderen Diensten wie
Google Mail oder
Dropbox , die sich viel stärker auf einen bestimmten Benutzer konzentrieren und keine offene Möglichkeit zum Freigeben ihrer Dateien bieten, kann das Isolieren von Benutzern weitere Vorteile bieten. Auf dem
Dropbox- Server gibt es beispielsweise eine
Benutzer-ID für jeden
Dropbox- Client. Und wenn ein Prozess für Sie und ein Prozess für eine andere Person ausgeführt wird, können Sie selbst mit einem böswilligen Exploit nicht auf die Informationen anderer Personen zugreifen.
Lassen Sie uns nun sehen, ob es
OKWS wirklich gelungen ist, die Sicherheit in einem solchen
Servermodell zu verbessern. Um die Sicherheit zu bewerten, müssen Sie jede Komponente des Systems berücksichtigen und bestimmen, welche Art von Angriffen es beschädigen könnte.
Beginnen wir mit
okd . Es kann beispielsweise mit Anfragen über den Browser angegriffen werden, was zu einem Pufferüberlauf führt. c++, , - ,
okd . ?
: ?
: , , . ?
: , .
: , . , , ,
http , , , . , .
: ?
: , . , , , , ,
match.com . , ,
OkCupid . , - ? ?
: , ,
okd . , ?
: . ,
okd .
: , ?
: ! , , , , , . , , , , . , , . «»
okd , , , .
: DOS-?
: , , , «» «» , DOS- - .
: okd , , …
: , . , ,
okd ,
okd , .
okd , . ,
okd , , , , .
: .
: , . ,
okd . ,
oklogd ? ?
: .
: , , , ?
pubd , , , - .
: , , «»
oklogd .
: , . , ,
append-only , .
: , …
: , , . .
svc ? , , . , ,
okd oklogd . , , .
svc - -, , , . , , , .
okld ? , root. ? , .
dbproxy .
okld ? «»? ?
: , - ?
: , . , , . , , - , , , - . - . root- .
: -, , -
dbproxy .
: !
: , , ,
RPC , , , , , ! .
: , .
dbproxy ? , . , «» ,
dbproxy - .
: ,
svc …
: ,
svc , !
: , , !
: , ,
«» , …
: dbproxy .
: . ,
dbproxy , .
Ich hoffe, Sie verstehen, was uns das Teilen von Anwendungsberechtigungen gibt. Und wie wir sehen können, ist dies nicht perfekt. Es gibt noch viele andere Dinge, die schief gehen können. Es scheint jedoch, dass diese Lösung auf jeden Fall besser ist als das Entwerfen einzelner Anwendungen ohne Zugriffsrechte, mit denen wir begonnen haben.Die Vollversion des Kurses finden Sie hier .Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung
aufgeben oder sie Ihren Freunden empfehlen.
Habr-Benutzer erhalten 30% Rabatt auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).
Dell R730xd 2 mal günstiger? Nur wir haben
2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über
den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?