'전체 글'에 해당되는 글 93건

  1. 2018.02.26 [기타] Iptables 설치 및 설정 1
  2. 2018.02.26 [apache] http_error_code
  3. 2018.02.09 [apache] ip 접속 제어

[ Iptables 설치 및 설정 ]


iptables는 리눅스상에서 방화벽을 설정하는 도구입니다.

iptables는 커널상에서 netfilter 패킷필터링 기능을 사용자 공간에서 제어하는 수준으로 사용할 수 있습니다.

패킷 필터링이란 지나가는 패킷의 헤더를 보고 그 전체 패킷의 운명을 결정하는것을 말하며, 헤더에 필터링할 정보인 출발지 ip:port , 도착지ip:port 등 프로토콜 옵션등을 가지며, 데이터는 각각 전송데이터가 들어갑니다.

특정 조건을 가지고 있는 패킷에 대해 허용(ACCEPT) 및 차단(DROP)등을 지정할 수 있습니다.

특히 iptables 정책은 여러 구분으로 나눠지며 중요한 부분은 Chain입니다.

 

Chain INPUT : 서버로 들어오는 기본정책

- 서버를 목적지로 삼는 모든 패킷은 INPUT Chain을 통해 서버로 통과하게 된다.

 

Chain OUTPUT : 서버에서 나가는 기본정책

- 서버에서 생성되어 외부로 나가는 모든 패킷은 OUTPUT Chain을 통해 서버에서 나가게 된다.

 

Chain FORWARD : 서버에서 forwarding 되는 기본 정책

- 해당 서버가 목적지가 아닌 이 서버를 거쳐 패킷이 통과하는 Chain이다.




우분투에서 설치 방법


- 우분투에서는 iptables 가 설치되어 있지 않습니다.

우분투에서 기본적으로 ufw 라는 방화벽을 쓰며, 해당 방화벽을 disable시킨 상태에서 iptables 설치 

# apt-get install iptables-persistent

# cp /usr/share/netfilter-persistent/plugins.d/15-ip4tables /etc/init.d/iptables 해당 파일 init.d에 복사

# /etc/init.d/iptables start iptables 시작 명령어# /etc/init.d/iptables flush iptables 종료 명령어

# update-rc.d -f iptables defaults 부팅시 iptables 자동으로 올라오도록 설정


insserv: warning: script ‘K01iptables’ missing LSB tags and overrides


insserv: warning: script ‘iptables’ missing LSB tags and overrides


위와 같은 에러가 뜰경우 아래 파일에 LSB tag값이 지정되어있지 않다는 메세지이며 상단에 아래 문구삽입


# vi /etc/init.d/iptables 

### BEGIN INIT INFO 

# Provides: skeleton 

# Required-Start: $remote_fs $syslog 

# Required-Stop: $remote_fs $syslog 

# Default-Start: 2 3 4 5 

# Default-Stop: 0 1 6 

# Short-Description: Example initscript 

# Description: This file should be used to construct scripts to be # placed in /etc/init.d. 

### END INIT INFO


iptables의 파일 위치 /etc/iptables/rules.v4 해당 파일을 수정하여 룰적용을 하는 방법 및 명령어를 이용하여 룰적용을 하는 방법이 있습니다.

 

 

 

centos 6 에서 설치방법

 

- centos6 경우 iptables가 대부분 설치가 되어 있습니다.

# yum install -y iptables

# chkconfig iptables on 서비스를 시작프로그램에 등록합니다.

# service iptables start iptables 실행 명령어

# service iptables stop iptables 종료 명령어

iptables의 파일위치 /etc/sysconfig/iptables

 



매치

 

- iptables에서 패킷을 처리할때 만족해야 하는 조건을 가리킨다. 이 조건을 만족시키는 패킷들만 규칙을 적용한다.

--source (-s) 출발지 IP주소를 나타냄

--destination (-d) 목적지 IP주소를 나타냄

--protocol (-p) 특정 프로토콜과의 매칭

--in-interface (-i) 입력 인터페이스

--out-interface (-o) 출력 인터페이스

--state 연결 상태와의 매칭

--string 애플리케이션 계층 데이터 바이트 순서와의 매칭

