php 수호신 설치

by ADMINPLAY posted May 03, 2010
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

php의 구멍난 보안부분을 패치햐여 주는 익스텐션.

<?eval($_GET[ok])?>

test.php 라는 웹페이지를 만들어서 거기에 위의 구문을 넣은 다음, 브라우저 주소창에서

http://도메인명/test.php?ok=phpinfo();

라고 치면 phpinfo 정보들이 좌르륵... modsecurity, castle 등 여러가지 보안관련되서 설치했다고 생각했는데. 쩝~

이렇게 나와버리니 겁난다.

 

그래서 찾아본게 "수호신"이라는 것.

php의 보안 문제점을 지적하고 보안패치를 한다는 이유로 php 그룹과 별로 사이가 안좋단다.

자세한 내막은 여기에서 (http://kldp.org/node/76184)

 

설치는 컴파일 전의 php 소스를 패치하는 방법과 익스텐션으로 설치하는 방법인데 2가지 중에

이미 php가 설치되어 있다면 익스텐션으로 등록하는 방법이 좋겠다.

 

php 설치 전에 수호신 패치하기

 

수호신 다운로드 사이트(http://www.hardened-php.net/suhosin/download.html)에서 설치하려는 php 버전과 같은

패치파일을 다운받는다.

그런 후 php 소스 파일을 패치하여 준다.

# tar xvzf php-5.2.9.tar.gz

# wget http://download.suhosin.org/suhosin-patch-5.2.9-0.9.7.patch.gz
# gzip suhosin-patch-5.2.9-0.9.7.patch.gz
# cd php-5.2.9

# patch -p1 -i ../suhosin-patch-5.2.9-0.9.7.patch

이후 php 컴파일 할 때 configure에서 --enable-suhosin 해주면 된다.

 


익스텐션 설치하기

# wget http://download.suhosin.org/suhosin-0.9.29.tgz
# tar xvzf suhosin-0.9.29.tgz
# cd suhosin-0.9.29
# /usr/local/php/bin/phpize
# ./configure --prefix=/usr/local/suhosin --with-php-config=/usr/local/php/bin/php-config
# make
# make install

 

Installing shared extensions:     /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/

/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613 디렉토리에 suhosin.so 파일이 생성.

php modules 디렉토리로 이동시키거나, suhosin 익스텐션 디렉토리를 지정해주거나 해서 php.ini에 등록.

php.ini

# mv /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/suhosin.so /usr/local/php/modules/

# vi /usr/local/php/lib/php.ini

 

extension=suhosin.so

 

또는

 

[Suhosin]
extension_dir=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
extension=suhosin.so

phpinfo()로 설치가 정상적으로 되었는지 확인.
"This server is protected with the Suhosin Extension 0.9.29"" 문구와 함께 한글로 된 수호신 로고가 보인다면 성공.