如何為Nginx加固提高Web應用安全性?

一、限制訪問Nginx的方式

1、使用密鑰登錄,禁用密碼登錄

# 打開sshd_config文件
vim /etc/ssh/sshd_config

#找到下面這2行
#PasswordAuthentication yes
#PermitEmptyPasswords no

#修改為
PasswordAuthentication no
PermitEmptyPasswords no

# 重啟ssh服務
service sshd restart

2、限制Nginx伺服器的訪問來源

# 打開nginx.conf配置文件
vim /etc/nginx/nginx.conf

# 在http模塊下加入下面語句,限定訪問來源
http {
    # ..
    allow 127.0.0.1;
    allow 192.168.0.0/16;
    deny all;
    # ..
}

# 重載Nginx配置
nginx -s reload

3、配置SSL/TLS協議,以加密和保護HTTP通信

# 安裝SSL/TLS模塊
yum install openssl nginx-mod-http-openssl

# 啟用SSL/TLS,允許HTTPS連接
server {
  listen       443 ssl;
  server_name  example.com;
  ssl          on;
  ssl_certificate      /path/to/cert.crt;
  ssl_certificate_key  /path/to/cert.key;
  # ...
}

# 重載Nginx配置
nginx -s reload

二、使用Nginx內置模塊加強Web應用防禦機制

1、使用HttpLimitReqModule,用於限制請求速率

# 配置rate=5r/s,在5秒內允許最多發起5個請求
http {
    #..
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/s;
    server {
        #..
        limit_req zone=mylimit burst=10 nodelay;
    }
}

2、使用HttpLimitConnModule,用於限制客戶端的並發連接數

# 配置客戶端可同時保持的連接數
events {
    worker_connections  1024;
}

# 給特定的IP地址配置限制連接數的功能
http {
    #..
    limit_conn_zone $binary_remote_addr zone=addr:10m; 
    server {
        #..
        limit_conn addr 2;
    }
}

3、使用HttpAccessModule,用於限制訪問IP、URL等

# 在http或server塊中使用deny和allow指令
http {
    #..
    deny 192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.0.0.0/8;
    deny all;
}

三、Nginx安全性的其他建議

1、定期更新安全補丁,以確保Nginx可以抵禦新的漏洞攻擊

# 執行命令更新系統軟體包
yum update

2、關閉Nginx不需要的模塊,以減少攻擊面

# 打開nginx.conf
vim /etc/nginx/nginx.conf

# 取消注釋下面這條,關閉不需要的模塊
# include /etc/nginx/modules/*.conf;

# 重載Nginx配置
nginx -s reload

3、啟用防火牆,以防止未授權的訪問

# 安裝firewalld,並啟用服務
yum install firewalld
systemctl start firewalld
systemctl enable firewalld

# 禁止所有的入站網路流量,只允許指定的埠和來源IP,一路按照命令行提示操作
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-source=192.168.1.0/24
firewall-cmd --reload

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/271352.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-16 14:54
下一篇 2024-12-16 14:54

相關推薦

  • Python Web開發第三方庫

    本文將介紹Python Web開發中的第三方庫,包括但不限於Flask、Django、Bottle等,並討論它們的優缺點和應用場景。 一、Flask Flask是一款輕量級的Web…

    編程 2025-04-29
  • Web程序和桌面程序的區別

    Web程序和桌面程序都是進行軟體開發的方式,但是它們之間存在很大的區別。本文將從多角度進行闡述。 一、運行方式 Web程序運行於互聯網上,用戶可以通過使用瀏覽器來訪問它。而桌面程序…

    編程 2025-04-29
  • Python操作Web頁面

    本文將從多個方面詳細介紹Python操作Web頁面的技巧、方法和注意事項。 一、安裝必要的庫 在Python中操作Web頁面,需要用到一些第三方庫。 pip install req…

    編程 2025-04-28
  • 如何使用WebAuth保護Web應用

    WebAuth是用於Web應用程序的一種身份驗證技術,可以提高應用程序的安全性,防止未經授權的用戶訪問應用程序。本文將介紹如何使用WebAuth來保護您的Web應用程序。 一、什麼…

    編程 2025-04-28
  • Python編寫Web程序指南

    本文將從多個方面詳細闡述使用Python編寫Web程序,並提供具有可行性的解決方法。 一、Web框架的選擇 Web框架對Web程序的開發效率和可維護性有著重要的影響,Python中…

    編程 2025-04-28
  • 有哪些Python軟體可以用來構建Web應用

    Python語言是一種膠水語言,可以和多種語言以及系統進行交互,廣泛應用於多個領域。在Web應用開發領域,Python是一個功能強大的語言,在Python社區中有許多優秀的Web應…

    編程 2025-04-27
  • 用Python進行Web開發

    本文將介紹如何使用Python進行Web開發。主要涵蓋以下幾個方面: 一、Flask框架 Flask是一個輕量級的Web應用框架,它使用Python語言編寫。Flask框架的設計理…

    編程 2025-04-27
  • Java如何從Nginx下載文件

    本文將從以下幾個方面詳細介紹如何使用Java從Nginx下載文件。 一、準備工作 在Java中下載文件需要使用到Apache HttpClient庫,這個庫是一個基於Java的HT…

    編程 2025-04-27
  • Python web開發全攻略

    Python作為一門高性能、易學易用的編程語言,被廣泛應用於web開發。我們將從多個方面來探究Python在web開發中的應用場景和實現方法。 一、Django框架 Django是…

    編程 2025-04-27
  • 如何提高Web開發效率

    Web開發的效率很大程度上影響著團隊和開發者的工作效率和項目質量。本文將介紹一些提高Web開發效率的方法和技巧,希望對開發者們有所幫助。 一、自動化構建 自動化構建是現代Web開發…

    編程 2025-04-27

發表回復

登錄後才能評論