--comment 커널 메모리 내의 규칙과 연계되는 최대 256바이트 주석--syn (-y) SYN 패킷을 허용하지 않는다.

--fragment (-f) 두번째 이후의 조각에 대해서 규칙을 명시한다.

--table (-t) 처리퇼 테이블

--jump (-j) 규칙에 맞는 패킷을 어떻게 처리할 것인가를 명시한다.

--match (-m) 특정 모듈과의 매치

 

 


타겟

 

- iptables는 패킷이 규칙과 일치할 때 동작을 취하는 타겟을 지원한다.

ACCEPT 패킷을 받아들인다.

DROP 패킷을 버린다 (패킷이 전송된 적이 없던 것처럼)

REJECT 패킷을 버리고 이와 동시에 적절한 응답 패킷을 전송한다.

LOG 패킷을 syslog에 기록한다.RETURN 호출 체인 내에서 패킷 처리를 계속한다.

 


 

연결추적

 

- 내부 네트워크 상 서비스 연결 상태에 따라서 그 연결을 감시하고 제한할 수 있게 해준다. 연결 추적방식은 연결 상태를

표에 저장하기 때문에, 다음과 같은 연결 상태에 따라서 연결을 허용하거나 거부할 수 있다.

NEW 새로운 연결을 요청하는 패킷 (ex: HTTP 요청)

ESTABLISHED 기존 연결의 일부인 패킷

RELATED 기존 연결에 속하지만 새로운 연결을 요청하는 패킷

INVALID 연결 추적표에서 어디 연결에도 속하지 않은 패킷

 



명령어


- iptables의 명령어

-A 새로운 규칙을 추가한다.-D 규칙을 삭제한다.-C 패킷을 테스트 한다.-R 새로운 규칙으로 교체한다.-I 새로운 규칙을 삽입한다.-L 규칙을 출력한다.-F chain으로 부터 규칙을 모두 삭제한다.-Z 모든 chain의 패킷과 바이트 카운터 값을 0으로 만든다.-N 새로운 chain을 만든다.-X chain을 삭제한다.-P 기본정책을 변경한다.

 

 


기본동작

 

- iptables에서의 기본동작

- 패킷에 대한 동작은 위에서 부터 차례로 각 규칙에 대해 검사하고, 규칙과 일치하는 패킷에 대하여 ACCEPT , DROP 등을 수행한다.

- 규칙이 일치하고 작업이 수행되면, 그 패킷은 해당 규칙의 결과에 따라 처리하고 체인에서 추가 규칙을 무시한다.

- 패킷이 체인의 모든 규칙과 매치하지 않아 규칙의 바닥에 도달하면 정해진 기본정책(policy)을 수행한다.

- 기본 정책은 ACCEPT , DROP 으로 설정 가능하다.

- 일반적으로 기본정책은 모든 패킷에 대하여 DROP을 설정하고 특별히 지정된 포트와 IP주소등에 대해 ACCEPT를 수행하게 만든다.

 

- 주의사항

기본 정책 수립에 있어서 DROP 으로 설정할 경우 원격에서 SSH를 접속하여 사용중이라면, 설정하는 순간 서버와 통신이 단절 됩니다. 그러므로 처음 기본 정책을 ACCEPT로 설정하여 SSH 설정을 마친 후 다시 기본정책을 DROP으로 변경하시길 바랍니다.




현재 룰 상태 확인

 

- iptables -nL 명령어를 통해 현재 등록되어있는 룰을 확인할수 있습니다.


위 그림은 iptables -nL 명령어로 통해 확인한 방화벽 룰입니다.iptables -nL line-numbers 로 확인시 룰셋 적용순서까지 확인이 가능합니다.




iptables 명령어 활용

 

- Iptables 는 기본정책이 ACCEPT 인지 DROP 인지에 따라서 설정 방법이 다릅니다.

# iptables -P INPUT ACCEPT INPUT 체인에 들어오는 패킷을 전부 허용 상태에서의 룰 적용 

- 서버로 들어오는 패킷을 전부 허용 시킨 상태에서 DROP 정책으로 하나씩 막는 방식 입니다.


# iptables -P INPUT DROP INPUT 체인에 들어오는 패킷을 전부 드랍 상태에서의 룰 적용 

