Nginx 7G Firewall은 Perishable Press의 Jeff Starr가 개발한 것으로, 서버 레벨에서 매우 인기가 높은 방화벽입니다. 저 역시도 정말 좋아하는 개발자인데요. 여기에 BBQ Firewall이나 Ban Hammer, BlackHole 플러그인은 워드프레스 운영에 정말 도움이 많이 되는 플러그인입니다. Nginx 7G Firewall은 방화벽인 워드프레스 플러그인인 BBQ가 작동하기 전에 Nginx 단계에서 악성 요청을 차단하여 서버 리소스를 크게 절약할 수 있습니다.
설치 과정은 매우 간단합니다. 먼저 Nginx 설정 디렉터리에 7G Firewall 규칙을 포함할 별도의 파일을 생성합니다.
sudo nano /etc/nginx/7g-firewall.conf
그리고 아래 내용을 입력하세요.
# 7G FIREWALL - NGINX VERSION
# @ https://perishablepress.com/7g-firewall/
# 1. BAD QUERY STRINGS (악성 쿼리 스트링 차단)
if ($query_string ~* "([a-z0-9]{2000,})") { return 403; }
if ($query_string ~* "(base64_encode)(.*)(\()") { return 403; }
if ($query_string ~* "(eval\()") { return 403; }
if ($query_string ~* "(GLOBALS)(=|\[|%)") { return 403; }
if ($query_string ~* "(_REQUEST)(=|\[|%)") { return 403; }
if ($query_string ~* "([a-z0-9]{2000,})") { return 403; }
if ($query_string ~* "(<|%3C)(.*)(script)(.*)(>|%3E)") { return 403; }
if ($query_string ~* "(\+|%2B)(concat|delete|get|select|union)(\+|%2B)") { return 403; }
if ($query_string ~* "(union)(.*)(select)(.*)(\()") { return 403; }
if ($query_string ~* "(etc\/passwd)") { return 403; }
# 2. BAD USER AGENTS (악성 봇 차단)
if ($http_user_agent ~* "(binlar|casper|cmsworldmap|comodo|diavol|dotbot|feedfinder|flicky|ia_archiver|jakarta|kmccrew|nutch|planetwork|purebot|pycurl|skygrid|snoopy|turnit|vikspider|zmeu)") { return 403; }
if ($http_user_agent ~* "(havij|libwww-perl|nikto|nmap|sqlmap|w3af|whitehat|zmeu)") { return 403; }
# 3. BAD REQUEST URIs (시스템 파일 및 악성 경로 접근 차단)
if ($request_uri ~* "(\.|%2e)(\.|%2e)(f|%2f)") { return 403; } # Directory Traversal
if ($request_uri ~* "(\/)(etc|var)(\/)(hidden|secret|shadow|passwd|tmp)(.*)$") { return 403; }
if ($request_uri ~* "(\/)(boot|conf|bin|ini|log|mk|mysql|niche|old|sql|sys|temp|test|tmp|local|install)(\/)(.*)$") { return 403; }
if ($request_uri ~* "(\.7z|\.bak|\.bz2|\.conf|\.dist|\.fla|\.git|\.inc|\.ini|\.log|\.old|\.psd|\.rar|\.sql|\.swp|\.tar|\.tgz)$") { return 403; }
if ($request_uri ~* "(=)(\$|%24)(_)") { return 403; } # PHP Variable injection
# 4. BAD REFERRERS (악성 리퍼러 차단)
if ($http_referer ~* "(semalt.com|todaperfeita.com|seoanalyses.com|buttons-for-website.com)") { return 403; }
이 파일에는 SQL 인젝션, XSS, 악성 봇 등의 공격을 차단하는 규칙들이 담겨 있습니다. 생성한 파일은 Nginx 설정 파일에 포함시켜야 하며, 특히 워드프레스 설정 파일의 서버 블록 시작 부분에 바로 추가하는 것이 좋습니다. 참고로 설정파일명은 다를 수 있습니다. 본인이 직접 만든게 아니라면 호스팅사에 문의하세요.
sudo nano /etc/nginx/sites-available/wordpress
그리고 server 블록 하위에 아래 내용을 추가하세요. (7~8번라인)
server {
# 1. GeoIP 차단
if ($geoip_country_code ~* (CN|RU|UA|KP|NG|RO|IR|BR|VN|IN|MY|ID|DE|ES|SY)) {
return 444;
}
# [여기에 추가!] 2. Nginx 7G Firewall (악성 요청 차단)
include /etc/nginx/7g-firewall.conf;
listen 443 ssl http2;
# ... (이하 기존 설정 유지) ...
설정을 완료한 후에는 Nginx 문법 검사를 통해 설정이 올바른지 확인하고, 서버를 재시작하여 방화벽이 정상 작동하는지 테스트합니다. 이를 위해 의도적으로 악성 패턴이 포함된 URL로 접근을 시도해보면 403 Forbidden 에러가 발생해야 정상입니다.
sudo systemctl restart nginx
이제 https://도메인주소/?foo=union+select 로 접속후 차단되는지 확인해보세요.
7G Firewall은 Nginx 레벨에서 직접 작동하여 악성 요청을 빠르게 차단합니다. 이로 인해 워드프레스와 같은 PHP 기반의 애플리케이션이 실행되기 전에 공격을 막을 수 있습니다. BBQ Firewall 플러그인은 만약 7G 방화벽을 통과한 교묘한 공격이 있을 경우를 대비한 2차 방어선 역할을 합니다.
이 과정을 통해 서버의 최적화 및 보안 설정을 완성할 수 있습니다. 이를 통해 무료로 서버의 효율성을 극대화하고 안전성을 높일 수 있습니다.
댓글 0개
댓글을 남기시면 관리자가 최대한 빠르게 확인 후 답글을 남겨드립니다.구글 간편 로그인 후 댓글 작성시 포인트가 누적되며, 회원전용글 열람이 가능합니다.
확인되지 않은 URL
본 사이트에서 이동할 시 위험할 수 있으며, 이 후 책임은 이 사이트가 책임지지 않습니다. 이동하시겠습니까?
AI 교정
AI가 내용을 분석하고 있습니다...
원본
AI 교정
교정 내용을 확인하고 '적용하기'를 클릭하세요.
코드 삽입
이미지 추가 (Imgur)
이미지 호스팅 Imgur에 이미지를 업로드한 후,
이미지 주소(Direct Link)를 입력해주세요.