Nginx는 경량, 높은 동시성, 유연한 구성 등의 특성을 지닌 고성능 웹 서버이자 역방향 프록시로, 프로덕션 환경에서 널리 사용됩니다. 그러나 구축 과정이 상대적으로 간단하기 때문에 보안 문제가 여전히 남아 있으므로 Nginx에 대한 액세스 제한 및 보안 설정이 필요합니다.
1. 액세스 제한
Nginx는 허용 및 거부 지시문을 구성하여 IP 주소 액세스를 제한할 수 있습니다. 예를 들어 특정 IP 주소만 Nginx에 액세스하도록 허용하려면 nginx.conf 파일에 다음 코드를 추가하면 됩니다.
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; }
위 코드 조각은 모든 요청을 거부한 다음 IP 주소 192.168.1.100, 10.0을 허용한다는 의미입니다. .0.0/8 순서대로, 172.16.0.0/12, 192.168.0.0/16 요청. 구성 파일의 http 지시어를 통해 전역 허용 및 거부 규칙을 설정할 수도 있습니다.
User-Agent는 브라우저와 같은 HTTP 클라이언트가 보내는 식별 문자열로, 방문자 자신인지 아니면 자동화된 프로그램인지 확인하는 데 사용할 수 있습니다. Nginx는 if 지시어와 $http_user_agent 변수를 구성하여 User-Agent를 제한할 수 있습니다. 예:
if ($http_user_agent ~* (wget|curl)) { return 403; }
이 코드의 의미는 User-Agent에 wget 또는 컬 문자열이 포함되어 있으면 403 오류 코드가 반환된다는 것입니다. .
Referer는 HTTP 요청 헤더의 필드로, 현재 요청의 소스 주소를 나타냅니다. Nginx는 if 지시어와 $http_referer 변수를 구성하여 리퍼러를 제한할 수 있습니다. 예:
if ($http_referer ~* (baidu.com|google.com)) { return 403; }
이 코드의 의미는 리퍼러에 baidu.com 또는 google.com 문자열이 포함되어 있으면 403 오류 코드를 반환한다는 것입니다. .
2. 보안 설정
HTTPS는 데이터 전송 중에 SSL/TLS 암호화 알고리즘을 사용하므로 HTTP 프로토콜에 비해 웹 애플리케이션의 보안을 더 잘 보호할 수 있습니다. Nginx 구성 파일에 다음 코드를 추가하여 HTTPS를 활성화할 수 있습니다.
server { listen 443 ssl; ssl_certificate /path/to/cert.crt; ssl_certificate_key /path/to/cert.key; ... }
여기서 ssl_certificate
및 ssl_certificate_key
는 SSL 인증서와 개인 키를 사용하여 암호화 기능을 구현합니다. HTTPS 프로토콜. ssl_certificate
和ssl_certificate_key
会使用SSL证书和私钥来实现HTTPS协议的加密功能。
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"; } }
上述代码的意思是将网站的根目录指向/path/to/root,关闭autoindex功能,限制了允许访问的文件类型,同时设置缓存策略。
为了及时发现攻击行为,建议开启Nginx的日志记录功能。可以在nginx.conf配置文件中添加如下代码来记录访问日志:
http { access_log /var/log/nginx/access.log; ... }
其中,access_log
파일 디렉터리에 대한 액세스 제한
Nginx는 기본적으로/etc/nginx/html
아래의 모든 파일과 하위 디렉터리를 웹사이트 루트 디렉터리에 노출하므로 파일 디렉터리에 대한 액세스를 제한해야 합니다. nginx.conf 구성 파일에 다음 코드를 추가하여 디렉토리 액세스를 제한할 수 있습니다: 🎜rrreee🎜위 코드는 웹사이트의 루트 디렉토리를 /path/to/root로 지정하고, 자동 색인 기능을 끄고, 액세스가 허용되는 파일 형식도 설정합니다. 🎜🎜🎜보안 로그🎜🎜🎜적시에 공격을 탐지하려면 Nginx의 로깅 기능을 활성화하는 것이 좋습니다. nginx.conf 구성 파일에 다음 코드를 추가하여 액세스 로그를 기록할 수 있습니다. 🎜rrreee🎜 그 중 access_log
는 Nginx 액세스 로그의 저장 경로입니다. 로그는 로컬 파일에 저장되거나 ELK와 같은 로그 분석 도구를 사용하여 분석될 수 있습니다. 🎜🎜요약🎜🎜Nginx 액세스 제한 및 보안 설정은 웹 애플리케이션 보안에 중요합니다. IP 제한, 사용자 에이전트 제한, 참조자 제한 등을 통해 액세스를 제한할 수 있습니다. 또한 HTTPS를 활성화하고 파일에 대한 액세스를 제한할 수도 있습니다. , 보안 로그 등을 사용하여 웹 애플리케이션의 보안을 향상시킵니다. 그러나 이러한 조치는 웹 애플리케이션의 보안을 향상시킬 수 있을 뿐 보안을 완전히 보장할 수는 없습니다. 따라서 웹 애플리케이션의 보안을 보장하려면 소프트웨어 버전을 정기적으로 업데이트하고 적시에 취약점을 패치하는 등의 조치가 필요합니다. 🎜위 내용은 Nginx 액세스 제한 및 보안 설정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!