Wie bei den meisten Servern (nehme ich an) haben wir Leute, die versuchen, unsere Dienste rund um die Uhr zu erzwingen. Ich habe die IPs von cpHulk auf eine schwarze Liste gesetzt, aber es scheint besser zu sein, wenn sie überhaupt nicht so weit kommen. Ich selbst und mein Host sind die einzigen, die über andere Ports als 80 eine Verbindung zum Server herstellen. Daher möchte ich Verbindungen aus allen Ländern außerhalb der USA mit Ausnahme von Port 80 blockieren. Ich habe meinen Host kontaktiert, um dies einzurichten, aber sie zögerten, weil sie sagten, es würde eine außergewöhnlich hohe Serverlast schaffen. Es handelt sich um einen dedizierten Xeon 1230-Server mit 32 GB RAM, auf dem CentOS 6.6 und iptables ausgeführt werden.
Erstens, warum sollte ich das nicht tun? Zweitens, hat mir mein Gastgeber recht gegeben? Drittens, gibt es eine Möglichkeit, dies zu erreichen, ohne die Leistung zu beeinträchtigen?
Antworten:
Das Einrichten spezifischer Regeln zum Blockieren jedes IP-Bereichs (durch Auflisten jedes Bereichs) ist der falsche Ansatz.
Legen Sie die Standardregeln in iptables fest, um den gesamten Datenverkehr auf Ihre Verwaltungsports zu lenken. Fügen Sie dann Regeln hinzu, um den Zugriff nur von vertrauenswürdigen IP-Adressen (von Ihnen und Ihrem Host) zuzulassen.
Das standardmäßige Blockieren aller Daten und das Zulassen nur des genehmigten Datenverkehrs wird in der Regel als "explizite Ablehnung aller Daten" bezeichnet und als bewährte Methode angesehen. In diesem Fall wird auch verhindert, dass die Leistung Ihres Hosts beeinträchtigt wird.
quelle
Dazu müssten Sie Zehntausende von Firewall-Regeln hinzufügen , eine für jeden Netzwerkblock, mit denen in einem Land möglicherweise ein bis mehrere tausend Netzwerkblöcke verknüpft sind.
Wenn eine Anfrage eingeht, muss sie mit jeder einzelnen Regel abgeglichen werden , was für ein paar Dutzend oder vielleicht sogar ein paar hundert Regeln sehr wenig Zeit in Anspruch nimmt, aber mit so vielen Regeln, wie Sie verwenden müssten, (1) jeder Die Anforderung wird erheblich verlangsamt und (2) es wird viel CPU verbraucht.
Der Weg, dies ohne signifikante Leistungseinbußen zu tun, besteht darin, das zu tun, was Sie bereits tun: nur die spezifischen Adressen zu blockieren, die problematisch sind.
quelle
Was Sie brauchen, ist ein Tool namens ipsets
Das Wichtigste dabei ist, dass es blitzschnell ist! Dies liegt daran, dass eine große Anzahl von IP-Netzwerken durch einen einzelnen Hash anstelle von Hunderten oder Tausenden von Zeilen mit Iptables-Regeln dargestellt werden kann.
Informationen zum Sperren von Ländern finden Sie in diesem Beispiel :
quelle
Das Ignorieren der Frage, ob dies auf diese Weise geschehen soll oder nicht, ist eine gute Idee. Sie können mit dem GeoIP-Modul für iptables das tun, wonach Sie gefragt haben .
Nachdem Sie das Modul erstellt und installiert haben (und Ihre IP-Listen monatlich aktualisiert haben), können Sie folgendermaßen vorgehen, um einzelne Länder zu blockieren:
Oder verwenden Sie
--src-cc US -j ACCEPT
und so weiter, wenn Sie die Länder angeben möchten, die Sie behalten möchten.quelle
Wenn Sie die Möglichkeit behalten möchten, von jedem Ort aus eine Verbindung herzustellen, ohne eine geografische Blacklist / Whitelist zu führen, können Sie Port-Knocking implementieren . Die meisten automatisierten Versuche werden gestoppt, und Sie können weiterhin von jeder Adresse aus eine Verbindung herstellen.
Hinweis: Setzen Sie den zu öffnenden Port nicht neben den zu öffnenden Port. Andernfalls wird Ihre Regel durch einen sequenziellen Port-Scan aktiviert.
quelle
Es ist unwahrscheinlich, dass Sie einen oder zwei BGP-fähige Router in Ihrem Stapel haben UND eine Vorstellung davon haben, was zum Teufel Sie tun / mit jemandem zusammenarbeiten, der weiß, was zum Teufel sie tun oder tun Vielleicht steckt hinter einem DDoS-Präventionsanbieter eine relativ neue Methode zur Beschränkung des Datenverkehrs auf geografische Regionen, die als selektives Blackholing bezeichnet wird, die meiner Meinung nach einen Blick wert ist.
https://ripe68.ripe.net/presentations/176-RIPE68_JSnijders_DDoS_Damage_Control.pdf
http://mailman.nanog.org/pipermail/nanog/2014-February/064381.html
http://www.internetsociety.org/deploy360/blog/2014/07/video-selective-blackholing-at-ripe-68/
Da diese Methode die Routen manipuliert, werden alle Probleme mit der Serverauslastung umgangen.
quelle