>운영 및 유지보수 >엔진스 >Nginx 로그 분석 및 HTTP/HTTPS 보안 감사 실습

Nginx 로그 분석 및 HTTP/HTTPS 보안 감사 실습

WBOY
WBOY원래의
2023-06-10 08:23:272550검색

인터넷의 지속적인 발전으로 인해 네트워크 보안 문제가 점점 더 주목받고 있습니다. IT 실무자로서 로그 분석과 보안 감사는 반드시 숙지해야 할 기술 중 하나입니다. 이 기사에서는 Nginx 로그 분석 도구를 사용하여 HTTP/HTTPS 보안 감사 관행을 수행하는 방법에 중점을 둘 것입니다.

1. Nginx 로그 분석

Nginx는 고성능 웹 서버로서 풍부한 로깅 기능을 제공합니다. Nginx 로그 파일은 /usr/local/nginx/logs/ 디렉터리에 있으며, access.log는 우리가 가장 자주 사용하는 액세스 로그입니다.

Nginx 액세스 로그의 형식은 매우 다양합니다.

$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"

그 중 $remote_addr은 클라이언트의 IP 주소를 나타내고, $remote_user는 사용자 이름을 나타내고, $time_local은 액세스 시간을 나타내고, $request는 요청을 나타냅니다. $status는 응답 상태를 나타내고, $body_bytes_sent는 보낸 바이트 수를 나타내고, $http_referer는 참조 소스를 나타내고, $http_user_agent는 클라이언트의 사용자 에이전트를 나타내고, $http_x_forwarded_for는 프록시 서버의 IP 주소를 나타냅니다.

Nginx 액세스 로그를 분석하면 사용자의 액세스 경로, 요청 유형, 클라이언트 유형, 반환 상태 코드 및 기타 정보를 이해할 수 있으며 이는 후속 보안 감사에 유리한 기반을 제공합니다.

2. HTTP/HTTPS 보안 감사 실습

  1. HTTP 요청 모니터링

네트워크에는 SQL 삽입, XSS 공격 등 수많은 악성 요청이 넘쳐납니다. 이러한 공격은 종종 HTTP를 사용하여 유해한 데이터를 전송합니다. . Nginx 액세스 로그를 분석함으로써 이러한 악성 요청을 적시에 발견하고 차단하고 예방할 수 있습니다.

Nginx를 통해 로그 형식과 로그 경로를 구성하여 HTTP 요청을 모니터링할 수 있습니다.

log_format monitor '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
access_log  /usr/local/nginx/logs/monitor.log monitor;

이 방법으로 로그를 monitor.log 파일에 출력하여 후속 분석을 용이하게 할 수 있습니다.

  1. HTTPS 요청 모니터링

HTTPS의 암호화된 전송 메커니즘은 악성 요청을 탐지하기 더 어렵게 만듭니다. 보다 정교한 로그 분석 방법을 통해 HTTPS 요청을 모니터링해야 합니다.

Nginx는 SSL 핸드셰이크 및 인증서 확인 프로세스에 대한 로그를 제공합니다. ssl_protocols 및 ssl_ciphers를 구성하여 이러한 로그를 활성화할 수 있습니다. 일반적인 구성 방법은 다음과 같습니다.

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;

# 开启SSL握手和证书验证日志
ssl_session_tickets off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /usr/local/nginx/conf/cert/ca.pem;
ssl_certificate /usr/local/nginx/conf/cert/server.pem;
ssl_certificate_key /usr/local/nginx/conf/cert/server.key;
ssl_session_log /usr/local/nginx/logs/ssl_session.log;

그 중 ssl_session_log는 SSL 핸드셰이크 및 인증서 확인 로그를 활성화하며 로그를 ssl_session.log 파일로 출력하여 후속 분석을 용이하게 할 수 있습니다.

  1. 액세스 소스 모니터링

네트워크 공격은 종종 HTTP Referer 또는 HTTP 사용자 에이전트를 사용하여 서버를 속이고 불법적인 권한을 얻습니다. 따라서 악의적인 접근을 방지하기 위해서는 접근 소스를 적시에 모니터링해야 합니다.

Nginx를 통해 access_log 로그 형식과 로그 경로를 구성하여 액세스 소스를 모니터링할 수 있습니다. 일반적인 구성 방법은 다음과 같습니다.

log_format referer '$remote_addr [$time_local] "$request" "$http_referer" "$http_user_agent"';
access_log /usr/local/nginx/logs/referer.log referer;

이 방법으로 Referer 및 User Agent를 Referer.log 파일에 출력할 수 있습니다. 후속 분석을 위해.

4. 요약

Nginx 로그 분석 및 HTTP/HTTPS 보안 감사 관행은 네트워크 보안 예방 기능을 향상시키고 보안 취약성과 악의적인 요청을 적시에 발견하고 처리하는 데 도움이 됩니다. 본 글에서 소개한 구성 방법을 통해 우리는 HTTP, HTTPS 요청을 쉽게 모니터링하고, 접근 소스를 분석할 수 있다. 모두가 실제 업무에서 이러한 도구를 잘 활용하고 안전 수준을 향상시킬 수 있기를 바랍니다.

위 내용은 Nginx 로그 분석 및 HTTP/HTTPS 보안 감사 실습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.