Blockieren von IP-Adressen außerhalb Deutschlands

Status
Für weitere Antworten geschlossen.

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118
Hallo Leute,

Ich nutze das autoblock feature und dyndns (link zum login wurde nirgendwo preisgegeben) und bekomme regelmäßig eine Mail, dass IP-Adressen (sind immer in einer Range außerhalb von Deutschland) blockiert worden, da die eingestellten Loginversuche verstrichen sind.

Kann man einstellen, dass nur IP-Adressen von Deutschland erlaubt sind (+ private IP-Adressen und localhost natürlich)?
Folgendes habe ich gefunden:
http://www.cyberciti.biz/faq/block-entier-country-using-iptables/
http://www.ipdeny.com/ipblocks/data/countries/

Kann mir jemand helfen? Oder ist das Anpassen des Scriptes (erster Link) bei ISO="af cn" mit alles TLD sowie der anderen Variablen die eleganteste Lösung?

PS: Ich gehe natürlich davon aus, dass diese Leute die darauf zugreifen wollen keine Proxys in Deutschland verwenden.
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
du kannst z.B. mittels .htaccess genau festlegen welche IPs zugreifen dürfen. Ich würde es nicht via iptables machen, da du damit alle Dienste schliesst und nicht nur den Mailserver. Eine .htaccess könnte so ausschauen
Code:
Order allow,deny
allow from 127.0.0.1
allow from 192.168.0.0/24
dann musst du natürlich noch alle deutschen Blöcke erlauben. Allerdings wird das via htaccess kräftig auf die Performance drücken, da das File bei jedem Request wieder ausgewertet werden muss. Performanter wäre es diese Direktive in die httpd.conf des Apache einzubauen z.B.
Code:
<Directory /volume1/web
 Deny from BLOCK1
 Deny from BLOCK2
</Directory>
BLOCK dann mit den jeweiligen zu sperrenden Blöcken belegen
 

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118
Deine Ausführungen klingen logisch, jedoch möchte ich alle Dienste außerhalb Deutschlands sperren, nicht nur webaccess. Ich möchte teilweise ja auch FTP oder wenn ich möchte SSH Zugriff von außen haben, aber nur innerhalb Deutschlands. Bis jetzt muss ich oder andere Leute nicht bewusst außerhalb Deutschlands darauf zugreifen können.

<Directory /volume1/web
Deny from BLOCK1
Deny from BLOCK2
</Directory>
[/code]BLOCK dann mit den jeweiligen zu sperrenden Blöcken belegen

Wo muss ich das einbauen? /volume1/web existiert nicht. Unter /usr/syno/apache/conf gibt es httpd.conf, httpd.conf-sys und httpd.conf-user. Ich habe in der httpd.conf eingetragen:

<Directory "/usr/syno/synoman/webman">
Order deny,allow
Deny from all
Allow from 192.168.0
</Directory>

und auch

<Directory "/usr/syno/synoman/phpsrc/web">
Order deny,allow
Deny from all
Allow from 192.168.0
</Directory>

eingetragen. Ich habe eine andere Range, dann müsste ich ausgesperrt werden...

Bei /usr/syno/etc.defaults/rc.d gibt es jedoch nur S97apache-sys.sh, S97apache-user.sh, S97apache-webdav.sh. Was ist mit einem "generellen" apache restart?
 
Zuletzt bearbeitet:

dany

Benutzer
Mitglied seit
31. Mrz 2008
Beiträge
352
Punkte für Reaktionen
0
Punkte
22
Hallo Raymond.

Gemäss ipinfodb.com gibt es ca. 17'000 Ranges für Deutschland (ipdeny.com sinds ca. 6'000) . IMO befüllt jede iptable-Regel den RAM, so kann es sein, das die DS mit 256RAM gar nicht reichen.
Ich würde einen anderen Ansatz verfolgen: Nur die ISP erlauben die du kennst und benützt. Anhand der Connection-Liste siehst du ja aus welchem Range angemeldet wird.

Grundsätzlich kann man auf einem Handelsüblichen Router auch Zeitbeschränkt die Portweiterleitung offen lassen und oder auch die Source einschränken.

SSH kannst du mit Private und Public-Keys zusätzlich absichern, bez die normale authentisierung abschalten.

Eine andere Variante wäre (wenn ipkg vorhanden ist) das Packet knock auszuprobieren. http://www.portknocking.org/

