nginx 안전 확보 10 가지 기술

2912 단어
Nginx 는 현재 가장 유행 하 는 웹 서버 중의 하나 입 니 다.그것 은 세계 7% 의 웹 트 래 픽 에 서 비 스 를 제공 하고 놀 라 운 속도 로 증가 하고 있다.그것 은 놀 라 운 서버 입 니 다. 나 는 그것 을 배치 하고 싶 습 니 다.다음은 흔히 볼 수 있 는 안전 함정 과 해결 방안 의 목록 입 니 다. Nginx 배치 가 안전 하도록 보조 할 수 있 습 니 다.1. 설정 파일 에서 "if...
Nginx 는 현재 가장 유행 하 는 웹 서버 중의 하나 이다.그것 은 세계 7% 의 웹 트 래 픽 에 서 비 스 를 제공 하고 놀 라 운 속도 로 증가 하고 있다.그것 은 놀 라 운 서버 입 니 다. 나 는 그것 을 배치 하고 싶 습 니 다.다음은 흔히 볼 수 있 는 안전 함정 과 해결 방안 의 목록 입 니 다. Nginx 배치 가 안전 하도록 보조 할 수 있 습 니 다.
1. 설정 파일 에서 'if' 를 조심 하 십시오. 재 작성 모듈 의 일부분 이 므 로 어디서 도 사용 해 서 는 안 됩 니 다."if" 성명 은 모듈 평가 명령 의 강제 성 을 재 작성 하 는 부분 입 니 다.다시 말 하면, Nginx 의 설정 은 일반적으로 성명 식 이다.일부 상황 에서 사용자 의 수요 로 인해 그들 은 재 작성 명령 이 아 닌 'if' 를 사용 하려 고 시도 하여 현재 우리 가 직면 하고 있 는 상황 을 초래 합 니 다.대부분의 경우 정상적으로 일 할 수 있 지만.. 위 에서 언급 한 것 을 보 세 요.
보기에 유일한 정확 한 해결 방안 은 다시 쓰 지 않 은 명령 에서 'if' 를 완전히 사용 하지 않 는 것 이다.이것 은 기 존의 많은 설정 을 변경 할 것 이기 때문에 아직 완성 되 지 않 았 습 니 다.IfIsEvil:http://wiki.nginx.org/IfIsEvil
2. 각각 ~. php $요청 을 PHP 에 전달 합 니 다. 우 리 는 지난주 에 이 유행 명령 의 잠재 적 인 보안 구멍 에 대한 소 개 를 발 표 했 습 니 다.파일 이름 이 hello. php. jpeg 라 하 더 라 도 ~. php $라 는 정규 파일 과 일치 합 니 다.지금 은 상술 한 문 제 를 해결 하 는 두 가지 좋 은 방법 이 있다.나 는 네가 임의의 코드 를 쉽게 실행 하지 않도록 하 는 혼합 방법 이 필요 하 다 고 생각한다.2.1 파일 을 찾 지 못 했 을 때 try 사용files 와 only (모든 동적 실행 상황 에서 주의해 야 함) 는 PHP 를 실행 하 는 FCGI 프로 세 스에 전달 합 니 다.2.2 php. ini 파일 에서 cgi. fix 확인pathinfo 는 0 (cgi. fix pathinfo = 0) 으로 설정 되 어 있 습 니 다.이렇게 하면 PHP 검사 파일 의 전체 이름 을 확보 합 니 다. (파일 끝 에. php 가 발견 되 지 않 으 면 무시 합 니 다.) 2.3 정규 표현 식 이 잘못된 파일 과 일치 하 는 문 제 를 복구 합 니 다.현재 정규 표현 식 은 모든 파일 에 '. php' 가 포함 되 어 있다 고 생각 합 니 다.사이트 뒤에 "if" 를 추가 하여 정확 한 파일 만 실행 할 수 있 도록 합 니 다./ location ~. php $와 location ~.. * /. *. php $를 모두 return 403 으로 설정 합 니 다.
3. autoindex 모듈 을 사용 하지 않 습 니 다. 이것 은 사용 하 는 Nginx 버 전에 서 변경 되 었 을 수 있 습 니 다. 없 으 면 설정 파일 의 location 블록 에 autoindex off 를 추가 하 십시오.성명 하면 됩 니 다.
4. 서버 에 있 는 ssi (서버 쪽 참조) 를 사용 하지 않 습 니 다. 이것 은 location 블록 에 ssi off 를 추가 할 수 있 습 니 다.
5. 서버 마 커 를 닫 습 니 다. 열 리 면 (기본 값) 모든 오류 페이지 에 서버 버 전과 정보 가 표 시 됩 니 다.서버tokens off;이 문 제 를 해결 하기 위해 Nginx 프로필 에 성명 을 추가 합 니 다.
6. 설정 파일 에 버퍼 오 버 공격 가능성 을 제한 하기 위해 사용자 정의 캐 시 를 설정 합 니 다.client_body_buffer_size 1K; client_header_buffer_size 1k; client_max_body_size 1k; large_client_header_buffers 2 1k;
7. timeout 을 낮 추어 DOS 공격 을 방지 합 니 다. 이 모든 성명 은 메 인 프로필 에 넣 을 수 있 습 니 다.client_body_timeout 10; client_header_timeout 10; keepalive_timeout 5 5; send_timeout 10;
8. DOS 공격 을 예방 하기 위해 사용자 접속 수 제한limit_zone slimits $binary_remote_addr 5m; limit_conn slimits 5;
9. HTTP 인증 을 사용 하지 않 으 려 면 기본적으로 crypt 를 사용 해 야 합 니 다. 해시 가 안전 하지 않 습 니 다.사용 하려 면 MD5 를 사용 하 세 요.
10. 최신 Nginx 와 의 보안 업데이트 유지
개인 적 으로 디 도스 공격 을 막 는 데 있어 서 위 에서 언급 한 7, 8 번 은 큰 도움 이 되 지 않 는 다 고 생각 합 니 다. 특히 8 번 은 사용자 체험 도 를 어 지 럽 히 는 것 입 니 다.

좋은 웹페이지 즐겨찾기