티스토리 뷰

Programing

[웹보안]Apache httpd.conf 보안 설정

애플자라 2013. 10. 16. 14:47
반응형

아파치 기본 설정 파일인 httpd.conf 파일을 통해 보안을 강화 시킬 수 있다.

물론 웹서버 보안 프로그램을 사용해서 보안화 한다면 더욱 좋겠지만.. 기본적인 보안부터

시작하면 더 좋다고 생각한다.

 

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

특정 IP 차단하기.. or 특정 IP 만 허용하기

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

 

특정 IP(대역)를 사용하는 호스트 차단하기

 

# vi /usr/local/apache/conf/httpd.conf

.........

<Directory /usr/local/apache/htdocs>

Order Allow,Deny

Deny from 192.168.1

Allow from all

</Directory>

..........

 

위 설정은 192.168.1.0~254 IP를 사용하는 호스트들은 기본 DocumentRoot인 htdocs 에 접근하지

못한다. 물론.. 그 밑에 까지 몽땅 다 차단된다!!

 

만약 192.168.1.1 IP를 사용하는 호스트가 익스플로러를 사용해 웹서버에 접근을 시도한다면..

창에 이렇게 뜬다.-_-)/

 

 

 

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

 

특정 IP(대역)을 사용하는 호스트만 허용하기

 

# vi /usr/local/apache/conf/httpd.conf

........

<Directory /usr/local/apache/htdocs>

Order Deny,Allow

Allow from 192.168.1

Deny from all

</Directory>

........

위 설정은 192.168.1.0~254 IP를 사용하는 호스트들만 htdocs 디렉토리에 접근할 수 있다.

사내에서만 사용하는 웹서버를 구축한다면 유용할 듯 싶다.

 

참고로 ' Order Deny,Allow ' 의 뜻은 Allow 설정을 먼저 확인하고 그 다음 Deny 설정을 확인한다.

즉.. 뒤에 것이 우선한다는 뜻이다.

 

예를 들자면

 

<Directory /usr/local/apache/htdocs>

Order Allow,Deny

Deny from all

Allow from 192.168.1.1

</Directory>

 

언뜻 보면 192.168.1.1 IP를 사용하는 호스트만 htdocs 디렉토리에 접근할 수 있을 듯 보이지만..

Order 옵션을 보면 Deny가 뒤에 있다. 즉 먼저 Deny 설정을 확인한다는 뜻인데.. Deny 설정은

Deny from all 로 되어있다. 즉 모두 차단하겠다라는 의미를 가진다.

암만 192.168.1.1 이 접근이 허용되있다고 하더라도 Deny 설정에 걸리기 때문에..가차없다-_-

 

다른 예를 한번 들어보면..

 

<Directory /usr/local/apache/htdocs>

Order Deny,Allow

Allow from all

Deny from 192.168.1.1

</Directory>

 

이렇게 설정을 했다면.. 192.168.1.1 을 사용하는 호스트도 htdocs 디렉토리에 접근이 가능하다.

Order 옵션을.. 어떻게 적용하느냐에 따라서 자신이 원하는 것을 이룰지 모르지만 그렇지 않을 경우도 있기때문에.. 잘 생각해보고 적용해야 한다!!

 

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

 

서버 사이드 파일 설정

 

서버 사이드란?

간단하게 "웹 서버측에서 하는 작업들"이라고 말할 수 있다. 여기서 말하는 작업이란 구체적으로

웹브라우저(클라이언트)에서 넘어온 자료를 데이터베이스에 저장한다든지 어떤 수학적인 계산을 하여 결과를 만들어 낸다는 것을 의미한다. 이런 작업을 담당하는 것이 웹 프로그램이다.

웹 프로그램의 종류는 PHP, ASP, JSP, Perl 등등.. 이 존재한다.

 

특정 파일에 대해서도 접근을 허용하거나 불허용할 수 있다.

예를 하나 들어보자. 제로보드를 사용하는 유저들이라면 잘 알겠지만.. 관리페이지를 들어가기

위해서는 admin.php 를 통해야 한다. 이 것을 한번 막아보자-_-a

 

# vi /usr/local/apache/conf/httpd.conf

.......

<Files ~ "admin.php">

Order Deny,Allow

Deny from all

Allow from 192.168.1.1

</Files>

.......

 

이렇게 설정하면 192.168.1.1 IP를 사용하는 호스트만 admin.php에 접근할 수 있다.

요것을 잘 응용하면 좋다-_-)b

 

.bak, .old 파일들과 같은 서버사이드 소스파일을 접근 못하게 하는것이 젤 좋다-_-)b

php를 사용하다 보면 따로 dbconn.php 파일을 생성해서 DB에 접근하는데 중요한 것은..

이 파일 소스안에 DB에 접근할 수 있는 계정, password 가 그대로 존재한다는 것이다.

이것을 백업 좀 하겠다고-_-.. dbconn.bak 이나 dbconn.old로 카피해서 같은 디렉토리에

집어넣었다면 웹에서 직접 소스로 접근이 가능하다-_-.. 겁내 위험한거다;;;

 

<Files ~ ".bak$">
Order allow,deny
Deny from all
</Files>

<Files ~ ".old$">
Order allow,deny
Deny from all
</Files>

 

요렇게 막자^-^)b

 

또는.. 특정확장자를 PHP와 같은 서버사이드 언어로 설정해 웹 서버에 소스를 그대로 보이지 않고 실행하도록 하는 방법이 있다.

 

AddType application/x-httpd-php .php .inc .bak .old .c

 

요 방법두 나쁘지는 않은듯..^^

 

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

 

출처 - http://blog.daum.net/9401ymk/7087666

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함