[ apache ] 403 - Forbidden error의 해결 > knowledge

본문 바로가기
사이트 내 전체검색

knowledge

[ apache ] 403 - Forbidden error의 해결

페이지 정보

작성자 웹지기 댓글 0건 조회 18,398회 작성일 18-10-01 02:49

본문

리눅스에 아파치 웹서버를 설치하면 자주 등장하는 것이 403 Forbidden 에러다. (Apache 403 Forbidden error)  403 Forbidden 에러는 해당 파일이나 디렉터리에 접근 권한이 없는 경우 것으로 보안과 관련된 오류다. 디렉터리나 파일 권한, 그리고, 웹서버의 설정을 봐도 왜 403 에러가 나는 지 쉽게 알 수 없는 경우가 있다.

b1ab5adf3f70b25df0c326b687afb1a6_1538329849_9785.jpg
 

403 Forbidden error는 원인이 여러가지이고 찾기가 쉽지 않아 매번 한참 해메다가 겨우 해결하곤 한다. 그 해결 방법을 정리해 본다.

 

1. httpd.conf 의 권한 설정

실수인지 어쩐지는 모르지만 아래와 같이 <Directory> 설정 지시 부분에 "Deny from all"이란 내용이 있는 경우가 있다. 당연히 모든 접근을 제한한다는 것이니 403 Forbidden 이 발생하겠지.

<Directory /home/...>

     .

     .

     .

    Order deny, allow

    Deny from all

</Directory>

 

아래와 같이 "Allow from all"로 표시하면 모든 접근이 정상적으로 이뤄질 것이며,

<Directory /home/...>

     .

     .

     .

    Order allow, deny

    Allow from all

</Directory>

 

특정한 IP 만 접근을 제한한다면 아래와 같이 특정한 IP를 deny 시키면 된다.

<Directory /home/...>

     .

     .

     .

    Order deny,allow

    deny from 125.165.169.111 114.124.12.

    allow from all

</Directory>

 

 

 

2. 디렉터리 퍼미션(Directory Permission)

httpd.conf 의 설정에 문제가 없다면, 디렉터리 퍼미션을 확인해 보자.

웹브라우저로 홈페이지를 본다는 것은 웹서버가 실행되는 계정(nobody 또는 apache 등)으로 해당 디렉터리를 읽는는 것이다.

즉, 웹서버가 실행되는 계정으로 해당 디렉터리에 접근이 되지 않으면 당연히 403 Forbidden 이 발생하겠지.

# chmod o+x /home/...

or

# chmod 711 /home/...

# ls -al /home/...

drwx--x--x 21 abcd     abcd     4096 Mar 24 10:44 /home/...


디렉터리를 위와 같이 했는데도 같은 문제가 있다면 하위 디렉터리 및 파일들을 살펴보자.

웹루트 디렉터리를 위와 같이 설정하듯이 하위 디렉터리나 파일도 웹서버가 실행되는 계정으로 읽을 수 있어야 문제가 발생하지 않는다.

 

참고로 특정디렉터리의 하위 모든 파일 및 디렉터리의 권한을 변경하는 방법은...

* 모든 디렉터리의 권한을 711로 변경

# find /home/... -type d -exec chmod 711 {} \;


* 모든 파일의 권한을 644로 변경

# find /home/... -type f -exec chmod 644 {} \;

이것은 간편하긴 하나, 검색할 디렉터리(/home/...) 를 잘못 지정하면 낭패를 볼 수 있으므로 주의해야 한다. "/" 에서 실행했다가는... ^^;;

  

3. SELinux와 아파치 HTTP의 디렉토리 접근 설정

SELinux는 리눅스의 보안을 담당하는 프로그램이다. 최근에 나온 리눅스에는 대부분 SELinux가 구동되고 있다고 생각해도 된다. 이전에는 단순히 chmod를 통한 owner+group+others의 권한 만 제한하면 되었지만 SELinux는 그 이상의 접근 제어를 하게 되므로 잘 모르면 당황하게 된다.

 잘 모르면 SELinux 설정에서 SELINUX=disabled 하여 구동을 중지할 수 있지만 그만큼 보안에 취약해지므로 권장하지는 않는다.

SELinux 설정 파일 : /etc/selinux/config

 

Shell에서 'ls -Z'를 해 보면 아래와 같이 파일이나 디렉터리의 보안 환경을 볼 수 있다.

# ls -Z /home/... 

drwx--x--x  abcd   abcd   user_u:object_r:user_home_dir_t  abcd

drwx--x--x  efgh    efgh    user_u:object_r:httpd_sys_content_t efgh