- 서버로 들어오는 패킷을 전부 막은 상태에서 ACCEPT 정책으로 하나씩 허용하는 방식 입니다.

 

- 초기 셋팅에 아래 내용 추가

# iptables -A INPUT -i lo -j ACCEPT 

- 일반적으로 많은 소프트웨어들이 localhost 어댑터와 통신이 되어야 하기때문에 필요합니다.


# iptables -A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT 

- INPUT Chain에 접속에 속하는 패킷과 기존의 접속 부분은 아니지만 연관성을 가진 패킷을 허용하는 규칙

 

- 특정 IP 접근을 차단한다.

# iptables -A INPUT -s 115.68.27.76 -j DROP 출발 ip115.68.27.76인 패킷을 차단

# iptables -A INPUT -d 115.68.27.76 -j DROP 목적지 ip115.68.27.76인 패킷을 차단


- 특정 IP 대역대의 접근을 차단한다.

# iptables -A INPUT -s 115.68.27.0/24 -j DROP 출발 ip의 대역이 115.68.27.0/24 인 패킷을 차단

# iptables -A INPUT -d 115.68.27.0/24 -j DROP 목적지 ip의 대역이 115.68.27.76.0/24 인 패킷을 차단


- 포트 범위로 허용 및 거부

# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 50001:50005 -j ACCEPT 

- 접속패킷 포트 50001 ~ 50005 번까지 허용


# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 50001:50005 -j DROP 

- 접속패킷 포트 50001 ~ 50005 번까지 거부


- 특정 IP에 대한 특정 포트허용 및 거부

# iptables -A INPUT -p tcp -s 115.68.27.76 -m state --state NEW -m tcp --dport 80 -j ACCEPT 

- IP 115.68.27.76에 대해 접속패킷 80번 포트를 허용


# iptables -A INPUT -p tcp -s 115.68.27.0/24 -m state --state NEW -m tcp --dport 80 -j ACCEPT 

- IP 115.68.27 대역에 대해 접속패킷 80번 포트를 허용


# iptables -A INPUT -p tcp -s 115.68.27.76 -m state --state NEW -m tcp --dport 80 -j DROP 

- IP 115.68.27.76에 대해 접속패킷 80번 포트를 거부


# iptables -A INPUT -p tcp -s 115.68.27.0/24 -m state --state NEW -m tcp --dport 80 -j DROP 

- IP 115.68.27 대역에 대해 접속패킷 80번 포트를 거부

 

- 인터페이스 지정

# iptables -A INPUT -i eth0 -p tcp dport 80 -j ACCEPT 인터페이스 eth0 로 들어오는 80포트 허용

# iptables -A INPUT -i eth0 -p tcp dport 80 -j DROP 인터페이스 eth0 로 들어오는 80포트 거부


- 룰 적용후 저장

# /etc/init.d/iptables save iptables의 룰을 명령어로 적용시킨 후 해당 명령어로 저장합니다. 

- 위처럼 하는 이유는 iptables 명령어로 룰을 적용시켰을 경우 방화벽을 재시작 하거나, 서버를 재부팅 했을 경우 룰이 저장이 되지 않고 전부 날아가기 때문입니다.

 



룰에대한 설명

 

흰색 부분은 전부 이해되셨을 거라 생각되며, 빨간 부분에 대해서 설명을 해드리겠습니다.

체인 RH-Firewall-1-INPUT의 최상단에 115.68.234.244의 아이피가 DROP 되어 있기 때문에 아래의 방화벽 룰 적용에 관계없이 서버에 접근할 수 없게 됩니다.

, 룰에서 2001포트가 먼저 허용되어 있고, 그뒤에 2000~2500 번 까지 드랍정책이 설정되었기 때문에 2001포트 를 제외한 2000~2500까지 모두 드랍이 되는 정책입니다.

모든 패킷을 거부하는 룰이며, 해당 룰 상단에 룰을 제외한 모든 부분을 거부해 버립니다.

바로 위에 룰이 적용되어 있기 때문에 해당 룰이 적용되지 않습니다.


'Linux Server > etc' 카테고리의 다른 글

