Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- PHP 정규식 예제
- group_concat 구분자
- bootstrap modal
- thumbnail 클래스
- modsecurity 설치
- httpd.conf 보안 설정
- mod_security2 설치
- 비밀번호검증정규식
- bootstrap
- 비밀번호정규식
- php 배열제거
- 숫자 3자리(천단위) 마다 콤마 찍기
- postfix 설치
- 아파치 웹 서버의 정보 숨기기
- 윈도우 mod_security2
- wsl2 우분투에 docker 설치
- VS Code 서버설치
- 자바스크립트비밀번호검증
- usb efi 시스템 파티션 삭제
- usb 삭제
- 윈도우 환경 아파치 mod_security2 설치
- html pdf 변환
- (using password: YES)" when trying to connect
- apple push notification service (apns) is changing
- mariadb upgrade
- javascript
- sha-2 root
- 유튜브 플레이 리스트 저장
- php 이미지 url 검증 함수
- 파라미터 & 오류
Archives
- Today
- Total
투덜이 개발자
[apache] 아파치 설정 보안 mod rewrite 설치 본문
반응형
apache mod rewrite
Apache에서 mod_rewrite 모듈이 활성화되어 있는지 확인하려면 아래 방법을 사용하시면 됩니다.
모듈이 활성화 확인
Ubuntu/Debian 계열
apache2ctl -M | grep rewrite
출력에 rewrite_module이 보이면 활성화된 상태입니다:

rewrite_module (shared)
CentOS/RHEL 계열
httpd -M | grep rewrite
모듈이 비활성화된 경우 활성화 방법
Ubuntu/Debian 계열
sudo a2enmod rewrite
sudo systemctl restart apache2
CentOS/RHEL 계열
보통 /etc/httpd/conf/httpd.conf에서 다음 줄이 주석 처리되어 있다면 해제하면 됩니다:
LoadModule rewrite_module modules/mod_rewrite.so
그 후 Apache 재시작:
sudo systemctl restart httpd
아파치 보안 설정
<VirtualHost *:80>
# ServerAdmin webmaster@localhost
ServerName www.yourdomain.or.kr
DocumentRoot /data/www/yourdomain.or.kr/www
DirectoryIndex index.php
ErrorLog "|/usr/bin/cronolog ${APACHE_LOG_DIR}/%Y%m%yourdomain.or.kr_error.log"
CustomLog "|/usr/bin/cronolog ${APACHE_LOG_DIR}/%Y%m%d_yourdomain.or.kr_access.log" combined
<LimitExcept GET POST>
Require all denied
</LimitExcept>
# mod_rewrite 활성화
RewriteEngine On
# HEAD 요청이 오면 403 Forbidden 처리
RewriteCond %{REQUEST_METHOD} ^HEAD$
RewriteRule .* - [F]
# QUERY_STRING에서 XSS 특수문자 차단
RewriteCond %{QUERY_STRING} [<>\"']
RewriteRule .* - [F,L]
# REQUEST_URI(경로)에서 XSS 특수문자 차단
RewriteCond %{REQUEST_URI} [<>\"']
RewriteRule .* - [F,L]
# .php 뒤에 슬래시가 붙으면 403 또는 404로 차단
RewriteCond %{REQUEST_URI} \.php/
RewriteRule .* - [F,L]
# 사용자 정의 에러 페이지 설정
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php
</VirtualHost>
# mod_rewrite 활성화
RewriteEngine On
# QUERY_STRING에서 XSS 특수문자 차단
RewriteCond %{QUERY_STRING} [<>\"']
RewriteRule .* - [F,L]
# REQUEST_URI(경로)에서 XSS 특수문자 차단
RewriteCond %{REQUEST_URI} [<>\"']
RewriteRule .* - [F,L]
# .php 뒤에 슬래시가 붙으면 403 또는 404로 차단
RewriteCond %{REQUEST_URI} \.php/
RewriteRule .* - [F,L]
*** 테스트 ***
403 Forbidden 응답되면 된다.
QUERY_STRING에 XSS 특수문자 있을 때 차단 테스트
curl -i "http://domain_address/index.php?xss=<script>"
REQUEST_URI에 XSS 특수문자 있을 때 차단 테스트
curl -i "http://domain_address/<script>.php"
.php/ 뒤에 슬래시 붙는 요청 차단 테스트
curl -i "http://domain_address/test.php/"
*** 참고 ***
반응형
'OS > Linux' 카테고리의 다른 글
| 우분투 Postfix 설치 (0) | 2025.05.08 |
|---|---|
| Apache 보안 설정 (0) | 2025.04.23 |
| Ubuntu ssh 접속시 root 권한 문제 해결 (0) | 2025.03.12 |
| [우분투] Ubuntu IP 설정 방법 (24.04.1) (0) | 2024.11.21 |
| 우분투 SSH 서버 설치하기 (Ubuntu SSH server) (0) | 2024.11.18 |