보안 환경에서 세번째 요소가 중요한 부분이다. HTTP 웹서버는 httpd_sys_content_t 타입 만 파일과 디렉토리 읽는 것을 허용한다. 위에서 보면 'abcd'는 user_home_dir_t로 되어 있기 때문에 웹서버에서 접근을 하면 403 Forbidden을 표시하고, 'efgh'는 httpd_sys_content_t로 되어 있기 때문에 접근이 가능하다.

 

이를 변경하는 방법은...

* 하나의 파일이나 디렉터리를 변경할 경우

# chcon -t httpd_sys_content_t /home/...


* chmod와 같이 하위 파일이나 디렉터리를 모두 변경할 경우

# chcon -R -h -t httpd_sys_content_t /home/...

-R : 하위 모든 파일과 디렉터리의 보안사항을 변경한다.

-h : 심볼릭링크를 따르지 않도록 한다.

 

위와 같이 했는데도 문제가 지속되면 쪼금 어렵다는 것~^ 

관련 포스트

- Apache 302 error 원인과 해결방법

추천0 비추천0

댓글목록

등록된 댓글이 없습니다.

Total 89건 1 페이지
  • 89 [ filezilla ] 설정, 편집기, 인터페이스, 파일, 로그 위치 변경으로 편하게 사용
  • [ filezilla ] 설정 변경으로 편하게 사용 설정화면 들어가기 : Edit &gt; Settings * 설정을 여는 방법 [편집(E)] -&gt; [설정(S)] 1. 서버와 자동 연동 기능 해제 1) &lt;설정&gt; - &lt;파일편집&gt; - [로컬 파일 편집을 감시하여 수정시 업로드 여부 묻기(W)] 해제 2. 편집기를 다른 편집기로 변경. 1) &lt;설정&gt; - ...
  • 웹지기 07-07 3606 0 0 댓글 0
  • 88 [ APM ][ NPM ] Nginx ( engine X )
  • Nginx [engine x] nginx [engine x]는 HTTP 및 리버스 프록시 서버이며 Igor Sysoev가 작성한 메일 프록시 서버 Rambler (RamblerMedia.com)를 포함하여 러시아의 많은 사이트에서 5년 이상 운영됨 기본 HTTP 서버 기능 정적 및 인덱스 파일 제공, 자동 인덱싱; 열린 파일 디스크립터 캐시 캐싱을 통한 가속 리버스 프록시; 간단한로드 밸런싱 및 내결함성 FastCGI, uwsgi, SCGI 및 memcached 서버 캐싱에 대한 지...
  • 웹지기 02-18 4321 0 0 댓글 0
  • 87 [ APM ][ NPM ] Apache HTTP Server | Apache( Nginx ) + PHP + …
  • Apache HTTP Server Apache는 www(월드와이드웹)의 초기 활용에 중요한 역할을 하는 유용한 웹서버 Apache는 www(월드와이드웹)의 초기 활용에 중요한 역할을하는 유명한 웹 서버 2009년에 1억 웹사이트 이정표를 넘어선 최초의 웹 서버 Apache는 Netscape Communications Corporation 웹서버의 첫 번째 대안으로, 기능 및 성능 측면에서 다른 Unix 기반 웹 서버와 경쟁하기 위해 발전 Apache를 사용하는 모든 웹 서버의 대부분...
  • 웹지기 02-18 4004 0 0 댓글 0
  • 86 [ xampp ] mysql 설치 > root 비밀번호 변경 후 phpmyadmin 접속 설정
  • xampp 에서 mysql root의 비밀번호를 변경하게 되면 phpmyadmin에 접속이 되지 않는다. root의 비밀번호를 phpmyadmin의 config파일에 넣어줘야 한다. /xampp/phpMyAdmin/config.inc.php 21줄에 mysql root로 설정된 비밀번호를 넣어준다.
  • 웹지기 01-19 5651 0 0 댓글 0
+1
  • 85 [ xampp ] 설치 후 root 경로 변경
  • xampp 패널을 열고 apache 의 config를 admin 클릭 Apache(http.conf) 파일을 연다 documentroot를 찾아서 경로를 변경해준다.
  • 웹지기 01-19 6636 0 0 댓글 0
