Apache 서버에서 CGI 모듈을 사용하는 방법을 살펴보려고 한다.
CGI 모듈이란?
CGI (Common Gateway Interface): 외부 프로그램과 통신하는 방법이다. 웹 사이트에서 동적인 페이지를 만드는 가장 흔하고 간단한 방법이다.
관련된 모듈 | 관련된 지시어 |
mod_alias mod_cgi |
AddHandler Options ScriptAlias |
Apache CGI 보안설정
CGI 스크립트들을 어느 디렉터리에서나 실행할 수 있도록 할 경우 악의적인 사용자가 CGI 프로그램을 업로드한 후 이를 실행하여 임의의 명령을 실행시킬 수 있다.
CGI 프로그램의 실행은 관리자가 지정한 특정 디렉터리에서만 가능하도록 제한할 필요가 있다.
해당 블로그에서는 취약한 환경을 만들기 위해 cgi-bin을 적용하는 방법을 설명하고 있다.
httpd.conf 파일에서 작업
1) Apache에서 CGI 모듈을 사용하도록 한다.
LoadModule cgid_module modules/mod_cgid.so #주석 풀기
2) alias_module 설정에서 cgi-bin 경로를 설정한다.
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
</IfModule>
3) Options에서 ExecCGI 설정
AllowOverride None :모든 허용을 하지 않는다. 즉 None 설정으로 이외의 다른 설정은 무시한다.
-해당 옵션을 All로 설정했을 때, “403 Forbidden Error”가 났다.
4) mime_module 설정 부분에서 cgi-script 파일에 대한 확장자를 지정
핸들러(처리기)를 지정하는 부분
<IfModule mime_module>
AddHandler cgi-script .cgi .pl .py
</IfModule>
5) CGI 스크립트 작성
디렉터리: /usr/local/apache/cgi-bin/
#!/bin/bash echo "Content-type: text/html" echo "" echo "Hello.<br/>" |
6) 작성한 파일에 실행 권한
chmod a+x test.cgi
7) Apache 재시작
설정 완료!
참고
https://jisblee.me/board/view/0/1/199
https://anggeum.tistory.com/entry/Apache-HTTP-Server-v24-%EC%84%A4%EC%B9%98-Source-Compile
'OS > Web' 카테고리의 다른 글
[Windows] IIS 웹서버 구축 및 디렉터리 검색 기능 허용 (301) | 2023.02.21 |
---|---|
[Ubuntu] APM 서비스 XAMPP 설치 및 실행 (451) | 2022.07.29 |
[CentOS] Apache SSL/HTTPS 인증서 적용 (436) | 2022.07.01 |
[CentOS] Apache 이전 버전(2.4.49) 소스 설치 (309) | 2022.07.01 |
[Node.js] Ubuntu 20.04에 Node.js 설치 및 실습 (437) | 2021.07.13 |