Rich (BBCode):
Package: knock
Version: 0.5-5
Depends: libpcap, psmisc
Section: security
Architecture: arm
Maintainer: Don Lubinski <nlsu2@shine-hs.com>
MD5Sum: 9ab4eac2ef7ede85995aed1a68ea1c83
Size: 19695
Filename: knock_0.5-5_arm.ipk
Source: http://www.zeroflux.org/knock/files/knock-0.5.tar.gz
Description: knockd is a port-knock server. It listens to all traffic on an 
ethernet (or PPP) interface, looking for special knock sequences of port-hits. 
A client makes these port-hits by sending a TCP (or UDP) packet to a port on 
the server. This port need not be open -- since knockd listens at the link-layer 
level, it sees all traffic even if it is destined for a closed port. When 
the server detects a specific sequence of port-hits, it runs a command 
defined in its configuration file. This can be used to open up holes in a 
firewall for quick access.
 

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118
Als Alternative ist mir noch eingefallen, dass ich weiterhin das Autoblockfeature nehme und nur die IP-Adressen aus Deutschland wieder lösche, wenn diese die Loginversuche erreicht haben. Das wird aber auch nicht einfach das umzusetzen. Ist halt die Frage, wie groß die Tabelle mit gesperrten IP-Adressen werden kann und wie sehr da die Performance darunter leidet.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wie gross die Tabelle wird hängt von deinem gewählten Ansatz ab: Entweder Blacklist oder Whitelist. Beim ersten würdest du alle verbotenen Bereiche eintragen und alles andere erlauben oder beim zweiten Ansatz die erlaubten Bereiche eintragen und alles andere verbieten.
Wieso nutzt du nicht nur Autoblock und lässt die IPs mal für immer und ewig dort drin? Erst wenn irgendwas nicht klappt kannst du dann damit beginnen bestimmte IPs wieder zu löschen. Auch nicht vergessen darfst du, dass 1. diese Listen mit den IP-Blöcken der Länder nie komplett sind und sich das Ganze mittels deutschem Proxy relativ einfach umgehen liesse. Ist also fraglich ob der Pflegeaufwand für die Liste in einem vernünftigen Verhältnis steht
 

trevorreznik

Gesperrt
Mitglied seit
24. Nov 2010
Beiträge
386
Punkte für Reaktionen
0
Punkte
0
Auch nicht vergessen darfst du, dass 1. diese Listen mit den IP-Blöcken der Länder nie komplett sind und sich das Ganze mittels deutschem Proxy relativ einfach umgehen liesse. Ist also fraglich ob der Pflegeaufwand für die Liste in einem vernünftigen Verhältnis steht

3. Werden u.U. nur bestimmte Ports abgegrast und eine Portänderung würde bereits Ruhe bringen.

Ansonsten halte ich das aktuelle Verhalten für absolut ausreichend, wenn man einigermaßen sichere Passwörter benutzt. Dann landen die "Jungs" nämlich automatisch auf der Blocklist und dann ist auch irgendwann Ruhe.
 

maze128

Benutzer
Mitglied seit
03. Jan 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
16
Also ich habe mir über diese Sache auch schon recht lange Gedanken gemacht. Das Problem ist, dass die IP-Bereiche so extrem gestreut sind, dass man da nicht wirklich sinnvoll mit einer White/Black-List arbeiten kann.

Eine einfach Änderung der Standardports reicht da zu 99% schon aus, mach Port 80 auf jeden Fall zu und benutz statt dessen z.B. einfach 81. Statt 5001 dann 4999 oder so was. Den Port 81 lässt du dann im Router auf 80 und die IP des Nas umleiten und fertig! Dann ist wie gesagt zu 99% Ruhe, hab das vor einiger Zeit eingerichtet und seit der Zeit keine einzige geblockte IP mehr!
 

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118
@maze128:
Das ist natürlich immer ne Möglichkeit. Ich habe es mal jetzt geändert. Kann man eigentlich komplett http Zugriff deaktivieren und nur https Verbindungen zulassen (am besten über GUI konfigurierbar)? Man kann ja nur, was ich gesehen habe, eine Weiterleitung von http auf auf https Weiterleitung zulassen. Klar, wenn nur der https Port weitergeleitet wird...mir geht es jedoch um den Grundsatz.
 
Zuletzt bearbeitet:

Capu

Benutzer
Mitglied seit
30. Mrz 2011
Beiträge
253
Punkte für Reaktionen
0
Punkte
0
Generell sollte man einiges beachten wenn es um die Sicherheit eines (Web-) Servers oder einem NAS geht.
- Es ist einfacher mit Whitelist´s zu arbeiten
- Portänderungen helfen super gegen "Skriptkiddies"
- Iptables kann helfen, muss aber nicht (da man sich doch damit etwas beschäftigen muss)
- Autoblock bzw. fail2ban einfach aktiviert lassen und die "Liste" sich selbst überlassen.
- Sicherheit ist gut, sollte aber auch nicht das komplette handeln bestimmen, 100%igen Schutz gibt es sowieso nicht.
Also nicht verrückt machen lassen ;)

Ja, generell ist es möglich einen Webserver nur via HTTPS verfügbar zu machen.
 

maze128

Benutzer
Mitglied seit
03. Jan 2010
Beiträge
227
Punkte für Reaktionen
0
Punkte
16
Ja, generell ist es möglich einen Webserver nur via HTTPS verfügbar zu machen.

Speziell auch.

Die DS hat übrigens auch noch eine eingebaute Firewall, da kannst du entsprechende Dienste auch blockieren.
Ich würde auch dann im Router nur die benötigten Ports weiterleiten und nicht z.B. Port 80 oder so.
 

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118
es funktioniert alles, ausgenommen, wenn beispielsweise von dyndns auf die NAS zugegriffen werden soll und somit diese domain (dyndns.org) bzw. die eigene domain wie adsl.alicedsl.de freigegeben werden soll. Kann mir da jemand helfen? Haben mehrere das Problem was man mal das internet diesbezüglich durchforstet
 