+1
  • 84 [ laragon ] 프로그램 설치 링크 연결과 자동설치 방법
  • Laragon에서 자동설치 할 수 있게 해주는게 Menu &gt; Tools &gt; Quick add 부분에 나오는 명령어들이다. 이곳에 새로운 것을 추가 할 수 있고, 삭제 할 수도 있다. 일단 추가 하고 싶으면 선택하면 notepad++ 로 파일이 연결되어서 열리게 된다. 이부분에 원하는 방식으로 추가를 해주면 되는데 압축파일로된 경로를 입력해주면 된다. # 은 주석의 역할이므로 설명이나 간단제목을 적는다 이름으로 정의하고 싶은 부분을 변수처럼 왼쪽에 적...
  • 웹지기 11-02 4217 0 0 댓글 0
  • 81 [ synology ] ssh 접속하기 - root 계정 접속
  • 일단 ssh 를 열어줘야 한다. 제어판 &gt; 터미널 및 SNMP &gt; 터미널 &gt; SSH 서비스 활성화 체크 &gt; 포트 : 원하는포트(기본은 22 되도록 변경) &gt; 적용 사용자는 관리자의 권한을 가진 일반 사용자라 할지라도 ssh에 접속은 가능하나 root로의 전환은 불가능하다 root계정에 접속하고 싶다면 ssh에admin으로 로그인을 해야 한다. 비밀번호는 admin에서 설정한 비번과 같다 일반적으로 admin의 계정은 ...
  • 웹지기 06-15 5073 0 0 댓글 0
  • 80 [ windows ] xmanager / xshell / xftp / xlpd
  • 유료로 상용되는 쉘, ftp, 원격인쇄 프로그램 소개 xmanager / xshell / xftp / xlpd - xmanager = 윈도우에서 리눅스-원격 - xshell = ssh 클라이언트 - xftp = 네트워크 파일 전송 - xlpd = 원격인쇄 https://www.netsarang.com
  • 웹지기 06-11 4768 0 0 댓글 0
  • 79 autoset openssl install
  • 오토셋 버젼안에 openssl이 들어있다.openssl로 key와 csr을 만들자오토셋매니저설정 &gt; 웹서버세부설정 &gt; 웹서버 모듈관리 &gt; mod_ssl.so 체크설정 &gt; PHP세부설정 &gt; PHP확장모듈 설정 &gt; php_openssl.so 체크설정 &gt; 웹서버 세부설정 &gt; 가상호스트 설정C:\Autoset9\server\confhttp.conf 파일 수정Listen 80 하단에 Liste...
  • 웹지기 09-09 6822 0 0 댓글 0
  • 78 XenServer 5.6에 NAS 구성하기
  • [펌]http://ifwind.tistory.com/10XenServer의 Local Storage 중 일부를 NAS로 구성하여 리눅스 가상머신에는 NFS로 붙이고, 윈도우 가상머신에는 CFS로 붙이는 구성을 해보았다. XenServer에 NAS를 구성하면 다음과 같은 장점이 있다.ISO 라이브러리를 XenServer내에 구성할 수 있다.XenServer는 항상 가동중이기 때문에 VM의 상태와 관계없이 안정적인 네트워크 스토리지를 제공할 수 있다.VM에서 사용하는 중요 데이터를 XenServer에...
  • 웹지기 09-27 6506 0 0 댓글 0
  • 77 뉴스 rss 사이트
  • http://news.einfomax.co.kr/rss/ http://news.jtbc.joins.com/Etc/RssService.aspx SBS http://news.sbs.co.kr/rss/news_rss.jsp 속보 http://api.sbs.co.kr/xml/news/rss.jsp?pmDiv=all 정치 http://api.sbs.co.kr/xml/news/rss.jsp?pmDiv=politics 경제 http://api.sbs.co.kr/xml/news/rss.jsp?pmDiv...
  • 웹지기 10-05 6956 0 0 댓글 0
  • 76 무료 홈페이지 템플릿
  • 무료 템플릿(template) 사용방법템플릿은 여러 분야에서 많이 쓰이는 용어인데 영어사전을 찾아보니깐 ‘본뜨는 공구’, ‘형판’ 이라는 뜻으로 쓰이고 있습니다. html템플릿이라고 하면 html로 미리 웹문서를 디자인 해 놓은 것을 말한다고 보면 될 것 같습니다. 아래 나열된 사이트들은무료로템플릿을 제공하는 사이트들입니다.opendesigns.orgfreetemplatesonline.comcss4free.comfreecsstemplates.comoswd.orgfreecss.infoopensour...
  • 웹지기 09-27 11005 0 0 댓글 0
  • 75 네이버 스마트 에디터 폰트추가 방법
  • smarteditor2.min.js 파일this.addFont('Noto Sans KR', 'sans-serif', 0, "", "", 1, "abcd", true);smarteditor2.min.js 파일에this.addFont('Noto Sans KR', 'sans-serif', 0, "", "", 1, "abcd", true);SmartEditor2.html 샘플파일 스마트에디터 생성시...
  • 웹지기 09-04 11707 0 0 댓글 0
게시물 검색

회원로그인

접속자집계

오늘
4,583
어제
15,358
최대
33,828
전체
8,319,363

그누보드5
Copyright © funyphp.com. All rights reserved.