티스토리 뷰
반응형
Nginx 특정 IP, URI 접근 막기
1. 아이피 목록 파일 만들기 block-ip-list.conf
# 엔진엑스 위치로가서 custom-conf 디렉토리를 만들어 준다
$ cd /etc/nginx
$ mkdir custom-conf
# 아이피 목록 파일 만들기
vi /etc/nginx/custom-conf/block-ip-list.conf
geo $block_ip {
5.62.41.163 1;
5.62.58.235 1;
64.62.197.227 1;
165.22.69.67 1;
80.82.77.202 1;
135.125.246.189 1;
103.216.223.204 1;
43.157.42.61 1;
3.81.226.20 1;
default 0;
}
:wq!
2. URI 단어 파일 만들기 block-word-list.conf
# URI 단어 파일 만들기
$ vi /etc/nginx/custom-conf/block-word-list.conf
map $request_uri $block_word {
default 0;
~*(wp-includes|wlwmanifest|xmlrpc|wordpress|administrator|wp-admin|wp-login|owa|a2billing) 1;
~*(fgt_lang|flu|stalker_portal|streaming|system_api|exporttool|ecp|vendor|LogService|invoke|phpinfo) 1;
~*(Autodiscover|console|eval-stdin|staging|magento|demo|rss|root|mifs|git|graphql|sidekiq|c99|GponForm) 1;
~*(header-rollup-554|fckeditor|ajax|misc|plugins|execute-solution|wp-content|php|telescope) 1;
~*(idx_config|DS_Store|nginx|wp-json|ads|humans|exec|level|monitoring|configprops|balancer|actuator) 1;
~*(meta-data|web_shell_cmd|latest|remote|_asterisk|bash|Bind|binding|appxz|bankCheck|GetAllGameCategory) 1;
~*(exchangerateuserconfig|exchange_article|kline_week|anquan|dns-query|nsepa_setup|java_script|gemini-iptv) 1;
~*(j_spring_security_check|wps|cgi|asmx|HNAP1|sdk|evox) 1;
~*(_ignition|alvzpxkr|ALFA_DATA|wp-plain) 1;
~*(ldap|jndi|dns|securityscan|rmi|ldaps|iiop|corba|nds|nis) 1;
~*(env|docker) 1;
}
:wq!
3. 생성한 파일을 적용시키기 (# 생성한 conf파일 include 부분 추가)
# nginx.conf 파일을 수정하기
$ vi /etc/nginx/nginx.conf
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
# 생성한 conf파일 include
include /etc/nginx/custom-conf/block-ip-list.conf;
include /etc/nginx/custom-conf/block-word-list.conf;
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
...
}
...
}
4. 세팅된 서버에 해당 내용 적용 시키기 (# 아이피 block, # uri 단어 block 추가)
# 각자 설정되어있는 conf 파일 수정
$ vi /etc/nginx/conf.d/xxx.conf
upstream umsapi {
server 127.0.0.1:8080;
}
server {
#요청 받는 도메인
server_name xxx;
# 아이피 block
if ($block_ip) { return 444; }
# uri 단어 block
if ($block_word = 1) { return 444; }
location / {
rewrite ^/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#특정 패턴의 URI 로 들어올경우 위에서 설정한 umsapi upstream으로 프록싱
location /api/ {
rewrite ^/api/(.*)$ /api/$1 break;
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
listen 443 ssl; # managed by Certbot
...
}
server {
if ($host = xxx) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name xxx;
listen 80;
return 404; # managed by Certbot
}
5. Nginx 테스트 후 재시작
# nginx text ok면 성공
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
$ systemctl restart nginx.service
끗!@#$!@#%!#%!#%
반응형
'etc' 카테고리의 다른 글
Nginx IP주소로 접속시 차단하는 방법 (0) | 2024.06.13 |
---|---|
Jenkins Failed to start Jenkins Continuous Integration Server 에러 처리 방법 (0) | 2023.11.21 |
인텔리제이(IntelliJ) Mac OS 자주 사용되는 단축키 모음 (0) | 2023.11.20 |
전세, 월세 계약 시 체크리스트 (0) | 2023.11.07 |
Postman Cookies 추가하여 사용하기 (0) | 2023.06.21 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 오라클 DB 링크
- 리니지m
- kendo grid
- 스쿠터 여행
- 전국 일주 여행
- 보성 여행
- 영광 여행
- 초원사진관
- 고흥 여행
- vscode
- Docker
- 군산 여행
- 송내역 룸카페
- 군산 게스트하우스
- 송내역 카페
- 윈드스크린
- 송내 카페
- 은파호수공원
- 송내 룸카페
- 담양 여행
- 군산 가볼만한곳
- 베스파LX
- 인터바이크
- 국제반점
- 나래바이크
- 남자 혼자 국내 여행
- 스쿠터 전국 일주
- 남자 혼자 여행
- 제주도 스쿠터 여행
- 돌장갑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함