우수한 소프트웨어와 실용적인 튜토리얼
WordPress 웹사이트를 구축하기 전에 다음을 구성하세요. Nginx 보안 규칙
Nginx 보안 규칙 그것은 건설 중입니다워드프레스웹사이트를 구축하기 전에 먼저 설정을 해야 합니다. 현재 가장 인기 있는 웹사이트 구축 프로그램은 워드프레스입니다. 네트워크 시장 점유율이 30%가 넘기 때문에 워드프레스는 보안 위협의 표적이 되는 경우가 많습니다. Nginx 보안 규칙은 매우 중요합니다. 따라서 워드프레스 웹사이트 소유자라면 웹사이트 보안을 강화하기 위해 Nginx 보안 규칙을 설정하는 것이 좋습니다.
WordPress는 Apache 또는 Nginx에서 실행될 수 있습니다. 오늘은 WordPress 보안을 강화하기 위한 몇 가지 Nginx 규칙을 알려드리겠습니다.
XXX 접미사가 있는 파일 다운로드 금지
데이터베이스와 같은 민감한 파일이 패키징되어 다운로드되는 것을 방지하기 위해 웹사이트에서 다운로드가 금지된 파일 확장자를 설정하세요.
위치 ~ \.(zip|rar|sql|bak|gz|7z)$ { return 444; }
URL에 민감한 문자 점프
키워드가 포함된 URL 액세스 링크는 항상 웹사이트 홈페이지로 이동하거나 404 페이지를 가리킵니다.
#url에는 홈페이지로 바로 이동하는 테스트가 포함되어 있습니다. if ($request_uri ~* test=) { return 301 https://uzbox.com; } #url에 다음 키워드가 포함되어 있습니다. 홈페이지로 이동합니다. if ($request_uri ~* "(\.gz)|(")|(\.tar)|(admin)|(\.zip)|(\.sql)|(\.asp)|(\.rar)|(function)|($_GET)|(eval)|(\?php)|(config)|(\')|(\.bak)") { return 301 https://uzbox.com;
악성 크롤러 방지
스팸 스파이더 크롤러를 차단하는 nginx 설정입니다. 아래 차단 규칙에 스팸 크롤러 이름을 추가할 수 있습니다.
아래는 참조용 크롤러 이름입니다.
qihoobot|Censys|Baiduspider|Googlebot|Googlebot-모바일|Googlebot-이미지|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! 슬러프 차이나|유다오봇|소소스파이더|소고우 스파이더|소고우 웹 스파이더|MSNBot|ia_archiver|토마토 봇|피드데몬|지크스파이더|인디 라이브러리|알렉사 툴바|AskTbFXTV|아레프스봇|크롤대디|쿨패드웹킷|자바|피들리|유니버설피드파서|아파치벤치|마이크로소프트 URL 컨트롤|스위프트봇|ZmEu|oBot|jaunty|Python-urllib|라이트덱리포트 봇|YYSpider|디그엑트|이소우스파이더|스크래피|HttpClient|MJ12bot|헤리트릭스|이아소우스파이더|링크패드봇|이줌스
if ($http_user_agent ~* (SemrushBot|python|MJ12bot|AhrefsBot|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup)) { 404를 반환합니다.}
비브라우저가 웹사이트에 접근하는 것을 차단합니다
#브라우저가 아닌 접근 금지if ($http_user_agent ~ ^$) { return 404; }
Nginx 및 PHP 버전 숨기기
Nginx와 PHP 버전을 공개하지 않는 것이 가장 좋습니다. 특정 Nginx 또는 PHP 버전이 취약점을 노출하고 공격자가 서버에서 해당 취약점을 발견하면 매우 위험할 수 있습니다. 다음 규칙을 사용하여 Nginx 및 PHP 버전을 숨길 수 있습니다.
# nginx 버전을 숨깁니다. server_tokens 끄기; # PHP 버전을 숨깁니다 fastcgi_hide_header X-Powered-By; proxy_hide_header X-Powered-By;
보안 헤더
보안 헤더는 브라우저 동작을 지시하여 보안을 강화합니다. 예를 들어, X-Frame-Options는 웹사이트가 iframe에 삽입되는 것을 방지할 수 있습니다. Strict-Transport-Security는HTTPS를 사용하여 브라우저가 사이트를 로드하도록 합니다..
add_header X-프레임 옵션 SAMEORIGIN; add_header Strict-Transport-Security "max-age=31536000"; add_header X-콘텐츠 유형 옵션 nosniff; add_header
하위 디렉토리에 대한 액세스 차단
웹사이트가 /blog와 같은 하위 디렉토리에서 실행되는 경우 /blog 외의 하위 디렉토리에 대한 액세스를 제한해야 합니다.
위치 ~ ^/(?!(블로그)/?) { 모두 거부; 액세스 로그 끄기; 로그_찾을 수 없음 끄기; }
XMLRPC에 대한 액세스 제한
WordPress의 XMLRPC 엔드포인트(루트 디렉터리의 xmlrpc.php 파일)는 외부 애플리케이션이 WordPress 데이터와 상호 작용할 수 있도록 하는 데 사용됩니다. 예를 들어, 게시물 추가, 생성 또는 삭제를 허용할 수 있습니다. 하지만 XMLRPC는 공격자가 허가 없이 이러한 작업을 수행할 수 있는 일반적인 공격 경로이기도 합니다. 따라서 아래와 같이 신뢰할 수 있는 허가된 IP의 XMLRPC 요청을 허용하는 것이 가장 좋습니다.
위치 ~* /xmlrpc.php$ { 172.0.1.1 허용; 모두 거부; }
위의 내용을 추가한 후 브라우저에서 xmlrpc.php에 액세스하면 403 오류 응답 코드가 표시됩니다.
요청 유형 제한
대부분의 경우, 귀하의 웹사이트는 아마도 두 가지 유형의 요청만 수행할 것입니다.
- GET – 웹사이트에서 데이터 검색
- POST – 웹사이트에 데이터를 제출합니다.
따라서, 우리 웹사이트가 이 두 가지 유형의 요청만 실행하도록 허용하는 것도 보안을 강화하는 한 가지 방법입니다.
if ($요청_방법 !~ ^(GET|POST)$) { return 444; }
PHP 파일에 대한 직접 액세스 비활성화
누구에게도 알려지지 않은 채 해커는 PHP 파일을 귀하의 서버에 업로드한 다음 악성 파일에 액세스하여 특정 작업을 수행함으로써 귀하의 웹사이트에 백도어를 만들 수 있습니다.모든 PHP 파일에 대한 직접 액세스는 금지되어야 합니다.:
위치 ~* /(?:uploads|파일|wp-콘텐츠|wp-includes|akismet)/.*.php$ { 모두 거부; 액세스_로그 끄기; 로그_찾지_않음 끄기; }
특정 민감한 파일에 대한 액세스 비활성화
PHP 파일과 마찬가지로 .htaccess, .user.ini, .git처럼 점으로 시작하는 파일에는 민감한 정보가 포함되어 있을 수 있습니다. 보안 강화를 위해이 파일에 대한 직접 액세스를 비활성화합니다..
위치 ~ /\.(svn|git)/* { 모두 거부; 액세스 로그 끄기; log_not_found 끄기; } 위치 ~ /\.ht { 모두 거부; 액세스 로그 끄기; log_not_found 끄기; } 위치 ~ /\.user.ini { 모두 거부; 액세스 로그 끄기; log_not_found 끄기; }
스팸 댓글 줄이기
스팸 댓글은 귀하의 웹사이트에 피해를 주지는 않지만, 귀하의 데이터베이스에 스팸을 추가하고 광고 역할을 하게 됩니다.스팸 콘텐츠 줄이기Akismet과 같은 스팸 보호 플러그인과 함께 다음 규칙을 Nginx 구성에 추가할 수 있습니다.
$comment_flagged 0을 설정합니다. $comment_request_method 0을 설정합니다. $comment_request_uri 0을 설정합니다. $comment_referrer 1을 설정합니다. $request_method ~ "POST"인 경우{ $comment_request_method 1을 설정합니다. } $request_uri ~ "/wp-comments-post\.php$"인 경우{ $comment_request_method 1을 설정합니다. } $http_referer !~ "^https?://(([^/]+\.)?site\.com|jetpack\.wordpress\.com/jetpack-comment)(/|$)"인 경우{ $comment_referrer 0을 설정합니다. } $comment_flagged "${comment_request_method}${comment_request_uri}${comment_referrer}"를 설정합니다. $comment_flagged = "111"인 경우 { 403을 반환합니다. }
요청 제한
WordPress 로그인 페이지인 wp-login.php는 무차별 대입 공격의 일반적인 엔드포인트입니다.공격자는 사용자 이름과 비밀번호 조합을 대량으로 제출하여 로그인을 시도합니다. 비밀번호를 해독하는 데는 실패할 수 있지만, 서버 리소스를 많이 소모하여 웹사이트 접속을 불가능하게 만들 수 있습니다..
이를 위해 페이지가 처리할 수 있는 초당 요청 수를 제한하는 규칙을 적용할 수 있습니다. 여기서는초당 요청 수를 2개로 설정하세요, 허용된 개수를 초과하는 요청은 차단됩니다.
limit_req_zone $binary_remote_addr zone=WPRATELIMIT:10m rate=2r/s; location ~ \wp-login.php$ { limit_req zone=WPRATELIMIT; }
디렉토리 목록 비활성화
마지막으로, 공격자가 디렉토리에 무엇이 있는지 알 수 없도록 디렉토리 목록을 비활성화해야 합니다.
자동색인 끄기;
요약하다
웹사이트 보안은 이미SEO최적화웹사이트 보안에 있어 매우 중요한 부분입니다. 웹사이트가 해킹당하면 웹사이트가 열리지 않거나, 접속 속도가 느려지거나, 검은색 링크가 뜰 수 있습니다. 이러한 문제가 발생하면 검색 엔진에 의해 블랙리스트에 오를 수 있습니다. 따라서 가장 기본적인 웹사이트 보안 예방 지식을 습득하는 것이 매우 중요합니다.
최근에는 검색 횟수가 너무 많아졌습니다.