ispCP - Board - Support
ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega International Area (/forum-22.html)
+--- Forum: German Corner (/forum-26.html)
+---- Forum: Plauderecke (/forum-49.html)
+---- Thread: ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] (/thread-14822.html)

Pages: 1 2


ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - Blister - 07-21-2011 08:13 PM

Hallo Zusammen,

ihr habt mir oft genug bei Problemen geholfen und nun bekommt ihr etwas von mir zurück Smile
In diesem Thema erkläre ich, wie man mit dem aktuellen ispCP 1.0.7 den Webserver NGINX als Reverse-Proxy einsetzt.



Ich habe dieses System mit Debian Lenny und Squeeze, jeweils mit der 32- und 64-bit Architektur, getestet.



#1 - ispCP wird auf localhost umgestellt.

Code:
mysql -uroot -p
Code:
use ispcp;
UPDATE server_ips SET ip_number = "127.0.0.1" WHERE ip_id = "1";
UPDATE domain SET domain_status = "change" WHERE domain_ip_id = "1";
quit
Code:
/var/www/ispcp/engine/ispcp-rqst-mngr
(Danke an diems.)



#2 - Apache2 wird auf localhost umgestellt.

Die Ports 80 und 443 müssen in der folgenden Datei auf 127.0.0.1:80 und 127.0.0.1:443 geändert werden.
Code:
/etc/apache2/ports.conf

Die IP-Adresse(n) deines Servers muss in den folgenden Dateien auf 127.0.0.1 geändert werden. (ggf. mit Portangabe)
Code:
/etc/apache2/sites-available/00_master.conf
/etc/ispcp/ispcp.conf

Nachdem die IPs und Ports vom Apache auf localhost umgestellt wurden, muss der Häuptling noch neugestartet werden.
Code:
/etc/init.d/apache2 restart



#3 - Benötigte Pakete installieren.

Code:
apt-get install aptitude
aptitude install build-essential libapache2-mod-rpaf libgeoip-dev libssl-dev libssl-ocaml-dev libcurl3-openssl-dev openssl openssl-dev libpcre3 libpcre3-dev



#4 - NGINX vorbereiten.

Code:
mkdir /root/nginx_src/
cd /root/nginx_src
wget http://nginx.org/download/nginx-1.0.4.tar.gz
tar xfvz nginx-1.0.4.tar.gz
cd nginx-1.0.4



#5 - NGINX installieren.

Code:
wget http://www.gta-servers.de/nginx/compile.sh
chmod 700 compile.sh
./compile.sh
Code:
make
make install
ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
nginx -v



#6 - NGINX konfigurieren.

Code:
cd /etc/nginx
rm nginx.conf
wget http://www.gta-servers.de/nginx/nginx-config.tar
tar xfv nginx-config.tar

GeoIP für die Lokalisierung der Besucher herunterladen.
Code:
wget http://www.gta-servers.de/nginx/GeoIP.dat

In der Proxy-Konfiguration muss die IP des Servers eingetragen werden.
Siehe Zeile 36.
Code:
cd /etc/nginx/sites-enabled
nano reverseproxy.conf

Startdatei für NGINX herunterladen.
Code:
cd /etc/init.d
wget gta-servers.de/nginx/nginx
chmod 700 nginx
useradd nginx



#7 - NGINX starten.

Sofern alles richtig konfiguriert wurde, sollte euer NGINX problemlos starten können.
Code:
/etc/init.d/nginx configtest
/etc/init.d/nginx start



#8 - Länder aussperren.

Damit man ganze Länder von seinem Webserver verbannen kann, muss folgende Datei angepasst werden:
Code:
/etc/nginx/sites-enabled/geoip.inc

Wie ihr mit dieser Datei zu arbeiten habt, sollte sich von selbst erklären.

Schaut euch einfach mal alle Dateien im Ordner "/etc/nginx/sites-enabled/" an.



Über Feedback und Reputationen freue ich mich natürlich sehr Smile


Gruß
Julian


RE: ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - electric540 - 07-29-2011 06:27 AM

Das hört sich ja ganz gut an.Nur hätte ich gerne mal gewusst was passiert mit den Webseiten welche schon angelegt worden sind gehen die verloren so das ich alle neu anlegen muss?Und ich denke mal das die verraussetzung ist das ispcp schon installiert und laufen muss oder sehen ich das verkehrt?


RE: ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - Blister - 07-29-2011 07:04 AM

Ich habe damals mein produktives ispCP mit NGINX nachgerüstet, also bezieht sich dieses "Tutorial" auch auf ein bereits bestehendes System.

Ebenso kannst du aber auch ein neue Installation dafür hernehmen.
Du solltest ispCP ganz regulär installieren und dann meine Anleitung befolgen.
Nach meiner Anleitung habe ich übrigens schon um die 16 Systeme nachgerüstet und es verlief immer ohne Probleme Smile

Übrigens kannst du NGINX wunderbar in Fail2Ban integrieren, bei Bedarf kann ich die Regeln etc. dafür gerne bereitstellen.


RE: ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - electric540 - 07-29-2011 07:23 AM