[기타] 리눅스서버 사이트 이전  (1) 2018.03.02
[ 기타 ] 해킹점검  (0) 2018.03.02
[기타] rsync 설치 및 사용법  (0) 2017.08.08
[기타] 리눅스 시간 동기화  (0) 2017.03.09
[기타] tcpdump 사용방법  (0) 2017.01.25
Posted by 실력키우기

[ http_error_code ]


HTTP(하이퍼텍스트 전송 프로토콜) 응답 상태 코드란 현제의 error 상태를 알려주는 코드입니다.

현재 상황에 맞게 error code 를 발생시키며 , 해당 코드를 보고 문제를 유추할수 있으며, 더욱 쉽게 문제를 해결할 수 있습니다. 현재 http_error_code는 인터넷 할당 번호 관리 기관 (IANA)에서 http 상태 코드를 관리 및 유지하며,

해당 에러코드들만 잘해독해도 문제를 해결하는데 많은 도움이 될거라고 생각됩니다.


코드 목록에 따른 상태

 

1xx (조건부 응답) 요청이 수신되어 이해되었음을 나타내는 코드입니다.

 

2xx (성공) - 이 클래스의 상태 코드는 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킵니다.

 

3xx (리다이렉션 완료) 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 함을 나타냅니다.

 

4xx (요청오류) 이 클래스의 상태코드는 클라이언트에 오류가 있음을 나타냅니다.

 

5xx (서버오류) 서버가 유효한 요청을 명백하게 수행하지 못했음을 나타냅니다.



2. http_error_code 원인 및 문제해결

 

2-1 4xx (요청오류) 원인 및 문제해결

 

400 Bad Request, 요청 실패

원인 : 문법상 오류가 있어서 서버가 요청 사항을 이해하지 못할때 발생되는 에러

해결방법 : 주소를 정확히 입력하거나 , 문법을 정확하게 입력하여 해결




401 코드 - Unauthenticated 인증실패


401 Bad Request, 요청 실패

원인 : 401 response(응답) 를 받은 클라이언트는 적절한 Authorization(권한부여) credentials(신용 증명 물)를 포함하는 Authorization 헤더와 함께 다시 Request 메시지를 전송합니다. Request 메시지에 그와 같은 Authorization credentials이 포함된 경우에 401 상태코드가 전달되면 user authentication(인증)이 실패한 것을 나타낸다.

해결방법 : 즉 인증에 실패한것임으로 적절한 권한이 있는 사용자로 인증을 받아 해결

 

401.1 Unauthorized, 권한 없음 로그온 실패

원인 : 서버에 로그온 하려는 요청 사항이 서버에 들어있는 권한과 비교했을 시 맞지 않을 경우 발생.

해결방법 : 아이디 및 패스워드를 정확하게 입력하여 해결

 

401.2 Unauthorized, 권한 없음

원인 : 서버에 로그온 하려는 요청사항이 서버에 들어있는 권한과 비교했을 때 맞지 않았을 경우 발생

이것은 일반적으로 적절한 www-authenticate head field를 전송하지 않아서 발생함.

해결방법 : 적절한 www-authenticate head field를 전송하여 해결

 

401.3 Unauthorized, 권한 없음 - 자원에 대한 ACL에 기인한 권한 없음.

원인 : 클라이언트가 특정 자원에 접근할 수 없을 때 발생. 이 자원은 페이지가 될 수도 있고, 클라이언트의 주소 입력란에 명기된 파일일 수도 있다. 또한, 클라이언트가 해당 주소로 접속할 때 이용되는 또 다른 파일일 수도 있습니다.

해결방법 : 접근할 전체 주소를 다시 확인해 보고 웹 자원에 접근할 권한을 부여받아 해결



403 코드 Forbidden 인가실패

 

403.1 Forbidden, 금지 - 실행 액세스 금지

원인 : CGIISA-PI, 혹은 수행시키지 못하도록 되어 있는 디렉터리 내의 실행 파일을 수행시키려고 했을 때 발생

해결방법 : 해당 기능을 사용할수 있도록 설정 및 권한등을 부여하여 해결

 

403.2 Forbidden, 금지 읽기 엑세스 금지

원인 : 원인 : 브라우저가 접근한 디렉터리에 접근가능한 디폴트 페이지가 없을 경우에 발생

해결방법 : 해당 디렉터리에 접근 가능한 디폴트 페이지를 생성하거나 권한을 부여하여 해결

 

