보안 웹서버 보안 강화의 핵심은 취약한 프로토콜 비활성화, 불필요한 정보 노출 차단, 그리고 디렉터리 접근 제어다.[1]
페이지 정보
작성자 최고관리자 작성일 26-07-26 12:50 조회 3 댓글 0본문
웹서버 보안 강화의 핵심은 취약한 프로토콜 비활성화, 불필요한 정보 노출 차단, 그리고 디렉터리 접근 제어다. 각 환경별 필수 보안 설정 파일(
conf
) 예시와 방안은 다음과 같다.1. Linux + Nginx 환경
Nginx는 가볍고 빠르지만 기본 설정 상태로는 정보 노출 위험이 있다.
/etc/nginx/nginx.conf
또는 가상 호스트 설정 파일에 아래 보안 설정을 반영해야 한다. nginx
http {
# 1. Nginx 버전 정보 숨기기 (헤더 노출 차단)
server_tokens off;
# 2. 클릭재킹 공격 방지 및 XSS 필터링 설정
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Content-Security-Policy "default-src 'self';" always;
server {
listen 443 ssl;
server_name example.com;
# 3. 안전한 TLS 프로토콜 및 암호화 알고리즘만 허용 (TLS 1.0, 1.1 차단)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 4. 디렉터리 리스팅 차단 및 특정 경로 IP 제한
location / {
autoindex off; # 파일 목록 노출 금지
}
location /admin {
allow 192.168.1.0/24; # 허용할 관리자 IP 대역
deny all; # 그 외 모든 접근 차단
}
}
}
코드를 사용할 때는 주의가 필요합니다.
2. Linux + Apache 환경
Apache는 모듈 기반으로 동작하므로 보안 관련 모듈(
mod_headers
,
mod_rewrite
)이 활성화되어 있어야 한다.
/etc/httpd/conf/httpd.conf
또는
.htaccess
파일에 적용한다.apache
# 1. Apache 버전 및 OS 정보 숨기기
ServerTokens ProductOnly
ServerSignature Off
# 2. 클릭재킹 및 보안 헤더 추가 (mod_headers 필요)
<IfModule mod_headers.c>
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
</IfModule>
# 3. 디렉터리 리스팅 차단 및 상위 디렉터리 접근 제한
<Directory "/var/www/html">
Options -Indexes -FollowSymLinks # Indexes 제거로 리스팅 차단
AllowOverride None
Require all granted
</Directory>
# 4. 관리자 페이지 IP 접근 제한
<Directory "/var/www/html/admin">
Require ip 192.168.1.100
# 위의 IP 외에는 모두 거부됨
</Directory>
# 5. 불필요한 HTTP 메소드(TRACE, TRACK 등) 차단
TraceEnable Off
코드를 사용할 때는 주의가 필요합니다.
3. Windows + IIS 환경
IIS는 텍스트 기반
conf
파일 대신 웹 루트 디렉터리의
web.config
XML 파일로 설정을 관리한다. 구버전 TLS 차단은 Windows 레지스트리 수정이 필요하며, 웹 설정은 아래 코드를 사용한다.xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<!-- 1. 디렉터리 리스팅 차단 -->
<directoryBrowseenabled="false" />
<!-- 2. 보안 HTTP 헤더 추가 -->
<httpProtocol>
<customHeaders>
<addname="X-Frame-Options"value="SAMEORIGIN" />
<addname="X-Content-Type-Options"value="nosniff" />
<addname="X-XSS-Protection"value="1; mode=block" />
<!-- 서버 정보 숨기기 (X-Powered-By 제거) -->
<removename="X-Powered-By" />
</customHeaders>
</httpProtocol>
<!-- 3. 관리자 페이지 IP 접근 제한 -->
<security>
<ipSecurityallowUnlisted="true"> <!-- 기본적으론 허용하되 아래 경로에서 별도 제어 --><!-- 특정 폴더에 적용 시 <location> 태그 활용 가능 -->
</ipSecurity>
<!-- 4. 서버 배너 정보(Server: Microsoft-IIS) 숨기기 (IIS 10.0 이상) -->
<requestFilteringremoveServerHeader="true" />
</security>
</system.webServer>
</configuration>
코드를 사용할 때는 주의가 필요합니다.
- 이전글 웹서버 보안 강화의 핵심은 취약한 프로토콜 비활성화, 불필요한 정보 노출 차단, 그리고 디렉터리 접근 제어다.[2]
- 다음글 웹서버 보안 강화를 위한 필수 요소는 최신 패치 관리, 접근 제어, 암호화 통신이다
댓글목록 0
등록된 댓글이 없습니다.