Ahhh super das werde ich morgen oder am Samstag umsetzen das ganze.Die Regeln etc für Fail2ban kannst du gerne hier reinsetzen weil wie ich finde ist eine ganze nette erweiterung des ganzen.


RE: ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - Blister - 07-29-2011 07:41 AM

/etc/fail2ban/jail.conf (bereits vorhanden)
Code:
[SynDDOS]
enabled  = true
filter   = AntiSynDDOS
action   = iptables-complete[name=AntiSynDDOS]
           mail-whois[name=Mein-Servername-AntiSynDDOS, dest=meine-email@adresse.de]
logpath  = /var/log/nginx/reverse.log
maxretry = 50
bantime  = 3600

[httpDDOS]
enabled  = true
filter   = AntihttpDDOS
action   = iptables-complete[name=AntihttpDDOS]
           mail-whois[name=Mein-Servername-AntihttpDDOS, dest=meine-email@adresse.de]
logpath  = /var/log/nginx/reverse.log
maxretry = 50
bantime  = 3600


/etc/fail2ban/filter.d/AntihttpDDOS.conf (muss erstellt werden)
Code:
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*HTTP/1\.." 444 0.*
ignoreregex =


/etc/fail2ban/filter.d/AntiSynDDOS.conf (muss erstellt werden)
Code:
[Definition]
failregex = <HOST> -.*400 0.*
ignoreregex =


/etc/fail2ban/action.d/iptables-complete.conf (muss erstellt werden)
Code:
[Definition]

# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = iptables -N fail2ban-<name>
              iptables -A fail2ban-<name> -j RETURN
              iptables -I INPUT -j fail2ban-<name>

# Option:  actionend
# Notes.:  command executed once at the end of Fail2Ban
# Values:  CMD
#
actionstop = iptables -D INPUT -j fail2ban-<name>
             iptables -F fail2ban-<name>
             iptables -X fail2ban-<name>

# Option:  actioncheck
# Notes.:  command executed once before each actionban command
# Values:  CMD
#
actioncheck = iptables -n -L INPUT | grep -q fail2ban-<name>

# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          <time>  unix timestamp of the ban time
# Values:  CMD
#
actionban = iptables -I fail2ban-<name> 1 -s <ip> -j DROP

# Option:  actionunban
# Notes.:  command executed when unbanning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    <ip>  IP address
#          <failures>  number of failures
#          <time>  unix timestamp of the ban time
# Values:  CMD
#
actionunban = iptables -D fail2ban-<name> -s <ip> -j DROP

[Init]

# Defaut name of the chain
#
name = default

# Option:  port
# Notes.:  specifies port to monitor
# Values:  [ NUM | STRING ]  Default:
#
port = ssh

# Option:  protocol
# Notes.:  internally used by config reader for interpolations.
# Values:  [ tcp | udp | icmp | all ] Default: tcp
#
protocol = all


Die Angaben unter "bantime" werden in Sekunden angegeben.
Danach startest du fail2ban neu und du bist fertig.


Gruß
Julian


RE: ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - electric540 - 08-02-2011 01:45 AM

Wollte es heute mal endlich umsetzen aber beim mysql -uroot -p Befehl scheitert das ganze weil ich das Passwort nicht weiss.Kann mir da weiter helfen?


Tante Edit sagt:Passwort gefunden,es war das welches der Hoster bei der installation verwendet hatte.
Da taucht gerade eine andere Frage auf,wenn ich zb alle Länder ausser Deutschland,Österreich und Schweiz aussperre gilt das dann nur für ispCP oder Serverweit?


RE: ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - electric540 - 08-06-2011 08:07 PM

@Blister ich möchte alle Länder ausser Deutschland,Österreich und die Schweiz aussperren wie muss die Datei geoip.inc dann aussehen bzw deren Inhalt?Ansonsten eine super Sache,habe es auf anhieb zum laufen gebracht.


RE: ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - electric540 - 08-06-2011 09:50 PM

Damit der Webserver Nginx bei jedem Rechnerstart mitgestartet wird, fügen das obige Skript dem Default-Init-Level hinzu:

Code:
# update-rc.d nginx defaults



RE: ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - Blister - 08-16-2011 05:24 AM

Wenn ich mich nicht irre, müsstest es so aussehen:
Code:
if (!$geoip_country_code = "DE") || (!$geoip_country_code = "AT") || (!$geoip_country_code = "CH")
{
# Was passieren soll ...
}



(08-02-2011 01:45 AM)electric540 Wrote:  Da taucht gerade eine andere Frage auf,wenn ich zb alle Länder ausser Deutschland,Österreich und Schweiz aussperre gilt das dann nur für ispCP oder Serverweit?

Diese Anweisungen gelten für NGINX.
Verbindungen, die nicht über NGINX laufen, sind davon nicht betroffen.


RE: ispCP mit NGINX als Reverse-Proxy einsetzen [Schutz vor SynCookies und HttpDDoS] - electric540 - 08-17-2011 12:14 AM

Hallo Blister,

so ganz habe ich es mit der geoip.inc noch nicht verstandden.Könntest du mir eine zusammen zimmern so das nur die 3 genannten Länder zutritt zum Server haben?Wäre echt klasse von dir.