403.3 Forbidden, 금지 쓰기 엑세스 금지

원인 : 원인 : 브라우저가 접근한 디렉터리에 쓰기 가능한 권한이 부여되지 않았을 때 발생

해결방법 : 해당 디렉터리에 쓰기 가능한 권한을 부여하여 해결

 

403.4 Forbidden, 금지 SSL 필요

원인 : SSL(https) 프로토콜을 사용 하여 들어오는 요청을 원하지만 http 프로토콜 사용하여 요청을 보낼때 발생

해결방법 : https로 시작하는 URL 확인 하거나 , 서버에서 웹사이트에 대한 ssl 필요 옵션을 제거하여 해결

 

403.5 Forbidden, 금지 SSL 128bit 필요

원인 : 웹서버가 128bit SSL 연결을 요구 하도록 구성되어 있지만 클라이언트 브라우저에서 128bit 암호화를 지원하지 않을때 발생

해결방법 : 클라이언트에서 128bit ssl을 지원하는 웹 브라우저를 사용하거나 , 웹서버에서 SSL 통신의 보안 수준을 낮추어 문제 해결

 

403.6 Forbidden, 금지 IP 주소 거부

원인 : IpSecurity XML 요소의 allowUnlisted 속성의 값은 false이며, 클아이언트 컴퓨터의 IP주소 ipSecurity XML 요소 아래에 IP주소 목록에 나타나지 않습니다. IIS IP주소 ipSecurity XML 요소 아래 목록에 표시 되지 않는 IP 주소에서 모든 요청을 거부하기 때문에 발생

해결방법 : IpSecurity XML 요소를 찾은 후 allowUnlisted 속성의 값을 true로 설정하거나, IpSecurity XML 요소 아래 IP 주소의 목록에서 클라이언트 컴퓨터의 IP 주소를 찾아 수 속성의 값을 true로 설정하여 해결가능 하지만 서버 보안 수준이 떨어질 수 있음.

403.7 Forbidden, 금지 클라이언트 인증서 필요

원인 : 클라이언트 확인 필요. 이 에러는 접근하려는 자원이 서버가 인식하기 위해서 브라우저에게 클라이언트 SSL을 요청하는 경우 발생함. 자원을 이용할 수 있는 사용자임을 입증하는데 사용됨

해결방법 : 웹사이트에서 신뢰하는 인증기관에서 클라이언트 인증서를 발급받아 인증서를 구성하여 해결 하거나, 웹서버에서 SSL 설정값에서 클라이언트 인증서에서 수락 옵션을 선택 및 적용하여 문제해결

 

403.8 Forbidden, 금지 사이트 액세스 거부

원인 : 웹사이트 명시적으로 클라이언트 컴퓨터에서 요청을 거부 하도록 구성되어있기 때문에 발생. IIS는 클라이언트 컴퓨터의 DNS 이름을 확인 하여 명시적으로 요청을 거부함

해결방법 : ApplicationHost.config 파일에서 IpSecurity XML 요소에서 true로 클아이언트 컴퓨터에 대한 도메인 이름 XML요소의 수 속성값을 설정 ( domainName 추가 = “Client_Computer” 허용 = “true” /> )

 

403.9 Forbidden, 금지 연결된 사용자수 과다

원인 : 웹 서버에 연결한 사용자의 수가 웹서버 관리자가 설정한 연결 제한을 초과한 경우에 발생

해결방법 : 웹 서버에 연결할 수 있는 제한을 늘려 해당 문제 해결

 

403.10 Forbidden, 금지 설정이 확실하지 않음

원인 : 웹 서버의 설정쪽에 문제가 있어 접근이 불가능 할 경우에 발생

해결방법 : 웹 설정을 알맞게 변경하여 문제 해결

 

403.11 Forbidden, 금지 패스워드 변경됨

원인 : 사용자 확인단계에서 잘못된 패스워드를 입력했을 경우 발생

해결방법 : 페이지를 갱신한 후 정확한 패스워드를 입력하여 문제 해결

 

403.12 Forbidden, 금지 Mapper 접근 금지

원인 : 클라이언트 인증서 매핑 구성된 사용자 계정이 요청된 파일에 대한 읽기 권한이 없기 때문에 발생

