Nginx-Zugriffsbeschränkungen und Sicherheitseinstellungen

WBOY
Freigeben: 2023-06-10 18:33:11
Original
4121 Leute haben es durchsucht

Nginx ist ein Hochleistungs-Webserver und Reverse-Proxy mit den Merkmalen Leichtgewichtigkeit, hohe Parallelität, flexible Konfiguration usw. und wird häufig in Produktionsumgebungen verwendet. Da der Erstellungsprozess jedoch relativ einfach ist, bestehen immer noch einige Sicherheitsprobleme. Daher müssen für Nginx Zugriffsbeschränkungen und Sicherheitseinstellungen festgelegt werden.

1. Zugriffsbeschränkungen

  1. IP-Einschränkungen

Nginx kann den Zugriff auf IP-Adressen einschränken, indem es die Anweisungen „Zulassen“ und „Verweigern“ konfiguriert. Um beispielsweise nur bestimmten IP-Adressen den Zugriff auf Nginx zu erlauben, können Sie der Datei nginx.conf den folgenden Code hinzufügen:

location / {
    deny all;
    allow 192.168.1.100;
    allow 10.0.0.0/8;
    allow 172.16.0.0/12;
    allow 192.168.0.0/16;
}
Nach dem Login kopieren

Der obige Codeausschnitt bedeutet, alle Anfragen abzulehnen und dann die IP-Adressen 192.168.1.100, 10.0 zuzulassen .0.0/8 nacheinander, 172.16.0.0/12, 192.168.0.0/16 Anfragen. Sie können auch globale Zulassungs- und Verweigerungsregeln über die http-Direktive in der Konfigurationsdatei festlegen.

  1. User-Agent-Einschränkungen

User-Agent ist eine von einem HTTP-Client wie einem Browser gesendete Identifikationszeichenfolge, mit der festgestellt werden kann, ob es sich um den Besucher selbst oder ein automatisiertes Programm handelt. Nginx kann den User-Agent einschränken, indem es die if-Direktive und die Variable $http_user_agent konfiguriert, zum Beispiel:

if ($http_user_agent ~* (wget|curl))
{
    return 403;
}
Nach dem Login kopieren

Die Bedeutung dieses Codes ist, dass ein 403-Fehlercode zurückgegeben wird, wenn der User-Agent eine Wget- oder Curl-Zeichenfolge enthält .

  1. Referer-Einschränkung

Referer ist ein Feld im HTTP-Anfrage-Header, das die Quelladresse der aktuellen Anfrage angibt. Nginx kann den Referrer einschränken, indem es die if-Direktive und die Variable $http_referer konfiguriert, zum Beispiel:

if ($http_referer ~* (baidu.com|google.com))
{
    return 403;
}
Nach dem Login kopieren

Die Bedeutung dieses Codes ist, dass, wenn der Referer die Zeichenfolge baidu.com oder google.com enthält, ein 403-Fehlercode zurückgegeben wird .

2. Sicherheitseinstellungen

  1. HTTPS-Schutz

HTTPS kann die Sicherheit von Webanwendungen im Vergleich zum HTTP-Protokoll besser schützen, da bei der Datenübertragung der SSL/TLS-Verschlüsselungsalgorithmus verwendet wird. HTTPS kann aktiviert werden, indem der Nginx-Konfigurationsdatei der folgende Code hinzugefügt wird:

server {
    listen 443 ssl;
    ssl_certificate /path/to/cert.crt;
    ssl_certificate_key /path/to/cert.key;
    ...
}
Nach dem Login kopieren

wobei ssl_certificate und ssl_certificate_key das SSL-Zertifikat und den privaten Schlüssel verwenden, um die Verschlüsselungsfunktion von zu implementieren das HTTPS-Protokoll. ssl_certificatessl_certificate_key会使用SSL证书和私钥来实现HTTPS协议的加密功能。

  1. 限制访问文件目录

Nginx默认情况下会将/etc/nginx/html下的所有文件和子目录暴露在网站根目录下,因此需要限制访问文件目录。可以在nginx.conf配置文件中添加如下代码来限制目录的访问:

location / {
    root /path/to/root;
    index index.html;
    autoindex off;
    location ~* .(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 1d;
        add_header Cache-Control "public";
    }
}
Nach dem Login kopieren

上述代码的意思是将网站的根目录指向/path/to/root,关闭autoindex功能,限制了允许访问的文件类型,同时设置缓存策略。

  1. 安全日志

为了及时发现攻击行为,建议开启Nginx的日志记录功能。可以在nginx.conf配置文件中添加如下代码来记录访问日志:

http {
    access_log /var/log/nginx/access.log;
    ...
}
Nach dem Login kopieren

其中,access_log

Zugriff auf Dateiverzeichnisse einschränken

Nginx macht alle Dateien und Unterverzeichnisse unter /etc/nginx/html standardmäßig im Stammverzeichnis der Website verfügbar, daher muss der Zugriff auf Dateiverzeichnisse eingeschränkt werden. Sie können der Konfigurationsdatei nginx.conf den folgenden Code hinzufügen, um den Verzeichniszugriff einzuschränken: 🎜rrreee🎜Der obige Code bedeutet, das Stammverzeichnis der Website auf /path/to/root zu verweisen, die Autoindex-Funktion zu deaktivieren und die zu begrenzen Legen Sie außerdem die Dateitypen fest, auf die zugegriffen werden darf. 🎜🎜🎜Sicherheitsprotokoll🎜🎜🎜Um Angriffe rechtzeitig zu erkennen, empfiehlt es sich, die Protokollierungsfunktion von Nginx zu aktivieren. Sie können der Konfigurationsdatei nginx.conf den folgenden Code hinzufügen, um Zugriffsprotokolle aufzuzeichnen: 🎜rrreee🎜 Unter anderem ist access_log der Speicherpfad der Nginx-Zugriffsprotokolle. Protokolle können in lokalen Dateien gespeichert oder mit Protokollanalysetools wie ELK analysiert werden. 🎜🎜Zusammenfassung🎜🎜Nginx-Zugriffsbeschränkungen und Sicherheitseinstellungen sind für die Sicherheit von Webanwendungen von entscheidender Bedeutung. Der Zugriff kann durch IP-Einschränkungen, Benutzer-Agent-Einschränkungen, Referrer-Einschränkungen usw. eingeschränkt werden. Sie können auch HTTPS aktivieren und den Zugriff auf Dateien einschränken , Sicherheitsprotokolle usw., um die Sicherheit von Webanwendungen zu verbessern. Es ist jedoch zu beachten, dass diese Maßnahmen nur die Sicherheit von Webanwendungen verbessern, deren Sicherheit jedoch nicht vollständig garantieren können. Daher sind regelmäßige Updates von Softwareversionen und das rechtzeitige Patchen von Schwachstellen und andere Maßnahmen erforderlich, um die Sicherheit von Webanwendungen zu gewährleisten. 🎜

Das obige ist der detaillierte Inhalt vonNginx-Zugriffsbeschränkungen und Sicherheitseinstellungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage