리눅스 nmap 스캐너를 활용해 IP를 스캔해보면 아래와 같이 apache정보가 노출된다.
이것을 조치해보자

실제 테스트한 환경
os : Ubuntu 22.04
web : httpd-2.4.53
* 여기서 부터 아래 순서대로 진행 *
****인터넷 사용 가능한 경우 ( 인터넷 사용 불가능할경우 아래 참조)****
1. ModSecurity 2.9.7 설치
1) cd /home/user
2) wget https://github.com/SpiderLabs/ModSecurity/releases/download/v2.9.7/modsecurity-2.9.7.tar.gz
2. 압축해제
1) tar -xzvf modsecurity-2.9.7.tar.gz
3. 파일 경로로 이동 및 libxml2-dev 라이브러리 설치
1) cd /home/user/modsecurity-2.9.7
2) sudo apt install libxml2-dev
3) ./configure --with-apxs=/home/user/apache/bin/apxs \
--with-apr=/home/user/apache/bin/apr-1-config \
--with-apu=/home/user/apache/bin/apu-1-config
4) make
5) sudo make install
6) #파일 생성 확인
ls -l /home/user/apache/modules/mod_security2.so
****인터넷 사용 불가능한 경우****
1. ModSecurity 2.9.7 설치
1) modsecurity-2.9.7.tar.gz 파일을 다운받아 /home/user/ 경로로 가져다 놓음
2. 압축해제
1) tar -xzvf modsecurity-2.9.7.tar.gz
3. libxml2-2.9.14 라이브러리 설치
1) 다운받은 libxml2-2.9.14.tar.xz 파일을 /home/user/ 경로로 가져다 놓음
4. 압축 해제 (xz 형식이므로 J 옵션 사용)
1) tar -xJvf libxml2-2.9.14.tar.xz
5. 폴더 진입
1) cd libxml2-2.9.14
6. --prefix를 통해 설치될 경로를 명시(나중에 ModSecurity가 이 경로를 참조하게 됨).
1) ./configure --prefix=/home/user/libs/libxml2 --without-python
7. 컴파일
1) make
8. 설치(지정한 prefix 경로로 파일들이 복사됨)
1) sudo make install
9. 파일 생성 눈으로 확인
1) ls -l /home/user/libs/libxml2/lib
2) ls -l /home/user/libs/libxml2/include
10. 설치 경로로 이동
1) cd /home/user/modsecurity-2.9.7
11. 기존 기록 삭제
1) make clean
12. --with-libxml2 옵션으로 방금 수동 설치한 경로를 직접 넣어줌(libxml2 라이브러리를 수동으로 설치했을 경우 modsecurity 설치시 설정값이 추가됩니다.)
1) ./configure --with-apxs=/home/user/apache/bin/apxs \
--with-apr=/home/user/apache/bin/apr-1-config \
--with-apu=/home/user/apache/bin/apu-1-config \
--with-libxml=/home/user/libs/libxml2
13. 컴파일 및 설치
1) make
2) sudo make install
14. 파일 생성 확인
1) ls -l /home/user/apache/modules/mod_security2.so
*****httpd.conf파일 수정*****
1.httpd.conf파일 진입
1) cd /home/user/apache/conf/
2) cp httpd.conf httpd.conf.back #<- 백업
3) vi httpd.conf
2. unique_id_module 주석해제 ( #unique_id_module 로드 (mod_security의 필수 짝꿍임)
1) LoadModule unique_id_module modules/mod_unique_id.so
3. 방금 직접 컴파일해서 만든 모듈 로드 (아래 코드 추가)
1) LoadModule security2_module modules/mod_security2.so
4. 보안 설정 주입 (맨아래 코드 추가)
1) <IfModule security2_module>
SecRuleEngine On
# [핵심 아파치 이름을 “ ”로 바꿉니다
SecServerSignature “ "
</IfModule>
5. 저장 후 나가기
1) :wq
6. 문법 검사 (Syntax OK가 나오면 됨!)
1) sudo /home/user/apache/bin/httpd -t
7. 재시작
1) sudo /home/user/apache/bin/httpd -k restart
최종확인
1) namp -sV localhost
2) curl -I localhost
결과는 아래와 같이 잘 처리 되었다.