해결방법 : 해당 파일에 대해 읽기 권한을 부여하여 해결

 

404 Not Found

원인 : 클라이언트가 요청한 디렉터리나 파일이 웹서버에 존재하지 않았을때 발생

해결방법 : URL을 다시 잘 보고 주소가 올바로 입력되었는지 확인

 

404.2 Not Found ISAPI 또는 CGI가 제한됨

원인 : ISAPI 인터넷 서버 API 리소스나 요청한 CGI 리소스가 제한되어 발생

해결방법 : ISAPI CGI 제한 페이지에서 요청한 자원의 제한을 허용하여 해결

 

404.3 Not Found MIME 형식제한

원인 : 요청된 파일 이름 확장명에 대한 처리기 매핑이 구성되어 있지 않을 때 발생

해결방법 : MIME 형식에서 필요한 파일 및 MIME 형식 확장자명을 추가하여 문제 해결

 

404.7 Not Found 파일 확장명이 거부됨

원인 : 윈도우 서버일 경우 allowUnlisted 특성이 false로 설정되어 있거나 , 서버 내에서 해당 파일의 파일이름 확장명이 표시되어 있지 않을때 발생

해결방법 : ApplicationHost.config 파일에서 RequestFiltering 섹션에서 FileExtensions allowUnlisted 값을 true로 변경하거나, 해당파일의 확장자가 보이도록 보기옵션을 변경하여 문제 해결

 

404.9 Not Found 파일 특성이 숨겨짐

원인 : 요청한 파일이 숨겨져 있을때 해방 문제 발생

해결방법 : 해당파일이 숨겨져 있으며, 숨겨져 있는 옵션을 취소하여 문제 해결

 

405 Method not allowed

원인 : Request 라인에 명시된 메소드를 수행하기 위해 해당 자원의 이용이 허용되지 않았을때 발생

해결방법 : 요청한 자원에 적절한 MIME 타입을 갖고 있는지 확인 후 MIME타입을 적절하게 입력할 것

 

407 Proxy Authentication Required

원인 : 해당 요청이 수행되도록 Proxy 서버에게 인증을 받아야 할때 발생

해결방법 : Proxy 서버로 로그온 한 후에 다시 시도하여 해결

408 Request timeout

원인 : 레지스트리에 문제가 발생하였거나, 악성 프로그램 감염이 되었거나 , 디스크 문제 등으로 요청이 지연되는 경우에 해당 문제 발생

해결방법 : 손상된 레지스트리를 복원 , 악성프로그램 제거 , 디스크 문제 확인 등으로 해당문제 해결

 



2-2 5xx (요청오류) 원인 및 문제해결

 

500 서버 내부 오류

원인 : syntax error , 권한 , 변수정의 , 특수문자 처리 , 전송방식 지정 , 데몬상태 등 다양한 이유로 요청사항이 서버 내부에서 수행할 수 없을 때 발생

해결방법 : 사실상 500에러는 상당히 광범위하며, 500에러가 발생하였을때 서버 내부에서 확인해야 한다.

문법확인 , 권한지정 , 변수 및 특수문자처리부분 , 데몬의 버전이 안맞는다거나, 데몬이 멈춰있다거나 등의 이유로 발생하는데, 각각의 증상에 따라 적절하게 대응하여 문제를 해결

501 서버 내부 오류 Not Implemented

원인 : 시스템에서 CGI를 지원하지 못하도록 막아두었거나, CGI설정이 제대로 되어있지 않을 경우 발생

해결방법 : CGI를 사용할수 있도록 수정을 하여 문제를 해결

 

502 서버 내부 오류 Bad Gateway

원인 : 접속자수가 많아 과부하 상태거나 , 클라이언트 브라우저에 이상이 있을때 문제 발생

해결방법 : 주로 과부하 상태일때 많이 발생되며, 서버 사양을 업그레이드 하거나, 사용자가 많지 않을때 접근하거나 , 웹서비스를 재시작하여, 일시적으로 문제를 해결

 

503 서버 내부 오류 server Unavailable

원인 : 서비스가 현재 멈춘 상태이거나 일시적인 과부하 상태 및 관리(유지,보수) 때문에 요청을 처리하지 못할 경우 발생

