귀하는 당사 서버의 이 특정 디렉터리에 액세스할 수 있는 권한이 없습니다.” 또는 “금지됨: 귀하는 이 특정 리소스에 액세스하는 데 필요한 권한이 없습니다.”와 같이 동일한 개념을 전달하는 다른 변형이 있을 수 있습니다.
물론 Apache 또는 NGINX 서버 설정 파일의 구성이 잘못되었거나 실제로 잘못된 .htaccess 파일로 인해 이와 유사한 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해 이러한 어려움을 해결할 수 있는 일련의 간결한 절차를 준비했습니다.
Apache 및 NGINX 403 금지 오류의 원인은 무엇인가요?
Apache와 NGINX 플랫폼 모두에서 403 오류가 발생하는 원인은 여러 가지가 있으며, 가장 반복적으로 발생하는 원인은 공개 액세스에 대한 권한이 충분하지 않기 때문입니다. 또한 많은 워드프레스 웹사이트는 .htaccess 파일 내의 부적절한 구성으로 인해 이 문제가 발생합니다.
또한 Apache 버전 2.4 릴리스부터 웹사이트에 대한 공개 액세스를 제한하고 “403 금지” 오류를 유발할 수 있는 지시어의 기능과 관련하여 변경 사항이 발생했습니다.
사용자로서 “403 Forbidden †오류 수정 방법
특정 웹사이트 이용 중 NGINX 또는 Apache 웹 서버에서 “403 Forbidden” 오류가 표시되는 경우 브라우저의 캐시된 데이터를 삭제하고 저장된 쿠키를 제거하는 것이 기본 조치로 고려할 수 있습니다. 또한 가상 사설망(VPN)을 사용 중인 경우 일시적으로 비활성화하면 이 특정 오류 메시지의 발생을 완화할 수 있습니다.
반대로 웹사이트 관리자의 관점에서 볼 때, 많은 Apache 및 NGINX 403 금지 오류는 부적절하게 구성된 파일 권한과 결함이 있는 구성 파일로 인해 발생한다는 점을 인식하는 것이 필수적입니다.
웹사이트의 기능을 복원하려면 제공된 솔루션에 설명된 단계를 순차적으로 따르세요:
403 오류를 피하기 위한 파일 권한 수정
적절한 권한이 부족하여 널리 퍼진 403 오류를 경험하는 사람들이 많습니다. 웹사이트 관리자가 외부 기관에 대한 열람 권한을 설정하는 것을 간과하면 사용자가 필요한 개체에 액세스할 수 없게 됩니다. 이러한 감독 소홀이 이 문제의 근본적인 원인이 되는 경우가 많습니다.
이 시나리오를 예로 들면 워드프레스 웹사이트에서 “textbook.php”라는 제목의 문서를 검색하려고 하는데 서버에서 “/textbook.php”에 액세스할 수 있는 권한이 부여되지 않았다는 오류 메시지가 표시되는 경우를 들 수 있습니다.이는 요청된 콘텐츠가 존재하지만 사이트 관리자에 의해 일반 사용자가 해당 콘텐츠를 사용할 수 없도록 제한되었음을 의미합니다.
대안으로 웹사이트 관리자는 공개 액세스로 지정된 파일에 적절한 읽기 권한이 부여되었는지 확인하는 것이 중요합니다. 공개 플랫폼을 방문하는 동안 이 문제가 발생하면 해당 웹사이트를 담당하는 관련 기관에 알려 문제를 해결하고 만족스러운 해결책을 제시할 수 있도록 친절하게 알려주세요.
공개적으로 사용 가능한 파일에 대한 적절한 접근 권한을 확보하는 것은 특정 문제를 야기할 수 있으므로, 관리자는 권한을 전혀 부여하지 않고 필요한 권한을 점진적으로 추가하는 방식으로 프로세스를 시작하는 것이 좋습니다. 일반적으로 적절한 보안 조치를 유지하기 위해 권한 설정이 755인 디렉터리와 모드가 644인 파일을 설정하는 것이 좋습니다.
기본 웹 사이트가 제대로 작동하려면 디렉터리 권한은 실행을 허용하고 파일 권한은 읽기 권한을 부여하도록 설정하는 것이 필수적입니다. 그러나 개별 파일에 실행 권한을 부여하면 취약한 파일을 통해 공용 서버를 손상시키려는 악의적인 공격자에게 무단 접근 지점을 제공할 수 있으므로 실행 권한을 부여하지 않는 것이 중요합니다.
읽기, 쓰기, 실행 권한에 해당하는 숫자는 각각 4, 2, 1입니다. 따라서 디렉터리의 권한 모드가 755인 경우 소유자는 해당 디렉터리의 콘텐츠를 완전히 제어할 수 있는 반면, 그룹 구성원 및 기타 개인은 읽기 및 실행 기능으로 제한됩니다. 반대로 파일에 대한 644 권한 모드는 소유자와 그룹 구성원 모두에게 읽기 및 쓰기 권한을 부여하지만 다른 모든 사용자는 읽기 기능으로만 제한됩니다.
귀하는 어떤 서버에서도 이 리소스에 액세스할 수 있는 권한이 없습니다.”라는 메시지가 표시되므로 웹루트 디렉터리에 적절한 권한이 있는지 확인하는 것이 필수적입니다. 이를 수행하는 한 가지 방법은 다음 명령에 나와 있는 것처럼 chmod 유틸리티를 사용하여 디렉터리 권한을 755로 수정하는 것입니다:
sudo find /var/www/html -type d -exec chmod 755 {} \;
앞의 지시어는 웹 콘텐츠의 위치로 Apache의 표준 폴더를 사용한다고 가정합니다. 다른 디렉터리를 사용하는 경우 디렉터리 이름을 적절히 수정하세요. 모든 파일의 권한 설정을 ‘644’로 변경하려면 아래에 제공된 명령을 실행하세요:
sudo find /var/www/html -type f -exec chmod 644 {} \;
이 명령은 찾기 유틸리티를 사용하여 개별 파일을 검색하고 chmod 명령을 사용하여 권한을 적절히 수정합니다.중괄호 `{}`는 찾기 작업을 통해 발견된 파일 경로를 포함하며, 세미콜론 `;`는 반복 프로세스의 종료를 나타냅니다.
또한 개별 파일에 대한 파일 권한을 독립적으로 수정할 수 있습니다. 예를 들어 웹 루트 디렉터리에 있는 ‘textbook.php’ 파일의 권한을 수정하여 공개 액세스 권한을 부여하는 다음 명령을 살펴봅시다. 따라서 사용자가 향후 해당 파일에 액세스하려고 시도할 때 더 이상 “권한이 거부되었습니다”라는 답답한 메시지가 표시되지 않습니다.
sudo chmod 644 /var/www/html/textbook.php
필요한 모든 파일 권한을 조정한 후에는 변경 사항이 완전히 구현되었는지 확인하기 위해 Apache 또는 NGINX 웹 서버를 재시작하는 것이 좋습니다.
sudo systemctl restart apache2.service
sudo systemctl restart nginx
앞서 설명한 지침에 따라 우분투 운영 체제에서 Apache 및 NGINX 서버를 다시 활성화할 수 있습니다. 그럼에도 불구하고 RHEL(Red Hat Enterprise Linux) 또는 CentOS와 같이 RPM 패키지에 의존하는 수많은 배포판은 “httpd”라는 이름으로 아파치를 통합하는 경향이 있습니다. 이 경우 다음 대체 명령을 사용하는 것이 좋습니다:
sudo systemctl restart httpd
워드프레스 웹사이트의 .htaccess 파일 수정
분산 구성 파일로 작동하는 .htaccess 파일을 활용하면 웹 서버가 디렉토리별로 설정 변경을 처리할 수 있습니다. 안타깝게도 이 파일이 손상되면 서버의 루트 디렉터리에 대한 접근 권한이 없다는 안타까운 오류 메시지가 표시될 수 있습니다.
다행히도 403 오류 문제가 문제가있는 .htaccess 파일로 인한 것이라면 새 파일을 생성하여 상황을 해결할 수 있습니다. 사이트에 대한 새로운 .htaccess 구성을 생성하려면 먼저 워드프레스 관리자 패널에 로그인하고 ‘설정’ 탭으로 이동하세요. 그런 다음 하위 옵션인 ‘퍼머링크’를 선택합니다.
더 이상 조정할 필요가 없으며 ‘변경 사항 저장’ 옵션을 선택하기만 하면 워드프레스에서 사용자의 편의를 위해 업데이트된 .htaccess 파일을 자동으로 생성합니다.
워드프레스 웹사이트를 호스팅하는 Apache 서버에서 “액세스 거부” 또는 “htaccess 파일을 읽을 수 없음, 안전 조치로 액세스 차단” 오류 메시지가 표시되는 경우 새 .htaccess 파일을 생성하는 것이 좋습니다. 이 솔루션은 종종 이러한 문제를 효과적으로 해결합니다.
아파치 설정 파일에서 지시어 구성
아파치 2.4에는 mod\_authz\_host라는 새로운 설정 구성 요소가 포함되어 있습니다.이 모듈은 본질적으로 후속 지침 준수를 강제하는 여러 혁신적인 지침을 제시합니다:
모든 애플리케이션을 허용하여 요청된 모든 것에 대한 액세스 권한을 부여합니다.
보안을 보장하기 위해 특별히 승인되지 않는 한 모든 요청을 거부하도록 의무화합니다.
이 제한은 safe.com에서 시작된 요청에만 적용되어 이 특정 도메인에서 발생하는 트래픽만 호스트에 액세스할 수 있도록 합니다.
Apache 2.4를 사용할 때 적절한 기능을 보장하려면 기본 구성 파일에 다음 코드 스니펫이 포함되어야 합니다. 해당 요소가 문서 내에 있는지 확인하려면 Vim과 같은 기본 텍스트 편집기를 사용하여 검사할 수 있습니다. 결함이 발견되면 필요한 콘텐츠를 삽입한 다음 애플리케이션을 저장하고 닫으면 됩니다.
vim /etc/apache2/apache2.conf
주어진 텍스트는 데이터베이스에서 데이터를 가져와 Python을 사용하여 처리하는 등 여러 단계가 포함된 API를 만드는 데 도움을 요청하는 것으로 보입니다. 또한 사용자는 인증 및 권한 부여와 API 엔드포인트 테스트에 대한 도움이 필요하다고 언급하고 있습니다. 사용자가 어떤 특정 프로그래밍 언어나 프레임워크를 사용해 본 경험이 있는지는 불분명하지만 이전에 HTML/CSS로 작업한 적이 있다고 언급합니다.
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
또한 레드햇 엔터프라이즈 리눅스(RHEL) 기반 웹 서버의 경우 아파치 설정 파일 내 ‘/var/www’ 디렉터리에 대한 편리한 접근성을 보장하는 것이 필수적입니다. 이를 위해 다음 코드 조각을 ‘/etc/httpd/conf’에 있는 ‘httpd.conf’ 파일에 통합하세요:
vim /etc/httpd/conf/httpd.conf
제공된 코드는 입력 문자열을 받아 대문자, 소문자, 숫자 및 특수 문자의 조합을 사용하여 비밀번호를 생성하는 JavaScript 함수입니다. 생성된 비밀번호의 길이는 12자이며 문자열로 반환됩니다.
<Directory "/var/www">
AllowOverride None
Require all granted
</Directory>
마지막으로 아파치 웹 서버를 다시 한 번 시작하려면 다음 명령 중 하나를 실행하면 됩니다.
# for Ubuntu and Debian
sudo systemctl restart apache2.service
# for RHEL and CentOS
sudo systemctl restart httpd
Linux에서 403 금지된 서버 권한 오류 수정
공개 웹 사이트를 탐색하거나 개인 웹 사이트를 관리하는 동안 수많은 개인이 이 문제에 직면합니다. 이 문제를 해결하려면 초기 단계로 Apache 또는 NGINX 서버에 대한 파일 시스템 권한을 재설정하는 것이 좋습니다. 권한을 변경한 후에도 오류가 계속 발생하는 경우 새 .htaccess 파일을 생성하고 서버 구성 파일 내의 지시어가 올바르게 구성되었는지 확인할 수 있습니다.
기타 여러 가지 복잡한 문제가 발생할 수 있는 경우, 시스템의 운영 기능을 복원하려면 Linux 서버 문제 해결에 대한 광범위한 전문 지식을 갖춘 개인이 필요합니다.