Nginx auf Ubuntu Server 14.04 - In 5min installieren und härten
Posted by Guenny onDie schnelle Apache Server Alternative Nginx ist auf dem Vormarsch und hat jüngst den guten alten Apache Webserver als Referenzsystem bei den Top 1000 Webseiten weltweit überholt.
Mit ein Grund sich mit diesem System etwas näher auseinanderzusetzen.
Zunächst sollte das System jedoch installiert und im Optimalfall gehärtet werden, um von Anfang an einen sicheren und schnellen Webserver zu haben.
Nginx auf Ubuntu Server 14.04 installieren
Die Installation geht recht schnell von statten, um die aktuelle stabile Version zu erhalten muss zunächst das richtig Repository hinzugefügt werden
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx
Da der Server nach der Installation automatisch startet, könnt ihr sofort danach unter http://localhost die Standardwebseite des Serversystems aufrufen
Nginx SSL aktivieren und härten
Damit der Server unter https://localhost aufgerufen werden kann, muss zunächst ein Zertifikat erstellt werden, um es danach in Nginx einzubinden. In diesem Fall wird das Zertifikat selbst signiert.
cd /etc/nginx/
sudo mkdir ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/srv.key -out /etc/nginx/ssl/srv.crt
Nun kann mit der Konfiguration begonnen werden, diese ist unter /etc/nginx/sites-available/default zu finden.
Innerhalb der Konfig-Datei einfach nach unten scrollen und die Kommentarzeichen im HTTPS Bereich entfernen.
sudo nano /etc/nginx/sites-available/default
server {
listen 443;
server_name localhost;
root html;
index index.html index.htm;
ssl on;
ssl_certificate /etc/nginx/ssl/srv.crt;
ssl_certificate_key /etc/nginx/ssl/srv.key;
ssl_session_timeout 5m;
ssl_ciphers 'ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4';
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
#ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
ssl_session_cache builtin:1000 shared:SSL:10m;0m;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"
add_header X-Frame-Options DENY;
location / {
try_files $uri $uri/ =404;
}
}
Wie oben zu sehen ist, habe ich für einen sicheren Serverbetrieb, die Bereiche ssl_protocols und ssl_ciphers angepasst.
Zusätzlich wurde HSTS mit dem Befehl add_header Strict-Transport-.... aktiviert.
Zum Schutz for Clickjacking ist die Variable add_header X-Frame-Options DENY gesetzt worden.
Auch wurde der zuvor erzeugte SSL Schlüssel mit dem richtigen Pfad eingebunden.
Abschließend wurde noch die Variable ssl_session_cache gesetzt.
Wer den Webserver weiter absichern möchte, der kann zusätzlich Variablen wie ssl_stapling on und ssl_stapling_verify on setzen, um OCSP zu aktivieren.
Nginx Konfiguration prüfen und neustarten
Unabhängig sollte vor einem Neustart die Installation überprüft werden. Wurde alles korrekt konfiguriert, ist die Standardseite unter https://localhost erreichbar.
sudo service nginx configtest
sudo service nginx restart
Trackbacks
Trackback specific URI for this entryThis link is not meant to be clicked. It contains the trackback URI for this entry. You can use this URI to send ping- & trackbacks from your own blog to this entry. To copy the link, right click and select "Copy Shortcut" in Internet Explorer or "Copy Link Location" in Mozilla.
No Trackbacks
Comments
Display comments as Linear | ThreadedNo comments