해결방법 : 관련 데몬이 다운되어있을 가능성이 크며, 해당 데몬을 실행시켜 문제 해결





3. 에러페이지 변경

 

3-1 기본 에러페이지 변경

http_error_code를 발생시키는데 클라이언트들에게 이러한 코드를 보여줄 필요는 없다고 생각합니다.

httpd.conf 파일에 아래내용을 추가하여 해당 에러코드가 발생될때 특정 페이지를 보여주도록 설정할수 있습니다.물론 해당 페이지의 소스코드는 직접 개발해야 합니다.

 

httpd.conf 파일 수정

Alias /error_page "/home/les" error_page의 경로 설정

Alias /error_image "/home/les" error_page의 경로 설정

ErrorDocument 404 /error_page/404.htm 404 error_page의 보여질 페이지의 파일 경로

ErrorDocument 403 /error_page/403.htm 403 error_page의 보여질 페이지의 파일 경로

위처럼 원하는 에러코드의 번호를 추가하여 해당 에러코드가 발생될때 특정 페이지가 보이도록 설정가능합니다

 


아파치 설정하기 전 404에러가 발생하였을때 기존 페이지


 

아파치 설정 후 404에러가 발생하였을때 페이지


'Linux Server > apache' 카테고리의 다른 글

[apache] ip 접속 제어  (0) 2018.02.09
[apache] letsencrypt 설치 및 설정  (2) 2017.08.03
[apache] ssl 키 발급 및 적용  (0) 2017.06.03
[php 언어셋 문제]  (0) 2017.05.09
[apache] cband 모듈설치  (0) 2017.04.27
Posted by 실력키우기

[ apache 접속제어 ]


apache 에서 특정 ip 접속 제어를 하기위해 httpd.conf or httpd-vhosts.conf에서 설정



vi /usr/local/apache/conf/extra/httpd-vhosts.conf


----------------------------------------------------------------------------------------------------------------------------------------------------------------------

해당 도메인으로 접속을 전부 거부함

<VirtualHost *:80>

    DocumentRoot "/home/web/"

    ServerName leeeunseok.xyz

    ErrorLog "logs/leeeunseok.xyz_error_log"

    CustomLog "logs/leeeunseok.xyz_access_log" common

<Directory "/home/web/">

Order deny,allow

require all denied

</Directory>

</VirtualHost>


----------------------------------------------------------------------------------------------------------------------------------------------------------------------

해당 도메인으로 115.68.87.2의 아이피만 접속을 허용함

<VirtualHost *:80>
    DocumentRoot "/home/web/"
    ServerName leeeunseok.xyz
    ErrorLog "logs/115.68.220.220_error_log"
    CustomLog "logs/115.68.220.220_access_log" common
<Directory "/home/web/">
Order deny,allow
require all denied
require ip 115.68.87.2
</Directory>
</VirtualHost>


----------------------------------------------------------------------------------------------------------------------------------------------------------------------

해당 도메인으로 115.68.87.2의 아이피만 접속을 거부함


<VirtualHost *:80>

    DocumentRoot "/home/web/"

    ServerName leeeunseok.xyz

    ErrorLog "logs/115.68.220.220_error_log"

    CustomLog "logs/115.68.220.220_access_log" common

<Directory "/home/web/">

Order deny,allow

Require all granted

Require not ip 115.68.87.2

</Directory>



----------------------------------------------------------------------------------------------------------------------------------------------------------------------

위의 룰은 아파치 2.4의 룰이며 , 그 이하의 버전에서의 설정은 아래를 참고



전처접근 차단 후 특정아이피 허용

deny from all

allow from 127.0.0.1


전체접근 허용후 특정 아이피 차단

allow from all

deny from 127.0.0.1

'Linux Server > apache' 카테고리의 다른 글

[apache] http_error_code  (0) 2018.02.26
[apache] letsencrypt 설치 및 설정  (2) 2017.08.03
[apache] ssl 키 발급 및 적용  (0) 2017.06.03
[php 언어셋 문제]  (0) 2017.05.09
[apache] cband 모듈설치  (0) 2017.04.27
Posted by 실력키우기

블로그 이미지
공 부 하 는 직 장 인
실력키우기

태그목록

공지사항

Yesterday
Today
Total

최근에 달린 댓글