{"id":17547,"date":"2024-12-29T15:54:27","date_gmt":"2024-12-29T14:54:27","guid":{"rendered":"https:\/\/linux-bibel.at\/?p=17547"},"modified":"2024-12-29T15:54:28","modified_gmt":"2024-12-29T14:54:28","slug":"ganze-laender-auf-dem-webserver-mit-ufw-blockieren","status":"publish","type":"post","link":"https:\/\/linux-bibel.at\/index.php\/2024\/12\/29\/ganze-laender-auf-dem-webserver-mit-ufw-blockieren\/","title":{"rendered":"Ganze L\u00e4nder auf dem Webserver mit UFW blockieren"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Nun, die Linux Bibel ist recht bekannt &#8211; also auch ein Server, der gerne angegriffen wird. Der Server, also das Betriebssystem, ist inzwischen exzellent abgesichert &#8211; ein Problem ist nat\u00fcrlich noch immer &#8211; die Datenbank. WordPress hat eine Suche &#8211; diese funktioniert nat\u00fcrlich mit PHP, mit PHP greift die Suche wieder auf die Datenbank zu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Problem dabei &#8211; hat die Datenbank eine Sicherheitsl\u00fccke, die noch nicht gefixt wurde &#8211; kann man mit den passenden PHP-Befehlen auf diese zugreifen und etwa auch, wenn eine Sicherheitsl\u00fccke ausgenutzt werden kann, diese \u00fcbernehmen. Diese Geschichte nennt man SQL-Injection. Hier einige Beispiele, die auf der Linux Bibel nicht ausgenutzt werden konnten:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0\"XOR(if(now()=sysdate(),sleep(15),0))XOR\"Z\n(select(0)from(select(sleep(15)))v)\/*' (select(0)from(select(sleep(15)))v) '\" (select(0)from(select(sleep(15)))v) \"*\/\t\n0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z\t\nif(now()=sysdate(),sleep(15),0)\n'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'\n1\u00c0\u00a7\u00c0\u00a2'\"\nthe'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'\n1'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'\t\n1*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)\n-1); waitfor delay '0:0:15' --\n-1; waitfor delay '0:0:15' --\nthe-1 waitfor delay '0:0:15' -\nthe\/page'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'\nthe0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z\nthe0\"XOR(if(now()=sysdate(),sleep(15),0))XOR\"Z\n-1 OR 2 31-31-1=0 0 0 1 --\n-1 OR 2 83-83-1=0 0 0 1 -\n-1 OR 2 86-86-1=0 0 0 1 --\n-1 OR 2 98-98-1=0 0 0 1 --\n-1' OR 2 248-248-1=0 0 0 1 or 'FIzQAb8x'='\n-1' OR 2 580-580-1=0 0 0 1 or 'MIRrW8gW'='\n-1)) OR 52=(SELECT 52 FROM PG_SLEEP(15))--\n0K1ZBbZY') OR 555=(SELECT 555 FROM PG_SLEEP(15))--\n0thGeTF9'; waitfor delay '0:0:15' --\n1-1 OR 538=(SELECT 538 FROM PG_SLEEP(15))-\n1Ri1YZArf') OR 518=(SELECT 518 FROM PG_SLEEP(15))--\n30j4vGTy'; waitfor delay '0:0:15' --\n@@3auAt\nEU6KKJwC' OR 597=(SELECT 597 FROM PG_SLEEP(15))--<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Funktioniert ein Angriff nicht, bekommt der Angreifer einfach gesagt, nur die Fehlermeldung, dass sein gesuchter Begriff nicht gefunden wurde.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die meisten Angriffe kommen aus Russland und England, aber auch aus Deutschland gibt es solche &#8211; die meisten Angreifer nutzen lustigerweise das anf\u00e4lligste System \u00fcberhaupt &#8211; Windows. Sehen wir uns einmal ein paar solcher Angreifer n\u00e4her an (<em>leider habe ich hier in Matomo noch die IP-Adressen auf Anonymit\u00e4t getrimmt, dies mache ich jetzt nicht mehr<\/em>):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-1.jpg\" rel=\"lightbox-0\"><img loading=\"lazy\" decoding=\"async\" width=\"659\" height=\"144\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-1.jpg\" alt=\"\" class=\"wp-image-17549\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-1.jpg 659w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-1-150x33.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-1-300x66.jpg 300w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-1-1.jpg\" rel=\"lightbox-1\"><img loading=\"lazy\" decoding=\"async\" width=\"659\" height=\"144\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-1-1.jpg\" alt=\"\" class=\"wp-image-17550\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-1-1.jpg 659w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-1-1-150x33.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-1-1-300x66.jpg 300w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-2.jpg\" rel=\"lightbox-2\"><img loading=\"lazy\" decoding=\"async\" width=\"659\" height=\"144\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-2.jpg\" alt=\"\" class=\"wp-image-17551\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-2.jpg 659w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-2-150x33.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-2-300x66.jpg 300w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-3.jpg\" rel=\"lightbox-3\"><img loading=\"lazy\" decoding=\"async\" width=\"659\" height=\"144\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-3.jpg\" alt=\"\" class=\"wp-image-17552\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-3.jpg 659w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-3-150x33.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-3-300x66.jpg 300w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-5.jpg\" rel=\"lightbox-4\"><img loading=\"lazy\" decoding=\"async\" width=\"659\" height=\"144\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-5.jpg\" alt=\"\" class=\"wp-image-17554\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-5.jpg 659w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-5-150x33.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-5-300x66.jpg 300w\" sizes=\"auto, (max-width: 659px) 100vw, 659px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Die einfachste M\u00f6glichkeit sich zu sch\u00fctzen ist nat\u00fcrlich, die Software aktuell zu halten &#8211; hier k\u00f6nnte man aber noch immer das Pech haben, eine L\u00fccke zu haben, die den Entwicklern nicht bekannt ist &#8211; dem Angreifer aber schon &#8211; so arbeitet zum Beispiel die israelische NSO Group.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die weitaus intelligentere Methode &#8211; die IP-Adressen, der L\u00e4nder, aus denen angegriffen wird &#8211; einfach sperren. Deutschland zu sperren, w\u00e4re nat\u00fcrlich nicht sonderlich erfreulich &#8211; aber hier hat es bisher auch nur einen Angreifer gegeben. Also sind Russland und England dran. Die Besucher aus Russland &#8211; 454 und England &#8211; 288 im Jahr 2024 werden es wohl \u00fcberleben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wie geht man jetzt vor &#8211; nehmen wir einfach die Firewall UFW unter Linux (<em>eigentlich ist diese ja nur ein Frontend, mit der man die Iptables \/ Nftables steuert<\/em>). Als Erstes ben\u00f6tigen wir die IP-Adressen, die in den L\u00e4ndern genutzt werden &#8211; diese erh\u00e4lt man etwa unter <a href=\"https:\/\/www.ip2location.com\/free\/visitor-blocker\" target=\"_blank\" rel=\"noreferrer noopener\">IP2location<\/a>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-6.jpg\" rel=\"lightbox-5\"><img loading=\"lazy\" decoding=\"async\" width=\"1016\" height=\"215\" src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-6.jpg\" alt=\"\" class=\"wp-image-17555\" srcset=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-6.jpg 1016w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-6-150x32.jpg 150w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-6-300x63.jpg 300w, https:\/\/linux-bibel.at\/wp-content\/uploads\/2024\/12\/xorr-6-768x163.jpg 768w\" sizes=\"auto, (max-width: 1016px) 100vw, 1016px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Man w\u00e4hlt das Land und am Ende &#8222;<strong>CIDR<\/strong>&#8222;, klickt auf &#8222;<strong>Download<\/strong>&#8220; und erh\u00e4lt eine Textdatei. Diese Textdatei benennt man passend um &#8211; in meinem Fall etwa &#8222;<strong>russia.txt<\/strong>&#8220; und l\u00e4dt diese auf den Server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jetzt f\u00fcgt man die IP-Adressen aus der Datei in die Regeln der Firewall ein, nat\u00fcrlich als root:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat russia.txt | awk '\/^&#91;^#]\/ { print $1 }' | xargs -I {} ufw deny from {} to any<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Gerade bei gro\u00dfen IP-Adressbereichen, wie denen aus Russland, kann dies schon mal eine halbe Stunde dauert &#8211; im besten Fall nutzen Sie also etwa <a href=\"https:\/\/linux-bibel.at\/index.php\/2023\/09\/03\/tmux-fenstermanager-fuer-das-linux-terminal\/\" data-type=\"post\" data-id=\"583\">Tmux<\/a>, damit die <a href=\"https:\/\/linux-bibel.at\/index.php\/2023\/09\/10\/ssh-secure-shell-unter-linux-am-terminal-und-auf-der-grafischen-oberflaeche\/\" data-type=\"post\" data-id=\"2501\">SSH<\/a>-Verbindung nicht abbricht.<\/p>\n<div class=\"pld-like-dislike-wrap pld-custom\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir\" data-post-id=\"17547\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Hoch.png\" alt=\"Gef\u00e4llt mir\" \/>\r\n            <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">7    <\/span>\r\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"Gef\u00e4llt mir nicht\" data-post-id=\"17547\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                            <img src=\"https:\/\/linux-bibel.at\/wp-content\/uploads\/2023\/12\/Daumen-Runter.png\" alt=\"Gef\u00e4llt mir nicht\" \/>\r\n            <\/a>\r\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\">1<\/span>\r\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Nun, die Linux Bibel ist recht bekannt &#8211; also auch ein Server, der gerne angegriffen wird. Der Server, also das Betriebssystem, ist inzwischen exzellent abgesichert &#8211; ein Problem ist nat\u00fcrlich noch immer &#8211; die Datenbank. WordPress hat eine Suche &#8211; diese funktioniert nat\u00fcrlich mit PHP, mit PHP greift die Suche wieder auf die Datenbank zu. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-17547","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"_links":{"self":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/17547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/comments?post=17547"}],"version-history":[{"count":1,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/17547\/revisions"}],"predecessor-version":[{"id":17556,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/posts\/17547\/revisions\/17556"}],"wp:attachment":[{"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/media?parent=17547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/categories?post=17547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linux-bibel.at\/index.php\/wp-json\/wp\/v2\/tags?post=17547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}