Capu

Benutzer
Mitglied seit
30. Mrz 2011
Beiträge
253
Punkte für Reaktionen
0
Punkte
0
Bei so einer "Whitelist" ist für mich der Sinn einer Whitelist schon verloren gegangen. So ein Aufwand für nen kleinen, privaten Webserver? Und wer sagt dir das kein "Hacker" bzw. kein Scriptkiddie von einer Adresse der Whitelist kommt? Oder über nen deutschen Proxy? Oder oder oder... Das begrenzen auf die IP Adressbereiche ist reine Pseudosicherheit die keinen Bezug mehr zur Praxis hat.
Ich hab mich mit dem Webserver der DS noch nicht beschäftigt, weiß also nicht was dort für ein Webserver läuft (dafür hab ich nen "richtigen" Server) und in welcher Version mit welchen Mods und Paketen. Generell gibt es einige Grundregeln um seinen Webserver sicher zu halten.
- Version und Patche auf dem neusten Stand
- Hardening Patch installieren (Suhosin, etc)
- Bei nem Apache Server auf keinen Fall auf nen mod_security und mod_evasive verzichten
- Apache auf keinen Fall als root oder admin laufen lassen
- Iptables konfigurieren und alles nicht benötigten Ports dicht machen.
- Niemals nie nicht ein myphpadmin oder mysqladmin öffentlich im Netz zugänglich machen.
- Mit mod_security Adressen auf evtl. Botnetz und Script aktivitäten abgleichen (z.B. http://dnsbl.abuse.ch , funktioniert super)

Kann das mit der DS als Webserver nicht gewährleistet werden, scheidet die Funktionalität für den freien Zugriff aus dem Netz aus.
Für das Intranet würde das reichen, aber nicht für extern.

Aber so hat jeder seine eigenen Ansprüche an Sicherheit. Mein Standpunkt ist da eher maximale Sicherheit mit minimalem Verwaltungsaufwand.
Da greife ich lieber auf fertige Module zurück (wie ein mod_security2 und nem suhosin) als da eine unübersichtlich lange htaccess zu erstellen, die als Sicherheitsfeature bei nem Apache auch eher nicht das sicherste Mittel ist.
 

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118
- Mit mod_security Adressen auf evtl. Botnetz und Script aktivitäten abgleichen (z.B. http://dnsbl.abuse.ch , funktioniert super)

Da wollte ich nochmal nachhaken: kann man das direkt bei der DS machen? Oder ich setze dann, wenn ich dies als komplette Liste mit bekannten botnetzen habe in die .htaccess:

order allow,deny
allow from all
deny from <IPs von bekannten Adressen auf http://dnsbl.abuse.ch>

Oder direkt in /etc/hosts.deny

Ich habe diese Funktionalität bei der Astaro Security Gateway gesehen und daher gehe ich davon aus, dass jedenfalls Stand heute dies noch Sinn macht.
 
Zuletzt bearbeitet:

Capu

Benutzer
Mitglied seit
30. Mrz 2011
Beiträge
253
Punkte für Reaktionen
0
Punkte
0
Servus...

Ich kann da jetzt nur aus Sicht meines Apache Webservers sprechen, der nicht auf einer DS läuft sondern auf einem Server in nem RZ.
Im Apache Modul mod_security2 habe ich einfach 2 weitere Sicherheitsregeln hinzugefügt:
Rich (BBCode):
SecRule REMOTE_ADDR "@rbl httpbl.abuse.ch" "chain,deny, log, id:350000,msg:'RBL: httpbl.abuse.ch',severity:'1'"
SecRule REMOTE_ADDR "!127.0.0.1"
Das mod_sec macht dann automatisch alles weitere, sprich blockt den Zugriff und schreibt einen Eintrag ins Log.
Welcher Webserver auf der DS läuft und ob dort dieses Modul vorhanden ist, kann ich so ad hoc nicht sagen, da ich meine DS nicht als Webserver nutze...

Nähere Info´s findest du bei http://dnsbl.abuse.ch. Die FAQ´s dort sind auch recht hilfreich.


Nachtrag:
Hab mich grad mal im Wiki schlau gemacht. :-D Ok, ja, es läuft schon mal eine Apache... ;-) Welche Module da aber direkt "ab Werk" drin sind kann ich dir leider nicht sagen. Sollte dann aber kein Problem sein das mod_security2 hinzuzufügen...

Nachtrag2:
Weiterführende Info´s zum Modul mod_security findest du hier: http://www.modsecurity.org/
 
Zuletzt bearbeitet:

raymond

Benutzer
Mitglied seit
10. Sep 2009
Beiträge
4.704
Punkte für Reaktionen
21
Punkte
118
Ich habe das wiki überarbeitet, da ich nun per TLD sperre bzw. nur Zugriff aus bestimmten TLDs erlaube.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat