Apache의 ModSecurity가 설정된 경우
임의의 MIME-TYPE를 설정할 때 403 에러 응답을 하는 경우를 볼 수 있습니다.
이 경우 ModSecurity 설정 파일에 다음과 같이 내용을 추가합니다.
SecAction \
"id:900990,\
phase:1,\
nolog,\
pass,\
t:none,\
setvar:'tx.allowed_request_content_type=application/xxx|application/xxxx', \
setvar:tx.crs_setup_version=320"
구분자는 | 문자입니다.
타입을 추가한 뒤 아파치를 재시작하고 200 OK로 처리 됩니다.
2020년 3월 13일 금요일
2020년 3월 12일 목요일
아파치 mod_security2 설치 - 윈도우 환경
0. 적용환경
운영체제 : Windows 10 64bit
Apache 버전 : Apache2.4
mod_security 버전 : mod_security-2.9.3-win64-VS16
1. mod_security 설치
mod_security-2.9.3-win64-VS16.zip 파일 다운로드
다운로드 : https://www.apachelounge.com/download/
- yajl.dll 설치
apache24/bin 디렉토리에 yajl.dll 복사
- mod_security2.so 설치
apache24/modules 디렉토리에 mod_security2.so 복사
2. owasp-modsecurity-crs 설치
owasp-modsecurity-crs 다운로드
owasp-modsecurity-crs-3.2.0 버전으로 설치했습니다.
다운로드 : https://github.com/SpiderLabs/owasp-modsecurity-crs
- owasp-modsecurity-crs 설정
apache24/conf 디렉토리에 owasp-modsecurity-crs 디렉토리를 만들고
압축파일 내에 있는 crs-setup.conf.example파일과 rules 디렉토리를 복사합니다.
그리고 crs-setup.conf.example 파일 이름을 crs-setup.conf로 변경합니다.
3. crs-setup.conf 설정
crs-setup.conf 파일을 열어 최상단에 다음과 같이 수정합니다.
SecRuleEngine On
SecDefaultAction "deny,phase:2,status:403"
ServerTokens Full
ServerSignature Off
SecServerSignature "TestServer"
4. httpd.conf 설정
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so
<IfModule security2_module>
Include conf/owasp-modsecurity-crs/crs-setup.conf
Include conf/owasp-modsecurity-crs/rules/*.conf
</IfModule>
5. 요청 응답 해더 확인
아파치를 재시작하고
응답 헤더에 Server가 TestServer 값으로 수정된 것을 확인합니다.
http://localhost
운영체제 : Windows 10 64bit
Apache 버전 : Apache2.4
mod_security 버전 : mod_security-2.9.3-win64-VS16
1. mod_security 설치
mod_security-2.9.3-win64-VS16.zip 파일 다운로드
다운로드 : https://www.apachelounge.com/download/
- yajl.dll 설치
apache24/bin 디렉토리에 yajl.dll 복사
- mod_security2.so 설치
apache24/modules 디렉토리에 mod_security2.so 복사
2. owasp-modsecurity-crs 설치
owasp-modsecurity-crs 다운로드
owasp-modsecurity-crs-3.2.0 버전으로 설치했습니다.
다운로드 : https://github.com/SpiderLabs/owasp-modsecurity-crs
- owasp-modsecurity-crs 설정
apache24/conf 디렉토리에 owasp-modsecurity-crs 디렉토리를 만들고
압축파일 내에 있는 crs-setup.conf.example파일과 rules 디렉토리를 복사합니다.
그리고 crs-setup.conf.example 파일 이름을 crs-setup.conf로 변경합니다.
3. crs-setup.conf 설정
crs-setup.conf 파일을 열어 최상단에 다음과 같이 수정합니다.
SecRuleEngine On
SecDefaultAction "deny,phase:2,status:403"
ServerTokens Full
ServerSignature Off
SecServerSignature "TestServer"
4. httpd.conf 설정
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule security2_module modules/mod_security2.so
<IfModule security2_module>
Include conf/owasp-modsecurity-crs/crs-setup.conf
Include conf/owasp-modsecurity-crs/rules/*.conf
</IfModule>
5. 요청 응답 해더 확인
아파치를 재시작하고
응답 헤더에 Server가 TestServer 값으로 수정된 것을 확인합니다.
http://localhost
라벨:
아파치,
아파치헤더,
apache,
header server,
mod_security2,
windows
위치:
대한민국
2020년 3월 10일 화요일
우분투 - 아파치 톰캣 연동
apache2, tomcat9 연동예제입니다.
1. 설치
# apt-get install -y apache2
# service apache2 start
아파치2 접속확인
http://localhost
2. 톰캣설치
# apt-get install -y openjdk-8-jdk
자바가 필수로 설치된 환경에서 설치합니다.
/usr/share/tomcat9경로에 설치합니다.
# cd /usr/share
# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
# tar -zxvf apache-tomcat-9.0.31.tar.gz
# mv apache-tomcat-9.0.31 tomcat9
# rm apache-tomcat-9.0.31.tar.gz
톰캣 접속확인
http://localhost:8080
3. mod-jk 설치
# apt-get install libapache2-mod-jk
4. /etc/libapache2-mod-jk/workers.properties 수정
# which java
/usr/bin/java
# readlink /usr/bin/java
/etc/alternatives/java
# readlink /etc/alternatives/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
readlink /etc/alternatives/java에서 확인된 경로와 톰캣 설치 경로를 workers.properties 파일에 설정합니다.
# vi /etc/libapache2-mod-jk/workers.properties
workers.tomcat_home=/usr/share/tomcat9
workers.java_home=/usr/lib/jvm/java-8-openjdk-amd64
5. 톰캣 server.xml 파일 수정
# vi /usr/share/tomcat9/conf/server.xml
<Connector protocol="AJP/1.3"
port="8009"
address="0.0.0.0"
secretRequired="false"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="ajp13_worker">
Connector의 secretRequired, address 두 설정에 오류가 있으면 연동이 안될 수 있습니다.
worker 기본 설정값인 ajp13_worker를 jvmRoute에 입력합니다.
톰캣9 재시작
# sh /usr/share/tomcat9/bin/shutdown.sh
# sh /usr/share/tomcat9/bin/startup.sh
6. /etc/apache2/sites-enabled/000-default.conf 수정
# vi /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
DocumentRoot /usr/share/tomcat9/webapps/ROOT
7. /etc/apache2/apache2.conf 수정
# vi /etc/apache2/apache2.conf
ServerName localhost
서버네임이 생략된경우 추가합니다.
8. 아파치2 재시작
# service apache2 restart
9. 접속확인
http://localhost
만약 접속이 안된다면 톰캣과 아차피 모두 재시작하고 확인합니다.
에러가 발생한다면 /var/log/apache2/ 경로에서 아파치 로그를 확인합니다.
1. 설치
# apt-get install -y apache2
# service apache2 start
아파치2 접속확인
http://localhost
2. 톰캣설치
# apt-get install -y openjdk-8-jdk
자바가 필수로 설치된 환경에서 설치합니다.
/usr/share/tomcat9경로에 설치합니다.
# cd /usr/share
# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz
# tar -zxvf apache-tomcat-9.0.31.tar.gz
# mv apache-tomcat-9.0.31 tomcat9
# rm apache-tomcat-9.0.31.tar.gz
# sh /usr/share/tomcat9/bin/startup.sh
톰캣 접속확인
http://localhost:8080
3. mod-jk 설치
# apt-get install libapache2-mod-jk
4. /etc/libapache2-mod-jk/workers.properties 수정
# which java
/usr/bin/java
# readlink /usr/bin/java
/etc/alternatives/java
# readlink /etc/alternatives/java
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
readlink /etc/alternatives/java에서 확인된 경로와 톰캣 설치 경로를 workers.properties 파일에 설정합니다.
# vi /etc/libapache2-mod-jk/workers.properties
workers.tomcat_home=/usr/share/tomcat9
workers.java_home=/usr/lib/jvm/java-8-openjdk-amd64
5. 톰캣 server.xml 파일 수정
# vi /usr/share/tomcat9/conf/server.xml
<Connector protocol="AJP/1.3"
port="8009"
address="0.0.0.0"
secretRequired="false"
redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="ajp13_worker">
Connector의 secretRequired, address 두 설정에 오류가 있으면 연동이 안될 수 있습니다.
worker 기본 설정값인 ajp13_worker를 jvmRoute에 입력합니다.
톰캣9 재시작
# sh /usr/share/tomcat9/bin/shutdown.sh
# sh /usr/share/tomcat9/bin/startup.sh
6. /etc/apache2/sites-enabled/000-default.conf 수정
# vi /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerName localhost
JkMount /* ajp13_workerDocumentRoot /usr/share/tomcat9/webapps/ROOT
</VirtualHost>
# vi /etc/apache2/apache2.conf
ServerName localhost
서버네임이 생략된경우 추가합니다.
8. 아파치2 재시작
# service apache2 restart
9. 접속확인
http://localhost
만약 접속이 안된다면 톰캣과 아차피 모두 재시작하고 확인합니다.
에러가 발생한다면 /var/log/apache2/ 경로에서 아파치 로그를 확인합니다.
피드 구독하기:
글 (Atom)